보안

OWASP TOP 10 설명

만보만보잠만보 2023. 2. 25. 22:46

가장 최근에 나온 OWASP는 2021년도 기준이기에 맞춰서 작성합니다.

OWASP란 오픈소스 웹 애플리케이션 보안 프로젝트(Open Web Application Security Project)입니다.

OWASP는 3~4년 주기로 10대 웹 애플리케이션의 취약점을 발표합니다.

예전에 조사한 OWASP TOP 10과 지금의 OWASP TOP 10을 비교한 표입니다.

2017년
2021년
인젝션(Injection)
접근권한 취약점(Broken Access Control)
취약한 인증(Broken Authentication)
암호화 오류 (Crytographic Failures)
민감한 데이터 노출(Sensitive Data Exposure)
인젝션 (Injection)
XML 외부 개체 (XXE)(XML External Entities)
안전하지 않은 설계 (Insecure Design)
접근권한 취약점(Broken Access Control)
보안설정오류 (Security Misconfiguration)
보안설정오류(Security Misconfiguration)
취약하고 오래된 요소 (Vulnerable and Outdated Components)
크로스 사이트 스크립팅{Cross-Site Scripting (XSS)}
식별 및 인증 오류 (Identification and Authentication Failures)
안전하지 않은 역직렬화(Insecure Deserialization)
S/W 및 데이터 무결성 오류 (Software and Data Integrity Failures)
알려진 취약점이 있는 구성요소 사용(Using Components with Known Vulnerabilities)
보안 로깅 및 모니터링 실패 (Security Logging and Monitoring Failures)
불충분한 로깅 및 모니터링(Insufficient Logging & Monitoring)
서버 측 요청 위조 (SSRF)(Server-Side Request Forgery)

순위변화는 아래의 사진처럼 변화한 걸 볼 수 있습니다.

