오늘은 CCE, CVE, CWE에 이어 또 다른 vulnerability taxonomy인 OWASP Top 10에 대해 정리해보고자 한다.
OWASP(Open Web Application Security Project)
OWASP Official Website
출처 : OWASP Official Website
- OWASP는 웹 어플리케이션 보안에 대한 정보를 공유하고 체계를 세우는 자발적인 온라인 정보 공유 사이트이다.
- 2004년 'OWASP Top 10'이라는 웹 어플리케이션 상의 10대 주요 취약점을 발표하였으며, 해당 취약점 리스트는 3~4년 단위로 업데이트 된다.
- 2021년에 업데이트된 OWASP Top 10 리스트가 가장 최신 버전이다.
OWASP Top 10
출처 : OWASP Top 10
위의 그림과 같이 2021년 업데이트된 OWASP Top 10에서는 3가지의 취약점이 새로 등장하였으며 4가지 취약점의 이름 및 범위 수정, 몇 가지 취약점의 잔류가 발생했다.
취약점 순위 변동도 일어난 것을 확인할 수 있다.
OWASP Top 10 취약점들을 하나하나 살펴보도록 하자!
A1. 잘못된 접근 통제(Broken Access Control)
- 2017년 버전에서 5위였지만, 2021년 1위로 심각성이 올라갔다.
- Broken Access Control과 연결된 34개의 CWE 약점들이 다른 약점들보다 애플리케이션에서 발생할 가능성이 높은 것으로 나타났다.
- 잘못된 접근 통제는 일반적으로 개발자가 코드를 작성할 때, 접근 통제 로직을 누락해서 발생한다.
A2. 암호화 오류(Cryptographic Failures)
- 2017년 '민감한 데이터 노출'로 3위를 차지했던 취약점이 암호화 관련 오류를 중점으로 수정되어 2위에 오르게 되었다.
- 패스워드, 개인정보, 시스템 접속 정보 등 암호화를 통해서 보호되어야 하는 정보들이 적절히 암호화되지 않아 그대로 노출되는 경우가 이 카테고리에 들어간다.
- 암호화하였더라도 충분히 강력한 암호화를 사용하지 않아 너무 쉽게 복호화 되는 경우도 이 경우에 해당된다.
A3. 인젝션(Injection)
- 2017년 1위에서 2021년 3위를 차지했다.
- 33개의 CWE 보안 약점들이 인젝션에 매핑되었으며, 애플리케이션에서 두 번째로 많은 발생 빈도를 보였다.
- 2021 버전에서는 XSS(Cross-site Scripting) 공격이 인젝션 카테고리에 속한 것으로 처리되었다.
- 인젝션 취약점은 내부 데이터베이스와 연동한 결과를 애플리케이션에 보내주는 부분에서 주로 발생한다.
- 주로 SQL query문을 대상으로 하지만, OS에도 악용될 수 있다. XSS도 이 범주에 포함된다.
A4. 안전하지 않은 디자인(Insecure Design)
- 2021 버전에서 새로 등장한 카테고리이다.
- 설계 결함과 관련된 위험에 집중한 취약점이다.
- 더 많은 위협 모델링(threat modeling), 안전한 설계 패턴 및 원칙(secure design patterns and principles), 참조 아키텍처(reference architectures)의 사용이 필요하다고 강조하고 있는 카테고리이다.
A5. 보안 설정 오류(Security Misconfiguration)
- 2017 버전 6위에서 5위로 순위가 상승했다.
- 설정 가능한 범위가 큰 소프트웨어로의 전환이 많아짐에 따라서 보안 설정 오류 취약점의 심각성이 커지고 있다.
- 애플리케이션을 설치할 때 생기는 기본 페이지를 삭제하지 않고 방치하거나, 최신 보안 패치를 업데이트하지 않는 등의 경우가 보안 설정 오류의 예시이다.
- 디렉터리 리스팅과 같은 애플리케이션 설정 오류, XML External Entities(XXE)도 이 카테고리에 해당된다.
- 지난번 보았던 CCE(Common Configuration Enumeration)과 관련 있는 취약점 카테고리이다.
A6. 취약하고 오래된 컴포넌트(Vulnerable and Outdated Components)
- 2017 버전 9위에서 2021 버전 6위로 순위 상승이 있었다.
- 취약한 컴포넌트는 테스트나 분석하기 어려운 알려진 이슈를 의미한다.
- 다양한 컴포넌트를 포함하기 때문에 공통적인 CVE를 도출하기 어렵다.
- 속해있는 CWE(Common Weakness Enumeration)에 매핑된 CVE(Common Vulnerability Enumeration)가 없는 유일한 카테고리이다.
A7. 식별과 인증 실패(Identification and Authentication Failures)
- 2017 버전에 비해 순위가 하락했지만, 여전히 Top 10 취약점의 필수적인 부분이다.
- 관리자 페이지 등 특정 사용자만 접근할 수 있는 페이지에 인증 기능을 누락한 경우가 이 카테고리에 해당한다.
- 세션 정보가 URL에 포함되어 있는 경우, 공격자가 이를 이용하여 계정에 접속하거나 개인 정보를 얻어낼 수 있다.
A8. 소프트웨어와 데이터 무결성 실패(Software and Data Integrity Failures)
- 2021 버전에 추가된 새로운 카테고리이다.
- 무결성을 확인하지 않고 소프트웨어 업데이트나 주요 정보를 업데이트 하는 경우가 이 카테고리에 해당된다.
- CVE/CVSS(Common Vulnerability/Common Vulnerability Scoring System)에서 가중치가 가장 높은 취약점 카테고리 중 하나이다.
A9. 보안 로그와 모니터링 실패(Security Logging and Monitoring Failures)
- 테스트하기 쉽지 않고 CVE, CVSS 데이터가 많지 않은 취약점 카테고리이다.
- 테스트가 어렵지만 해당 카테고리는 포렌식, 침해 알림에 큰 영향을 줄 수 있다.
A10. 서버 사이드 요청 변조(SSRF, Server-Side Request Forgery)
- 서버에서 이루어지는 요청을 공격자가 변조하여 서버가 공격자가 원하는 동작을 하도록 만드는 취약점이다.
- Top 10 community survey에서 1위를 한 취약점으로 OWASP Top 10에 이름을 올리게 되었다.
- 실제 데이터를 보았을 때 발생 가능성은 낮고, 평균 이상의 공격 및 영향 가능성을 보인다.
참고자료
OWASP Top 10 Official Website