이번 시간에는 웹 취약점 네 번째 시간으로 불필요한 Method 허용 취약점에 대해 알아보고 이로 인해 발생할 수 있는 문제점과 이를 해결하기 위한 대응 방안에 대해 알아보도록 하겠습니다.

불필요한 Method 허용 취약점이란?

  • HTTP 프로토콜의 경우 클라이언트가 서버에 요청의 목적을 알리기 위해 Method 라는 수단을 사용하여 서버에 목적을 알리게 되는데 목적에 따라서 GET, POST, HEAD, PUT, DELETE, OPTIONS, TRACE 등으로 분류되고 사용되어진다.
  • 위 메소드들 중 몇몇 종류는 비인가된 사용자가 사용할 수 있을 경우 문제가 발생할 수 있습니다. 대표적으로 PUT, DELELE, TRACE 가 있습니다.
  • PUT 메소드와 DELETE 메소드의 경우 임의로 서버 내 파일 생성 또는 삭제를 할 수 있는 메소드로 인가되지 않은 사용자로 인해 서버가 조작될 위험이 있는 메소드입니다.
  • TRACE 메소드의 경우 사용하게 될 경우 클라이언트가 서버로 전송한 요청을 다시 그대로 반환해주는 메소드인데 이 때 쿠키 및 세션 값이 그대로 다시 반환되게 되어 XST (Cross-Site Traing) 같은 공격에 사용될 수도 있는 메소드입니다.
  • 이렇게 사용자에게 굳이 필요하지 않은 메소드는 허용하게 될 경우 다양한 공격에 노출되는 위험이 생기게된다.
  • 이렇게 사용자에게 필요하지 않은 메소드까지 모두 허용해 놓은 것을 불필요한 Method 허용 취약점이라 한다.
  • 예시로 위 사진을 보면 OPTIONS 메소드를 사용하여 서버에 전송한 결과 사용할 수 있는 메소드가 반환된 것을 볼 수 있는데 HEAD, TRACE 같은 불필요한 메소드가 포함되어져 있는 것을 볼 수 있다.

 

불필요한 Method 허용 취약점으로 인해 발생할 수 있는 보안 취약점

  • PUT 메소드 또는 DELETE 메소드 같은 메소드가 활성화 되어있을 경우 공격자가 서버에 저장된 데이터를 조작하거나 삭제할 수 있게 되는데 이를 이용해 Web Shell 등을 웹 서버에 삽입하여 공격을 할 수 있게된다.
  • TRACE 메소드를 이용해 XST ( Cross-Site Tracing ) 같은 공격을 수행하여 세션 탈취 등의 공격이 발생할 수 있다.

 

불필요한 Method 허용 취약점 대응 방안

  • 웹 서버나 프레임워크에서 HTTP 메소드를 제한하는 설정을 추가하여 필요한 HTTP Method만 허용하는 설정을 해야한다.
  • 웹 방화벽(WAF, Web Application Firewall)를 사용하여 불필요한 Method 요청이 수신될 경우 패턴을 매칭시켜 해당 요청을 차단하는 방법을 사용할 수 있다.