<5BB5BFB8EDB4EB2D E4B5D C0A5BDA9C0C720BAD0BCAEB0FA20B4EBC0C020B9E6BEC82E687770>

Similar documents
untitled

*2008년1월호진짜

<4D F736F F F696E74202D20C0A5BDA9C5BDC1F6BDC3BDBAC5DB28BDA9C5A9B8B029BCD2B0B3C0DAB7E15F76312E32315FB5F0C4DCC7C3B7AFBDBA2E707074>

PowerPoint 프레젠테이션

untitled

Windows 8에서 BioStar 1 설치하기

PowerPoint Template

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

AhnLab_template

BEA_WebLogic.hwp

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

<BBE7B0EDB3EBC6AE5FC7E3BAEAB0D4C0D32E687770>

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

3) MySQL data 백업백업방법 : dump 파일로저장저장위치 : /backup/mysqldump 백업주기 : 시간별 (/etc/cron.hourly) 또는일별 (/etc/cron.daily) 보관기간 : 7 일백업스크립트 : 아래예제 6-1). 참조 4) 웹데이

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

Microsoft PowerPoint - 10Àå.ppt

Microsoft Word - php05.doc

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월

I. 서론 FOCUS 한국인터넷진흥원(KISA) 인터넷침해대응센터(KrCERT)는 다양한 방법으로 해킹사고를 탐지하고 있다. 인터넷침해대응센터 자체적으로 보유하고 있는 탐지체계 뿐만 아니라 시스템 담당자들이 직접 신고하는 신고체계 또한 해킹사고 탐지에 있어 중요한 역할

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

게시판 스팸 실시간 차단 시스템

<B8AEB4AABDBA2E687770>

< FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

untitled

Microsoft PowerPoint - aj-lecture1.ppt [호환 모드]

untitled

PowerPoint 프레젠테이션

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환

2 노드

웹개발을위한 ComponentOne 사용법 (2) 권대건 부산대학교컴퓨터공학과 Abstract 최근웹개발이활성화되면서전문가를위한여러가지 Tool 웹애플리케이션형태로제공하는경우가늘고있다. ComponentOne 은.NET 기반의 UI C

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

< FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

Microsoft Word - src.doc

