OWASP(오픈 웹 애플리케이션 보안 프로젝트)는 웹 애플리케이션 보안에 대한 정보를 제공하는 비영리 단체입니다. OWASP는 주기적으로 웹 애플리케이션의 가장 심각한 보안 취약점을 정리한 OWASP Top 10을 발표합니다.
개발자와 보안 전문가들이 웹 애플리케이션 보안을 강화하는 데 중요한 지침이 됩니다.
아래는 OWASP Top 10의 최신 목록과 각 항목에 대한 설명입니다.
설명: 사용자가 허가되지 않은 기능이나 데이터에 접근할 수 있도록 하는 취약점입니다. 이는 보통 적절한 인증 및 인가 검사를 누락하거나 우회할 수 있는 경우에 발생합니다.
예방 방법: 모든 기능과 데이터를 적절하게 보호하고, 접근 제어 정책을 강력하게 적용합니다.
설명: 민감한 데이터를 보호하는 암호화가 제대로 적용되지 않거나, 암호화 알고리즘이 취약할 때 발생하는 문제입니다.
예방 방법: 강력한 암호화 알고리즘을 사용하고, 데이터를 전송하거나 저장할 때 항상 암호화를 적용합니다.
설명: 사용자 입력이 코드의 일부로 해석되어 실행되는 경우 발생하는 취약점입니다. SQL 인젝션, 명령어 인젝션 등이 포함됩니다.
예방 방법: 사용자 입력을 철저히 검증하고, 준비된 문(statement)을 사용하여 데이터베이스에 접근합니다.
설명: 보안적인 측면을 고려하지 않고 애플리케이션을 설계한 경우 발생하는 문제입니다. 이는 기본적인 보안 원칙을 무시하는 설계 결정을 포함합니다.
예방 방법: 보안 설계 원칙을 따르고, 설계 단계에서부터 보안을 고려합니다.
설명: 애플리케이션의 보안 설정이 잘못 구성된 경우 발생하는 문제입니다. 이는 기본 설정을 사용하거나, 불필요한 기능이 활성화되어 있을 때 발생할 수 있습니다.
예방 방법: 보안 설정을 정기적으로 검토하고, 필요 없는 기능을 비활성화하며, 안전한 기본 설정을 사용합니다.
설명: 오래된 소프트웨어나 취약점이 있는 라이브러리를 사용하는 경우 발생하는 문제입니다.
예방 방법: 구성 요소를 정기적으로 업데이트하고, 취약점이 발견된 구성 요소를 즉시 패치합니다.
설명: 사용자의 신원을 제대로 확인하거나 인증하지 못하는 경우 발생하는 문제입니다. 이는 약한 비밀번호 정책이나 인증 정보의 유출 등을 포함합니다.
예방 방법: 강력한 비밀번호 정책을 시행하고, 다중 인증(MFA)을 사용합니다.
설명: 소프트웨어 업데이트, 중요한 데이터의 전송 등이 신뢰할 수 없는 소스로부터 이루어질 때 발생하는 문제입니다.
예방 방법: 코드 서명, 무결성 검사를 통해 소프트웨어와 데이터의 신뢰성을 보장합니다.
설명: 보안 관련 이벤트를 로그로 기록하지 않거나, 이를 제대로 모니터링하지 않을 때 발생하는 문제입니다.
예방 방법: 모든 보안 이벤트를 철저히 기록하고, 정기적으로 모니터링하여 이상 징후를 빠르게 탐지합니다.
설명: 서버가 악의적인 요청을 실행하도록 속이는 취약점입니다. 이는 외부 및 내부 네트워크에 대한 불필요한 요청을 포함합니다.
예방 방법: 서버에서 나가는 요청을 제한하고, 입력 데이터를 철저히 검증합니다.
일반적으로 OWASP Top 10은 약 3년마다 업데이트됩니다. 다만, 특정 보안 환경이나 기술의 변화에 따라 더 자주 또는 덜 자주 업데이트될 수 있습니다.
최근에는 2017년, 2021년에 업데이트를 하였고 2021년 OWASP 자료는 2017년 버전을 자료로 업데이트했습니다.
XSS는 공격자가 웹 페이지에 악성 스크립트를 삽입하여 다른 사용자의 정보를 탈취하는 기법입니다. 예제 다음은 XSS…