OWASP Top 10: Difference between revisions

From IT Wiki
No edit summary
 
(10 intermediate revisions by 9 users not shown)
Line 1: Line 1:
;Open Web Application Security Project(OWASP) 에서 4년에 한번씩 발표하는 웹 취약점 Top 10
;Open Web Application Security Project(OWASP) 에서 4년에 한번씩 발표하는 웹 취약점 Top 10
;*[[OWASP Top 10(2013)]]
;*[[OWASP Top 10(2017)]]
;*[[OWASP Top 10(2021)]]


== 2013 대비 2017 변화 ==
==2013 대비 2017 변화==
{| class="wikitable"
{| class="wikitable"
! colspan="3" style="text-align: center;" | OWASP Top 10 - 2013
! colspan="3" style="text-align: center;" |OWASP Top 10 - 2013
! colspan="3" style="text-align: center;" | OWASP Top 10 - 2017
! colspan="3" style="text-align: center;" |OWASP Top 10 - 2017
|-
|-
! No
!No
! 취약점
!취약점
! 비고
!비고
! No
!No
! 취약점
!취약점
! 비고
!비고
|-
|-
| 1
|1
| 인젝션
|인젝션
|  
|
| 1
|1
| 인젝션
|인젝션
|  
|
|-
|-
| 2
|2
| 취약한 인증과 세션 관리
|[[인증 및 세션 관리 취약점|취약한 인증과 세션 관리]]
|  
|
| 2
|2
| 취약한 인증
|취약한 인증
|  
|
|-
|-
| 3
|3
| 크로스 사이트 스크립팅
|크로스 사이트 스크립팅
|  
|
| 3
|3
| 민감한 데이터 노출
|민감한 데이터 노출
|  
|
|-
|-
| 4
|4
| 안전하지 않은 직접 객체 참조
|안전하지 않은 직접 객체 참조
| 2017:A5
|2017:A5
| 4
|4
| XML 외부 개체(XXE)
|XML 외부 개체(XXE)
| 신규
|신규
|-
|-
| 5
|5
| 잘못된 보안 구성
|잘못된 보안 구성
|  
|
| 5
|5
| 취약한 접근 통제
|취약한 접근 통제
| 합침
|합침
|-
|-
| 6
|6
| 민감한 데이터 노출
|민감한 데이터 노출
|  
|
| 6
|6
| 잘못된 보안 구성
|잘못된 보안 구성
|  
|
|-
|-
| 7
|7
| 기능 수준의 접근 통제 누락
|기능 수준의 접근 통제 누락
| 2017:A5
|2017:A5
| 7
|7
| 크로스 사이트 스크립팅(XSS)
|크로스 사이트 스크립팅(XSS)
|  
|
|-
|-
| 8
|8
| 크로스 사이트 요청변조(CSRF)
|크로스 사이트 요청변조(CSRF)
| 삭제
|삭제
| 8
|8
| 안전하지 않은 역직렬화
|안전하지 않은 역직렬화
| 신규
|신규
|-
|-
| 9
|9
| 알려진 취약점이 있는 구성요소 사용
|알려진 취약점이 있는 구성요소 사용
|  
|
| 9
|9
| 알려진 취약점이 있는 구성요소 사용
|알려진 취약점이 있는 구성요소 사용
|  
|
|-
|-
| 10
|10
| 검증되지 않은 리다이렉트 및 포워드
|검증되지 않은 리다이렉트 및 포워드
| 삭제
|삭제
| 10
|10
| 불출분한 로깅 및 모니터링
|불충분한 로깅 및 모니터링
| 신규
|신규
|}
|}


== 항목별 설명 ==
==항목별 설명==
=== 인젝션 ===
===인젝션===
* SQL, OS, XXE, LDAP 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로써, 인터프리터로 보내질 때 발생합니다. 공격자의 악의적인 데이터는 예기치 않은 명령을 실행하거나 올바른 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있습니다.