하는 gd의예를들면, /usr/ports/graphics/php52-gd 에서설치해줄수있고, xml 처리를담당하는 xml 확장모듈은 /usr/ports/textproc/php52-xml 에서설치가능하다. 어느디렉토리에서제공되는지를알려면포트시스템의루트 (/usr/port

Apache 설치방법보기 Apache 웹서버에 SSL 를적용하기위해아래두항목이웹서버에설치되어있어야합니다. - Openssl 암호화라이브러리 - Mod_ssl 모듈 위두항목이웹서버에설치되어있다면개인키를생성하고생성된개인키를바탕으로 CSR 파일을생성합니다. 생성된 CSR 파

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

Microsoft PowerPoint - 07-EDU-Apache-9-1.ppt

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코

Linux SHELL

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft Word FCKeditor.doc

*2월완결

2009년 상반기 사업계획

슬라이드 1

슬라이드 1

로거 자료실

Apache( 단일도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

System Recovery 사용자 매뉴얼

Linux SHELL

#WI DNS DDoS 공격악성코드분석

The Pocket Guide to TCP/IP Sockets: C Version

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

작성자 : 기술지원부 김 삼 수

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - 5. 사용자 계정관리-1(2016-1학기).ppt [호환 모드]

Apache( 단일도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc

본보고서내용의전부나일부를인용하는경우에는반드시출처 [ 자료 : 한국인터넷진흥원인터넷침해대응센터 ] 를명시하여주시기바랍니다.

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

SUPEX Leadership 과정 개발완료(보고)

슬라이드 1

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) -

Microsoft Word - Windows_apahce_php_CUBRID2008

Keil Flexlm 라이선스 설명서

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

SKINFOSEC-CHR-028-ASP Mssql Cookie Sql Injection Tool 분석 보고서.doc

RedHat Linux Fedora Core 4 + APM 소스컴파일설치 김희균 [ 사전준비 : 리눅스시디, 리눅스설치공간준비와컴퓨터의 IP 주소와넷마스크, 게이트웨이주소기록 1. Linux 시디로부팅을한다. 2. Gra

Cloud Friendly System Architecture

Chapter 05. 파일접근권한관리하기

Slide 1

Windows Server 2012

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

SIGIL 완벽입문

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - 02-Shell-Programming

PowerPoint 프레젠테이션

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

Microsoft Word - CAE 클러스터 환경 구축-ABAQUS.doc

ApacheWebServer.hwp

Microsoft Word - php04.doc

목차 1. 개요 배경 파일정보 상세분석 SMB 취약점공격흐름 특징적인행위 대응

슬라이드 1

목차 백업 계정 서비스 이용 안내...3 * 권장 백업 정책...3 * 넷하드(100G 백업) 계정 서버로 백업하는 2가지 방법...3 * 백업서버 이용시 주의사항...3 WINDOWS 서버 사용자를 위한 백업서비스 이용 방법 네트워크 드라이브에 접속하여

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

Studuino소프트웨어 설치

SSL Strip Attack JAC (SemiDntmd) 이우승 semidntmd.tistory.com

WAS 의동작과 WEB, Servlet, JSP 엑셈컨설팅본부 /APM 박종현 웹어플리케이션서버란? 웹어플리케이션서버방식은웹서버가직접어플리케이션프로그램을처리하는것이아니라웹어플리케이션서버에게처리를넘겨주고어플리케이션서버가어플리케이션프로그램을처리한다. 여러명의사용자가동일한페

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

vRealize Automation용 VMware Remote Console - VMware

4 소스로부터 설치하기

Transcription:

기술문서 08. 10. 25. 작성 PHP 기반웹쉘의동작원리와공개웹쉘의기능분석및대응방안 작성자 : 동명대학교 THINK 정정홍 (zeratul621@naver.com) 1. 시작하면서 p. 2 2. 웹쉘의동작원리 p. 3 3. r57shell p. 5 4. kcwebtelnet p. 9 5. phpremoteview p. 10 6. 웹쉘대응방안 p. 12 동명대학교정보보호동아리 T H IN K

1. 시작하면서 웹쉘 (WebShell) 이란, 웹기반에서동작하는쉘프로그램을의미한다. 일반적으로 PHP, ASP, JSP 등과같은웹스크립트언어에서는웹서버에콘솔기반명령어를실행할수있는함수나문법을지원하고있는데, 이런기능을이용하여마치웹에서 SSH나 Telnet을사용하는것처럼쉘프로그램을만들어사용할수있다. 하지만, 누구든지접근이용이한웹환경에서쉘을사용할수있다는점때문에최근웹쉘은각종침해사고에악용되고있다. 만약어느웹사이트의게시판에파일을업로드할수있는권한이있고, 업로드기능에웹스크립트언어확장자 (*.php, *.asp, *.jsp, *.html 등 ) 에대한필터링이없다면공격자는웹쉘을업로드하여해당서버의권한을쉽게획득할수있다. 웹쉘을사용할수있게되면, 공격자는웹사이트내의코드를보거나, 개인정보를유출및변조, 그리고서버에백도어를심는등서버를공격자마음대로제어할수있다. 또한, 웹쉘은그특성상 1) 바이러스백신프로그램에서탐지를잘하지않기때문에 2) 서버관리자가 웹쉘을탐지해내기어렵다. 때문에웹쉘을이용한공격에의해침해사고를당했을경우, 그피해정도가 심각해질수있다. 본문서에서는 PHP 기반웹쉘의동작원리와인터넷상에공개되어있는 PHP 기반웹쉘들의기능을 알아볼것이다. 그리고그에대한대응방법과웹쉘을탐지해내는방법에대해알아보고자한다. 1) 정상적인웹프로그램에도시스템명령을실행하는코드가있을수있다. 2) 최신버전의 V3 나카스퍼스키등의몇몇백신프로그램에서는알려진웹쉘의탐지가가능하다. - 2 -

