Malware Chap. 6 Malicious Software 악성소프트웨어 (malware, malicious software) 피해자의데이터, 응용프로그램또는운영체제의기밀성, 무결성또는가용성을손상시키거나피해자를귀찮게하거나방해하려는의도로은밀하게시스템에삽입된프로그램 2 Classification of Malware Types of Malicious Software 악성소프트웨어분류기준 target 에도달하기위한확산및전파방식 target에도달한후수행되는동작및 payload 전파방식에따른분류 복제되지않는 malware trojans, spam e-mail 복제되는 malware viruses, worms 실행프로그램형태에따른분류 호스트프로그램을필요로하는것 virus 와같은기생코드 독립적인프로그램 worms, trojans, bots 맬웨어가대상시스템에도달하면맬웨어가수행하는페이로드작업에는다음이포함될수있습니다. 시스템또는데이터파일의손상 도둑질 / 시스템을 botnet 의일부로공격의좀비에이전트로만들기 시스템에서정보절도 / 키로깅 시스템에존재를숨기기기 3 4
Malware Evolution Malware Evolution 1980s Malware for entertainment (pranks) 1983: virus 1988: Internet Worm 1990s Malware for social status / experiments 1990: antivirus software Early 2000s Malware to spam Mid 2000s Criminal malware 5 6 Malware Targets Regional Threat Categories (Microsoft Security Intelligence Report 9) Platform % *nix (Linux, BSD) 0.052% Mac (OS X primarily) 0.005% Mobile (Symbian, WinCE) 0.020% Other (MySQL, IIS, DOS) 0.012% Windows (XP SP2, SP3, Vista, 7) 99.91% 7 8
Advanced Persistent Threats (APTs) 지능형지속위협 (APT) 비즈니스또는정치적으로선택된 target ( 정부단체, 기관, 기업 ) 에침입기술과 malware 를지속적으로적용함 주의깊은공격대상선정과장기간에걸친지속적이고은밀한침입노력이다른유형의공격과다름 특징 지능형 (Advanced) 다양한침입기술과악성코드이용 선택한대상의공격에적합하도록기술을주의깊게선택 지속 (Persistence) 성공기회를높이기위해오랜기간공격을가함 위협 (Threat) organized, capable, well-funded 공격자가선택대상을해치려는의도로선택대상에대해서위협 Viruses ( 전파 - 감염 ) 바이러스 : 스스로복제하여다른프로그램을감염시키는소프트웨어 바이러스복제루틴을포함하도록프로그램을수정함 복제하여다른 contents( 또는프로그램 ) 을감염시킴 네트워크환경을통하여쉽게확산됨 실행파일에첨부된바이러스는프로그램에허용된모든것을할수있음 프로그램이수행될때에첨부된바이러스가은밀히실행됨 특정운영체제와하드웨어플랫폼에대해수행 그들의세부사항과약점을이용함 초창기의바이러스는당시 PC 운영체제의사용자인증과접근제어기능부족에기인함. 9 10 Virus Components Virus Phases 감염메커니즘 바이러스가확산되고전파되는수단 infection vector라고함 trigger payload 가활성화되거나전달되는시기를결정하는사건 / 조건 logic bomb로알려짐 payload 전파이외의바이러스가수행하는부분 손상을포함하거나비악성이지만눈에띄는활동을포함할수있음 dormant phase virus is idle will eventually be activated by some event not all viruses have this stage propagation phase virus places a copy of itself into other programs or into certain system areas on the disk may not be identical to the propagating version each infected program will now contain a clone of the virus which will itself enter a propagation phase triggering phase virus is activated to perform the function for which it was intended can be caused by a variety of system events execution phase function is performed may be harmless or damaging 11 12
Virus Structure Compression Virus Logic 감염표시 길이검사로바이러스감염을발견을할수없도록실행파일을압축시켜서길이가같도록함 13 14 Virus Classifications Worms ( 전파 취약점이용 ) Target 에따른분류 boot sector infector file infector 실행파일 macro virus MS office, Adobe PDF 문서의매크로이용 multipartite virus 은닉전략에따른분류 encrypted virus 랜덤암호화키사용 stealth virus anti-virus 소프트웨어가감지하지못하도록설계 polymorphic virus ( 다형성 ) 기능적으로같지만내용은다른바이러스생성 metamorphic virus ( 변성 ) 감염될때에외형뿐만아니라, 동작도변경됨 Worm : 감염시킬더많은시스템을능동적으로찾는프로그램 감염된시스템은다른시스템공격을위한자동화된도구로사용 클라이언트-서버프로그램의소프트웨어취약점이용 네트워크연결을사용하여시스템간전파 공유매체를통한확산 USB drives, CD, DVD data disks 15 16
Worm Replication Target Discovery 전자메일, 메신저 첨부파일로전송되어수신 / 확인할때에실행됨 파일공유 USB 드라이브의자동실행기능이용하여복제 원격실행기능 네트워크서비스기능결함이용 원격파일접근 / 전송기능 원격로그인기능 Scanning (or fingerprinting) 네트워크웜전파를위한첫번째기능 감염시킬다른시스템을찾는것 Scanning strategies Random random IP 주소조사 많은양의 traffic 발생하여공격시작전에중단될수있음 Hit-list 잠재적취약 machine 수집후감염시킴 Topological 감염된시스템에포함된주소정보사용 Local subnet 방화벽안에서감염되면 local network 에서대상을찾음 17 18 Worm Propagation Model Slow start phase Fast spread sphase Slow finish phase 1.0 0.8 Fraction of hosts infected 0.6 0.4 0.2 Fraction of hosts not infected 0 Time 19 Figure 6.3 Worm Propagation Model 20
Worm Technology Code-Red Worm multiplatform multi-exploit ultrafast spreading On July 19, 2001, more than 359,000 computers connected to the I nternet were infected with the Code-Red (CRv2) worm in less than 14 hours Spread polymorphic metamorphic Zero-day exploit 21 22 Sapphire/Slammer Worm Witty Worm was the fastest computer worm in history doubled in size every 8.5 seconds infected more than 90 percent of vulnerable ~75K hosts within 1 0 minutes. reached its peak activity after approximately 45 minutes at which point the majority of vulnerable hosts had been infected World USA 23 24
Mobile Code 모바일코드 다양한플랫폼에서실행될수있는프로그램 원격시스템에서로컬시스템으로전송된후로컬시스템에서실행됨 ( 예 ) Java applets, ActiveX, JavaScript, VBScript Drive-By-Downloads 브라우저취약점이용 사용자가웹페이지를방문할때에사용자에게알림이나동의없이시스템에악성코드를다운로드하여설치 대부분의경우에활발하게전파되지는않음 웹브라우저, 이메일클라이언트 (MS outlook), PDF 뷰어등을목표로함 바이러스, 웜, 트로이목마를위한 mechanism 으로서흔히사용됨 모바일코드의취약점이용 25 26 Clickjacking user-interface (UI) redress attack( 구제공격 ) 이라고도함 마우스 click 을가로채어악용하는것 감염된사용자의 click 을수집하기위해공격자가사용하는취약성 사용자의컴퓨터설정을조정하여악성코드가있는웹사이트로자신도모르게사용자를보내어다양한일을하도록할수있음 Adobe Flash 또는 JavaScript 를사용하여공식적인버튼위 / 아래에공격을위한버튼을배치하여사용자가탐지하기어렵게함. 여러투명또는불투명 layer 를사용하여사용자가최상위페이지를클릭할때에다른페이지의버튼또는링크가클릭되도록속일수있음. 공격자가한페이지의클릭을가로채어다른페이지로이동하게함 유사한방법이 keystrokes 를 hijacking 하는데사용될수있음 사용자가 email 또는 bank account 에입력하는비밀번호가공격자가제어하는 invisible frame 에입력될수있음 Social Engineering 사용자의시스템이나개인정보를위태롭게하기위해사용자를 " 속이는것 (tricking)" spam email unsolicited bulk e-mail significant carrier of malware used for phishing attacks Trojan horse program or utility containing harmful hidden code accomplish functions that the attacker cannot access directly mobile phone trojans first appeared in 2004 target is the smartphone 27 28
Payload System Corruption System Corruption data destruction Chernobyl virus first seen in 1998, Windows 95/98 virus, 100만대이상손상 trigger 날짜에실행파일을감염시키고, 전체파일시스템을손상시킴 Klez mass mailing worm infecting Windows 95 to XP systems trigger 날짜에하드디스크파일을비움 랜섬웨어 (ransomware) 사용자데이터를암호화하고, 복구에필요한키를제공하는것에대한대가를요구함 PC Cyborg Trojan (1989) Gpcode Trojan (2006) WannaCry, Wanna Crypt (2017) 윈도우파일공유에사용되는 SMB 원격코드의취약점악용 29 real-world damage 물리적장비를손상시키려고시도함 Chernobyl virus rewrites BIOS code Stuxnet worm 지멘스산업제어시스템의소프트웨어를공격대상으로함 산업의장애를위해정교하게표적화된악성코드에대한관심을갖게함 logic bomb 특정조건이만족될때에 " 폭발 (explode)" 하도록설정된악성코드가포함된코드 데이터나파일전체를변경하거나삭제하여시스템손상을초래 30 Payload Attack Agents: Bots Remote Control Facility Bot 다른인터넷에연결된컴퓨터를비밀리에취하여, 공격을시작하고관리하는데사용함 bot 를만든시스템을추적하기어렵게함 Botnet 상호조정하는방식으로동작할수있는 bot 의집합 distributed denial-of-service (DDoS) attacks spamming 대량스팸메일발송 sniffing traffic 패킷검사 keylogging 키보드입력을캡쳐 spreading new malware 광고 add-on 및 BHO(browser helper objects) 설치 IRC chat networks 공격 online 설문 / 게임조작 bot 과 worm 을구별하는기능 worm 스스로전파하고활성화됨 bot 는초기에중앙 command-and-control(c&c) 서버네트워크에의해제어됨 원격제어기능을구현 전형적인수단으로 IRC 서버사용. bot 는서버의특정채널에가입하고수신메시지를명령으로처리함 최근의봇넷은 IRC 대신에 HTTP 와같은프로토콜을통해비밀통신채널을사용함. 분산제어메커니즘은단일장애를방지하기위하여 P2P 프로토콜을사용 31 32
Payload Information Theft Information Theft: Phishing keylogger 키보드입력 (keystroke) 를캡쳐 필터링메커니즘사용 원하는키워드에가까운정보만반환 login, password ( 자격증명정보 ) spyware 중요정보를키보드입력대신에그래픽입력으로대체함에따라서시스템의광범위한활동을모니터링하도록하여공격한시스템을전복시킴 브라우징기록과내용을모니터링 특정웹페이지요청을가짜 (fake) 사이트로전환 브라우저와관심있는특정웹사이트간에교환되는데이터를동적으로수정 Phishing = Private data + fishing 사회공학을이용하여사용자의신뢰를이끌어낸다. 신뢰할수있는소스로부터의통신으로가장하여 spam 메일에로그인페이지를모방한가짜웹사이트로연결되는 URL을포함 은행, 게임또는유사한사이트 사용자가자신의계정을인증해야하는긴급한조치가필요함을알림 캡처된자격증명을사용하여계정을악용 spear-phishing 공격자는수신인들을주의깊게조사. 수신자에게맞게전자메일을작성 전자메일송신자는다양한정보를제공하여신뢰를얻음 수신자의응답을통하여공격 33 34 Payload Stealthing: Backdoor, Trapdoor Stealthing: Rootkit backdoor 보안접근절차를통하지않고접근권한을주는은밀한프로그램진입점. maintenance hook 디버그또는테스트용으로프로그래머가사용하는백도어 응용프로그램에서 backdoor 를위한운영체제제어를구현하기어려움 Rootkit 시스템에대한은밀한접근을유지하기위해설치된 hidden programs의집합 관리자권한으로실행됨 공격자에게관리자권한이부여됨 Rootkit의특성및분류 Persistent 레지스트리, 파일시스템에저장 Memory based 지속성이없음 User mode user 모드에서 API 결과를가로채어수정 Kernel mode 커널모드에서 API 호출을가로챔 Virtual machine based External mode 정상동작모드바깥에서수행 35 36
System Call Table Modification Generations of Anti-Virus Software system call 테이블변경 system call 테이블 target 변경 first generation: simple scanners a malware signature 사용 알려진 malware 탐지에국한됨 second generation: heuristic scanners 경험적규칙을사용하여 malware 검색 다른방식으로무결성검사가있음 third generation: activity traps 감염프로그램의구조대신에동작을통해 malware 탐지 fourth generation: full-featured protection 다양한 anti-virus 기술을함께사용 scanning, activity trap 구성요소와접근제어기능을포함 37 38