=== 취약한 인증 ===
*SQL, OS, XXE, LDAP 인젝션 취약점은 신뢰할 없는 데이터가 명령어나 쿼리문의 일부분으로서, 인터프리터로 보내질 때 발생합니다. 공격자의 악의적인 데이터는 예기치 않은 명령을 실행하거나 올바른 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있습니다.
* 인증 및 세션 관리와 관련된 애플리케이션 기능이 종종 잘못 구현되어 공격자들이 암호, , 세션 토큰을 위험에 노출시킬 있거나 일시적 또는 영구적으로 다른 사용자의 권한 획득을 위해 구현 상 결함을 악용하도록 허용합니다.


=== 민감한 데이터 노출 ===
===취약한 인증===
* 다수의 웹 애플리케이션과 API는 금융 정보, 건강 정보, 개인 식별 정보와 같은 중요한 정보를 제대로 보호하지 않습니다.
* 공격자는 신용카드 사기, 신분 도용 또는 다른 범죄를 수행하기 위해 보호가 취약한 데이터를 훔치거나 수정할 수 있습니다. 중요한 데이터는 저장 또는 전송할 때 암호화 같은 추가 보호 조치가 없으면 탈취 당할 수 있으며, 브라우저에서 주고 받을 때 각별한 주의가 필요합니다.


=== XML 외부 개체(XEE) ===
*인증 및 세션 관리와 관련된 애플리케이션 기능이 종종 잘못 구현되어 공격자들이 암호, , 세션 토큰을 위험에 노출시킬 있거나 일시적 또는 영구적으로 다른 사용자의 권한 획득을 위해 구현 상 결함을 악용하도록 허용합니다.
* XXE는 악의적인 자바스크립트를 막기 위한 필터장치를 우회하는 취약점으로 XML 문서에서 동적으로 외부 URI의 리소스를 포함시킬 수 있는 외부 엔티티(Entity)를 사용할 때 발생합니다.
* 오래되고 설정이 엉망인, 많은 XML 프로세서들은 XML 문서 내에서 외부 개체 참조를 평가합니다.
* 외부 개체는 파일 URI 처리기, 내부 파일 공유, 내부 포트 스캔, 원격 코드 실행과 서비스 거부 공격을 사용하여 내부 파일을 공개하는데 사용할 있습니다.


=== 취약한 접근 통제 ===
===민감한 데이터 노출===
* 인증된 사용자가 수행할 수 있는 작업에 대한 제한이 제대로 적용되어 있지 않습니다.
* 공격자는 이러한 결함을 악용하여 다른 사용자의 계정에 접근하거나, 중요한 파일을 보거나, 다른 사용자의 데이터를 수정하거나, 접근 권한을 변경하는 등 권한 없는 기능과 데이터에 접근할 수 있습니다.


=== 잘못된 보안 구성 ===
*다수의 웹 애플리케이션과 API는 금융 정보, 건강 정보, 개인 식별 정보와 같은 중요한 정보를 제대로 보호하지 않습니다.
* 잘못된 보안 구성은 가장 흔하게 보이는 이슈입니다.  
*공격자는 신용카드 사기, 신분 도용 또는 다른 범죄를 수행하기 위해 보호가 취약한 데이터를 훔치거나 수정할 수 있습니다. 중요한 데이터는 저장 또는 전송할 때 암호화 같은 추가 보호 조치가 없으면 탈취 당할 수 있으며, 브라우저에서 주고 받을 때 각별한 주의가 필요합니다.
* 취약한 기본 설정, 미완성 (또는 임시 설정), 개방된 클라우드 스토리지, 잘못 구성된 HTTP 헤더 및 민감한 정보가 포함된 장황한 에러 메시지로 인한 결과입니다. 모든 운영체제, 프레임워크, 라이브러리와 애플리케이션을 안전하게 설정해야 할 뿐만 아니라 시기 적절하게 패치/ 업그레이드를 진행해야 합니다.


=== 크로스 사이트 스크립팅(XSS) ===
===XML 외부 개체(XXE)===
 
