owsap top 10[2021]

2023. 3. 4. 12:06Security

 

# Open Web Application Security Project(OWASP)에서 발표하는 웹 애플리케이션에서 가장 많이 발생하는 보안 취약점10가지를 설명하는 목록.

 

# ranking 

https://owasp.org/Top10/

 

 

1.  A01:2021 - Broken Access Control[손상된 액세스 제어]

인증된 사용자가 수행할 수 있는 작업에 대한 제한이 제대로 적용되지 않을 경우 발생되는 보안 약점임. 공격자는 이러한 결함을 악용하여 다른 사용자의 계정에 액세스하거나 중요한 파일을 읽고 데이터를 수정하거나 접근 권한을 변경하는 것이 가능함. 주요 취약점에는 관리자 페이지노출, 경로추적 및 파일 다운로드, 자동화 공격이 있음.  클라우드의 등장과 더불어 마이크로 서비스 아키텍처의 등장으로 애플리케이션이 기능이 분할되어 접근통제의 어려움이 나타나 순위가 올라간 것으로 보임. 

 

2. A02:2021 - Cryptographic Failures[암호화 실패]

암호에 대한 약한 인코딩으로 발생하며 근본적인 원인이 존재하였던 것이 아니라 여러분야에서 광범위하게 발생하는 증상으로 판단함. 약한 암호화 알고리즘[md5, sha1], 취약한 암호화 프로토콜[SSL v2.0,SSL v3.0], 민잠한정보의 일반 텍스트 전송, 부적절한 암호화 강도 등의 원인들이 있음. 

 

3. A03 :2021 - Injection

사용자가 전달하는 데이터를 신뢰할 수 없는 상태의 데이터로 조작하여 서버측에서 명령어나 쿼리문의 일부로 인식하게 만들 때 발생하는 취약점임. SQL 인젝션, No SQL 인젝션, LDAP인젝션, Xss, OS Command인젝션, ORM[Object Relational Mapping]인젝션, EL[Expression Language]인젝션, OGNL[Object Graph Navigation Library]인젝션이 있음. 

 

4. A04:2021 - Insecure Design[불안정한 디자인]

새롭게 등장한 항목으로 기획단계와 애플리케이션 설계과정에서 보안사항 준수를 의미하고 있으며 설계과정에서 발생하는 보안적인 결함을 의미함. 클라우드, 도커, 쿠버네티스 등 신기술의 등장과 인기있는 사용률 때문에 낮선 환경에 따른 보안이 부족하게 구성된 설계에서 많이 발생하여 등장한 것 같음. 

 

5. A05:2021 - Security Misconfiguration[잘못된 보안구성]

Insecure Design은 설계 및 아키텍처의 결함과 관련된 위험에 중점을 두고 구현의 결함과 관련된 위험과 달랐음. Security Misconfiguration은 앞에 디자인 보다 좀더 세부적임.디자인은 전체적인 구조를 보지만 이건 특정 애플리케이션 세부로 보며  애플리케이션에서 보안되지 않았거나 올바르지 않게 구성된 보안 컨트롤을 의미함. 응용프로그램 모든 부분에서 보안 강화가 부족한 경우, 잘못 구성된 HTTP 헤더의 사용, 사용자지정 포트/서비스/페이지/계정/권한 같은 불필요한 기능이 허용, 암호가 변경되지 않은경우, 쿠키에 민감한 정보를 일반 텍스트로 저장하는 등의 취약점이 있음. 

 

6. A06:2021 - Vulnerable and Outdated Components[취약하고 오래된 구성 요소]

s/w가 지원되지 않거나 취약한것을 사용한 경우 발생함 <- 주요원인은 원가절감으로 뽑음. 정기적으로 취약점을 검색하지않고 패치가 나올때 업데이트를 하지 않는 경우 발생함. 

 

7. A07:2021- Identification and Authentication Failures[식별 및 인증 실패]

기본암호[password 1234, admin/admin], 취약하거나 잘 알려진 암호를 허용하는 경우 해당함. 또한 안전할 수 없는 지식 기반 답변을 허용하는 경우에도 해당되는데 사용자가 알고 있는 지식을 확인하여 사용자가 인증하게 되면 보통 사용자 개인정보를 이용해 비밀번호를 생성하기 때문에 공격자가 이러한 점을 이용하면서 쉽게 비밀번호 추측이 가능함. 또한 다중인증을 사용하지 않는 경우, URL에 인증 세션 ID가 노출되는 경우[GET METHOD], 로그인 후 새로운 새션 ID사용이 아닌 기존걸 재사용하는 경우, 세션타임아웃이 없거나 로그아웃 후 세션을 파기하지 않는 경우가 해당됨. 

 

8. A08:2021 - Software and Data Integrity Failuers[s/w 및 데이터 무결성 실패]

애플리케이션이 신뢰할 수 없는 소스, 코드, 인프라에 의존을 하는 경우 발생함. 신뢰할 수 없는 코드를 다운받거나,  신뢰 할 수 없는 출처의 웹 기능 포함, 신뢰할 수 없는 검색 경로를 이용하거나, 유효성 검사없이 쿠키에 의존하거나, 신뢰할 수 없는 데이터의 역직렬화의 경우 등 이러한 사례들이 해당이 됨.

 

9. A09:2021 - Security Logging and Monitoring Failures[보안 로깅 및 모니터링 실패]

로깅 및 모니터링에 필요한 부분을 명확하게 구분하여 로깅하지 않아 불명확한 로깅 및 모니터링을 하거나 로그에 대한 백업이 일정주기로 일어나지 않는다거나 로그인/인증실패/권한설정 등에 대한 로깅이 없는 경우 취약점에 해당됨. 

 

10. A10:2021  - Server-Side Requests Forgery[서버 측 요청 위조] 

SSRF는 공격자가 취약한 웹 어플리케이션의 서버 내부 리소스에 대한 요청을 위조하는 기술임. 즉 서버 측의 자체의 요청을 변조함. 공격자는 웹 어플리케이션에서 서버 내부 리소스에 대한 요청을 보내도록 유도하고 해당 요청을 이용하여 서버 내부의 리소스에 대한 정보를 탈취하는 방식으로 공격함. 웹 어플리케이션의 보안 설정이 약하거나 입력값 검증등에서 오류가 발생할 때 공격당할 수 있음. 

cf) CSRF는 클라이언트 측의 요청을 변조시킴

'Security' 카테고리의 다른 글

sans top 25  (0) 2023.05.06
portscan[stealthscan]  (0) 2023.03.26
portscan[openscan]  (0) 2023.03.26
dirbuster  (0) 2023.03.07