2. 웹쉘의동작원리 앞서 < 시작하면서 > 에서도언급하였지만, 웹쉘은기본적으로웹스크립트언어의시스템명령을실행 할수있는함수나문법을활용하여동작한다. 그렇다면, 시스템명령을실행하는함수와문법에는어떤것들이있을까? 웹서비스에널리쓰이는언어인 PHP 를예로들어보도록하자. PHP 에서는다음과같이시스템명령 어를실행할수있는함수를제공하고있다. - passthru() ( 참고 : http://www.php.net/manual/en/function.passthru.php) - system() ( 참고 : http://www.php.net/manual/en/function.system.php) 위함수의사용법은간단하다. 다음과같이 ls -laf 명령어를실행하는예제소스코드를작성하여간단한테스트를해보도록하자. <?php?> echo passthru("la -laf", $v); [ 그림 1] 시스템명령어를실행한화면 우리는위화면으로부터웹스크립트언어를이용하여시스템명령의실행이가능하다는것을알수 있다. 그렇다면, 이러한방식으로시스템명령어를실행하면어느유저의권한으로실행될까? 결론부터말하 자면실행중인웹서비스데몬의권한으로실행된다. 일반적으로 Apache 웹서버데몬은 nobody 유저의 - 3 -

권한으로실행되며, 우분투 Apache 웹서버의경우에는 www-data 유저의권한으로실행된다. 행여나 Apache 설치를잘못하여 root 권한으로 Apache 데몬이실행되고있다면매우위험하다. 그상태에서만약파일업로드나원격실행에취약한프로그램을사용하고있다면해당서버의미래는불보듯뻔할것이다. 하지만, nobody 권한으로웹서버가실행되고있더라도웹쉘을실행할수만있다면공격자가서버에 행할수있는수단은매우많다. 이와같은방법을이용하여공격자의명령어를실행하고, 해당결과를일목요연하게정리하여보여주는프로그램이바로웹쉘 (WebShell) 이다. 웹쉘은공격자의명령을실행하여결과만을보여주는단순한것에서부터서버정보를보여주고, 데이터베이스를조작하거나공격하는것등다양한종류의웹쉘이있다. 이러한웹쉘들은검색엔진에서검색하면손쉽게구할수있다 3). [ 그림 2] Google 검색엔진에서 webshell 이라는키워드로검색한화면 다음절부터는해커들사이에서널리사용되는웹쉘의기능과동작원리, 그리고대응및탐지방안 에대해서알아보도록하겠다. 3) 2008 년 10 월 25 일기준으로 Google 검색엔진에서 "webshell" 을검색하면약 335,000 개의결과가검색된다. - 4 -

3. r57shell 소개 [ 그림 3] r57shell 의실행화면 PHP 환경에서동작하는웹쉘이다. 단순히터미널환경을웹에서구현해주는정도를넘어서버의정보, 서버의상태, 서버사양등모든정보를한눈에볼수있는등강력한기능을제공한다. 이외에다양한데이터베이스를지원하며, DB 정보를열람하거나조작을가할수도있다. 특히, 공격에자주쓰이는기능들을정리하여편하게명령어또는스크립트로실행을할수있다는점이매력이다. 기본적으로러시아어로설정되어있지만, 간단한소스코드수정을통해영문으로사용할수있는기 능도지원한다. 사용환경 - 실행기반 : PHP - 지원데이터베이스 : curl, MySQL, MSSQL, PostgreSQL, Oracle 주요기능 1) 로그인기능 [ 그림 4] r57shell 의로그인기능 r57shell 은사용자인증기능을지원한다. 간단한소스코드수정을통해, r57shell 에인증사용자 와암호를설정할수있다. - 5 -