*XXE는 악의적인 자바스크립트를 막기 위한 필터장치를 우회하는 취약점으로 XML 문서에서 동적으로 외부 URI의 리소스를 포함시킬 수 있는 외부 엔티티(Entity)를 사용할 때 발생합니다.
*오래되고 설정이 엉망인, 많은 XML 프로세서들은 XML 문서 내에서 외부 개체 참조를 평가합니다.
*외부 개체는 파일 URI 처리기, 내부 파일 공유, 내부 포트 스캔, 원격 코드 실행과 서비스 거부 공격을 사용하여 내부 파일을 공개하는데 사용할 수 있습니다.
 
===취약한 접근 통제===
 
*인증된 사용자가 수행할 수 있는 작업에 대한 제한이 제대로 적용되어 있지 않습니다.
*공격자는 이러한 결함을 악용하여 다른 사용자의 계정에 접근하거나, 중요한 파일을 보거나, 다른 사용자의 데이터를 수정하거나, 접근 권한을 변경하는 등 권한 없는 기능과 데이터에 접근할 수 있습니다.
 
===잘못된 보안 구성===
 
*잘못된 보안 구성은 가장 흔하게 보이는 이슈입니다.
*취약한 기본 설정, 미완성 (또는 임시 설정), 개방된 클라우드 스토리지, 잘못 구성된 HTTP 헤더 및 민감한 정보가 포함된 장황한 에러 메시지로 인한 결과입니다. 모든 운영체제, 프레임워크, 라이브러리와 애플리케이션을 안전하게 설정해야 할 뿐만 아니라 시기 적절하게 패치/ 업그레이드를 진행해야 합니다.
 
===크로스 사이트 스크립팅(XSS)===
XSS 취약점은 애플리케이션이 올바른 유효성 검사 또는 필터링 처리 없이 새 웹 페이지에 신뢰할 수 없는 데이터를 포함하거나, 자바스크립트와 HTML을 생성하는 브라우저 API를 활용한 사용자 제공 데이터로 기존 웹 페이지를 업데이트할 때 발생합니다. XSS는 피해자의 브라우저에서 공격자에 의해 스크립트를 실행시켜 사용자 세션을 탈취할 수 있게 만들고, 웹 사이트를 변조시키고, 악성 사이트로 리다이렉션할 수 있도록 허용합니다.
XSS 취약점은 애플리케이션이 올바른 유효성 검사 또는 필터링 처리 없이 새 웹 페이지에 신뢰할 수 없는 데이터를 포함하거나, 자바스크립트와 HTML을 생성하는 브라우저 API를 활용한 사용자 제공 데이터로 기존 웹 페이지를 업데이트할 때 발생합니다. XSS는 피해자의 브라우저에서 공격자에 의해 스크립트를 실행시켜 사용자 세션을 탈취할 수 있게 만들고, 웹 사이트를 변조시키고, 악성 사이트로 리다이렉션할 수 있도록 허용합니다.


=== 안전하지 않은 역직렬화 ===
===안전하지 않은 역직렬화===
* 안전하지 않은 역직렬화는 종종 원격 코드 실행으로 이어집니다.  
 
* 역직렬화 취약점이 원격 코드 실행 결과를 가져오지 않더라도 이는 권한 상승 공격, 주입 공격과 재생 공격을 포함한 다양한 공격 수행에 사용될 수 있습니다.  
*안전하지 않은 역직렬화는 종종 원격 코드 실행으로 이어집니다.
*역직렬화 취약점이 원격 코드 실행 결과를 가져오지 않더라도 이는 권한 상승 공격, 주입 공격과 재생 공격을 포함한 다양한 공격 수행에 사용될 수 있습니다.
 
===알려진 취약점이 있는 구성요소 사용===
 
*라이브러리, 프레임워크 및 다른 소프트웨어 모듈 같은 구성요소는 애플리케이션과 같은 권한으로 실행됩니다.
*만약에 취약한 구성요소가 악용된 경우, 이는 심각한 데이터 손실을  일으키거나 서버가 장악됩니다.
*알려진 취약점이 있는 구성요소를 사용한 애플리케이션과 API는 애플리케이션 방어를 약하게 하거나 다양한 공격과 영향을 주게 합니다.
 
===불충분한 로깅과 모니터링===


