검수요청.png검수요청.png

"웹셸"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
 
(사용자 3명의 중간 판 14개는 보이지 않습니다)
1번째 줄: 1번째 줄:
웹셸(Web Shell)은 웹 서버에 명령을 실행하여 [[관리자 권한]]을 획득해 행하는 공격 방법을 말한다.<ref name="웹셸"> 〈[https://terms.naver.com/entry.naver?docId=865822&cid=42346&categoryId=42346 웹 셸]〉, 《네이버 지식백과》 </ref>
+
'''웹셸'''<!--웹 셸-->(Web Shell)은 [[웹서버]]에 [[명령]]을 실행하여 [[관리자 권한]]을 획득해 행하는 공격 방법을 말한다.<ref name="웹셸"> 〈[https://terms.naver.com/entry.naver?docId=865822&cid=42346&categoryId=42346 웹 셸]〉, 《네이버 지식백과》 </ref> '''웹쉘'''<!--웹 쉘-->이라고도 쓴다.
  
 
==개요==
 
==개요==
웹 애플리케이션의 첨부 파일에 대한 부적절한 신뢰와 불충분한 점검으로 인해 악의적인 원격 공격 코드가 웹 서버로 전송, 실행되는 방법을 말한다.<ref name="웹셸"></ref>
+
웹셸은 웹 애플리케이션의 [[첨부파일]]에 대한 부적절한 신뢰와 불충분한 점검으로 인해 악의적인 원격 공격 코드가 웹 서버로 전송, 실행되는 방법을 말한다.<ref name="웹셸"></ref> [[클라이언트]]의 명령을 [[서버]]에서 실행시켜 주는 프로그램을 뜻하기도 하며, 웹 서버의 취약점을 이용하여 업로드된 후 다양한 웹셸 기능을 통해 해당 서버의 제어권을 장악하고 정보 탈취, 위변조, 악성 스크립트 삽입 등 각종 행위를 수행한다. [[해커]]는 이를 통해 정상적인 서비스를 방해하고, 기업의 기밀 정보를 획득하고, 유출 데이터를 이용한 피싱 범죄 및 인접한 타 시스템을 공격한다. 웹셸은 [[ASP]], [[JSP]], [[PHP]] 등 [[텍스트]] 형태로 작성되어 사용되는 경우와 기존의 소스코드에 웹셸이 삽입되는 경우가 있다. 대표적으로 이미 알려진 탑 100 웹셸을 비롯하여 신변종 웹셸이 지속적으로 유포되고 있다.<ref name="솔루션"></ref> 웹셸 공격은 일반적인 웹 사이트 사용자들과 동일한 웹 서비스 포트(http(80, 8080), https(443))를 통해 이루어지기 때문에 탐지가 매우 어려워, 해킹 사고가 터지지 않는 이상 인지하기가 어렵다.<ref> 아리밤, 〈[https://run-it.tistory.com/53 웹 쉘(Web shell)이란 무엇일까요 ?]〉, 《티스토리》, 2019-03-17 </ref>
  
==원리==
+
== 발생 원인 ==
웹셸은 간단한 서버 [[스크립트]] (jsp, php, asp ..)로 만드는 방법이 널리 사용되며 이 스크립트들은 웹서버의 취약점을 통해 업로드 된 거며 웹셀 설치 시 해커들은 보안 시스템을 피하여 별도의 인증 없이 시스템에 쉽게 접속이 가능하다.<ref> 〈[https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%85%B8 웹 셸]〉, 《위키백과》 </ref>
+
웹셸이 구동되기 위해서는 웹 애플리케이션의 SSS와 CSS에 대한 이해가 필요하다. 홈페이지가 구동하기 위해서는 HTTP를 통해 WWW 상에서 정보를 주고받게 된다. 서버 측면 프로그램(Server-Side Program)에 해당하는 부분이 바로 [[PHP]], [[JSP]], [[ASP]], [[ASP.NET]]에 해당하는 SSS를 의미하게 되고, [[HTML]] 등 클라이언트 사이드 프로그램에 해당하는 부분이 CSS를 의미하게 된다. SSS는 클라이언트가 파일을 HTTP로 요청하면 웹서버(스크립트 엔진)의 정보를 이용하여 데이터베이스 서버에 접속하여 사용자에게 동적 데이터를 전송하는 것을 기본으로 하며, 최근에는 클라이언트에서 전송한 내용의 동적 데이터 생성뿐만 아니라 세션을 통한 사용자 구분 및 사용자별 서비스 제공 등 다양한 기능을 제공하고 있다. 웹셸이 서버에서 동작하기 위한 발생 원인에 대해서는 파일 업로드 기능의 사용 여부로 분류할 수 있다. 파일 업로드는 클라이언트에 존재하는 파일을 서버에 업로드하는 기능을 의미한다. 일반적으로 스마트에디터, 다음에디터, 전자정부프레임워크 등의 [[오픈소스]] 게시판을 이용하거나 자체 개발한 파일 업로드 기능을 이용하여 웹셸 파일의 업로드를 시도한다. 파일 업로드를 이용하여 웹셸을 서버에 올리기 위한 방법으로는 SSS나 CSS에 존재하는 파일 확장자 필터링 우회, 이미지 파일 등 정상 확상자 파일 내에 공격 코드를 삽입하는 정상 확장자를 이용한 우회 등으로 분류할 수 있다. 파일 업로드 기능을 이용하지 않고 서버에 웹셸을 생성하기 위한 방법은 취약점이 있다. 아파치 스트럿츠2(Apache Struts2) 원격 임의 코드 실행 취약점을 이용하여 파일을 생성하는 방식이 대표적인 사례로 볼 수 있다.<ref name="웹 애플리케이션 아키택쳐"> 서비스사업본부 보안분석팀 김미희, 〈[http://www.igloosec.co.kr/BLOG_Webshell%20%EB%B6%84%EB%A5%98%20%EB%B0%8F%20%EB%8C%80%EC%9D%91%EB%B0%A9%EC%95%88?searchItem=&searchWord=&bbsCateId=16&gotoPage=2 보안정보]〉, 《이글루시큐리티》, 2017-02-01 </ref>
===웹 애플리케이션 아키택쳐(소프트웨어)===
 
웹쉘이 실행될 수 있는 웹 애플리케이션(Web Application) 환경을 말하며 웹쉘이 구동하기 위해서는 웹 애플리케이션의 [[SSS]]와 [[CSS]](Client Side Script, 이하 CSS)가 필요하다.
 
*홈페이지가 구동하기 위해서는 [[HTTP]](HyperText Transfer Protocol) 를 통해 [[WWW]]상에서 정보를 주고받게 된다. 서버 측면 프로그램(Server-Side Program)에 해당하는 부분이 바로 PHP, JSP ASP, ASP·NET에 해당하는 SSS를 의미하게 되고, [[HTML]]등 Client-Side Program에 해당하는 부분이 CSS를 의미하는 거다.
 
*SSS는 클라이언트가 파일을 HTTP로 요청하면 웹서버(스크립트 엔진)의 정보를 이용하여 DB 서버에 접속하여 사용자에게 동적 데이터를 전송하는 것을 기본으로 하며, 최근에는 클라이언트에서 전송한 내용의 동적 데이터 생성뿐만 아니라 세션을 통한 사용자 구분 및 사용자별 서비스 제공 등 다양한 기능을 제공하는 거다. (자세한 사항은 각주의 출처 참고)<ref name="웹 애플리케이션 아키택쳐"> 서비스사업본부 보안분석팀 김미희, 〈[http://www.igloosec.co.kr/BLOG_Webshell%20%EB%B6%84%EB%A5%98%20%EB%B0%8F%20%EB%8C%80%EC%9D%91%EB%B0%A9%EC%95%88?searchItem=&searchWord=&bbsCateId=16&gotoPage=2 보안정보]〉, 《이글루시큐리티》, 2017-02-01 </ref>
 
  
==언어==
+
:{|class=wikitable width=1000
서버에서 사용되는 서버 측면 프로그램(Server-Side Program)이 [[PHP]], [[JSP]], [[ASP]], ASP.[[NET]]과 관련된 확장자를 통해서 서비스를 제공하게 되기 때문에 웹 셸이 구동하기 위해서는 해당 확장자의 파일을 사용해서 동작하므로 스크립트 언어와 파일 확장자 종류는 다음과 같다.<ref name="웹 애플리케이션 아키택쳐"></ref>
+
|+<ref name="웹 애플리케이션 아키택쳐"></ref>
*보이는 순서는 스크립트 언어 : 파일 확장자 순이다.
+
!align=center|구분
*PHP : php, php3, php4, php5, phtml, inc
+
!align=center|상세 구분
*JSP : jsp, jsf
+
!align=center|사례 예시
*ASP : Asp, asa, cds, cer
+
!align=center|파일 업로드<br> 사용 여부
*ASP.NET : aspx, asax, ascx, ashx, asmx, axd, config, cs, csproj, licx, rem, resources, resx, soap, vb, vbproj, vsdisco, webinfo
+
|-
*위 목록들은 웹셸 공격에 사용되는 확장자 목록이다.<ref name="웹 애플리케이션 아키택쳐"></ref>
+
|align=center|확장자 우회
 
+
|align=center|파일 확장자 우회
==발생원인==
+
|align=left|
파일 업로드 기능의 사용 여부로 분류할 수 있으며, 파일 업로드는 클라이언트에 존재하는 파일을 서버에 업로드 하는 기능을 의미한다. 일반적으로 [[스마트편집기]](SmartEditor), [[다음편집기]](DaumEditor), [[전자정부 프레임워크]] 등의 오픈소스 게시판을 이용하거나 자체 개발한 파일 업로드 기능을 이용하여 웹쉘파일의 업로드를 시도하게 되며 파일 업로드를 이용하여 웹쉘을 서버에 올리기 위한 방법으로는 SSS나 CSS에 존재하는 파일 확장자 필터링 우회, 이미지 파일 등 정상 확장자 파일 내에 공격 코드를 삽입하는 정상 확장자를 이용한 우회 등으로 분류할 수 있다.<ref name="웹 애플리케이션 아키택쳐"></ref>
 
 
 
==구분==
 
위의 발생원인 중 대표적으로 확장자 우회와 취약점이 있다.<ref name="웹 애플리케이션 아키택쳐"></ref>
 
 
 
===확장자 우회===
 
파일 확장자 우회이기도 하며 예시로는 다음과 같다.
 
 
*서버(Server Side Script) 우회
 
*서버(Server Side Script) 우회
*CSS(Client Side Script) 우회<ref name="웹 애플리케이션 아키택쳐"></ref>
+
*CSS(Client Side Script) 우회
 +
|align=center|○
 +
|-
 +
|align=center rowspan=4|취약점
 +
|align=center|정상 확장자를<br> 이용한 우회
 +
|align=left|
 +
*하이딩 웹셸 백도우 코드 인 이미지 파일
 +
|align=center|○
 +
|-
 +
|align=center|/웹 애플리케이션 서버
 +
|align=left|
 +
*아파치 스트럿츠2 원격 임의코드 실행 취약점
 +
*IIS 파일 파싱 바이패스 공격
 +
|align=center|△
 +
|-
 +
|align=center|애플리케이션
 +
|align=left|
 +
*자바 0-day 취약성
 +
*RFI(Remote File Inclusion) 취약성
 +
*SQL 인젝션 취약성
 +
*RFI(Remote File Inclusion) 취약성​
 +
|align=center|△
 +
|-
 +
|align=center|에디터
 +
|align=left|
 +
*스마트에디터 2.3.3 : 이미지 파일 확장자 미체크
 +
*스마트에디터 2.8.2.1 : 파일업로드 취약점
 +
*스마트에디터 2.8.2.1 : 파일업로드 취약점 ​
 +
|align=center|○
 +
|}
  
===취약점===
+
== 종류 ==
정상 확장자(JPG, PNG 등)를 이용한 우회, WEB/WAS, 애플리케이션(Application) (OS, DBMS 등), 편집기(Editor)로 나눈다.<ref name="웹 애플리케이션 아키택쳐"></ref>
+
단독파일이 웹셸로 사용되는 경우는 크게 텍스트와 이미지 형태의 파일로 분류할 수 있다. 텍스트 기반의 웹셸 파일을 세 가지로 분류할 수 있다. 단일 명령어로 구성된 한줄웹셸, 다중 명령어로 구성된 다중웹셸, 공격 명령을 분할해서 보내면 웹셸 파일 내에서 조합해서 사용하는 다중분할웹셸로 분류된다. 한줄웹셸의 경우, 다중웹셸과 다르게 공격 명령을 수행할 수 있는 명령어 한 개를 단독으로 사용하기 때문에 웹셸을 구분할 수 있는 별도의 네이밍이 존재하지 않는다. 하지만 다중웹셸의 경우 ASPXSpy나 b374k-shell, JspSpy와 같이 웹셸에 시그니처를 통해서 웹셸을 구분하는 네이밍이 존재하게 된다. 이미지 기반의 웹셸의 경우에는 두 가지로 분류할 수 있다. 이미지 기반의 웹셸은 이미지 파일 마지막에 공격구문을 삽입하는 방식과 이미지 파일 속성에 공격구문을 추가하는 방식으로 분류된다. 이미지 파일 마지막에 공격 구문을 삽입하는 방식은 이미지 파일의 내용을 에디터에서 수정하거나 파일 업로드 공격 시도 시에 프록시 툴을 이용하여 변조가 가능하다. 이미지 파일의 속성에 공격 구문을 추가하는 방식으로 대표적인 방식은 PNG 파일의 이미지 픽셀 정보가 저장되는 IDAT 청크에 공격 구문을 저장하는 방식이다.<ref name="웹 애플리케이션 아키택쳐"></ref>
  
====정상 확장자(JPG, PNG등) 이용 우회====
+
:{|class=wikitable width=1000
이미지 파일에 웹쉘 백도어 코드 숨기기(Hiding Webshell Backdoor Code in Image Files)이다.<ref name="웹 애플리케이션 아키택쳐"></ref>
+
|+<ref name="웹 애플리케이션 아키택쳐"></ref>
 +
!align=center colspan=3|구분
 +
!align=center|상세 구분
 +
!align=center|예시
 +
|-
 +
|align=center rowspan=4|단독파일
 +
|align=center rowspan=3|텍스트
 +
|align=center|단일
 +
|align=center|
 +
한줄웹셸<br>
 +
싱글라인 웹셸<br>
 +
원라인 웹셸<br>
 +
일구화목마(后门木马)​
 +
|align=left|
 +
ASP : <% eval request(“cmd”) %><br>
 +
PHP :<br>
 +
JSP : <% ​<br>
 +
Runtime.getRuntime().exec(request.getParameter("cmd")%>
 +
|-
 +
|align=center|다중
 +
|align=center|1개의 파일에 다중<br> 공격구문이 존재하는 경우
 +
|align=left|
 +
ASP : ASPyder, Zehir Asp Shell, ASPXSpy, ASPX Shell<br>
 +
JSP : JspSpy, JspSpyWeb, jFolder, shack2, devilzShell, JSP File Browser, jshell, JspWebshell<br>
 +
JSP : JspSpy, JspSpyWeb, jFolder, shack2, devilzShell, JSP File Browser, jshell, JspWebshell​
 +
|-
 +
|align=center|기타
 +
|align=center|다중분할웹셸
 +
|align=left|공격자가 전송하는 다중분할 피라미터를 웹서버에서 재조합하는 방식
 +
|-
 +
|align=center|이미지
 +
|align=center|기타
 +
|align=center|이미지 웹셸
 +
|align=left|
 +
이미지 파일 마지막에 공격 구문을 삽입하는 방법<br>
 +
이미지 파일 구조 내에 공격 구문을 삽입하는 방법
 +
|-
 +
|align=center|내용추가
 +
|align=center|텍스트
 +
|align=center|다중
 +
|align=center|기존에 존재하는 소스코드에<br> 웹셸이 삽입되어 있는 형태
 +
|align=left|
 +
<scrpt langage="vbs scrpit" runat="server">
 +
    If Request("1234")<>"" Then Session("1cxMarcos")
 +
= Request("1234")
 +
    If Session("1cxMarcos")<>"" Then Execute(Session("1cxMarcos"))
 +
</scrpt >
 +
|}
  
====WEB/WAS====
+
==솔루션==
[[IIS]] 파일 구문분석 우회로 공격 아파치 스트럿츠2(IIS File Parsing Bypass Attack ​Apache Struts2) 원격 임의코드 실행 취약점(CVE-2013-2251, CVE-2016-3081, CVE-2016-4438 다수) 가 대표적이다.<ref name="웹 애플리케이션 아키택쳐"></ref>
+
웹 보안과 관련된 법규 및 컴플라이언스는 증가되는 추세이며, 관련 항목은 점점 강화되어 웹 보안 솔루션 구축의 필요성이 요구되고 있다. 현재 공개된 웹셸의 탐지 및 점검 수단으로는 시큐어 코딩, 취약점 패치, 실행 권한 설정 등 다양한 방식의 선제적 대응 조치가 필요한 실정이다. 시큐어 코딩(Secure Coding)은 웹 애플리케이션 보안 취약점을 제거할 수 있으나, 비용이 많이 들고, 개발·구축·유지보수 전 과정에 대한 인력 리소스 부족으로 많은 기업이 어려움을 받고 있다. 신ㆍ변종 웹셸의 탐지는 현재의 시그니처 기반의 솔루션(방화벽, IPS, WAF)으로는 신종 웹셸, 보안장비 우회 기법 신규 해킹의 방어가 현실적으로 어려움이 있으며, 다양한 우회 기법은 나날이 발전하고 있다. 웹 서버로 송, 수신되는 모든 패킷(Packet)의 내용을 검사하고 차단하는 웹 방화벽(WAF)은 [[OWASP]], 국정원 취약점 등의 다양한 웹 공격을 시그니처 기반으로 탐지, 차단하기 때문에 신변종 웹셸에 대한 완벽한 대응이 불가능하다. 또한 웹셸로 인한 해킹 피해를 최소화하기 위해서는 24시간 실시간 모니터링이 필요하고 정확하고 빠른 탐지와 신변종 웹셸에 대한 명확한 분석이 필요하다.<ref name="솔루션"> 〈[http://www.ssrinc.co.kr/upload/metieye.pdf 웹쉘]〉, 《에스에스알》 </ref>
  
====애플리케이션(OS, DBMS 등)====
+
=== 셸캅 ===
*자바 0-데이 취약성(Java 0-day Vulnerability)
+
[[셸캅]](ShelCop)은 [[해커]]가 웹서버의 취약점을 이용해 웹서버 관리자 계정을 획득한 후, 저장된 내부 자료를 유출하거나 백도어 프로그램을 설치하는 등 악의적인 목적으로 웹서버에 설치한 웹셸 프로그램을 탐지하고, 발견 시 실행을 방지하는 [[이지시큐어]]의 솔루션이다. 또한, 웹서버의 해킹을 사전에 방지하거나 해킹 발생 후, 정보 유출과 해킹의 거점으로 사용되는 2차 피해를 방지한다.<ref name="보안뉴스"> 김태형 기자, 〈[https://www.boannews.com/media/view.asp?idx=46468&skind=O 웹서버 해킹 주범 ‘웹셸’ 제거하기 대작전]〉, 《보안뉴스》, 2015-06-08 </ref>
*원격 파일 포함 취약성(RFI : Remote File Inclusion Vulnerability)
 
*SQL 주입 취약성(SQL Injection Vulnerability)
 
등이 있다.<ref name="웹 애플리케이션 아키택쳐"></ref>
 
  
====편집기====
+
=== 메티아이 ===
*스마트편집기(SmartEditor) 2.3.3 : 이미지 파일 확장자 미체크
+
[[메티아이]](MetiEye)는 휴리스틱 엔진을 탑재한 [[에스에스알]]의 웹셸 탐지 및 방어 솔루션이다. 모의 해킹 컨설팅에서 사용되는 자체 제작된 웹셸의 패턴 테스트 등 30여 명의 전문 보안 컨설턴트가 현장에서 수집하는 패턴으로 수시 업데이트를 진행하고 있는 것이 특징이다. 또한 알려지지 않은 웹셸과 우회 기법을 탐지하는 기능이 강점이다. 특히, 에이전트 기반의 다른 제품들과 달리 서버에 설치되지 않고 스크립트 기반으로 복사해서 붙여넣기로 가능하기 때문에 시스템 운영자들이 가장 우려하는 서비스 가용성이나 안정성에 전혀 부담이 없는 것도 특징이다.<ref name="보안뉴스"></ref>  
*스마트편집기(SmartEditor) 2.8.2.1 : 파일업로드 취약점 등이있다.<ref name="웹 애플리케이션 아키택쳐"></ref>
 
  
====파일 업로드====
+
=== 더블유 쉴드 안티웹셸 ===
*사용하는 것 : 파일 확장자 우회, 정상 확장자(JPG, PNG 등) 이용 우회, 편집기
+
[[더블유 쉴드 안티웹셸]](W-Shield Anti-webshell)은 인포섹의 웹 보안 관제서비스를 위한 웹셸 탐지 전용 솔루션이다. 다년간 웹셸과 악성코드로 인한 해킹 사고를 대응하면서 축적한 400여개의 웹셸 패턴 노하우와 난독화된 웹셸을 탐지하기 위한 암호해독(Decoding) 엔진을 통해 다양한 웹셸 공격에 대한 대응이 가능하며, 논 에이전트(Non-Agent) 방식으로 시스템 부하를 최소화하고 안정성을 확보했다. 특히 드라이브 바이 다운로드 공격 탐지 솔루션인 더블유쉴드 MDS(Malware Detection System)과 연동해 사용하면 더욱 효과적이다.<ref name="보안뉴스"></ref>
*사용 안 하는 것 : WEB/WAS, 애플리케이션(OS, DBMS 등)<ref name="웹 애플리케이션 아키택쳐"></ref>
 
  
==종류==
+
=== 쉘가드 ===
웹셀 종류는 크게 단독파일과 내용추가가 있으며 단독파일은 그 안에서도 텍스트(Text)와 이미지(Image)가 있다. 다음은 텍스트에 있는 종류들이다.<ref name="웹 애플리케이션 아키택쳐"></ref>
+
[[쉘가드]](Shell GUARD)는 대한민국에서 처음으로 웹셸 탐지 솔루션 휘슬(WHISTL)을 [[한국인터넷진흥원]]과 공동 개발했으며 현재 약 4,000여 기업에서 사용 중이다. 셸가드는 하나 이상의 웹서버에 대해 각각 웹셸 프로그램을 탐지하고 관리자는 중앙관리 및 조치가 가능하다. 특히, 업로드 파일에 대한 웹셸 프로그램을 실시간으로 탐지하고 원격 관리를 통한 즉각적인 대응이 가능하다.<ref name="보안뉴스"></ref>
  
===텍스트===
+
=== 이지스 셸 모니터 ===
텍스트에는 단일, 다중, 기타 등 3가지가 있다.
+
[[이지스 셸 모니터]](AEGIS Shell Monitor)는 웹 서버 해킹에 사용되는 악성 프로그램인 웹셸을 실시간 모니터링 하고 탐지하는 [[에이쓰리시큐리티]]의 신개념 웹 보안 관제서비스로 웹셸을 방어하는 웹서버 단의 최종 방어수단이다. 특히, 여러 웹서버에 침투한 웹셸을 실시간으로 감시하고 수천 대의 웹서버를 통합 관제하는 웹셸 탐지 솔루션으로, 웹(HTTP)을 통한 데이터베이스 유출 방지, 서버 조작-시스템 내부 명령 실행 방지, 웹셸을 통한 악성코드 설치 방지, 우회 공격을 통한 웹셸 삽입 및 수정 방지 등의 기능을 제공한다.<ref name="보안뉴스"></ref>
  
====단일====
+
=== 웹프론트-K ===
한줄웹쉘, 단일 줄(Single-line, One-line), 웹셀, 일구화목마(后木)​등이 있으며 예시로는 다음과 같다.
+
[[웹프론트-K]]는 실시간 웹셸 탐지 전문 솔루션을 연동해 강화된 보안기능을 제공하는 [[파이오링크]]의 웹방화벽이다. 웹프론트-K는 웹서버 앞에 위치, 불법 요청·응답을 차단하기에 기본적으로 웹셸 공격에 대한 방어 기능이 있다. 하지만 웹방화벽 설치 전, 또는 웹방화벽을 우회하는 웹셸 공격 방어를 위해서는 전문 솔루션의 추가 도입이 필요하다. 탐지와 분석을 이원화해 고객의 웹서버 부하를 최소화하고, 다양한 분석 방법, 지속적 패턴 생성 및 분석, 난독화 기술 등을 결합해 탐지 신뢰도를 높인 것이 장점이다.<ref name="보안뉴스"></ref>
*ASP : <% eval request(“cmd”) %>
 
*PHP :
 
*JSP : <% ​Runtime.getRuntime().exec(request.getParameter(“cmd”)%><ref name="웹 애플리케이션 아키택쳐"></ref>
 
  
====다중====
+
==사건==
1개의 파일에 다중 공격 구문이 존재하는 경우를 말하며 다음 내용은 그 예시이다.
+
암호화폐 거래소 [[빗썸]]의 내부 서버 등에서 웹셸이 여러 개 발견된 사건이 있었다. 특히, 일부 웹셸은 2018년 6월 이전에 심어진 것으로 드러나 실제 해킹 공격은 빗썸이 공지한 2018년 6월 20일보다 이전에 발생했을 가능성이 제기되었다. 확인 결과로, 2018년 6월 20일 발견된 웹셸 가운데 1개는 [[DRM]] 서버에 심겨 있었는데, 웹셸이 심어진 시기는 정황으로 볼 때 사건 발생 이전인 2018년 6월 전으로 추정되고 있고, 더욱이 추가 발견되는 웹셸에 따라 2018년 6월보다 이전에 심어졌을 가능성도 있다고 한다. 이와 관련해서 한 보안전문가는 웹셸이 심어진 시간 간격은 사건 추적에 있어 매우 중요하다며, 국내를 타깃으로 공격했던 웹셸이 발견된 건지, 웹셸 종류는 무엇인지 등이 사건을 풀어가는 중요한 실마리가 될 수 있고 일반적으로 공격자 입장에서는 위장 전술로 공개된 웹셸을 가져다 사용하는 경우가 많기 때문이라고 설명했다. 하지만 웹셸을 심은 서버나 시스템을 특정하기는 쉽지 않다. <ref> 김경애 기자, 〈[https://www.boannews.com/media/view.asp?idx=70963&kind=0 해킹사고 빗썸, 웹셸 다수 발견...결제승인 사칭 문자도 출현], 《보안뉴스》, 2018-07-03 </ref>
*ASP : ASPyder, Zehir Asp Shell, ASPXSpy, ASPX Shell
 
*JSP : JspSpy, JspSpyWeb, jFolder, shack2, devilzShell, JSP, File Browser, jshell, JspWebshell<ref name="웹 애플리케이션 아키택쳐"></ref>
 
 
 
====기타====
 
다중분할웹쉘(Multi Division  Webshell) : 공격자가 전송하는 다중분할 피라미터를 웹서버에서 재조합하는 방식이다.<ref name="웹 애플리케이션 아키택쳐"></ref>
 
 
 
===이미지===
 
그 외에 포함되며 이미지 웹셸(Image Webshell)이 대표이다.
 
*이미지 파일 마지막에 공격 구문을 삽입하는 방법이다.
 
*이미지 파일 구조 내에 공격 구문을 삽입하는 방법이다.<ref name="웹 애플리케이션 아키택쳐"></ref>
 
 
 
===내용추가===
 
텍스트와 같이 포함되는 것으로 그 안에 텍스트가 다중으로 되어있어서 기존에 존재하는 소스 코드에 웹셸이 삽입된 형태
 
를 말하는 거다. (자세한 사항은 링크 참조)<ref name="웹 애플리케이션 아키택쳐"></ref>
 
 
 
==솔루션==
 
웹셸을 방지하기 위해 여러 솔루션이 나왔지만, 기존 방식의 한계가 있었고 새로운 방식들이 나오고 있다. 먼저 기존방식의 한계다.<ref name="솔루션"> 〈[http://www.ssrinc.co.kr/upload/metieye.pdf 웹쉘]〉, 《에스에스알》 </ref>
 
 
 
===한계===
 
*시큐어 코딩(Secure Coding) : 웹 애플리케이션 보안 취약점을 제거할 수 있으나, 비용이 많이 들고, 개발/구축/유지보수 전 과정에 대한 인력 리소스 부족으로 많은 기업이 어려움을 주고 있다.
 
*신ㆍ변종 웹쉘의 탐지 : 현재의 시그니처 기반의 솔루션(방화벽(Firewall), IPS, WAF)으로는 신종 웹쉘, 보안장비 우회 기법 등 신규 해킹의 방어가 현실적으로 어려움이 있으며, 다양한 우회 기법은 나날이 발전하고 있다.
 
*웹 방화벽(WAF) 솔루션 : 웹 서버로 송, 수신되는 모든 패킷(Packet)의 내용을 검사하고 차단하는 웹 방화벽(WAF)은 [[OWASP]] , 국정원 취약점 등의 다양한 웹 공격을 시그니처 기반으로 탐지, 차단하기 때문에 신변종 웹쉘에 대한 완벽한 대응이 불가능하다.
 
*실시간 모니터링의 필요성 : 웹쉘로 인한 해킹 피해를 최소화하기 위해서는 24시간 실시간 모니터링이 필요하고 정확하고 빠른 탐지와 신변종 웹쉘에 대한 명확한 분석이 필요하다.
 
위와 같은 문제를 해결하기 위해 나온 방식이 바로 실시간 웹쉘 탐지 솔루션(MetiEye)이다.<ref name="솔루션"></ref>
 
 
 
===실시간 웹쉘 탐지 솔루션===
 
보안장비에서 탐지하지 못하는 신변종 웹쉘을 [[정규식]]과 [[휴리스틱]] 탐지 기술을 사용하여, 실시간으로 탐지 웹쉘에 대한 [[차단]], [[격리 조치]] 등 선제 대응이 가능한 보안 솔루션이다.<ref name="솔루션"></ref>
 
 
 
====구성도====
 
네트워크 구성 환경을 분석하여 솔루션의 안정적인 성능과 보안성, 에이전트(Agent)가 설치되는 감시대상 서버의 영향력 등을 고려하여 최적화된 시스템을 구성한다.<ref name="솔루션"></ref>
 
 
 
====장점====
 
다른 장점도 있지만, 그중에서 웹쉘 탐지 기법에 대해 설명하자면
 
*이미 알려진 웹쉘은 해시값을 DB화하고 정형화된 정규식 패턴 외 웹쉘 특성을 파악하는 휴리스틱(Heuristic)
 
탐지 기법으로 다양한 유형의 웹쉘 탐지가 가능하다.<ref name="솔루션"></ref>
 
  
==사건==
+
랜섬웨어와 동일한 기능을 가진 신종 웹 악성코드 웹셸이 등장했다. 웹 보안 전문업체 [[유엠브이기술]]은 2017년 6월 랜섬웨어 기능을 가진 신종 웹셸을 수집해 분석한 결과로 이미 여러 해외 인터넷 사이트가 감염된 것으로 확인됐다고 밝혔다. 기존 웹셸은 웹 서버에 명령을 수행할 수 있도록 작성한 웹 스크립트 파일로 웹 브라우저를 이용해 원격에서 서버 제어가 가능한 악성 파일을 뜻한다. 해커가 웹 서비스 취약점을 통해 웹 서버에 침투한 후 웹셸을 업로드해 시스템을 장악하면서 본격적인 공격을 시작한다. 이후 해커는 웹셸을 이용해 추가로 악성 파일을 업로드하고 시스템 명령어를 통해 실행하는 공격 방식을 사용한다. 이처럼 기존에는 업로드 기능과 시스템 명령으로 랜섬웨어를 추가 업로드해 실행했지만 이번에 수집된 신종 웹셸은 파일 자체가 랜섬웨어와 같은 기능을 한다. 신종 웹셸은 방어가 쉽지 않다. 랜섬웨어는 실행형(exe, scr, vbs 등) 파일로 프로세스가 생성되면서 암호화를 진행하는 반면에 신종 웹셸은 실행형 파일이 아닌 웹 서버 스크립트 파일로 동작하기 때문에 백신 등으로 탐지하는 데 한계가 있으며 피해자에게 금전을 요구하는 방식도 랜섬웨어와 유사하다. 기존 웹셸은 웹 서버 시스템 파괴(웹 서비스 불가) 데이터베이스 접근을 통한 개인정보 탈취 홈페이지 변조 등 금전적 요구 없는 공격이 주를 이루었지만 새로운 유형의 웹셸은 랜섬웨어와 동일하게 해커가 암호화할 때 사용되는 키(Key)값을 금전과 바꿀 수 있다. 신종 웹셸이 최근 기승을 부리는 랜섬웨어 추세에 맞춰 진화된 것이고 유엠브이기술이 신종 웹셸을 분석한 결과, 해커는 웹 브라우저를 통해 업로드 된 웹셸에 접속하게 된다. 이후 암호화에 사용되는 키값 입력 창에 해커만 알고 있는 키값을 입력한 후 실행 버튼을 누르면 파일들을 암호화하면서 웹 설정 파일과 에러페이지를 자동으로 생성한다. 일반 사용자가 정상 페이지에 접속하면 해당 페이지가 암호화돼 있기 때문에 생성된 에러페이지를 보여주도록 웹 설정 파일까지 생성된다. 에러페이지 내용은 사이트가 록(lock)에 걸렸다는 메시지와 함께 해커 이메일 주소가 나타난다. 랜섬웨어와 같이 금전을 요구할 수 있다. 초기 웹셸은 난독화 되어있지 않은 기본형부터 해커가 특정 사이트를 해킹 후 업로드 하여 암호설정을 통해 타인에게 계정정보를 파는 단계, 탐지 우회를 위해 코드를 변형하거나 지속적인 기능을 추가하는 단계, 관리자가 알아볼 수 없도록 난독화하는 단계를 거쳤지만, 신종 웹셸은 여기에서 그치지 않고 랜섬웨어와 닮은 단계로 진화한 것이다. 특히 인터넷을 통한 랜섬웨어 침해가 증가 추세여서 신종 웹셸이 빠르게 확산할 우려가 높다.<ref> 서동규 기자, 〈[https://news.v.daum.net/v/20170626142104817 랜섬웨어 꼭 닮은 신종 '웹쉘' 등장..인터넷 보안 비상등]〉, 《다음뉴스》, 2017-06-26 </ref>
웹셀에 의한 피해는 다음과 같다.
 
*해킹사고를 당한 국내 최대 규모 암호화폐 거래소[[빗썸]]의 내부 서버 등에서 웹셸이 여러 개 발견된 것으로 알려졌다. 특히, 일부 웹쉘은 2018년 6월 이전에 심어진 것으로 드러나 실제 해킹 공격은 빗썸이 공지한 2018년 6월 20일보다 이전에 발생했을 가능성이 제기된다. 또한, 최근에는 빗썸을 사칭한 [[스미싱]] 공격도 발견되고 있다. 웹셸은 서버를 해킹하는 도구 중 하나로 공격자가 원격에서 공격대상 웹 서버에 명령을 수행할 수 있도록 작성한 웹 스크립트 파일이다. 웹셸 공격은 우선 공격자가 취약점을 이용해 웹 서버에 웹셸을 심어놓은 후, 한참 뒤에 이를 작동 시켜 스팸메일 발송, 개인정보 유출 등의 명령을 실행시킬 수 있다. 확인 결과로, 2018년 6월 20일 발견된 웹셸 가운데 1개는 [[DRM]] 서버에 심겨 있었는데, 웹셸이 심어진 시기는 정황으로 볼 때 사건 발생 이전인 2018년 6월 전으로 추정되고 있고 더욱이 추가 발견되는 웹셸에 따라 6월보다 이전에 심어졌을 가능성도 있다고 한다. 이와 관련해서 한 보안전문가 : 웹 셸이 심어진 시간 간격은 사건 추적에 있어 매우 중요하다며, 한국을 타깃으로 공격했던 웹 셸이 발견된 건지, 웹셸 종류는 무엇인지 등이 사건을 풀어가는 중요한 실마리가 될 수 있고 일반적으로 공격자 입장에서는 위장 전술로 공개된 웹셸을 가져다 사용하는 경우가 많기 때문이라고 설명했다. 하지만 웹셸을 심은 서버나 시스템을 특정하기는 쉽지 않은 상황이다. 누구의 IP에서 어느 경로를 통해 심어졌는지 확인이 중요한데, 이를 위한 연결고리를 찾기가 쉽지 않기 때문이라는 것. 해킹사건을 조사하는 관계자들도 이 부분에 주목하는 것으로 알려졌다. 조사 당국 관계자 : DRM 서버에 접속한 IP를 분석하고 있지만, 방화벽 로그만으로는 시스템 특정하기가 쉽지 않다며 [[망분리]]를 하다 보면 IP가 바뀌기도 하므로 시스템을 특정하기가 어려운 게 현실이다. 컴퓨터가 확인돼야 [[스피어피싱]] 공격 여부도 확인될 수 있다고 했고, DRM 서버에 접속한 특정 컴퓨터가 발견되면 거기에서 발견된 웹셸을 바탕으로 어떻게 감염됐는지 알 수 있지만, 현재까지 웹셸을 심은 컴퓨터는 찾지 못했다며 컴퓨터를 찾아도 해커가 흔적을 다 지우고 나갔으면 추적하기가 쉽지 않다고 했다. 2018년 6월에는 빗썸을 사칭한 결제승인 문자가 나돌고 있어 이용자들의 특히 주의해야 하다. 2018년 7월 3일 빗썸 측 : 최근 빗썸을 사칭한 SMS 사례가 발생하고 있다며 빗썸을 사칭한 SMS는 빗썸페이 결제 내역을 보낸 후 해당 번호로 전화 연결을 유도해 보안 비밀번호, [[OTP]] 등과 같은 개인정보를 요구하고 있다며 공지했고, 2018년 7월 14일부터 암호화폐 전문 트레이딩 플랫폼 빗썸[[PRO]] 베타 서비스도 종료한다고 밝혔으며 이에 빗썸 관리자 : 향후 정식 서비스 오픈 계획 때문에 종료한다며 정식 서비스 일정은 추후 별도로 공지할 예정이라고 말하기도 했다. 이어서 거래종료 전까지 미체결 주문을 비롯한 모든 기존 주문은 취소할 것을 권장하며, 보유하고 있는 자산은 빗썸으로 이동 시켜 줄 것을 당부했고 자산이동 종료 이후, 남아 있는 자산은 시스템에서 순차적으로 빗썸으로 이동시킬 예정이라며, 베타 서비스 이용내역은 5년간 보관되며, 빗썸에서 조회할 수 있다고 했다.2018년 7월 3일까지 빗썸이 밝힌 암호화폐 피해 현황은 약 190억 원으로 당초 피해 규모인 350억에서 많이 감소했다. 이에 대해 빗썸 측 : 암호화폐 재단 및 전 세계 암호화폐 거래소와의 협업, 모든 암호화폐의 콜드월렛 보관(이동) 조치 등으로 탈취될 것으로 예상했던 금액 중 일부를 보존할 수 있었다며, 이번 사태가 종료될 때까지 추가 피해 방지와 피해 금액 회수 작업은 계속 진행할 예정이라고 했다. 또한, 추가 피해 방지를 위해 암호화폐의 입금 중단을 안내했지만, 이후에도 암호화폐 입금이 발생하고 있다며 암호화폐 입금 서비스는 시스템 전면 교체 등을 통해 충분한 안정성이 확보될 때까지 당분간 중단할 예정이라고 밝힌 기사 내용의 피해사례다.<ref> 김경애 기자, 〈[http://www.igloosec.co.kr/BLOG_Webshell%20%EB%B6%84%EB%A5%98%20%EB%B0%8F%20%EB%8C%80%EC%9D%91%EB%B0%A9%EC%95%88?searchItem=&searchWord=&bbsCateId=16&gotoPage=2 해킹사고 빗썸, 웹셸 다수 발견...결제승인 사칭 문자도 출현]〉, 《보안뉴스》, 2018-07-03 </ref>
 
*다음 2번째 기사 내용은 랜섬웨어와 동일한 기능을 가진 신종 웹 악성코드 '웹쉘'이 등장해 보안 시장에 경고등이 켜졌다는 내용이며, 웹 보안 전문업체 [[유엠브이기술]](대표 방윤성)은 2017년 6월 랜섬웨어 기능을 가진 신종 웹쉘을 수집해 분석한 결과로 이미 여러 해외 인터넷 사이트가 감염된 것으로 확인됐다고 밝혔다. 조만간 국내 사이트에도 유입될 것으로 예상돼 일명 '랜섬웨어 웹쉘'에 대비책 마련이 시급하다고 했다. 기존 웹쉘은 웹 서버에 명령을 수행할 수 있도록 작성한 웹 스크립트 파일로 웹 브라우저를 이용해 원격에서 서버 제어가 가능한 악성 파일을 뜻한다. 해커가 웹 서비스 취약점을 통해 웹 서버에 침투한 후 웹쉘을 업로드 해 시스템을 장악하면서 본격적인 공격을 시작한다. 이후 해커는 웹쉘을 이용해 추가로 악성 파일(랜섬웨어)을 업로드하고 시스템 명령어를 통해 실행하는 공격 방식을 사용한다. 이처럼 기존에는 업로드 기능과 시스템 명령으로 랜섬웨어를 추가 업로드 해 실행했지만 이번에 수집된 신종 웹쉘은 파일 자체가 랜섬웨어와 같은 기능을 한다. 신종 웹쉘은 방어가 쉽지 않다. 랜섬웨어는 실행형(exe, scr, vbs 등) 파일로 프로세스가 생성되면서 암호화를 진행하는 반면에 신종 웹쉘은 실행형 파일이 아닌 웹 서버 스크립트 파일로 동작하기 때문에 백신 등으로 탐지하는 데 한계가 있으며 피해자에게 금전을 요구하는 방식도 랜섬웨어와 유사하다. 기존 웹쉘은 웹 서버 시스템 파괴(웹 서비스 불가) 데이터베이스(DB) 접근을 통한 개인정보 탈취 홈페이지 변조 등 금전적 요구 없는 공격이 주를 이루었지만 새로운 유형의 웹쉘은 랜섬웨어와 동일하게 해커가 암호화할 때 사용되는 키(Key)값을 금전과 바꿀 수 있다. 신종 웹쉘이 최근 기승을 부리는 랜섬웨어 추세에 맞춰 진화된 것이고 유엠브이기술이 신종 웹쉘을 분석한 결과, 해커는 웹 브라우저를 통해 업로드 된 웹쉘에 접속하게 된다. 이후 암호화에 사용되는 키값 입력 창에 해커만 알고 있는 키값을 입력한 후 실행 버튼을 누르면 파일들을 암호화하면서 웹 설정 파일과 에러페이지를 자동으로 생성한다. 일반 사용자가 정상 페이지에 접속하면 해당 페이지가 암호화돼 있기 때문에 생성된 에러페이지를 보여주도록 웹 설정 파일까지 생성된다. 에러페이지 내용은 사이트가 록(lock)에 걸렸다는 메시지와 함께 해커 이메일 주소가 나타난다. 랜섬웨어와 같이 금전을 요구할 수 있다. 초기 웹쉘은 난독화 되어있지 않은 기본형부터 해커가 특정 사이트를 해킹 후 업로드 하여 암호설정을 통해 타인에게 계정정보를 파는 단계, 탐지 우회를 위해 코드를 변형(한줄코드)하거나 지속적인 기능을 추가하는 단계, 관리자가 알아볼 수 없도록 난독화하는 단계를 거쳤지만, 신종 웹쉘은 여기에서 그치지 않고 랜섬웨어와 닮은 단계로 진화한 것이다. 특히 인터넷을 통한 랜섬웨어 침해가 증가 추세여서 신종 웹쉘이 빠르게 확산할 우려가 높다는 거다. 방윤성 유엠브이기술 대표 : 최근 국내에서 랜섬웨어에 피해가 속출하는 등 해외 해커들의 표적이 되고 있다면서 신종 랜섬웨어 웹쉘이 확산할 조짐을 보여 국내 웹 보안 담당자들의 각별한 주의가 필요하다고 당부한 기사는 신종 웹셸의 위험성을 보여주는 거다.<ref> 서동규기자, 〈[https://news.v.daum.net/v/20170626142104817 랜섬웨어 꼭 닮은 신종 '웹쉘' 등장..인터넷 보안 비상등]〉, 《다음뉴스》, 2017-06-26 </ref>
 
  
 
{{각주}}
 
{{각주}}
116번째 줄: 135번째 줄:
 
* 서비스사업본부 보안분석팀 김미희, 〈[http://www.igloosec.co.kr/BLOG_Webshell%20%EB%B6%84%EB%A5%98%20%EB%B0%8F%20%EB%8C%80%EC%9D%91%EB%B0%A9%EC%95%88?searchItem=&searchWord=&bbsCateId=16&gotoPage=2 보안정보]〉, 《이글루시큐리티》, 2017-02-01
 
* 서비스사업본부 보안분석팀 김미희, 〈[http://www.igloosec.co.kr/BLOG_Webshell%20%EB%B6%84%EB%A5%98%20%EB%B0%8F%20%EB%8C%80%EC%9D%91%EB%B0%A9%EC%95%88?searchItem=&searchWord=&bbsCateId=16&gotoPage=2 보안정보]〉, 《이글루시큐리티》, 2017-02-01
 
* 〈[http://www.ssrinc.co.kr/upload/metieye.pdf 웹쉘]〉, 《에스에스알》
 
* 〈[http://www.ssrinc.co.kr/upload/metieye.pdf 웹쉘]〉, 《에스에스알》
* 〈[http://www.igloosec.co.kr/BLOG_Webshell%20%EB%B6%84%EB%A5%98%20%EB%B0%8F%20%EB%8C%80%EC%9D%91%EB%B0%A9%EC%95%88?searchItem=&searchWord=&bbsCateId=16&gotoPage=2 해킹사고 빗썸, 웹셸 다수 발견...결제승인 사칭 문자도 출현]〉, 《보안뉴스》, 2018-07-03
+
* 김경애 기자, 〈[https://www.boannews.com/media/view.asp?idx=70963&kind=0 해킹사고 빗썸, 웹셸 다수 발견...결제승인 사칭 문자도 출현]〉, 《보안뉴스》, 2018-07-03
* 서동규기자, 〈[https://news.v.daum.net/v/20170626142104817 랜섬웨어 꼭 닮은 신종 '웹쉘' 등장..인터넷 보안 비상등]〉, 《다음뉴스》, 2017-06-26
+
* 서동규 기자, 〈[https://news.v.daum.net/v/20170626142104817 랜섬웨어 꼭 닮은 신종 '웹쉘' 등장..인터넷 보안 비상등]〉, 《다음뉴스》, 2017-06-26
 +
* 김태형 기자, 〈[https://www.boannews.com/media/view.asp?idx=46468&skind=O 웹서버 해킹 주범 ‘웹셸’ 제거하기 대작전]〉, 《보안뉴스》, 2015-06-08
 +
* 아리밤, 〈[https://run-it.tistory.com/53 웹 쉘(Web shell)이란 무엇일까요 ?]〉, 《티스토리》, 2019-03-17
  
==같이보기==
+
==같이 보기==
 
* [[휴리스틱]]
 
* [[휴리스틱]]
 
* [[차단]]
 
* [[차단]]
 +
 +
{{보안|검토 필요}}

2021년 9월 10일 (금) 13:11 기준 최신판

웹셸(Web Shell)은 웹서버명령을 실행하여 관리자 권한을 획득해 행하는 공격 방법을 말한다.[1] 웹쉘이라고도 쓴다.

개요[편집]

웹셸은 웹 애플리케이션의 첨부파일에 대한 부적절한 신뢰와 불충분한 점검으로 인해 악의적인 원격 공격 코드가 웹 서버로 전송, 실행되는 방법을 말한다.[1] 클라이언트의 명령을 서버에서 실행시켜 주는 프로그램을 뜻하기도 하며, 웹 서버의 취약점을 이용하여 업로드된 후 다양한 웹셸 기능을 통해 해당 서버의 제어권을 장악하고 정보 탈취, 위변조, 악성 스크립트 삽입 등 각종 행위를 수행한다. 해커는 이를 통해 정상적인 서비스를 방해하고, 기업의 기밀 정보를 획득하고, 유출 데이터를 이용한 피싱 범죄 및 인접한 타 시스템을 공격한다. 웹셸은 ASP, JSP, PHP텍스트 형태로 작성되어 사용되는 경우와 기존의 소스코드에 웹셸이 삽입되는 경우가 있다. 대표적으로 이미 알려진 탑 100 웹셸을 비롯하여 신변종 웹셸이 지속적으로 유포되고 있다.[2] 웹셸 공격은 일반적인 웹 사이트 사용자들과 동일한 웹 서비스 포트(http(80, 8080), https(443))를 통해 이루어지기 때문에 탐지가 매우 어려워, 해킹 사고가 터지지 않는 이상 인지하기가 어렵다.[3]

발생 원인[편집]

웹셸이 구동되기 위해서는 웹 애플리케이션의 SSS와 CSS에 대한 이해가 필요하다. 홈페이지가 구동하기 위해서는 HTTP를 통해 WWW 상에서 정보를 주고받게 된다. 서버 측면 프로그램(Server-Side Program)에 해당하는 부분이 바로 PHP, JSP, ASP, ASP.NET에 해당하는 SSS를 의미하게 되고, HTML 등 클라이언트 사이드 프로그램에 해당하는 부분이 CSS를 의미하게 된다. SSS는 클라이언트가 파일을 HTTP로 요청하면 웹서버(스크립트 엔진)의 정보를 이용하여 데이터베이스 서버에 접속하여 사용자에게 동적 데이터를 전송하는 것을 기본으로 하며, 최근에는 클라이언트에서 전송한 내용의 동적 데이터 생성뿐만 아니라 세션을 통한 사용자 구분 및 사용자별 서비스 제공 등 다양한 기능을 제공하고 있다. 웹셸이 서버에서 동작하기 위한 발생 원인에 대해서는 파일 업로드 기능의 사용 여부로 분류할 수 있다. 파일 업로드는 클라이언트에 존재하는 파일을 서버에 업로드하는 기능을 의미한다. 일반적으로 스마트에디터, 다음에디터, 전자정부프레임워크 등의 오픈소스 게시판을 이용하거나 자체 개발한 파일 업로드 기능을 이용하여 웹셸 파일의 업로드를 시도한다. 파일 업로드를 이용하여 웹셸을 서버에 올리기 위한 방법으로는 SSS나 CSS에 존재하는 파일 확장자 필터링 우회, 이미지 파일 등 정상 확상자 파일 내에 공격 코드를 삽입하는 정상 확장자를 이용한 우회 등으로 분류할 수 있다. 파일 업로드 기능을 이용하지 않고 서버에 웹셸을 생성하기 위한 방법은 취약점이 있다. 아파치 스트럿츠2(Apache Struts2) 원격 임의 코드 실행 취약점을 이용하여 파일을 생성하는 방식이 대표적인 사례로 볼 수 있다.[4]

[4]
구분 상세 구분 사례 예시 파일 업로드
사용 여부
확장자 우회 파일 확장자 우회
  • 서버(Server Side Script) 우회
  • CSS(Client Side Script) 우회
취약점 정상 확장자를
이용한 우회
  • 하이딩 웹셸 백도우 코드 인 이미지 파일
웹/웹 애플리케이션 서버
  • 아파치 스트럿츠2 원격 임의코드 실행 취약점
  • IIS 파일 파싱 바이패스 공격
애플리케이션
  • 자바 0-day 취약성
  • RFI(Remote File Inclusion) 취약성
  • SQL 인젝션 취약성
  • RFI(Remote File Inclusion) 취약성​
에디터
  • 스마트에디터 2.3.3 : 이미지 파일 확장자 미체크
  • 스마트에디터 2.8.2.1 : 파일업로드 취약점
  • 스마트에디터 2.8.2.1 : 파일업로드 취약점 ​

종류[편집]

단독파일이 웹셸로 사용되는 경우는 크게 텍스트와 이미지 형태의 파일로 분류할 수 있다. 텍스트 기반의 웹셸 파일을 세 가지로 분류할 수 있다. 단일 명령어로 구성된 한줄웹셸, 다중 명령어로 구성된 다중웹셸, 공격 명령을 분할해서 보내면 웹셸 파일 내에서 조합해서 사용하는 다중분할웹셸로 분류된다. 한줄웹셸의 경우, 다중웹셸과 다르게 공격 명령을 수행할 수 있는 명령어 한 개를 단독으로 사용하기 때문에 웹셸을 구분할 수 있는 별도의 네이밍이 존재하지 않는다. 하지만 다중웹셸의 경우 ASPXSpy나 b374k-shell, JspSpy와 같이 웹셸에 시그니처를 통해서 웹셸을 구분하는 네이밍이 존재하게 된다. 이미지 기반의 웹셸의 경우에는 두 가지로 분류할 수 있다. 이미지 기반의 웹셸은 이미지 파일 마지막에 공격구문을 삽입하는 방식과 이미지 파일 속성에 공격구문을 추가하는 방식으로 분류된다. 이미지 파일 마지막에 공격 구문을 삽입하는 방식은 이미지 파일의 내용을 에디터에서 수정하거나 파일 업로드 공격 시도 시에 프록시 툴을 이용하여 변조가 가능하다. 이미지 파일의 속성에 공격 구문을 추가하는 방식으로 대표적인 방식은 PNG 파일의 이미지 픽셀 정보가 저장되는 IDAT 청크에 공격 구문을 저장하는 방식이다.[4]

[4]
구분 상세 구분 예시
단독파일 텍스트 단일

한줄웹셸
싱글라인 웹셸
원라인 웹셸
일구화목마(后门木马)​

ASP : <% eval request(“cmd”) %>
PHP :
JSP : <% ​
Runtime.getRuntime().exec(request.getParameter("cmd")%>

다중 1개의 파일에 다중
공격구문이 존재하는 경우

ASP : ASPyder, Zehir Asp Shell, ASPXSpy, ASPX Shell
JSP : JspSpy, JspSpyWeb, jFolder, shack2, devilzShell, JSP File Browser, jshell, JspWebshell
JSP : JspSpy, JspSpyWeb, jFolder, shack2, devilzShell, JSP File Browser, jshell, JspWebshell​

기타 다중분할웹셸 공격자가 전송하는 다중분할 피라미터를 웹서버에서 재조합하는 방식
이미지 기타 이미지 웹셸

이미지 파일 마지막에 공격 구문을 삽입하는 방법
이미지 파일 구조 내에 공격 구문을 삽입하는 방법

내용추가 텍스트 다중 기존에 존재하는 소스코드에
웹셸이 삽입되어 있는 형태
<scrpt langage="vbs scrpit" runat="server">
   If Request("1234")<>"" Then Session("1cxMarcos")
= Request("1234")
   If Session("1cxMarcos")<>"" Then Execute(Session("1cxMarcos"))
</scrpt >

솔루션[편집]

웹 보안과 관련된 법규 및 컴플라이언스는 증가되는 추세이며, 관련 항목은 점점 강화되어 웹 보안 솔루션 구축의 필요성이 요구되고 있다. 현재 공개된 웹셸의 탐지 및 점검 수단으로는 시큐어 코딩, 취약점 패치, 실행 권한 설정 등 다양한 방식의 선제적 대응 조치가 필요한 실정이다. 시큐어 코딩(Secure Coding)은 웹 애플리케이션 보안 취약점을 제거할 수 있으나, 비용이 많이 들고, 개발·구축·유지보수 전 과정에 대한 인력 리소스 부족으로 많은 기업이 어려움을 받고 있다. 신ㆍ변종 웹셸의 탐지는 현재의 시그니처 기반의 솔루션(방화벽, IPS, WAF)으로는 신종 웹셸, 보안장비 우회 기법 등 신규 해킹의 방어가 현실적으로 어려움이 있으며, 다양한 우회 기법은 나날이 발전하고 있다. 웹 서버로 송, 수신되는 모든 패킷(Packet)의 내용을 검사하고 차단하는 웹 방화벽(WAF)은 OWASP, 국정원 취약점 등의 다양한 웹 공격을 시그니처 기반으로 탐지, 차단하기 때문에 신변종 웹셸에 대한 완벽한 대응이 불가능하다. 또한 웹셸로 인한 해킹 피해를 최소화하기 위해서는 24시간 실시간 모니터링이 필요하고 정확하고 빠른 탐지와 신변종 웹셸에 대한 명확한 분석이 필요하다.[2]

셸캅[편집]

셸캅(ShelCop)은 해커가 웹서버의 취약점을 이용해 웹서버 관리자 계정을 획득한 후, 저장된 내부 자료를 유출하거나 백도어 프로그램을 설치하는 등 악의적인 목적으로 웹서버에 설치한 웹셸 프로그램을 탐지하고, 발견 시 실행을 방지하는 이지시큐어의 솔루션이다. 또한, 웹서버의 해킹을 사전에 방지하거나 해킹 발생 후, 정보 유출과 해킹의 거점으로 사용되는 2차 피해를 방지한다.[5]

메티아이[편집]

메티아이(MetiEye)는 휴리스틱 엔진을 탑재한 에스에스알의 웹셸 탐지 및 방어 솔루션이다. 모의 해킹 컨설팅에서 사용되는 자체 제작된 웹셸의 패턴 테스트 등 30여 명의 전문 보안 컨설턴트가 현장에서 수집하는 패턴으로 수시 업데이트를 진행하고 있는 것이 특징이다. 또한 알려지지 않은 웹셸과 우회 기법을 탐지하는 기능이 강점이다. 특히, 에이전트 기반의 다른 제품들과 달리 서버에 설치되지 않고 스크립트 기반으로 복사해서 붙여넣기로 가능하기 때문에 시스템 운영자들이 가장 우려하는 서비스 가용성이나 안정성에 전혀 부담이 없는 것도 특징이다.[5]

더블유 쉴드 안티웹셸[편집]

더블유 쉴드 안티웹셸(W-Shield Anti-webshell)은 인포섹의 웹 보안 관제서비스를 위한 웹셸 탐지 전용 솔루션이다. 다년간 웹셸과 악성코드로 인한 해킹 사고를 대응하면서 축적한 400여개의 웹셸 패턴 노하우와 난독화된 웹셸을 탐지하기 위한 암호해독(Decoding) 엔진을 통해 다양한 웹셸 공격에 대한 대응이 가능하며, 논 에이전트(Non-Agent) 방식으로 시스템 부하를 최소화하고 안정성을 확보했다. 특히 드라이브 바이 다운로드 공격 탐지 솔루션인 더블유쉴드 MDS(Malware Detection System)과 연동해 사용하면 더욱 효과적이다.[5]

쉘가드[편집]

쉘가드(Shell GUARD)는 대한민국에서 처음으로 웹셸 탐지 솔루션 휘슬(WHISTL)을 한국인터넷진흥원과 공동 개발했으며 현재 약 4,000여 기업에서 사용 중이다. 셸가드는 하나 이상의 웹서버에 대해 각각 웹셸 프로그램을 탐지하고 관리자는 중앙관리 및 조치가 가능하다. 특히, 업로드 파일에 대한 웹셸 프로그램을 실시간으로 탐지하고 원격 관리를 통한 즉각적인 대응이 가능하다.[5]

이지스 셸 모니터[편집]

이지스 셸 모니터(AEGIS Shell Monitor)는 웹 서버 해킹에 사용되는 악성 프로그램인 웹셸을 실시간 모니터링 하고 탐지하는 에이쓰리시큐리티의 신개념 웹 보안 관제서비스로 웹셸을 방어하는 웹서버 단의 최종 방어수단이다. 특히, 여러 웹서버에 침투한 웹셸을 실시간으로 감시하고 수천 대의 웹서버를 통합 관제하는 웹셸 탐지 솔루션으로, 웹(HTTP)을 통한 데이터베이스 유출 방지, 서버 조작-시스템 내부 명령 실행 방지, 웹셸을 통한 악성코드 설치 방지, 우회 공격을 통한 웹셸 삽입 및 수정 방지 등의 기능을 제공한다.[5]

웹프론트-K[편집]

웹프론트-K는 실시간 웹셸 탐지 전문 솔루션을 연동해 강화된 보안기능을 제공하는 파이오링크의 웹방화벽이다. 웹프론트-K는 웹서버 앞에 위치, 불법 요청·응답을 차단하기에 기본적으로 웹셸 공격에 대한 방어 기능이 있다. 하지만 웹방화벽 설치 전, 또는 웹방화벽을 우회하는 웹셸 공격 방어를 위해서는 전문 솔루션의 추가 도입이 필요하다. 탐지와 분석을 이원화해 고객의 웹서버 부하를 최소화하고, 다양한 분석 방법, 지속적 패턴 생성 및 분석, 난독화 기술 등을 결합해 탐지 신뢰도를 높인 것이 장점이다.[5]

사건[편집]

암호화폐 거래소 빗썸의 내부 서버 등에서 웹셸이 여러 개 발견된 사건이 있었다. 특히, 일부 웹셸은 2018년 6월 이전에 심어진 것으로 드러나 실제 해킹 공격은 빗썸이 공지한 2018년 6월 20일보다 이전에 발생했을 가능성이 제기되었다. 확인 결과로, 2018년 6월 20일 발견된 웹셸 가운데 1개는 DRM 서버에 심겨 있었는데, 웹셸이 심어진 시기는 정황으로 볼 때 사건 발생 이전인 2018년 6월 전으로 추정되고 있고, 더욱이 추가 발견되는 웹셸에 따라 2018년 6월보다 이전에 심어졌을 가능성도 있다고 한다. 이와 관련해서 한 보안전문가는 웹셸이 심어진 시간 간격은 사건 추적에 있어 매우 중요하다며, 국내를 타깃으로 공격했던 웹셸이 발견된 건지, 웹셸 종류는 무엇인지 등이 사건을 풀어가는 중요한 실마리가 될 수 있고 일반적으로 공격자 입장에서는 위장 전술로 공개된 웹셸을 가져다 사용하는 경우가 많기 때문이라고 설명했다. 하지만 웹셸을 심은 서버나 시스템을 특정하기는 쉽지 않다. [6]

랜섬웨어와 동일한 기능을 가진 신종 웹 악성코드 웹셸이 등장했다. 웹 보안 전문업체 유엠브이기술은 2017년 6월 랜섬웨어 기능을 가진 신종 웹셸을 수집해 분석한 결과로 이미 여러 해외 인터넷 사이트가 감염된 것으로 확인됐다고 밝혔다. 기존 웹셸은 웹 서버에 명령을 수행할 수 있도록 작성한 웹 스크립트 파일로 웹 브라우저를 이용해 원격에서 서버 제어가 가능한 악성 파일을 뜻한다. 해커가 웹 서비스 취약점을 통해 웹 서버에 침투한 후 웹셸을 업로드해 시스템을 장악하면서 본격적인 공격을 시작한다. 이후 해커는 웹셸을 이용해 추가로 악성 파일을 업로드하고 시스템 명령어를 통해 실행하는 공격 방식을 사용한다. 이처럼 기존에는 업로드 기능과 시스템 명령으로 랜섬웨어를 추가 업로드해 실행했지만 이번에 수집된 신종 웹셸은 파일 자체가 랜섬웨어와 같은 기능을 한다. 신종 웹셸은 방어가 쉽지 않다. 랜섬웨어는 실행형(exe, scr, vbs 등) 파일로 프로세스가 생성되면서 암호화를 진행하는 반면에 신종 웹셸은 실행형 파일이 아닌 웹 서버 스크립트 파일로 동작하기 때문에 백신 등으로 탐지하는 데 한계가 있으며 피해자에게 금전을 요구하는 방식도 랜섬웨어와 유사하다. 기존 웹셸은 웹 서버 시스템 파괴(웹 서비스 불가) 데이터베이스 접근을 통한 개인정보 탈취 홈페이지 변조 등 금전적 요구 없는 공격이 주를 이루었지만 새로운 유형의 웹셸은 랜섬웨어와 동일하게 해커가 암호화할 때 사용되는 키(Key)값을 금전과 바꿀 수 있다. 신종 웹셸이 최근 기승을 부리는 랜섬웨어 추세에 맞춰 진화된 것이고 유엠브이기술이 신종 웹셸을 분석한 결과, 해커는 웹 브라우저를 통해 업로드 된 웹셸에 접속하게 된다. 이후 암호화에 사용되는 키값 입력 창에 해커만 알고 있는 키값을 입력한 후 실행 버튼을 누르면 파일들을 암호화하면서 웹 설정 파일과 에러페이지를 자동으로 생성한다. 일반 사용자가 정상 페이지에 접속하면 해당 페이지가 암호화돼 있기 때문에 생성된 에러페이지를 보여주도록 웹 설정 파일까지 생성된다. 에러페이지 내용은 사이트가 록(lock)에 걸렸다는 메시지와 함께 해커 이메일 주소가 나타난다. 랜섬웨어와 같이 금전을 요구할 수 있다. 초기 웹셸은 난독화 되어있지 않은 기본형부터 해커가 특정 사이트를 해킹 후 업로드 하여 암호설정을 통해 타인에게 계정정보를 파는 단계, 탐지 우회를 위해 코드를 변형하거나 지속적인 기능을 추가하는 단계, 관리자가 알아볼 수 없도록 난독화하는 단계를 거쳤지만, 신종 웹셸은 여기에서 그치지 않고 랜섬웨어와 닮은 단계로 진화한 것이다. 특히 인터넷을 통한 랜섬웨어 침해가 증가 추세여서 신종 웹셸이 빠르게 확산할 우려가 높다.[7]

각주[편집]

  1. 1.0 1.1 웹 셸〉, 《네이버 지식백과》
  2. 2.0 2.1 웹쉘〉, 《에스에스알》
  3. 아리밤, 〈웹 쉘(Web shell)이란 무엇일까요 ?〉, 《티스토리》, 2019-03-17
  4. 4.0 4.1 4.2 4.3 서비스사업본부 보안분석팀 김미희, 〈보안정보〉, 《이글루시큐리티》, 2017-02-01
  5. 5.0 5.1 5.2 5.3 5.4 5.5 김태형 기자, 〈웹서버 해킹 주범 ‘웹셸’ 제거하기 대작전〉, 《보안뉴스》, 2015-06-08
  6. 김경애 기자, 〈해킹사고 빗썸, 웹셸 다수 발견...결제승인 사칭 문자도 출현〉, 《보안뉴스》, 2018-07-03
  7. 서동규 기자, 〈랜섬웨어 꼭 닮은 신종 '웹쉘' 등장..인터넷 보안 비상등〉, 《다음뉴스》, 2017-06-26

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 웹셸 문서는 보안에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.