프로그래밍

OWASP - 가장 심각한 10가지 웹 애플리케이션 보안 취약점

골드라이트 2017. 7. 18. 12:16

OWASP 에서 제작한 웹애플리케이션에서 가장 심각하다고 생각되는 10가지 보안 취약점에 대한 문서입니다.

 

한글판이니 자세히 읽어보고 자신의 웹사이트에 적용하면 좋으리라 생각됩니다.

 

간단한 요약은 다음과 같습니다.

 

입력값 검증 부재, 웹 요청 정보가 웹 애플리케이션에 의해 처리되기 이전에 적절한 검증이 이루어지고 있지 않다. 공격자는 이 취약점을 이용하여 웹 애플리케이션의 백엔드 컴포넌트를 공격할 수 있다.


취약한 접근 통제,  인증된 사용자가 수행할 수 있는 작업을 적절히 제한하지 않고 있다. 공격자는 이 취약점을 이용하여 다른 사용자의 계정에 접근하거나, 민감한 정보가 담긴 파일을 열람하거나, 허용되지 않은 작업을 수행할 수 있다.


취약한 인증 및 세션 관리,  계정 토큰과 세션 토큰이 적절히 보호되고 있지 않다. 공격자는 암호나 키, 세션 쿠키, 기타 인증 관련 토큰을 공격하여 인증을 우회하고 다른 사용자의 ID를 가장할 수 있다.


크로스 사이트 스크립팅(XSS), 취약점 웹 애플리케이션이 다른 사용자의 브라우저를 공격하는 도구로 사용될 수 있다. 공격이 성공하는 경우 일반 사용자의 세션 토큰이 노출되거나, 사용자의 컴퓨터를 공격하거나, 다른 사용자를 속이기 위해 위조된 컨텐츠를 보여주게 된다.


버퍼 오버플로우, 웹 애플리케이션 컴포넌트가 사용자의 입력값을 적절히 점검하지 않는 언어로 작성되어 다운될 수 있다. 특수한 경우에는 공격자가 해당 프로세스의 권한을 획득할 수 있다. 이 컴포넌트로는 CGI, 라이브러리, 하드웨어 드라이버, 웹 애플리케이션 서버 컴포넌트 등이 포함된다.




삽입 취약점, 웹 애플리케이션이 외부 시스템이나 자체 OS에 접근할 때 입력받은 인자를 그대로 전달한다. 공격자가 해당 인자로 악의적인 명령어를 삽입하는 경우, 해당 외부 시스템은 웹 애플리케이션으로 인해 입력받은 명령어를 실행할 수 있게 된다.


부적절한 에러 처리, 일상적인 운용 과정 중에 발생하는 에러 상황에 대해 적절한 처리가 이루어지지 않는다. 공격자가 웹 애플리케이션이 처리하지 못하는 에러가 발생하도록 유도하여, 해당 시스템에 대한 상세 정보를 획득하거나, 서비스를 방해하거나, 보안 메커니즘이 작동하지 않도록 할 수 있으며, 서버가 다운될 수도 있다.


취약한 정보 저장 방식, 웹 애플리케이션은 정보나 인증 관련 토큰을 보호하기 위해 암호화를 자주 사용한다. 암호화 관련 기능이나 코드는 적절하게 구현하기가 어려움이 이미 증명되었으며, 많은 경우 오히려 보안상 바람직하지 않은 결과를 초래한다.


서비스 방해 공격, 공격자가 다른 정당한 사용자가 사이트에 접속하거나, 애플리케이션을 사용하는 것을 방해하기 위해 웹 애플리케이션의 리소스를 고갈시킬 수 있다. 공격자는 또한 다른 사용자가 본인 소유의 계정을 사용하지 못하도록 계정을 잠글 수 있으며, 심지어 웹 애플리케이션 전체가 멈추도록 할 수 있다.


부적절한 환경 설정, 강화된 서버 환경 설정 표준을 보유하는 것은 안전한 웹 애플리케이션에 있어 결정적으로 중요한 부분이다. 해당 서버는 보안에 영향을 미치는 다양한 환경 설정 옵션이 있으며, 벤더 출하시에는 기본적으로 안전하지 않은 상태로 출시된다.