사이버보안

OWASP TOP10

JeongBear 2024. 12. 25. 20:27

OWASP(Open Web Application Security Project)는 웹 애플리케이션 보안을 강화하기 위해 설립된 글로벌 비영리 단체입니다. 이 단체는 웹 애플리케이션 개발자와 보안 전문가들이 가장 흔히 접하는 보안 취약점을 이해하고 해결할 수 있도록 돕기 위해 'OWASP Top 10'이라는 가이드를 제공합니다. 현재는 2021버전이 최신으로 내년인 2025년에 새롭게 선정될 것으로 예상됩니다. 2021년 기준 top10에 선정된 취약점은 다음과 같습니다.

1. Broken Access Control (취약한 접근 제어)

사용자가 허가되지 않은 리소스나 기능에 접근할 수 있는 경우를 말합니다. 예를 들어, URL 조작이나 권한 없는 데이터 접근이 이에 해당합니다.

방지 방법: 역할 기반 접근 제어(RBAC)를 구현하고, 모든 요청에서 접근 권한을 철저히 검증합니다.

2. Cryptographic Failures (암호화 실패)

중요 데이터를 안전하게 보호하지 못하는 경우입니다. 이는 약한 암호화 알고리즘 사용, 데이터 평문 저장 등이 포함됩니다.

방지 방법: 최신 암호화 알고리즘을 사용하고, 민감한 데이터를 반드시 암호화합니다.

3. Injection (인젝션)

SQL, NoSQL, OS 명령어 등의 명령문을 조작해 악성 코드를 삽입하는 공격입니다.

방지 방법: 입력 데이터를 철저히 검증하고, 파라미터화된 쿼리를 사용합니다.

4. Insecure Design (불안전한 설계)

보안 요소를 충분히 고려하지 않고 설계된 시스템을 의미합니다.

방지 방법: 보안 설계를 개발 초기 단계에서부터 포함시키고, 위협 모델링을 수행합니다.

5. Security Misconfiguration (보안 설정 오류)

기본 설정값 사용, 불필요한 기능 활성화, 잘못된 HTTP 헤더 설정 등이 원인이 될 수 있습니다.

방지 방법: 보안 설정을 표준화하고 정기적으로 점검합니다.

6. Vulnerable and Outdated Components (취약하고 오래된 구성 요소)

사용 중인 라이브러리나 프레임워크에 알려진 취약점이 존재하는 경우입니다.

방지 방법: 최신 버전의 소프트웨어와 라이브러리를 사용하고, 취약점 정보를 모니터링합니다.

7. Identification and Authentication Failures (식별 및 인증 실패)

인증 메커니즘이 약하거나 올바르게 구현되지 않은 경우입니다. 예를 들어, 비밀번호 강도 부족, 인증 토큰 유출 등이 이에 포함됩니다.

방지 방법: 다중 인증(MFA)을 구현하고, 안전한 세션 관리를 설정합니다.

8. Software and Data Integrity Failures (소프트웨어 및 데이터 무결성 실패)

코드 및 데이터의 무결성을 확인하지 않는 경우 발생합니다. 예를 들어, 무신뢰 소스로부터 코드를 다운로드하는 경우입니다.

방지 방법: 코드 서명과 검증을 사용하고, 신뢰할 수 있는 소스만 활용합니다.

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

보안 이벤트를 기록하거나 이를 모니터링하지 않아, 공격 발생 시 이를 신속히 탐지하지 못하는 경우입니다.

방지 방법: 로깅 및 모니터링 시스템을 설정하고, 이상 징후를 실시간으로 감지할 수 있는 체계를 구축합니다.

10. Server-Side Request Forgery (SSRF)

공격자가 서버를 통해 의도하지 않은 요청을 발송하도록 조작하는 공격입니다.

방지 방법: 외부 요청을 제한하고, 허용된 도메인 리스트를 사용해 필터링합니다.