OWASP Top 10에 포함되지 않은 10가지 일반적인 웹 취약점 | MONITORAPP

Blog

Get the latest cybersecurity news

블로그 메인페이지로 돌아가기

OWASP Top 10에 포함되지 않은 10가지 일반적인 웹 취약점

OWASP Top 10에 포함되지 않은 10가지 일반적인 웹 취약점

 

 모니터랩 Threat analysis

채명훈 전임

 

 OWASP Top 10 은 익히 알려진 바와 같이 전문가 커뮤니티에서 수집한 웹 어플리케이션에 대한 10가지 보안 위험 순위입니다. 순위는 2004년부터 약 3년 ~ 4년 주기로 갱신되고 있습니다. 2021년에 새로운 순위가 공개될 것으로 예상됩니다. ( 2004, 2007, 2010, 2013, 2017 ~ )

  • Injection
  • Broken Authentication
  • Sensitive Data Exposure
  • XML External Entities (XXE)
  • Broken Access Control
  • Security Misconfigurations
  • Cross-Site Scripting (XSS)
  • Insecure Deserialization
  • Using Components with Known Vulnerabilities
  • Insufficient Logging and Monitoring

 

해당 리스트는 OWASP Top 2017으로서 웹 어플리케이션에 대한 다양한 위협 중 일부분입니다. Top 10을 벗어난 위협들은 비교적 덜 강조되는 경향이 있습니다. 따라서, 신규 OWASP Top 10이 공개될 것으로 예상되는 이 시점에, OWASP Top 2017에 포함되지 않은 기타 위협들을 알아봅니다.

 

  1. Buffer Overflow

메모리 읽기 및 쓰기에 대한 어플리케이션의 메모리 할당을 다룹니다. 버퍼가 수용할 수 있는 것보다 많은 데이터로 블록을 채우려 할 때 오버 플로우가 발생합니다. 정교하게 만들어진 입력을 취약한 어플리케이션에 주입될 때 서버가 중단되거나 악성코드가 실행될 수 있습니다.

  1. Path Traversal

파일의 경로를 조작하여 허용된 디렉토리 외부의 디렉토리 또는 파일에 대한 경로를 입력할때 발생하는 취약점입니다. 공격자는 대상 시스템에서 임의의 파일에 접근할 수 있습니다.

  1. Process control

프로세스 제어 취약점은 일반적으로 신뢰할 수 없는 출발지에서 데이터를 어플리케이션으로 전송할 때 발생합니다. 공격자는 명령을 전송하여 프로그램에서 실행되게 합니다. 프로그램이 실행하는 명령이나 환경을 변경합니다. 명령어 주입 공격과 연관이 있습니다.

  1. Memory leak

메모리 누수는 프로그램이 더이상 필요하지 않을 때 할당된 메모리 블록을 해제하지 못하는, 의도하지 않은 메모리 소비를 뜻합니다. 메모리 누수가 많아질 경우 어플리케이션이 중단되거나 로드 시간이 늘어납니다. 일반적으로 오류 조건 및 예외 상황에 대한 처리 미흡, 메모리 해제를 담당하는 포인트에 대한 혼란으로 발생합니다.

 

  1. Click Jacking

사용자가 어떠한 페이지를 클릭할 때, 함정 사이트를 클릭하도록 속입니다. 사용자는 일반 UI를 사용하고 있다고 생각하지만, 실제로는 투명하게 처리된 숨겨진 UI가 있습니다. 프레임을 통해 다른 웹 페이지 내에서 페이지를 표시하는 기능인 HTML iframe 요소에서 발생합니다. 투명하게 처리된 함정 페이지를 일반 페이지와 겹쳐 출력합니다. X-Frame-Options 헤더를 사용하여 예방할 수 있습니다. 주류 브라우저들은 해당 기능을 모두 지원합니다.

 

  1. SSRF injection

OWASP Top에 새롭게 올라갈 것으로 예상되는 취약점입니다. Server Site Request Forgery(서버 측 요청 위조)는 서버 측 어플리케이션이 공격자가 입력하는 임의의 URL에 HTTP 요청을 전송하도록 유도할 수 있는 취약점입니다. 어플리케이션이 어떠한 내외부 URL에서 데이터를 가져오거나, 읽는 기능이  있을 수 있습니다. 이러한 기능의 취약점을 이용하여, 어플리케이션이 선택하는 URL을 공격자가 원하는 URL로 선택하도록 유도할 수 있습니다. 어플리케이션이 통신할 수 있는 다른 백엔드 시스템에서 무단 액세스 또는 작업이 발생하거나 임의의 명령이 실행될 수 있습니다.

  1. CRLF Injection

CRLF는 Carriage Return + Line Feed를 나타냅니다. CRLF 주입 공격은 HTTP 매개변수 혹은 URL을 수정하여 진행됩니다. 이를 통해 코드가 실행되거나 데이터 노출 , 로그 파일 조작 등이 발생할 수 있습니다. 또 다른 피해 예시로, 주입된 CRLF가 응답에 포함되는 HTTP Response Splitting (응답 분할) 공격이 발생할 수 있습니다. 프록시, 캐시 및 브라우저에 의해 데이터의 끝으로 해석되어 혼란을 야기할 수도 있습니다.

  1. Information exposure via query strings

쿼리 문자열을 통한 정보 노출 취약점은 민감 데이터가 URL의 매개 변수로 전달되는 경우입니다. 이를 통해 공격자는 사용자 이름, 암호, 토큰 (authX), 데이터베이스 세부 정보 및 기타 민감한 데이터를 얻을 수 있습니다. HTTPS를 사용하는 것만으로는 취약점이 해결되지 않습니다. 쿼리 매개 변수에 데이터가 입력되므로 HTTPS를 사용하더라도 공유 시스템, 웹 로그, 브라우저 히스토리, 캐시 등에 데이터가 노출됩니다. 이를 방지하는 방법은 POST 양식의 body 데이터로 전송하는 것입니다.

  1. HTTP Host header attacks

호스트 헤더 삽입 공격이라고도 합니다. HTTP 헤더 중 Host 헤더를 Server Side에서 안전하지 않은 방법으로 처리할 때 발생합니다. 서버가 Host 헤더를 신뢰함과 동시에 유효성 검사를 정확하게 하지 못하는 경우, 공격자는 서버가 비정상적으로 동작하도록 조작하는 유해한 Host 헤더를 주입할 수 있습니다.

  1. Web cache poisoning

웹 캐시 포이즈닝은 캐싱 서버 혹은 웹서버의 캐시 동작을 악용하여 피해자에게 유해한 응답을 전송하게 하는 취약점입니다. 캐시를 오염시켜 다른 피해자에게 제공되는 오염된 캐시 응답을 보냅니다. 헤더에 포함되는 XSS공격으로 볼 수도 있습니다.

대부분의 웹 어플리케이션은 여전히 완벽하지 않습니다. 수많은 웹 취약점이 지금도 보고되고 있습니다. 웹 어플리케이션이 현대화되고, 새로운 기능들이 추가되고 고도화 되면서 새로운 취약점이 나타날 수도 있으며, 이는 다음 OWASP Top 10 목록에 추가될 수 있습니다. 특히 기 소개해드린 SSRF 취약점은 최근 많은 취약점이 보고되고 있어, 그 가능성이 더 높습니다. 그러므로 개발자, 보안 담당자 혹은 관계자는 OWASP 목록에 보안 범위를 한정하는 것이 아니라 다방면으로 고려하여 원활하고 확장 가능한 전략을 세우는 것이 필요합니다.

Scroll Up