OWASP 2013 Version
OWASP(The Open Web Application Security Project)는 국제 웹 보안 표준 기구입니다. OWASP는 특정 기관이 신뢰할 수 있는 웹 애플리케이션을 개발, 획득, 운영 등을 위해 도움을 주는 비영리 공개 커뮤니티이며, 특정 기업과 연계되어 있지 않습니다.
OWASP에서는 웹 애플리케이션 보안 취약점을 연구하고, 3년 주기로 보안이 취약한 부분의 TOP10을 조사 및 선정하여 발표하고 있습니다. 현재(2015년 6월 15일)를 기준으로 가장 최신 버전은 2013년에 발표된 버전(OWASP 2013)입니다.
OWASP TOP10 2013은 현재 공식적으로 발표된 최신 버전입니다. OWASP 2010과 OWASP 2013 버전의 차이점을 살펴보면, 2가지 항목(안전하지 않은 암호 저장[A7], URL 접근 제한 실패[A8])이 삭제되었습니다. 그리고 불충분한 전송 계층 보호[A9] 항목이 OWASP 2013의 Sensitive Data Exposure[A6]로 통합되었습니다. 끝으로 알려진 취약점이 있는 구성요소 사용[A9] 항목이 추가된 것을 확인할 수 있습니다.
관련 문서는 다음 링크에서 다운로드 받으실 수 있으며, 이 문서에 대한 저작권은 문서에 표기되어 있습니다.
항목별 자세한 사항은 위에 첨부된 관련 문서를 참조하길 바라며, 여기에서는 항목별로 간단히 요약한 내용을 소개하겠습니다.
A1. 인젝션(Injection)
인젝션의 대표적인 종류로는 SQL Injection, LDAP Injection 등이 있습니다. 이 취약점의 주요 원인은 신뢰할 수 없는 외부 값에 의해 발생하며, 명령어 실행 또는 접근이 불가능한 데이터에 대한 접근 등의 취약점을 발생시킵니다. SQL Injection에 대해서는 별도의 영역에서 자세히 살펴보겠습니다.
A2. 취약한 인증과 세션 관리(Broken Authentication and Session Management)
인증 및 세션 관리와 관련된 어플리케이션의 비정상적인 동작으로 말미암아 비밀번호, 주요 정보(Keys), 세션 토큰, 그리고 사용자 도용과 같은 취약점을 발생시킵니다.
A3. 크로스 사이트 스크립팅(Cross Site Scripting(XSS))
이 취약점은 신뢰할 수 없는 외부 값을 적절한 검증을 하지 않고, 웹 브라우저로 전송하는 경우 발생합니다. 사용자 세션을 가로채거나 홈페이지를 변조할 수 있으며, 악의적인 사이트 이동 등의 공격을 수행할 수 있습니다.
A4. 안전하지 않은 직접 객체 참조(Insecure Direct Object Reference)
이 취약점은 파일, 디렉토리, 데이터베이스 키와 같은 내부적으로 처리되는 객체(오브젝트)가 노출되는 경우, 다운로드 취약점을 이용하여 시스템 파일에 접근하는 취약점입니다.
A5. 보안상 잘못된 구성(Security Misconfiguration)
이 취약점은 장비의 구성 실수 또는 지속적인 업데이트를 하지 않았을 때 발생합니다. 어플리케이션, 프레임워크, WAS, 데이터베이스 서버, 플랫폼 등에 보안 설정을 적절하게 설정하고, 최적화된 값으로 유지해야 합니다. 이뿐만 아니라, 소프트웨어의 지속적인 업데이트를 수행하여 최신 업데이트 상태로 유지해야 합니다.
A6. 민감한(중요한) 데이터 노출(Sensitive Data Exposure)
많은 웹 어플리케이션이 중요 개인정보(식별정보, 카드번호 등)를 적절하게 보호하지 못해 개인정보 유출과 같은 취약점이 발생합니다. 이 취약점을 보완하기 위해 데이터를 암호화하여 저장하고, 데이터를 전송할 경우에도 적절한 암호화(VPN, SSL 등)를 제공해야 합니다.
A7. 기능 수준 접근 통제 누락(Missing Function Level Access Control)
UI에서 보여지는 특정 기능을 수행하기 전에 기능 접근 제한 권한을 검증해야 하며, 어플리케이션은 각 기능에 대한 접근 시 동일한 접근 통제 검사를 수행해야 합니다. 만일 적절하게 수행되지 못하면 공격자는 비인가된 기능에 접근하기 위해 정상적인 요청을 변조할 수 있습니다.
A8. 크로스 사이트 요청 변조(Cross Site Request Forgery(CSRF))
로그온 된 피해자의 웹 브라우저를 통해 세션 쿠키 및 기타 다른 인증정보가 포함된 변조된 HTTP 요청을 전송시켜 정상적인 요청처럼 보이게 하는 기법으로 물품구매, 사이트 글 변조 등의 악의적인 행동을 하는 취약점을 의미합니다.
A9. 알려진 취약점이 있는 구성요소 사용(Using Components with Known Vulnerabilities)
슈퍼 유저 권한으로 운영되는 취약한 라이브러리, 프레임워크 및 기타 다른 소프르퉤어 모듈로 말미암아 데이터 유실 및 서버 권한획득과 같은 취약점이 존재합니다.
A10. 검증되지 않은 리다이렉트와 포워드(Unvalidated Redirects and Forwards)
웹 어플리케이션에 접속한 사용자를 다른 페이지로 분기할 때, 이동되는 목적지에 대한 검증 부재, 피싱, 악성코드 사이트 등의 접속 및 인가되지 않는 페이지 접근 등의 문제점을 발생할 수 있습니다.
OWASP TOP10 2010은 다음과 같습니다. 관련 문서는 다음 링크에서 다운로드 받으실 수 있으며, 이 문서에 대한 저작권은 문서에 표기되어 있습니다.
OWASP TOP10 2007은 다음과 같습니다. 관련 문서는 다음 링크에서 다운로드 받으실 수 있으며, 이 문서에 대한 저작권은 문서에 표기되어 있습니다.
OWASP TOP10 2004는 다음과 같습니다. 관련 문서는 다음 링크에서 다운로드 받으실 수 있으며, 이 문서에 대한 저작권은 문서에 표기되어 있습니다.
지금까지 OWASP TOP10에 대해 알아봤습니다. OWASP TOP10은 아주 많은 취약점 요소 중에서 중요한 10개의 내용만 소개하고 있습니다. 이외에도 검토할 수 있는 기술이나 역량을 보유하고 있으면, 최대한 보호하는 것이 올바른 행동일 것입니다. 완벽하게 모든 취약점을 제거하기는 어렵습니다만, 보안 의식 수준을 높이는 것은 꼭 필요한 일입니다.