2) 서버정보열람기능 [ 그림 5] r57shell 로서버정보를열람한모습 r57shell 은서버내의다양한정보를열람할수있는기능을지원한다. phpinfo() 의실행결과, php.ini 설정파일정보, 현재서버에존재하는유저리스트등을열람할수있다. 따라서공격자는 웹서버의설정환경과사용자정보등을한눈에볼수있다. 3) 터미널 (Terminal) 기능 [ 그림 6] r57shell 의강력한터미널기능 r57shell 은보다강력한터미널기능을지원한다. 단순한시스템명령실행 / 결과출력정도를넘어 - 6 -

특정파일을편집하거나 4) 공격에자주쓰이는명령어나매크로를쉽게실행할수있도록제공한다. 또한공격자가원하는형태의파일을쉽게찾을수있는기능까지제공한다. 4) 파일업로드 / 다운로드기능 [ 그림 7] r57shell 의파일업로드 / 다운로드기능 r57shell은해당서버에파일을업로드 / 다운로드할수있는기능을제공한다. 로컬파일을업로드할수있는기능에서부터 FTP 서버에서업로드 / 다운로드하기, wget 명령어를사용하기등이가능하다. 심지어웹서버에 FTP 서버가있다면, FTP 서버에무차별대입공격 (bruteforce) 공격을할수있는기능까지있다. 5) 데이터베이스조작기능 [ 그림 8] r57shell 의데이터베이스조작기능 r57shell 의가장큰특징으로는데이터베이스를조작할수있는기능을지원한다는것이다. 기본적 으로 PHP 와함께널리쓰이는 MySQL 뿐만아니라, MSSQL, PostgreSQL, Oracle 등의 DB 까지조작 4) 물론파일을편집하고자할때에는해당파일이나디렉토리의권한 (Permission) 에영향을받는다. - 7 -

할수있다. 공격자는 r57shell 을이용하여 DB 에임의의쿼리문을실행하거나, 공격자가원하는 DB 를 dump 받을수있다 5). 5) 단, 해당데이터베이스의로그인가능한계정명과비밀번호를알고있어야조작이가능하다. - 8 -

4. kcwebtelnet 소개 [ 그림 9] kcwebtelnet 의실행화면 kcwebtelnet 은한국인개발자가제작하여배포한 6) 웹쉘프로그램이다. 명령어만을실행하고결과를 보여주는단순한기능만을지원하지만, 인터페이스가마치유닉스쉘의모습과매우흡사하고, 명령어를 실행하고결과를확인하기가편리하다는특징이있다. 사용환경 - 실행기반 : PHP 4.x 주요기능 1) 터미널 (Terminal) 기능대부분의웹쉘프로그램에서지원하는기능이다. 하지만, kcwebtelnet은유닉스쉘과흡사한터미널을제공해주며, 명령어실행폼에실행하고자하는명령어를입력하여엔터키를이용하여실행할수있기때문에정적인웹환경에서도마치동적인콘솔환경처럼웹쉘을다룰수있다. 6) kcwebtelnet 의소스코드를살펴보면개발자정보가나와있다. - 9 -

5. phpremoteview 소개 [ 그림 10] phpremoteview 의실행화면 phpremoteview 웹쉘은윈도우즈탐색기형태의인터페이스를제공해주는것이특징이다. Setup 메 뉴를통해웹쉘의글꼴, 색상등을변경할수있고, phpinfo() 의실행결과모습, 공격자가직접서버에 명령어를실행할수있는기능등을지원한다. 사용환경 - 실행기반 : PHP 주요기능 1) PHP 코드및쉘명령실행기능 [ 그림 11] phpremoteview 의 PHP 코드실행및명령실행기능 phpremoteview 는입력폼에 PHP 코드를입력받아실행하거나시스템명령을실행할수있는기 능을제공한다. 공격자는공격용소스코드를입력필드에입력하여쉽게서버를공략할수있다. - 10 -