=== 알려진 취약점이 있는 구성요소 사용 ===
*불충분한 로깅과 모니터링은 사고 대응의 비효율적인 통합 또는 누락과 함께 공격자들이 시스템을 더 공격하고, 지속성을 유지하며, 더 많은 시스템을 중심으로 공격할 수 있도록 만들고, 데이터를 변조, 추출 또는 파괴할 수 있습니다.
* 라이브러리, 프레임워크 및 다른 소프트웨어 모듈 같은 구성요소는 애플리케이션과 같은 권한으로 실행됩니다.  
*대부분의 침해 사례에서 침해를 탐지하는 시간이 200일이 넘게 걸리는 것을 보여주고, 이는 일반적으로 내부 프로세스와 모니터링보다 외부 기관이 탐지합니다.
* 만약에 취약한 구성요소가 악용된 경우, 이는 심각한 데이터 손실을  일으키거나 서버가 장악됩니다.
* 알려진 취약점이 있는 구성요소를 사용한 애플리케이션과 API는 애플리케이션 방어를 약하게 하거나 다양한 공격과 영향을 주게 합니다.


=== 불충분한 로깅과 모니터링 ===
[[분류:보안]]
* 불충분한 로깅과 모니터링은 사고 대응의 비효율적인 통합 또는 누락과 함께 공격자들이 시스템을 더 공격하고, 지속성을 유지하며, 더 많은 시스템을 중심으로 공격할 수 있도록 만들고, 데이터를 변조, 추출 또는 파괴할 수 있습니다.
[[분류:보안 취약점]]
* 대부분의 침해 사례에서 침해를 탐지하는 시간이 200일이 넘게 걸리는 것을 보여주고, 이는 일반적으로 내부 프로세스와 모니터링보다 외부 기관이 탐지합니다.
[[분류:정보보안기사]]

Latest revision as of 17:37, 12 October 2021

Open Web Application Security Project(OWASP) 에서 4년에 한번씩 발표하는 웹 취약점 Top 10

2013 대비 2017 변화[edit | edit source]

OWASP Top 10 - 2013 OWASP Top 10 - 2017
No 취약점 비고 No 취약점 비고
1 인젝션 1 인젝션
2 취약한 인증과 세션 관리 2 취약한 인증
3 크로스 사이트 스크립팅 3 민감한 데이터 노출
4 안전하지 않은 직접 객체 참조 2017:A5 4 XML 외부 개체(XXE) 신규
5 잘못된 보안 구성 5 취약한 접근 통제 합침
6 민감한 데이터 노출 6 잘못된 보안 구성
7 기능 수준의 접근 통제 누락 2017:A5 7 크로스 사이트 스크립팅(XSS)
8 크로스 사이트 요청변조(CSRF) 삭제 8 안전하지 않은 역직렬화 신규
9 알려진 취약점이 있는 구성요소 사용 9 알려진 취약점이 있는 구성요소 사용
10 검증되지 않은 리다이렉트 및 포워드 삭제 10 불충분한 로깅 및 모니터링 신규

항목별 설명[edit | edit source]

인젝션[edit | edit source]

  • SQL, OS, XXE, LDAP 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로서, 인터프리터로 보내질 때 발생합니다. 공격자의 악의적인 데이터는 예기치 않은 명령을 실행하거나 올바른 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있습니다.

취약한 인증[edit | edit source]

  • 인증 및 세션 관리와 관련된 애플리케이션 기능이 종종 잘못 구현되어 공격자들이 암호, 키, 세션 토큰을 위험에 노출시킬 수 있거나 일시적 또는 영구적으로 다른 사용자의 권한 획득을 위해 구현 상 결함을 악용하도록 허용합니다.

민감한 데이터 노출[edit | edit source]

  • 다수의 웹 애플리케이션과 API는 금융 정보, 건강 정보, 개인 식별 정보와 같은 중요한 정보를 제대로 보호하지 않습니다.
  • 공격자는 신용카드 사기, 신분 도용 또는 다른 범죄를 수행하기 위해 보호가 취약한 데이터를 훔치거나 수정할 수 있습니다. 중요한 데이터는 저장 또는 전송할 때 암호화 같은 추가 보호 조치가 없으면 탈취 당할 수 있으며, 브라우저에서 주고 받을 때 각별한 주의가 필요합니다.

