연구이야기/보안이야기☆

OWASP Top Ten Project

OWASP(The Open Web Application Security Project)는 국제 웹 보안 표준 기구입니다. OWASP는 특정 기관이 신뢰할 수 있는 웹 애플리케이션을 개발, 획득, 운영 등을 위해 도움을 주는 비영리 공개 커뮤니티이며, 특정 기업과 연계되어 있지 않습니다.

OWASP에서는 웹 애플리케이션 보안 취약점을 연구하고, 3년 주기[각주:1]로 보안이 취약한 부분의 TOP10을 조사 및 선정하여 발표하고 있습니다. 현재(2013년 5월 7일)를 기준으로 가장 최신 버전은 2010년에 발표된 버전(OWASP 2010)이며, 현재 OWASP 2013RC 버전이 발표되었습니다.


OWASP 2013RC

OWASP TOP10 2013은 현재 Release Candidate 버전입니다. 조만간 정식 버전이 출시될 것으로 예상되며, 정식 버전이 출시되면 관련 내용을 갱신하겠습니다.


OWASP 2010과 OWASP 2013RC 버전의 차이점을 살펴보면, 2가지 항목(안전하지 않은 암호 저장[A7], URL 접근 제한 실패[A8])이 삭제되었습니다. 그리고 불충분한 전송 계층 보호[A9] 항목이 OWASP 2013의 Sensitive Data Exposure[A6]로 통합되었습니다. 끝으로 알려진 취약점이 있는 구성요소 사용[A9] 항목이 추가된 것을 확인할 수 있습니다.

관련 문서는 다음 링크에서 다운로드 받으실 수 있으며, 이 문서에 대한 저작권은 문서에 표기되어 있습니다.


OWASP Top10 2013RC Korean.pdf

OWASP TOP10 2013RC
# 한글 영어
A1 인젝션 Injection
A2 취약한 인증과 세션 관리 Broken Authentication and Session Management
A3 크로스 사이트 스크립팅 Cross Site Scripting (XSS)
A4 안전하지 않은 직접 객체 참조 Insecure Direct Object Reference
A5 보안상 잘못된 구성 Security Misconfiguration
A6 민감한(중요한) 데이터 노출 Sensitive Data Exposure
A7 기능 수준 접근 통제 누락 Missing Function Level Access Control
A8 크로스 사이트 요청 변조 Cross Site Request Forgery(CSRF)
A9 알려진 취약점이 있는 구성요소 사용 Using Components with Known Vulnerabilities
A10 검증되지 않은 리다이렉트와 포워드 Unvalidated Redirects and Forwards


항목별 자세한 사항은 위에 첨부된 관련 문서를 참조하길 바라며, 여기에서는 항목별로 간단히 요약한 내용을 소개하겠습니다. 관련 내용에 대한 한글화 작업은 최종 버전이 출시된 이후에 갱신[각주:2]하겠습니다.


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 2010

OWASP TOP10 2010은 다음과 같습니다. 관련 문서는 다음 링크에서 다운로드 받으실 수 있으며, 이 문서에 대한 저작권은 문서에 표기되어 있습니다.

OWASP Top10 2010 Korean.pdf

OWASP TOP10 2010
# 한글 영어
A1 인젝션 Injection
A2 크로스 사이트 스크립팅 Cross Site Scripting (XSS)
A3 취약한 인증과 세션 관리 Broken Authentication and Session Management
A4 안전하지 않은 직접 객체 참조 Insecure Direct Object Reference
A5 크로스 사이트 요청 변조 Cross Site Request Forgery(CSRF)
A6 보안상 잘못된 구성 Security Misconfiguration
A7 안전하지 않은 암호 저장 Insecure Cryptographic Storage
A8 URL 접근 제한 실패 Failure to Restrict URL Access
A9 불충분한 전송 계층 보호 Insufficient Transport Layer Protection
A10 검증되지 않은 리다이렉트와 포워드 Unvalidated Redirects and Forwards


OWASP 2007

OWASP TOP10 2007은 다음과 같습니다. 관련 문서는 다음 링크에서 다운로드 받으실 수 있으며, 이 문서에 대한 저작권은 문서에 표기되어 있습니다. 

OWASP Top10 2007 Korean.pdf

OWASP TOP10 2007
# 한글 영어
A1 크로스 사이트 스크립팅 Cross Site Scripting (XSS)
A2 인젝션 Injection Flaws
A3 악성 파일 실행 Malicious File Execution
A4 불안전한 직접 객체 참조 Insecure Direct Object Reference
A5 크로스 사이트 요청 변조 Cross Site Request Forgery(CSRF)
A6 정보 유출 및 부적절한 오류 처리 Information Leakage and Improper Error Handling
A7 훼손된 인증 및 세션 관리 Broken Authentication and Session Management
A8 불안전한 암호화 저장 Insecure Cryptographic Storage
A9 불안전한 통신 Insecure Communications
A10 URL 접근 제한 실패 Failure to Restrict URL Access


OWASP 2004

OWASP TOP10 2004는 다음과 같습니다. 관련 문서는 다음 링크에서 다운로드 받으실 수 있으며, 이 문서에 대한 저작권은 문서에 표기되어 있습니다.

OWASP Top10 2004 Korean.pdf

OWASP TOP10 2004
# 한글 영어
A1 입력값 검증 부재 Unvalidated Input
A2 취약한 접근 통제 Broken Access Control
A3 취약한 인증 및 세션 관리 Broken Authentication and Session Management
A4 크로스 사이트 스크립팅(XSS) 취약점 Cross Site Scripting(XSS) Flaws
A5 버퍼 오버플로우 Buffer Overflows
A6 인젝션 취약점 Injection Flaws
A7 부적절한 에러 처리 Improper Error Handling
A8 취약한 정보 저장 방식 Insecure Storage
A9 서비스 방해 공격 Denial of Service
A10 부적절한 환경 설정 Insecure Configuration Management


마치면서

지금까지 OWASP TOP10에 대해 알아봤습니다. OWASP TOP10은 아주 많은 취약점 요소 중에서 중요한 10개의 내용만 소개하고 있습니다. 이외에도 검토할 수 있는 기술이나 역량을 보유하고 있으면, 최대한 보호하는 것이 올바른 행동일 것입니다. 완벽하게 모든 취약점을 제거하기는 어렵습니다만,  보안 의식 수준을 높이는 것은 꼭 필요한 일입니다.

  1. OWASP는 2003년에 처음으로 웹 애플리케이션 보안 취약점 TOP 10을 선정하여 발표한 이후, 2004년, 2007년, 그리고 2010년에 발표했습니다. [본문으로]
  2. (주) 트리니트소프트에서 발생한 정보를 활용했습니다. [본문으로]