2) 파일탐색및소스보기기능 [ 그림 12] phpremoteview 의파일탐색및소스보기기능 phpremoteview 는윈도우즈탐색기형태의파일탐색및소스보기기능을지원한다. 공격자는 웹서버의디렉토리구조를쉽게파악할수있고, 해당파일에해당하는링크를클릭하면파일의소 스코드를보여준다. 또한, 소스보기페이지에서해당파일의 HexDump 정보를보거나, 해당파일을편집또는다운 로드할수있는기능까지제공한다 ( 물론해당파일에대한쓰기권한이있어야한다 ). 3) 서버정보열람기능 [ 그림 13] phpremoteview 의서버정보열람기능 phpinfo() 함수를실행하여해당웹서버의서버정보를열람할수있다. - 11 -

6. 웹쉘대응방안 우리는지금까지웹쉘의동작원리와인터넷에공개된몇몇웹쉘의특징에대하여알아보았다. 이번 절부터는웹쉘의패턴을분석하여웹쉘의업로드를차단하는방법과웹쉘을탐지하는방법등에대해 알아보도록할것이다. 웹쉘차단하기웹쉘이공격자에의해업로드되는경로는다양하다. 웹쉘은주로웹프로그램의버그나취약점을통해서버에업로드되는경우가많다. 그중가장많이공격의경로로사용되는것은웹사이트의자료실기능 ( 파일업로드가가능한페이지 ) 이다. 만약웹사이트의파일업로드기능을이용하여확장자가 *.php, *.html 인파일을업로드할수있을 경우공격자는웹쉘을업로드하여웹서버의권한을획득할수있다. 따라서, 웹개발자는파일업로드 기능을구현할때, 웹스크립트언어를실행할수있는파일의업로드는필터링하도록한다. 파일업로드확장자필터링시에는다음과같이정규표현식을이용하여필터링하면효과적이다. // 업로드파일명필터링 if (preg_match("/^.*\.(php asp htaccess jsp html htm)$/i", $_FILES['file'][ name'])) exit; [ 예제 1] 정규표현식을이용한파일확장자필터링코드예제 또한 passthru(), system() 함수등을사용하는부분은공격자가 $_GET, $_POST 변수의조작을통하여 시스템명령어를실행할수있는지의여부를살펴보도록한다. ftp 관련함수가사용된부분도공격자가 이를이용하여공격자가웹쉘을원격의 FTP 서버에서받아올수있으므로주의깊게살펴보도록한다. 그리고첨부파일이존재하는디렉토리에있는파일들은웹스크립트엔진이해석하지못하도록제한한다면좀더강력한보안을기대할수있을것이다. 아파치웹서버의경우 httpd.conf 파일을열어다음과같은 Directory 지시자를이용하여파일첨부디렉토리의웹스크립트언어실행권한을제한할수있다. <Directory "/home/homepage/www/bbs/data"> </Directory> RemoveType.html.php.htm [ 예제 2] 아파치에서특정디렉토리의 PHP 실행권한을제한하는코드예제 웹쉘탐지하기 웹쉘은리눅스의 find 명령등을이용하여시스템명령을실행하는코드가있는지의여부를검사하여 웹쉘을탐지할수있다. 하지만, 최근에등장하는웹쉘들은소스코드를암호화하여제대로탐지를하지 - 12 -

못하도록하기도한다. 윈도우즈서버의경우에는최신버전의카스퍼스키백신이나 V3 백신등을이용하여웹쉘을탐지할수있다. 하지만, 리눅스의경우에는암호화된웹쉘을검사하기가까다로울수있는데, 이럴경우에는한국정보보호진흥원에서제공하는휘슬 (Whistl: Web Hacking Inspection Security Tool) 7) 을이용하면쉽게탐지할수있다. 휘슬은인터넷침해사고대응센터 (http://www.krcert.or.kr) 웹사이트에서휘슬사용신청서를다운로드 받아작성하여제출하면제공받을수있다. 다음은휘슬을이용하여웹쉘을검사한화면이다. [ 그림 14] 휘슬을이용하여웹쉘을탐지하는장면 7) 한국정보보호진흥원 (KISA) 에서제공하는웹쉘전문탐지프로그램이다. - 13 -