[kerference] naver web security - 허규(naver)
TRANSCRIPT
3
대외비
Naver Web Security
Naver 에서는 어떻게 Web Security를 수행하고 있을까?
- 서비스가 출시되기 전에, Critical/Major한 취약점을 제거해야 함
- 서비스를 기획 / 개발하는 과정부터 보안 요소를 고려함- 주기적인 모의해킹
4
대외비
Based on OWASP TOP 10
OWASP top 10 에 있는 주요 취약점들 그리고…
Injection인증 및 세
션 관리XSS
취약한 직접객체 참조
보안 설정오류
민감 데이터노출
기능 수준의접근 통제
누락
CSRF
알려진 취약점이 있는
컴포넌트 사용
검증되지 않은
Redirection
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>
8
대외비
CSRF
인터넷 이용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특
정 웹사이트에 요청하게 만드는 공격
사용자의 계정 또는 세션(쿠키)정보 탈취 없이 정상 사용자의 권한으로 HTTP 서버에 request
를 위조하여 요청
Ex) 사용자 자신도 모르게 카페에 가입하거나, 타인의 블로그에 광고성 댓글 작성
공격 가능 환경
1. 쓰기/변경 등 컨텐츠 조작 가능한 기능이 존재하는 서비스 (읽기 기능은 CSRF 취약대상이 아
님)
2. 위조 요청을 전송하는 서비스에 희생자가 로그인 상태
3. 공격자가 작성한 공격 코드가 있는 페이지를 희생자가 접근
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 확인
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
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");?>
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 통신
24
대외비
Conclusion
* Web Hacking 은 서비스의 요소와 접목시키면 재밌는 것이 굉장히 많다.
단, 서버를 직접적인 공격을 하는 것이 대부분이므로, 악용하면 문제
- webhacking.kr 과 같이 웹해킹 모의사이트로 공부하면…
향후 Source code Auditing을 할 수 있는 수준까지도 가야 한다.
* 보안의 입장만을 내세운 취약점 조치는 형식적이며,서비스의 위험레벨과 영향도를 파악하여 권고하여야 한다.