[kerference] naver web security - 허규(naver)

25
Naver Web Security 허규

Upload: naver-d2

Post on 07-Jan-2017

1.636 views

Category:

Technology


3 download

TRANSCRIPT

Naver Web Security

허규

2

대외비

Web Security?

진입장벽

난이도

System Hacking 전으로 가기 위한 과정?

3

대외비

Naver Web Security

Naver 에서는 어떻게 Web Security를 수행하고 있을까?

- 서비스가 출시되기 전에, Critical/Major한 취약점을 제거해야 함

- 서비스를 기획 / 개발하는 과정부터 보안 요소를 고려함- 주기적인 모의해킹

4

대외비

Based on OWASP TOP 10

OWASP top 10 에 있는 주요 취약점들 그리고…

Injection인증 및 세

션 관리XSS

취약한 직접객체 참조

보안 설정오류

민감 데이터노출

기능 수준의접근 통제

누락

CSRF

알려진 취약점이 있는

컴포넌트 사용

검증되지 않은

Redirection

5

대외비

Threat

Web 취약점에서의 가장 큰 위협은?

XSS? SQL-injection?

Server Side & Client Side

6

대외비

XSS?

• XSS (Cross Site Scripting)

• Javascript로 할 수 있는 것은 모두 가능

• 키 입력 기록(키로깅)

• 클립보드 컨텐츠 수집

• 사용자를 악성코드 유포지로 이동시키는 등

<script>document.onkeypress = function(){window.status += String.fromCharCode(window.event.keycode);

}</script>

<script> alert(window.clipboardData.getData(‘Text’)); </script>

7

대외비

XSS?

8

대외비

CSRF

인터넷 이용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특

정 웹사이트에 요청하게 만드는 공격

사용자의 계정 또는 세션(쿠키)정보 탈취 없이 정상 사용자의 권한으로 HTTP 서버에 request

를 위조하여 요청

Ex) 사용자 자신도 모르게 카페에 가입하거나, 타인의 블로그에 광고성 댓글 작성

공격 가능 환경

1. 쓰기/변경 등 컨텐츠 조작 가능한 기능이 존재하는 서비스 (읽기 기능은 CSRF 취약대상이 아

님)

2. 위조 요청을 전송하는 서비스에 희생자가 로그인 상태

3. 공격자가 작성한 공격 코드가 있는 페이지를 희생자가 접근

9

대외비

CSRF

10

대외비

CSRF

• http://blog.naver.com/bxxxxx• 1. 비정상적인 스크랩 수

2. 비정상적인 공감

11

대외비

CSRF

Get Method 제한

Java script를 이용하여 <form> 태그의 POST method 입력에 취약

Referer 확인

자사 도메인 내의 입력만 받아 들임

자사 도메인 내에서 <img> 태그로 공격 시 취약

Security Token 활용

입력 폼 생성시 security token을 발급하고 확인하는 기법

Ajax 기법을 통해 공격 가능

권장 대응 기법

Get Method 제한 & referer 확인

12

대외비

Parameter Tampering

13

대외비

Packet Replay

다수의 반복 요청으로 사용자의 이득을 얻는 공격

14

대외비

Packet Replay

15

대외비

보안을 하든, 개발을하든, Security Header

HTTP Header

- HTTP를 통해 서버에서 브라우저로 데이터를 전달할 때 HTTP 요청과 HTTP 응답 헤더를 사용

- HTTP 헤더 데이터가 브라우저로 전달되면 데이터의 특성에 따라 브라우저에 표현

HTTP Security Header

- 웹 서버에 HTTP 보안 헤더를 설정하면 HTTP 응답에 보안헤더가 추가되어 보안성을 향상 시킬 수있음.

- 다만, 클라이언트 측 브라우저가 해당 옵션을 지원하지 않으면 동작하지 않을 수 있음

16

대외비

보안을 하든, 개발을하든, Security Header

출처 : https://www.owasp.org/index.php/List_of_useful_HTTP_headers

17

대외비

Security Header – X-XSS-Protection

X-XSS-Protection : 1 X-XSS-Protection : 1, mode=block

18

대외비

Security Header – X-Frame-Options

Header always append X-Frame-Options SAMEORIGIN

<head><meta http-equiv="X-FRAME-OPTIONS" content=" SAMEORIGIN "></head>

<?phpheader("X-Frame-Options ", "SAMEORIGIN");?>

19

대외비

Security Header – X-Frame-Options

20

대외비

Security Header – ‘Strict-Transport-Security’ Header

헤더 설명

• HTTPS 통신을 제공하는 사이트에서 expireTime 동안 HTTPS 전송만을 이용하고, HTTP 요청은무시하도록 설정하는 헤더

필요성 및 효과

• HSTS 보안헤더를 적용하는 방법으로 SSL Strip 공격을 방어 할 수 있음

• HTTPS를 이용하는 사이트에서 공격자가 MITM으로 삽입한 HTTP 요청이 있을 경우, 해당 헤더를이용하는 사이트에서는 HTTP 요청이 동작하지 않게 됨

헤더 옵션

옵션 기능

Max-age 해당 시간만큼 헤더가 동작하게 됨. 단위는 초

includeSubdomain 하위 도메인 포함 여부 결정 (옵션 설정)

21

대외비

Security Header – ‘Strict-Transport-Security’ Header

SSL Strip 공격

- 2009년 Moxie Marlinspike가 BlackHat에서 발표한 일종의 MITM(Man In The Middle Attack) 공격 기법

- SSL 암호화 프로토콜을 사용하지 않도록 HTTP 프로토콜로 바꾸어 전달해주는 기법으로 ARP Spoofing을 통한 공격자의MITM이 선행되어야 함

- 피해자와 SSL Strip 구간은 HTTP 통신, SSL Strip과 target 구간은 HTTPS 통신

22

대외비

Security Header – ‘Strict-Transport-Security’ Header

23

대외비

Security Header – ‘Strict-Transport-Security’ Header

공격 후

24

대외비

Conclusion

* Web Hacking 은 서비스의 요소와 접목시키면 재밌는 것이 굉장히 많다.

단, 서버를 직접적인 공격을 하는 것이 대부분이므로, 악용하면 문제

- webhacking.kr 과 같이 웹해킹 모의사이트로 공부하면…

향후 Source code Auditing을 할 수 있는 수준까지도 가야 한다.

* 보안의 입장만을 내세운 취약점 조치는 형식적이며,서비스의 위험레벨과 영향도를 파악하여 권고하여야 한다.

25

대외비

Q&A