XML 외부 개체(XXE)[edit | edit source]

  • XXE는 악의적인 자바스크립트를 막기 위한 필터장치를 우회하는 취약점으로 XML 문서에서 동적으로 외부 URI의 리소스를 포함시킬 수 있는 외부 엔티티(Entity)를 사용할 때 발생합니다.
  • 오래되고 설정이 엉망인, 많은 XML 프로세서들은 XML 문서 내에서 외부 개체 참조를 평가합니다.
  • 외부 개체는 파일 URI 처리기, 내부 파일 공유, 내부 포트 스캔, 원격 코드 실행과 서비스 거부 공격을 사용하여 내부 파일을 공개하는데 사용할 수 있습니다.

취약한 접근 통제[edit | edit source]

  • 인증된 사용자가 수행할 수 있는 작업에 대한 제한이 제대로 적용되어 있지 않습니다.
  • 공격자는 이러한 결함을 악용하여 다른 사용자의 계정에 접근하거나, 중요한 파일을 보거나, 다른 사용자의 데이터를 수정하거나, 접근 권한을 변경하는 등 권한 없는 기능과 데이터에 접근할 수 있습니다.

잘못된 보안 구성[edit | edit source]

  • 잘못된 보안 구성은 가장 흔하게 보이는 이슈입니다.
  • 취약한 기본 설정, 미완성 (또는 임시 설정), 개방된 클라우드 스토리지, 잘못 구성된 HTTP 헤더 및 민감한 정보가 포함된 장황한 에러 메시지로 인한 결과입니다. 모든 운영체제, 프레임워크, 라이브러리와 애플리케이션을 안전하게 설정해야 할 뿐만 아니라 시기 적절하게 패치/ 업그레이드를 진행해야 합니다.

크로스 사이트 스크립팅(XSS)[edit | edit source]

XSS 취약점은 애플리케이션이 올바른 유효성 검사 또는 필터링 처리 없이 새 웹 페이지에 신뢰할 수 없는 데이터를 포함하거나, 자바스크립트와 HTML을 생성하는 브라우저 API를 활용한 사용자 제공 데이터로 기존 웹 페이지를 업데이트할 때 발생합니다. XSS는 피해자의 브라우저에서 공격자에 의해 스크립트를 실행시켜 사용자 세션을 탈취할 수 있게 만들고, 웹 사이트를 변조시키고, 악성 사이트로 리다이렉션할 수 있도록 허용합니다.

안전하지 않은 역직렬화[edit | edit source]

  • 안전하지 않은 역직렬화는 종종 원격 코드 실행으로 이어집니다.
  • 역직렬화 취약점이 원격 코드 실행 결과를 가져오지 않더라도 이는 권한 상승 공격, 주입 공격과 재생 공격을 포함한 다양한 공격 수행에 사용될 수 있습니다.

알려진 취약점이 있는 구성요소 사용[edit | edit source]

  • 라이브러리, 프레임워크 및 다른 소프트웨어 모듈 같은 구성요소는 애플리케이션과 같은 권한으로 실행됩니다.
  • 만약에 취약한 구성요소가 악용된 경우, 이는 심각한 데이터 손실을 일으키거나 서버가 장악됩니다.
  • 알려진 취약점이 있는 구성요소를 사용한 애플리케이션과 API는 애플리케이션 방어를 약하게 하거나 다양한 공격과 영향을 주게 합니다.

불충분한 로깅과 모니터링[edit | edit source]

  • 불충분한 로깅과 모니터링은 사고 대응의 비효율적인 통합 또는 누락과 함께 공격자들이 시스템을 더 공격하고, 지속성을 유지하며, 더 많은 시스템을 중심으로 공격할 수 있도록 만들고, 데이터를 변조, 추출 또는 파괴할 수 있습니다.
  • 대부분의 침해 사례에서 침해를 탐지하는 시간이 200일이 넘게 걸리는 것을 보여주고, 이는 일반적으로 내부 프로세스와 모니터링보다 외부 기관이 탐지합니다.