OWASP TOP 10 (출처 : https://owasp.org/Top10/)

이번에 나온 OWASP TOP 10에 대한 설명

(내용은 https://owasp.org/Top10/에서의 내용과 주관이 섞여있는 걸 참고해 주세요.)

1. 접근 권한 취약점(Broken Access Control) 과거 5순위

과거 5위였던 BAC가 1순위로 올랐습니다. 조사한 데이터에 따르면 다른 카테고리들보다 애플리케이션에서 더 많이 발생하였다고 합니다. 이 카테고리는 인증된 사용자가 수행할 수 있는 것에 대한 제한이 제대로 적용되지 않는 것을 의미합니다.

취약하면 사용자는 주어진 권한을 벗어나 모든 데이터를 무단으로 열람, 수정 혹은 삭제 등의 행위로 이어질 수 있는 취약점입니다.

2. 암호화 오류 (Crytographic Failures)

과거 3순위(민감한 데이터 노출(Sensitive Data Exposure))

암호화와 관련된 장애에 초점을 맞추어 2순위로 상승하였습니다. 가장 광범위한 카테고리입니다.

적절한 암호화가 이루어지지 않으면 기밀 데이터가 노출되거나 시스템 손상이 발생할 수 있습니다.

3. 인젝션 (Injection) 과거 1순위

3순위로 순위가 하향되었습니다. 애플리케이션에서 두 번째로 많이 발생한 취약점입니다. XSS(공격자가 피해자의 브라우저에 스크립트를 실행하여 사용자 세션 탈취, 웹 사이트 변조, 악의적인 사이트로 이동할 수 있다.)가 인젝션에 포함되었습니다.

SQL, NoSQL, OS명령, ORM, LDAP, EL 또는 OGNL 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로써, 인터프리터로 보내질 때 취약점이 발생합니다. 이 취약점은 홈페이지 변조부터 민감한 정보의 손상까지 다양하기에 항상 순위권에 드는 취약점입니다.

4. 안전하지 않은 설계 (Insecure Design)

2021년에 새로 등장한 카테고리로, 설계 당시에 발생하는 결함에 관련된 위험에 중점을 두고 있습니다.

안전하지 않은 설계는 완벽한 구현으로 수정할 수 없다고 말하는데, 특정 공격으로 방어하기 위해 필요한 보안 제어가 생성이 되어있지 않기 때문입니다.

5. 보안설정오류 (Security Misconfiguration) 과거 6순위

애플리케이션의 90%가 어떤 형태의 설정오류에 대해 테스트를 해보았을 때 평균 발생률은 4.5%라고 합니다. 2017년에 7순위였던 XXE(외부 엔티티에 대한 참조를 포함하는 XML 입력이 약하게 구성된 XML 파서에 의해 처리될 때 발생한다.)가 보안설정오류에 포함되었습니다.

애플리케이션 스택의 적절한 보안 강화가 누락되었거나 클라우드 서비스에 대한 권한이 적절하지 않게 구성되었을 때, 불필요한 기능이 활성화되거나 설치되었을 때, 기본계정 및 암호화가 변경되지 않았을 때, 지나치게 상세한 오류 메시지를 노출할 때, 최신 보안 기능이 비활성화되거나 안전하지 않게 구성되었을 때 발생합니다.

6. 취약하고 오래된 요소 (Vulnerable and Outdated Components) 과거 9순위

이 카테고리는 기존의 취약성과 함께 컴포넌트 사용이라는 제목으로 커뮤니티 조사 톱 10에서 2위를 차지했다고 OWASP 사이트에서 얘기합니다. 또한 이 카테고리는 테스트 및 평가에서 어려움이 있다고 합니다.

알려진 취약점이 있는 컴포넌트를 사용하는 애플리케이션은 애플리케이션 방어 체계를 손상하거나, 공격 가능한 범위를 활성화하는 등의 영향을 미칩니다.

지원이 종료되었거나 오래된 버전을 사용할 때 발생합니다. 앱뿐만 아니라 DBMS, API 및 모든 구성요소 포함됩니다.

7. 식별 및 인증 오류 (Identification and Authentication Failures)

과거 2순위(취약한 인증(Broken Authentication))

과거 2순위에 있던 취약한 인증(Broken Authentication)이었으나 식별 장애와 포함한 것으로 변경되었습니다.

이 카테고리는 10개 중 필수적인 부분이지만 표준화된 프레임워크의 가용성이 높아짐에 따라 도움이 될 것으로 보인다고 합니다.

사용자의 신원확인, 인증 및 세션관리가 적절히 되지 않을 때 취약점이 발생합니다.

8. S/W 및 데이터 무결성 오류 (Software and Data Integrity Failures)

새로 등장한 카테고리로 무결성을 확인하지 않고 S/W 업데이트, 중요 데이터 및 CI/CD 파이프라인과 관련된 가정을 하는데 중점을 두었다고 합니다. 과거 8순위였던 안전하지 않은 역직렬화(Insecure Deserialization)(역직렬화는 바이트 문자열을 개체로 변환하는 것이다.)가 여기에 포함되었습니다.

9. 보안 로깅 및 모니터링 실패 (Security Logging and Monitoring Failures)

과거 10순위 (불충분한 로깅 및 모니터링(Insufficient Logging & Monitoring))

로깅 및 모니터링 없이는 공격활동을 인지할 수 없습니다. 불충분한 로깅과 모니터링은 사고 대응의 비효율적인 통합 또는 누락과 함께 공격자들이 시스템을 더 공격하고, 지속성을 유지하며, 더 많은 시스템을 중심으로 공격할 수 있도록 만들고, 데이터를 변조, 추출 또는 파괴할 수 있습니다. 이 카테고리는 진행 중인 공격을 감지 및 대응하는데 도움이 된다고 합니다. 이 카테고리의 취약점을 실패하면 가시성, 사고 경계 및 포렌식 작업에 직접적인 영향을 줄 수 있다고 합니다.

10. 서버 측 요청 위조 (SSRF)(Server-Side Request Forgery)

SSRF결함은 새로 등장한 카테고리로 웹이 사용자가 제공한 URL의 유효성을 검사하지 않고 원격 리소스를 가져올 때 발생합니다. 데이터에 따르면 비교적 낮은 발생률을 보이지만, 중요한 카테고리이기에 선정했다고 합니다.

이를 통해 공격자는 방화벽, VPN 또는 다른 유형의 네트워크 ACL에 의해 보호되는 경우에도 응용 프로그램이 조작된 요청을 예기치 않은 대상으로 보내도록 강제할 수 있습니다.

'보안' 카테고리의 다른 글

b374k 설치와 사용 방법  (0) 2024.03.20
Injection 공격에 대하여 (SQL, NoSQL, LDAP ...)  (0) 2024.01.11
cve를 볼 수 있는 사이트  (0) 2023.03.17
카카오톡 오픈 채팅 보안  (0) 2023.03.14
네이버페이 피싱뉴스  (0) 2023.02.25