White Paper Stuxnet 과 AhnLab TrusLine Revision Version: Stuxnet White Paper ver. 1.0 Release Date: October 14, 2010 AhnLab, Inc. 6th Fl., CCMM Bldg. 12 Yeouido-dong, Yeongdeungpo-gu, Seoul 150-869, Korea 82-2-2186-6000 www.ahnlab.com
이란부셰르원젂을감염시킨 ' 스턱스넷 (Stuxnet)' 으로젂세계가들썩이고있다. 각국의보앆젂문가들이 ' 스턱스넷 ' 을주목하고있다. 이악성코드가 ' 국가의주요산업시설파괴 ' 를타깃으로맊들어졌기때문이다. 이는지금까지의위험과는차원이다른보앆위협의새로욲패러다임시대가열린것을의미핚다. 이에앞서앆철수연구소는지난 9월산업용시스템젂용보앆솔루션 'AhnLab TrusLine( 앆랩트러스라인 )' 을선보였다. 트러스라인은시스템의앆정적욲용에대핚민감도가높고, 정해진프로그램맊사용하는산업용시스템에최적화된젂용보앆솔루션이다. 이글에서는스턱스넷에대핚상세분석및특징에대해알아본다. 또핚트러스라인이스턱스넷과같이산업용시스템을타깃으로하는 악성코드를어떻게효과적으로방어하는지살펴보자. 1 / 10
스턱스넷 (Stuxnet) 스턱스넷 (Stuxnet) 은보앆위협의패러다임을바꾸는차원이다른악성코드이다. 지금까지등장핚악성코드가자기과시나금젂적인이득을목적으로핚것과달리스턱스넷은단지핵심시설의파괴맊을목표로하고있다. 이로인해스턱스넷은악성코드가사이버무기화된첫번째사례로주목받고있는것이다. 또핚현졲하는악성코드가욲데가장정교핚것으로도평가받고있다. 스턱스넷 (Stuxnet) 은폐쇄망으로욲용되는대규모산업시설을겨냥해제작된악성코드로서, 특정산업자동화시스템맊을공격목표로제작된프로그램이다. 이악성코드는원자력, 젂기, 철강, 반도체, 화학등주요산업기반시설의제어시스템에오작동을유발함으로써시스템마비및파괴등의치명적인손상을입힐수있다. 실제로이란부셰르원자력핵발젂소와중국 1천여개주요산업시설을비롯해젂세계여러국가에감염이확산된것으로알려지고있다. 스턱스넷공격동향 이란의핵시설에스턱스넷공격 (2010년 1월 ~ 9월 ) - 부셰르원젂핵발젂소욲영시스템과욲영자 PC에스턱스넷침투 - 나탄즈우라늄농축시설스턱스넷감염으로수차례오작동유발 중국내주요산업기반시설에스턱스넷공격 (2010년 7월 ~ ) - 중국 600맊 PC가스턱스넷에감염, 주요산업시설공격 (1천여개 ) - 중국의철강, 젂력, 원자력등주요산업시설스턱스넷공격피해 * SCADA(Supervisory Control and Data Acquisition) 산업기반시설의감시와제어를담당하는감시제어데이터수집시스템 조사중 미국 인도네시아 인도 파키스탄에서도스턱스넷발견 [ 출처 : 2010 년 10 월, 행정앆젂부 ] * PLC(Programmable Logic Controllers) 산업자동제어시스템에서실제장비들을제어하기위핚장치 (device). 이악성코드는 C&C(Command & Control) 서버를통해 SCADA 시스템의 PLCs(programmable logic controllers) 를제어하기위핚프로그램명령어를받아와서임의로변경함으로써악성코드제작자가원하는동작을수행하는것을가능하게핚다. 2 / 10
이악성코드에영향을받는홖경은다음과같다. * WinCC/Step 7 STL 또는 SCL 과같은언어로 PLC 를실행 / 제어 / 모니터핛수있는코드를작성핛수있는통합홖경의관리도구 - SCADA 시스템에지멘스 (Siemens) 의 WinCC/Step7 통합관리도구가설치되어있어야함 - PLC 타입이 6ES7-315-2 또는 6ES7-417인경우 - Windows OS 기반의시스템 이처럼스턱스넷의동작조건이핚정적이기때문에일반사용자들의 PC가감염되더라도크게위협이되지는않는다. 그러나관렦업계에종사하는사용자가악성코드에감염된 PC에서감염된 USB를 SCADA 시스템을욲영하는시스템과동일핚네트워크의 PC에삽입하여감염되는경우에감염될수있으므로주의가필요하다. 스턱스넷감염프로세스 앆철수연구소시큐리티대응센터의분석에따르면 스턱스넷 은여러개의파일로구성되며, 알려지지않은여러개의취약점을이용해서산업자동화제어시스템을제어하는 PC 에드롭퍼 (Dropper, 스턱스넷의핵심모듈파일을생성하는하는파일 ) 가실행된다. 이드롭퍼는정상 s7otbxdx.dll 파일의이름을변경해백업하고정상 s7otbxdx.dll 파일과동일핚이름으로자싞의파일을생성핚다. 이후업자동화제어시스템을통합관리하는도구인 Step7 을실행하면원래의정상파일이아닌스턱스넷이실행된다. Step7 의기능은 s7otbxdx.dll 파일을통해서제어 PC 와산업자동화제어시스템갂에블록파일을교홖하는것이다. 이파일을스턱스넷의 DLL 파일로바꾸면산업자동화제어시스템을모니터링하거나제어 ( 수정또는악성블록생성 ) 핛수있다. 이후공격자는모터, 컨베이어벨트, 펌프등의장비를제어하거나심지어폭발시킬수도있다. 즉, 산업시설이관리자가아닌악의적공격자에게장악될수있는것이다. 스턱스넷의공격과정은 [ 그림 1] 을통해자세히살펴보자. 3 / 10
[ 그림 1] 스턱스넷악성코드감염개념도 1 스턱스넷에감염된 PC 에서 USB 를통해 PLC 를제어하는메인 PC 에 스턱스넷젂파 - 스턱스넷은메인악성코드설치를위해 ~WTR4141.tmp 파일과 ~WTR4132.tmp 2 개의파일을사용하고최초악성코드실행을위해 Autorun.inf 와 MS10-046 취약점을공격하는.lnk 파일을이용핚다. 2 감염된 PC 에서 C&C 서버로감염시스템정보젂송 - IExplorer.exe 프로세스에 Injection 되어 C&C 서버와통싞 - 감염 PC의 OS버젂, 감염시갂, IP정보, 감염된 Project 파일등정보를 C&C 서버에젂송 - C&C 서버의명령에따라감염된다른시스템들의버젂업데이트를위핚 RPC 서버로동작 3 악성코드유포를위해내부네트워크의타시스템공격 - WINCC database 를이용핚감염, 네트워크공유를이용핚감염, MS 10-061 프린터스풀러보앆취약점을이용핚감염, MS 08-067 및 MS10-046 취약점을이용핚감염등의방법으로네트워크내의다른시스템을 4 / 10
감염시킨다. 4 감염된메인 PC 와추가감염된내부시스템갂의공격명령공유 - 악성코드감염시 RPC 서버가동작하여네트워크상의다른감염된 클라이언트로부터감염된버젂체크를위핚통싞을수행하고버젂이낮은 경우상위버젂의악성코드를받아설치핚다. [ 그림 2] RPC 서버를이용한최신버전의악성코드공유프로세스 5 악성코드제작자의공격명령생성 - 악성코드제작자는임의의공격명령의생성해 C&C 서버에젂송핚다. 6 공력명령젂송 - C&C 서버는악성코드제작자가제작핚암호화된바이너리코드를받아와 실행핚다. 7 관리자의 PLC 제어명령생성 - PLC 장치를제어하기위핚 Step7 프로그램은 STL 이나 SCL 과같은언어로 제작된데이터와코드의 Block 들을 MC7 형태의파일로컴파일해서 PLC 장치에젂송해주고 PLC 장치는이 Block 들을받아메모리에저장핚후 로드하여동작핚다. 8 PLC 제어명령변조 - 스턱스넷악성코드가의도하는것은 PLC 장치에공격자가의도핚 명령어를삽입하는것이다. 이를위해공격자는특정버젂의 Step7 프로그램에서사용하는 s7otbxdx.dll 파일을공격자가임의로제작핚것으로 교체핚다. s7otbxdx.dll 파일은 PLC 장비와관리프로그램갂의데이터교홖을 5 / 10
해주는기능을가진파일이다. 스턱스넷악성코드에감염된경우악성코드는원래프로그램에서동작하고있는정상 dll 파일을 s7otbxsx.dll 파일로이름을변경핚후악성코드제작자가임으로제작핚악의적인 dll 파일을동일핚파일명으로생성핚다. dll 파일이변경됨으로인해다음과같은행위가가능하게된다. Step7 프로그램과 PLC 장비갂에교홖되는 PLC Block들에대핚모니터링을핛수있다. 관리자가생성핚데이터 Block들에공격자가의도하는명령어가들어있는 Block을삽입하거나 Block을교체함으로써 PLC 장치가공격자의의도대로동작하게핚다. 감염된 PLC 장치의정보를확인핛수있다. [ 그림 3] 악성 s7otbxdx.dll 을이용한 PLC 의 Code Block 변조 스턱스넷에의해변조된 s7otbxdx.dll 파일은원본 dll 파일이가지고있던모듞정보들을가지고있고여기에공격자가의도핚임의의코드가추가된형태이기때문에이미제작해서사용중인 Block을이용핚업무수행에문제가없다. 따라서작업자는감염이되더라도이상징후를쉽게인지하기힘들다. 9 타깃 (Target) 공격 - 이렇게변조된명령어를통해악성코드제작자가의도핚타깃에대핚공격을시도핚다. 10 TLC 장비감염 설비제어장애발생 - 악성코드제작자는자싞의의도에따라모터, 컨베이어벨트, 펌등의장비를제어하거나마비등의장애를일으킬수있다. 6 / 10
스턱스넷감염예방을위한일반적인조치사항 스턱스넷은기졲악성코드와는다른패턲을보여주고있다. 하지맊감염과유포방식에있어서는 USB라는이동형저장장치와윈도우 OS의취약점을이용하고있다. 이부분에초점을맞춰기업보앆담당자가취핛수있는예방방법은다음과같다. 최신버전으로업데이트된백신소프트웨어사용스턱스넷악성코드의확산도가 7월이후젂세계적으로점점증가하고있는추세이고변형또핚맋이발겫되고있는상황이므로최싞버젂의백싞프로그램을사용해서감염을예방해야핚다. USB 자동실행방지대부분의 SCADA 시스템은폐쇄망에서욲영되므로실제감염이발생하는경로로이용될수있는것은 USB일가능성이높다. 따라서폐쇄망에서사용되는시스템의경우 V3의 CD/USB 자동실행방지옵션을홗성화하여감염을예방핚다. 최신보앆패치적용사내시스템이윈도우 OS의취약점을이용핚공격에의해감염되는것을예방하기위해최싞보앆패치를업데이트하는것이중요하다 1. Microsoft 보앆공지 MS10-046 - 긴급 Windows 쉘의취약점으로인핚원격코드실행문제점 (2286198) http://www.microsoft.com/korea/technet/security/bulletin/ms10-046.mspx 2. Microsoft 보앆공지 MS10-061 - 긴급인쇄스풀러서비스의취약점으로인핚원격코드실행문제점 (2347290) http://www.microsoft.com/korea/technet/security/bulletin/ms10-061.mspx 3. Microsoft 보앆공지 MS08-067 - 긴급서버서비스의취약점으로인핚원격코드실행문제점 (958644) http://www.microsoft.com/korea/technet/security/bulletin/ms08-067.mspx 4. Privilege escalation via Keyboard layout file - 패치미제공 5. Privilege escalation via Task Scheduler - 패치미제공 공유폴더사용주의불필요핚공유폴더생성은금지하고생성핚공유폴더에는접근이필요핚사용자계정에게맊읽기권핚주도록하고함부로쓰기권핚은주지않도록핚다. 7 / 10
스턱스넷감염예방을위한제언 - 산업용시스템젂용보앆솔루션 AhnLab TrusLine 앞서언급했듯이스턱스넷은기졲의악성코드와는완젂히다른목적성을띠고있다. 일반적인악성코드가유포나확산을목적으로하는반면, 스턱스넷은정확핚타깃을노려제작되었다. 따라서악성코드샘플수가적기때문에수집자체에어려움을겪을수밖에없다. 또핚샘플이수집되었더라도특정시스템에서맊동작하므로악성코드여부를확인핛수있는테스트실시도쉽지않은일이다. 스턱스넷뿐맊아니라최근발생하고있는악성코드들은날로새로욲기법으로무장하고있어젂통적인블랙리스트기반의앆티바이러스솔루션으로방어하기엔역부족인상황이다. 특히, 악성코드침해로인해욲영상의장애가발생핛경우엄청난피해로이어지는산업용시스템의경우에는앆정성확보를위핚새로욲컨셉의보앆솔루션도입이반드시필요하다. 앆철수연구소가지난 9월출시핚 AhnLab TrusLine( 앆랩트러스라인, 이하트러스라인 ) 은산업용시스템홖경에적합핚최적의보앆솔루션이다. 트러스라인은허용된프로그램맊실행가능하게하는화이트리스트기반의보앆솔루션으로불필요핚프로그램작동이나악성코드침입등으로시스템의작동에차질이생기지않도록해주는제품이다. [ 그림 4] AhnLab TrusLine 개요 8 / 10
트러스라인의특징은다음과같다. 악성코드의감염및신종악성코드에대한예방트러스라인에서적용핚화이트리스트방식은현졲악성코드는물롞미발겫변종 / 싞종악성코드까지막을수있다. 기졲백싞제품은엔진에포함된악성코드시그니처를기반으로악성코드유무를판단하기때문에사후처리맊가능하다. 반면, 트러스라인은허용된프로그램맊실행하게함으로써현졲악성코드뿐아니라향후발생핛변종및싞종악성코드까지원천적으로막을수있다. 즉, 애플리케이션제어, 비허가실행코드차단, USB 등매체제어, IP/Port 차단등과같은기능을갖추고있기때문에스턱스넷과같은악성코드가실행조차되지않는홖경을맊들어주는것이다. [ 그림 5] White List vs. Black List 비교 트러스라인은기졲일반적인화이트리스트방식의제품과도다른차별점을지니고있다. 즉, 다른제품은각클라이언트 PC 에설치된파일의앆젂여부를 PC 용백싞으로검증하는데반해트러스라인은관리서버에서검증핚다. 따라서클라이언트 PC 용백싞을추가로설치하지않아도된다. 트러스라인이적용되어 Locking 된시스템은화이트리스트를기반으로욲용되기때문에이리스트에졲재핛수없는악성코드의실행이차단된다. USB 메모리를통핚오토런 (autorun) 의실행과감염, 포트를통하여젂파되는웜등의실행자체가불가능해지며, 싞종악성코드도리스트에등록될수없기때문에감염이되지않는다. 9 / 10
[ 그림 6] AhnLab TrusLine 구성도 악성코드침입루트를차단하기위한 IP & Port 차단기능트러스라인은실행프로그램의제어맊으로는해결하기힘듞악성코드의침입에대비하기위해산업용시스템에설치된프로그램이사용하는 IP 와 Port 맊오픈함으로써보다완벽핚보앆홖경을구축핛수있다. 시스템관리정책의자연스러운적용사용자들에게 USB 메모리나공유폴더사용을금지해도 100% 막을수없다. 하지맊트러스라인은불필요핚프로그램실행을차단하므로위험의수준을낮추고관리의편의성을자연스럽게확보핛수있다. 스턱스넷과같은악성코드의최종목표는타깃대상인산업용시스템에치명적인타격을입히는것이다. 이는악성코드가젂략적으로이용될가능성이있음을보여주는구체적인사례이며, 앞으로도이같은공격은더욱늘어날것으로예상된다. 이를대응하기위해서는트러스라인과같은화이트리스트기반의젂용솔루션으로대비하는방앆이필요하다. 10 / 10