보안정보
전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.
웹로그 및 파일 무결성을 이용한 웹쉘 탐지
2020.05.06
11,224
01. 개요
1) 웹쉘공격이란?
수많은 웹 보안위협 중에서도 웹셸(WebShell)은 가장 기초적인 해킹 툴이다. 이는 공격자가 원격으로 웹서버를 제어할 수 있는 프로그램으로 이와 같은 웹셸 공격으로 인해 웹 서버에 저장된 개인정보가 유출되고, 웹사이트 변조·악성코드 유포지로 악용되는 사례가 증가하고 있다.
웹쉘을 이용한 공격은 PHP, JSP, ASP, ASP.NET등 SSS(Server Side Script, 이하 SSS)언어로 구성된 파일을 이용하여 공격자의 명령을 수행하게 하는 공격방식을 의미한다. 물론 WEB/WAS의 설정방식에 따라서 위에 언급된 확장자 이외에도 SSS언어로 구동될 수도 있다.
그럼 웹 보안위협 중 가장 많이 사용되는 공격 중 하나인 웹셸을 어떻게 탐지할 수 있을지 알아보자.
02. 탐지 시나리오
[그림 1] 탐지 시나리오
1) IPS 보안장비에서 WebShell 패턴 탐지
게시판 취약점(파일 업로드), 웹에디터 취약점(이미지 업로드), HTTP1.1 취약점(PUT), 기타 다양한 해킹 공격(SQL Injection, XSS등) 다양한 경로 및 방법을 통해 웹서버로 웹셀 침투한다.
2) 대상 WEB Server의 Web ACCESS 로그에서 공격자 IP로 WebShell 스크립트 확인
시스템 명령어를 수행하거나 파일을 조작하기 위해 관련된 오브젝트, Wscript.Shell, Shell.Application 등을 주로 사용한다.
3) 대상 WEB Server에서 파일 무결성(FILE UPDATE) 여부 확인
해커들이 웹쉘 확장자를 .cer,.asa,.cdx,.hta로 변경하여 파일을 우회하여 업로드하는 경우가 많아 asp나 php 뿐만 아니라 스크립트로 실행되도록 지정된 .asa, .cer등도 함께 확인이 필요하다.
03. 웹쉘 탐지 시나리오 단일 등록
1) IPS 보안장비에서 WebShell 패턴 탐지
공격자는 취약점이 존재하는 웹 서버에 웹쉘 파일을 업로드 한다. 이를 탐지하기 위해 IPS에서 발생하는 웹쉘 패턴과 웹쉘 탐지 로그를 통해 경보를 생성한다. 경보는 IPS에서 실제로 전달하는 패턴을 입력한다.
(%.asp?action=llgxdnh%, %.php?bbs=http://% 등 의 패턴)
[그림 2] 보안장비에서 웹쉘 패턴 탐지
2) 대상 WEB Server의 Web ACCESS 로그에서 공격자 IP로 WebShell 스크립트 확인
IPS에서 탐지된 공격이 내부 웹 서버에 웹쉘 공격을 시도한다. 이를 탐지하기 위해 uri 필드를 이용하여 파일의 이름, 확장자 등을 통하여 웹 서버에 웹쉘 탐지 경보를 생성한다.
[그림 3] 웹로그 웹쉘 스크립트 탐지
3) 대상 WEB Server에서 파일 무결성(FILE UPDATE) 여부 확인
웹 서버까지 침투한 공격자는 웹 서버의 각종 파일에 접근하며 내부정보 유출 및 파일 위변조 등의 공격을 수행한다. 웹쉘을 통해 웹 서버의 파일들을 위변조하는 행위를 탐지하기 위해 파일의 위변조 여부를 체크하는 경보를 설정한다. 파일의 위변조 탐지 기능은 SPiDER TM의 기능으로 파일의 Create, Delete, Upload 여부를 체크할 수 있다.
[그림 4] 파일 위변조 탐지
04. SIEM 상관분석 룰 등록
앞서 등록한 단일 경보 3가지에 대하여 1단계 부터 3단계까지 상관분석 등록
1. 내부 웹서버를 목표로 WebShell 패턴 탐지
2. 웹서버에서 공격자 IP로 웹로그 웹쉘 URI탐지
3. Victim 웹서버의 파일무결성(파일 수정)
[그림 5] 상관분석 등록 화면
[그림 6] 상관분석 발생 결과
05. 상세분석 결과 및 대시보드 표현
상관분석 상세 분석 결과 및 대시보드를 통해 발생건수, 출발지 IP, 목적지 IP, 발생 URI 및 시그니처를 한눈에 확인 할 수 있다.
[그림 7] 상관분석 상세분석 결과
사용자정의 대시보드를 활용하여 주간 발생된 SIEM의 경보에서 웹쉘 탐지가 가장 많이 탐지된 대상 웹서버를 Top5 로 표현하여 가시성을 높일수 있다.
[그림 8] 대시보드 웹쉘 탐지 웹서버 TOP5
06. 예방대책
1) 웹서버의 파일 업로드 취약점 제거
먼저 홈페이지에서 파일을 업로드 시 발생하는 취약점 제거가 필요하다. 파일 업로드가 불필요한 게시판의 경우는 업로드 기능을 완전히 제거하고 필요한 경우에는 파일의 확장자를 체크하도록한다. 확장자를 체크하는 루틴은 자바스크립트같이 html 파일 내에 포함되어서는 안되고 반드시 서버 사이드에서 실행되는 CGI 파일 등에 존재해야 한다. 또한 업로드를 제한하는 asp, cgi, php, jsp 등의 확장자를 막는 방법으로 구현하기보다는 허용하는 확장자 즉, txt, hwp, doc, pdf, gfi 등의 업로드 가능한 파일 확장자만 올릴 수 있도록 체크하는 것이 바람직하다.
2) 파일업로드 실행제한
파일 업로드 폴더의 실행 제한으로, 이를 위해서는 웹서버의 파일 업로드 전용 폴더를 만들고 전용 폴더의 스크립트 파일 실행을 제한하여 해당 폴더 내에 있는 파일이 실행되지 않도록 해야 한다.
3) SQL Injection 방지
웹쉘 공격은 파일 업로드 취약점뿐 아니라 SQL Injection을 이용해서도 가능하므로 DB 쿼리와 관련된 특수 문자들을 필터링해 사용자의 입력 값에 포함되어 있을 경우 에러를 발생시켜 악의의 쿼리가 실행되지 않도록 방지해야 한다. SQL Injection 공격은 에러 메시지를 참고해 이루어지는 경우가 대부분이므로 에러 메시지의 출력만 막아도 어느 정도 방지할 수 있다.
07. 참고자료
[1] IGLOOSECURITY Webshell 분류 및 대응방안
[2] 보안뉴스