OWASP Top 10 2021 - WEB
A01:2021-Broken Access Control 손상된 접근제어
- 접근제어가 제대로 되지 않아 사용자가 자신에게 허용되지 않은 기능이나 데이터를 액세스할 수 있는 문제
- 대응방법 : 접근 권한 최소, 서버 측에서 모든 요청에 대해 접근 권한을 확인, 정책 기반 접근 제어 (PBAC)
A02:2021-Cryptographic Failures 암호화 실패
- 데이터 보호를 위한 암호화가 부족하거나 잘못된 방식으로 구현된 경우 발생하는 취약점, 데이터 유출 또는 위조 문제 발생 가능
- 대응방법 : 최신 암호화 표준을 사용하고, 민감한 데이터를 저장하거나 전송할 때 반드시 암호화를 적용, 암호화 키 변경, 보안 정책 강화
A03:2021-Injection 주입
- 명령어 등을 주입하여 애플리케이션이 의도하지 않은 명령을 실행하게 하는 문제
- 대응방법 : 사용자 입력을 철저히 검증하고, 쿼리 실행 시 준비된 구문(Prepared Statements)이나 ORM(Object-Relational Mapping)을 사용, 사용자 입력이 직접 실행되지 않도록 함
A04:2021-Insecure Design 안전하지 않은 설계
- 애플리케이션 설계 단계에서 보안 요소를 충분히 고려하지 않음으로써 발생하는 문제, 구조적으로 보안에 취약한 시스템
- 대응방법 : 설계 단계에서 위협 모델링을 수행하고, 보안 요구사항을 명확히 정의, 보안 중심의 설계를 채택하여, 잠재적인 취약점을 미리 식별하고 해결
A05:2021-Security Misconfiguration 보안 오설정
- 잘못된 보안 설정으로 인해 시스템이 불필요한 위험에 노출되는 경우, 기본 설정값을 유지하거나 불필요한 기능을 활성화한 경우에 자주 발생
- 대응방법 : 보안 설정을 정기적으로 검토하고, 모든 기본 설정을 보안 요구사항에 맞게 조정, 보안 패치를 즉시 적용하고, 불필요한 기능이나 서비스를 비활성화
A06:2021-Vulnerable and Outdated Components 취약하고 오래된 구성요소
- 사용 중인 라이브러리나 플러그인 등의 취약점이 공격에 악용될 수 있는 상태
- 대응방법 : 구성 요소의 최신 버전을 사용하고, 정기적으로 보안 업데이트를 적용, 사용 중인 모든 구성 요소를 식별하고, 최신 상태로 유지
A07:2021-Identification and Authentication Failures 식별 및 인증실패
- 신원 확인 또는 인증 절차의 미흡으로 인해 공격자가 쉽게 시스템에 접근할 수 있는 취약점
- 대응방법 : 강력한 비밀번호 정책을 수립하고, 모든 민감한 작업에 대해 다중 인증(MFA)을 적용
A08:2021-Software and Data Integrity Failures 소프트웨어와 데이터 무결성 실패
- 소프트웨어 업데이트, 중요 데이터, CI/CD 파이프라인의 무결성을 검증하지 않아 발생하는 취약점
- 대응방법 : 소프트웨어 업데이트 시 디지털 서명 등을 사용하여 무결성을 검증, 중요 데이터 정기 백업, 복원 테스트
A09:2021-Security Logging and Monitoring Failure 보안 로깅 및 모니터링 실패
- 보안 이벤트를 적절히 기록하지 않거나 모니터링하지 않으면 공격을 감지하지 못하는 취약점
- 대응방법 : 중요한 보안 이벤트를 기록하고, 실시간 모니터링 시스템을 구축, 로그를 주기적으로 검토하여 이상 징후 탐지 후 빠르게 대응
A10:2021-Server-Side Request Forgery, SSRF 서버 측 요청 위조
- 공격자가 서버로 하여금 임의의 요청을 수행하게 하여 내부 네트워크에 접근하는 공격
- 대응방법 : 입력 데이터 검증, 네트워크 요청에 대한 화이트리스트 설정, 외부로의 네트워크 요청 제한, 불필요한 인바운드 연결 차단
OWASP 공식 사이트
https://owasp.org/www-project-top-ten/
OWASP Top 10 2024 - Mobile
M1: Improper Credential Usage 부적절한 자격 증명 사용
- 소스 코드에 하드코딩된 자격 증명, 약한 인증 방법, 자격 증명의 안전하지 않은 전송 및 저장 문제
- 대응방법 : 자격 증명 코드에 저장하지 않기, 자격 증명은 API 키와 액세스 토큰 주기적으로 갱신, 강력한 인증 프로토콜 사용, 자격 증명안전하게 전송 및 저장
M2: Inadequate Supply Chain Security 공급망 보안 부족
- 타사 코드, 소프트웨어 라이브러리 및 SDK에서 발생하는 취약점으로 인해 악성 코드 삽입 가능
- 대응방법 : 타사 코드를 신뢰할 수 있는 출처에서 가져와야 함, 자동화된 도구를 사용한 CVE 스캔, 안전한 앱 서명 및 배포 절차 적용, 코드 검토와 테스트 철저히
M3: Insecure Authentication/Authorization 취약한 인증 및 인가
- 사용자 자격 증명을 도용하거나 서버에 침투할 수 있는 가능성 있음
- 대응방법 : 서버 측 인증 및 인가 제어 강화, 모바일 앱 검증 테스트 실행
M4: Insufficient Input/Output Validation 불충분한 입력/출력 검증
- 입력과 출력을 제대로 검증하지 않아 SQL 인젝션, XSS 같은 취약점이 발생 가능
- 대응방법 : 클라이언트와 서버 측 모두에서 입력 데이터 철저히 검증, 출력 데이터는 XSS 공격을 방지하기 위해 적절히 인코딩 필요
M5: Insecure Communication 취약한 통신
- 데이터 전송 중 보호가 부족해, 데이터가 가로채지거나 변조 가능
- 대응방법 : 모든 전송 데이터에 대해 TLS 같은 강력한 암호화 프로토콜 구현, 앱과 서버 간의 HTTPS 통신 강제
M6: Inadequate Privacy Controls 부적절한 프라이버시 제어
- 민감한 사용자 데이터를 보호하는 메커니즘이 부족한 경우, 사용자 동의 없이 데이터를 수집하거나 공유 가능
- 대응방법 : 민감한 사용자 데이터의 수집과 처리에 대해 강력한 암호화 적용, 데이터 수집 및 사용에 대해 명확한 정책을 사용자에게 안내
M7: Insufficient Binary Protections 불충분한 바이너리 보호
- 바이너리 파일이 잘 보호되지 않아 공격자가 역공학을 통해 앱의 코드를 분석하거나 변조 가능
- 대응방법 : 코드 난독화 및 중요한 바이너리 컴포넌트 암호화를 통해 역공학과 코드 변조를 방지
M8: Security Misconfiguration 보안설정 오류
- 인증 메커니즘이 잘못 설정되거나 불필요하게 많은 권한이 부여된 경우, 이로 인해 앱이 공격에 노출 가능
- 대응방법 : 앱의 모든 설정을 정기적으로 검토하고, 보안 강화 설정을 기본값으로 적용
M9: Insecure Data Storage 취약한 데이터 저장
- 민감한 데이터를 안전하지 않게 저장하여 데이터가 추출되거나 조작될 위험 있음
- 대응방법 : 모든 민감한 데이터에 대해 강력한 암호화를 사용하고, 불필요한 민감한 정보를 기기에 저장하지 않도록 해야 함
M10: Insufficient Cryptography 불충분한 암호화
- 약한 암호화 알고리즘을 사용하거나 암호화의 부재로 인해 데이터가 안전하지 않게 전송되는 경우 문제 발생
- 대응방법 : 최신의 강력한 암호화 알고리즘을 사용, 전송 중인 데이터를 보호하기 위해 TLS/SSL을 적용, 데이터 전송 시 HTTPS를 사용, SSL 인증서를 적절히 관리
OWASP 공식 사이트
https://owasp.org/www-project-mobile-top-10/
'보안기초' 카테고리의 다른 글
IDS, IPS, 방화벽 (0) | 2024.08.27 |
---|---|
스니핑(Sniffing), 스누핑(Snooping), 스푸핑(Spoofing) (0) | 2024.08.24 |