[OWASP] Insufficient Attack Protection

휴먼스케이프

안녕하세요. 휴먼스케이프 개발자 정도영입니다.

이 번 포스트에서는 OWASP(The Open Web Application Security Project)에서 발표한 OWASP TOP 10 2017 Release Candidate 1 중 7번째에 해당하는 A7-Insufficient Attack Protection(공격 방어 취약점)에 대해서 다뤄보겠습니다.

정의

(공격 방어 취약점)이란

OWASP TOP 10에서는

The majority of applications and APIs lack the basic ability to detect, prevent, and respond to both manual and automated attacks. Attack protection goes far beyond basic input validation and involves automatically detecting, logging, responding, and even blocking exploit attempts. Application owners also need to be able to deploy patches quickly to protect against attacks.

이라고 설명하고 있습니다. 한국말로 번역한다면,

대부분의 어플리케이션과 API에는 수동 공격과 자동 공격을 모두 탐지, 방지 및 대응할 수 있는 기본 기능이 없다. 공격 보호는 기본 입력 유효성 검사를 훨씬 뛰어넘으며 자동 탐지, 로깅, 응답 및 익스플로잇 시도 차단을 포함합니다. 어플리케이션 소유자는 공격으로부터 보호하기 위해 패치를 신속하게 배포할 수 있어야 합니다.

해당 이슈에서는 공격에 대한 탐지 및 대응 체계 보유에 대한 내용을 언급하고 있고, 다음 3가지 항목을 통해 탐지 및 방어를 수행할 수 있습니다.

시큐어코딩

요구사항 분석: 개발에 필요한 요구사항 및 애플리케이션의 보안성을 향상시킬 수 있는 항목도 함께 도출합니다.(예: 입력값 검증 방법, 암호화 알고리즘 등)

설계: 요구사항에서 도출된 보안에 필요한 항목에 대한 보안코딩 정의서를 작성합니다.(예: 입력된 모든 값은 보안모듈을 통과하도록 함)

구현: 보안코딩 정의서에 따라 실제 코딩을 수행합니다.

테스트: 정적(시큐어코딩 진단) 및 동적(웹 스캐너 및 모의해킹 진단) 분석을 수행합니다.

유지보수: 신규로 발생되는 Zero-day attack 확인하고 대응합니다.

공격탐지

Honeytrap(허니 트랩) 개념을 적용하여 공격을 탐지하는 내용을 의미합니다. 예로는 아래와 같은 방법이 있을 수 있습니다.

Fake form fields

이라는 값을 특정 페이지에 임의로 작성, debug는 로그를 남겨 분석하기 위한 용도로 보여지므로 공격자는 해당값을 다른 값으로 변경을 시도할 것입니다.

2. Fake cookies

Set-cookie: env=prod; path=/; domain=site.com; httponly

의 쿠기값 내용 중, env 값을 staging 혹은 dev로 변조를 시도할 것입니다.

3. Fake HTML comments

와 같은 가짜 링크를 걸어두면, 특히 웹 스캐너는 페이지 수집기능을 통해 해당 페이지에 자동으로 접속을 시도하게 됩니다.

4. Fake robots.txt

robots.txt 파일은 검색 엔진 배제 표준을 알려주는 파일이며, 해당 내용에 따라 검색 엔진을 허용 및 차단할 수 있습니다. 만약 다음과 같이

Disallow: /manager.jsp/

를 작성해두면, 무언가 중요한 페이지이기 때문에 차단을 해둔 것으로 짐작하고 해당 페이지에 접근을 시도할 것입니다.

공격대응

WAF(웹 방화벽)

알려진 웹 공격 패턴에 정규표현식 등을 이용하여 공격을 탐지하고 차단하는 방법을 의미합니다. 예를 들어 union SQL Injection에서 아래와 같은 공격 패턴이 주로 사용됩니다.

union select 1,2,current_user

이러한 부분을 탐지하기 위해 다음과 같이 정규표현식을 사용하여 탐지 및 차단할 수 있습니다.

..
SecRule REQUEST_FILENAME|ARGS_NAMES|ARGS|XML:/*
'union.{1,100}?select' 
..

2. 에러 페이지(메인페이지)로의 이동

공격시 에러가 발생되거나 사전 정의된 입력값을 넘어서는 경우 다른페이지로 이동하여 공격을 무력화 시킵니다.

3. Rate Limit을 통한 차단

1개의 IP에서 과도한 요청을 하는 경우, 해당 IP를 차단시키는 과정이며, 이는 특히 DDos 공격에서 GET Flooding 혹은 POST Flooding 시 발생되는 행위입니다.

4. JS Challenge/Response를 통한 차단

DDos 공격을 수행하는 Bot의 경우 자바스크립트를 인지하지 못하는 경우가 대부분입니다. 이 특징을 이용해 특정 IP에서 첫 요청이 입력되면 자바스크립트(What is 1+1?)를 요청 IP에 회신하여 응답하도록 요구하여 탐지하고 차단을 시킵니다.

지금까지 공격 방어 취약점에 대해 알아보았습니다. 감사합니다.

Get to know us better! Join our official channels below.

Telegram(EN) : t.me/Humanscape KakaoTalk(KR) : open.kakao.com/o/gqbUQEM Website : humanscape.io Medium : medium.com/humanscape-ico Facebook : www.facebook.com/humanscape Twitter : twitter.com/Humanscape_io Reddit : https://www.reddit.com/r/Humanscape_official Bitcointalk announcement : https://bit.ly/2rVsP4T Email : support@humanscape.io

기업문화 엿볼 때, 더팀스

로그인

/