악성코드자동화분석을통한 인텔리전스 최우석선임연구원 cws@kisec.com
목차 악성코드및분석방법론동향 오픈소스라이선스 하이퍼바이저 허니팟프로젝트 쿡쿠샌드박스 다른바이너리자동화분석인텔리전스서비스 바이너리인텔리전스의한계 결론
악성코드동향 악성코드발생의고도화 3
악성코드분석방법론동향 악성코드분석방법론 - 기존 초동분석 상세분석 기초정적분석 기초동적분석 고급정적분석 고급동적분석 안티바이러스테스트 악성코드프로세스모니터링 파일포맷분석 악성코드프로그램디버깅 악성코드해시추출 네트워크활동모니터링 묵시적 DLL 링크및 API 분석 명시적 DLL 링크및 API 분석 팩커 / 난독화탐지 파일시스템변경사항분석 디스어셈블러를이용한흐름분석 메모리분석 악성코드문자열추출 레지스트리변경사항분석 디컴파일러를이용한흐름분석 숨겨지거나비활성화된기능분석 4
악성코드분석방법론동향 악성코드분석방법론 - 자동화 초동분석 상세분석 기초정적분석 기초동적분석 고급정적분석 고급동적분석 안티바이러스테스트 악성코드프로세스모니터링 파일포맷분석 악성코드프로그램디버깅 악성코드해시추출 네트워크활동모니터링 묵시적 DLL 링크및 API 분석 명시적 DLL 링크및 API 분석 구현확인 팩커 / 난독화탐지 파일시스템변경사항분석 디스어셈블러를이용한흐름분석 메모리분석 추가구현가능 악성코드문자열추출 레지스트리변경사항분석 디컴파일러를이용한흐름분석 숨겨지거나비활성화된기능분석 기능미구현 / 발견, 반자동화 5
오픈소스라이선스 라이선스동향 2016 오픈소스라이선스 Top 5 Other 14% GNU LGPL 2.1 6% BSD 3 6% Apache 2.0 15% MIT 25% 쿡쿠샌드박스 GNU GPL 2.0 & 3.0 34% 0% 5% 10% 15% 20% 25% 30% 35% 40% 6
오픈소스라이선스 오픈소스라이선스비교 라이선스링크배포수정특허비공개사용 라이선스재설정 상표 GNU GPL 자기자신비상업적가능비상업적가능가능가능비상업적가능가능 MIT 가능가능가능불가능가능가능불가능 Apache 가능가능가능가능가능가능불가능 BSD 가능가능가능불가능가능가능불가능 GNU LGPL 제한비상업적가능비상업적가능가능가능비상업적가능가능 7
하이퍼바이저 샌드박스 컴퓨터보안에서샌드박스는실행되는프로그램을분리하기위한보안메커니즘 디스크, 메모리공간에엄격한자원제어를통해서비스를제공 보통가상화를통해구현 가상머신 ( 하이퍼바이저 ) 샌드박스는가상머신으로많이구현 가상머신을구현하도록도와주는소프트웨어를하이퍼바이저로불림 8
하이퍼바이저 가상머신 ( 하이퍼바이저 ) 하이퍼바이저는 Type 1과 Type 2 방식이있음 하드웨어 하이퍼바이저 Type 1 하드웨어 호스트운영체제 하이퍼바이저 Type 2 운영체제 게스트운영체제 9
하이퍼바이저 가상머신 ( 하이퍼바이저 ) 쿡쿠샌드박스는물리적시스템으로구축하려면많은비용이필요함 호스트운영체제를리눅스계열로쓰기힘듬 Type 1을고려할수없으며, Type 1과 Type 2 호환성이좋지않음 ( 예, 하이퍼v) 이를해결하기위해중첩가상화 (Nested Virtualization) 기술을이용 - Intel VT-x 지원 (o) 이기술은 Type 2 중에 VM웨어가잘지원함 게스트운영체제 ( 우분투데스크톱 ) 하드웨어 호스트운영체제 ( 윈도우 10) 하이퍼바이저 Type 2 (VM 웨어 ) 게스트운영체제 ( 우분투서버 ) 하이퍼바이저 Type 2 ( 버추얼박스 ) 샌드박스 10
허니팟프로젝트 허니팟프로젝트요건 쉽게해커에게노출 취약한소프트웨어들로구성, 다양한상황에맞는구성요소 시스템에접근하는모든정보를감시및기록가능 프로젝트 프로젝트단위로운영 ( 허니넷, 허니팟 ) 클라이언트허니팟 허니클라이언트 (HoneyClient) 로불리기도함 클라이언트단위에서동작 주로인터넷보안에특화되어있음 11
허니팟프로젝트 클라이언트허니팟종류 높은상호작용클라이언트허니팟 실제환경과비슷한가상환경을구축하여운영 알려지지않은공격을탐지할수있음 성능편차가심함, 라이선스비용이큼, 구축시간의소모가큼 낮은상호작용클라이언트허니팟 시뮬레이션형태로운영 탐지및차단이빠름, 구축시간이빠름 알려지지않은공격을탐지할수없음 하이브리드클라이언트허니팟 높은, 낮은상호작용의단점을극복하기위해장점들만을이용 12
쿡쿠샌드박스 발전역사 RC1 Feb v0.32 Dec v0.3 Sep v0.42 Dec v0.5 Oct v1.1.1 Jan v2.0 Jan v2.0 RC2 Nov v0.2 Aug v0.41 Apr v1.1 Mar v1.2 Feb v0.1 Jul v0.4 Apr v0.6 Jan v1.0 Jan v2.0 2010 2011 2012 2013 2014 2015 2016 2017 Honey Project Google SoC Malwr Open New Website Blackhat 2013 Consultancy Service Rapid s Magnificent7 Malwr Reload Brucon 2013 Cuckoo Foundation 13
쿡쿠샌드박스 분석가능한파일 PE+, MSI, DLL files PDF documents Microsoft Office documents URLs and HTML files PHP scripts, CPL files Visual Basic (VB) scripts ZIP files, Java JAR, applet Python files 기타등등 14
쿡쿠샌드박스 동작원리 쿡쿠샌드박스 쿡쿠웹인터페이스쿡쿠코어샌드박스 분석요청 악성코드전달 분석정보레포트화 분석정보전달 15
쿡쿠샌드박스 장점 소스코드가공개 파이썬으로제작되어접합성이뛰어남 CLI 와 GUI 모드둘다제공하고있기때문에, 독립적인시스템으로운영이가능하고, 기능을추가혹은변형가능 api.py 라는유틸리티로 REST API 를제공받아어떤언어를사용하든 Cuckoo 의기능을붙일수있도록제공 현재까지지속적인버그패치및버전업그레이드를제공 사용자들과지속적인커뮤니케이션을유지하여새로운방향성, 버그패치, 시그니쳐업데이트등제공 샌드박스를다수개로구성할수있으며, 각각의시스템환경을다르게할수있음 16
쿡쿠샌드박스 단점 핵심기능은문서화가잘되어있으나자세하지않음 부가기능은문서화가되어있지않음 버전명시가안되어있어버전에따라달라지는운영을파악해야함 - 개선 문제가발생하면레포팅하거나직접소스코드를수정 서비스제작자가문제해결의지는있으나제작자선택사항임 문제가되는서비스나의미없는추가기능은동의없이사라질수있음 17
쿡쿠샌드박스 설치환경 Cuckoo Core Server Ubuntu 16.04 LTS Desktop 64 bit CPU 4 Core, Memory 4 GB Cuckoo DB Server Ubuntu 16.04 LTS Server 64 bit CPU 4 Core, Memory 4GB Sandbox Win7 SP1 32 bit CPU 1 Core, Memory 1024 MB Cuckoo Sandbox Application v 2.0.X 18
쿡쿠샌드박스 인프라 쿡쿠코어서버 ( 우분투데스크톱 ) 하이퍼바이저 Type 2 쿡쿠디비서버 ( 우분투서버 ) 호스트운영체제 하이퍼바이저 Type 2 기타운영서버 ( 우분투서버 ) 19
쿡쿠샌드박스 쿡쿠샌드박스에서사용하는기술 데이터베이스 스케쥴링 - RDBMS(SQLite, PostgreSQL, MySQL 등 ) 웹데이터 - NoSQL(MongoDB) 검색엔진 - ElasticSearch 지원하는하이퍼바이저 XenServer, VMware(ESX,vSphere, Workstation), KVM, Qemu, Virtualbox 물리샌드박스 - Fog Project 안드로이드샌드박스 - AVD 메모리분석 - 볼라티리티 (Volatility) 네트워크관련 - 스노트 (Snort), 수리카타 (Suricata), 모로크 (Moloch) HTTP 서버 - 장고 (Django), Werkzeug 20
쿡쿠샌드박스 쿡쿠샌드박스에서사용하는기술 행위분석 - 자체개발한트레이싱과후킹을이용한시스템분석에이전트 보고서 - HTML, PDF, JSON, 웹사이트 인텔리전스연동 - MISP 쿡쿠시스템관리도구 - ICINGA 안드로이드관련 - GooglePlay, Droidmon, ApkInfo, 바이러스토탈, Certification Pinning at PE 21
쿡쿠샌드박스 쿡쿠샌드박스에서사용하는기능 다양한악성코드용해시지원 - ssdeep, Imphash 전자메일첨부파일분석기능 - 2.0-RC2 에서언급 / 구현중 (?) 레터럴무브먼트분석지원 - 다수의샌드박스동시운영 2.0-RC1 에서언급 / 구현중 (?) 네트워크라우팅지원 - no 라우팅, drop 라우팅, dirty line, InetSim, Tor, VPN 등 ) / 구현되어있으나문서화되어있지않음 TLS/HTTPS 트래픽수집및복호화 - MITMProxy & HTTPReplay 를이용 / 구현되어있으나문서화되어있지않음 메모리베이스라인분석지원 - 구현되어있으나문서화되어있지않음 프로세스메모리에서 URL 추출 - 구현되어있으나잘동작하지않음 정적분석시그니처와동적분석시그니처제작 - YARA 와쿡쿠함수를이용 / 구현완료 악성행위수치화 - 동적분석시그니처를이용 / 구현완료 악성코드비교기능 - API 호출순서에의한비교 / 구현완료 22
쿡쿠샌드박스 분석데이터 시연 http://192.168.0.100:8000 23
다른바이너리자동화분석인텔리전스서비스 조샌드박스 - https://joesecurity.org/joe-security-products 무료 - 6 가지유형을분석하는기능을제공 File Analyzer, Document Analyzer, APK Analyzer, URL Analyzer, Yara Rule Generator, Mail Analyzer 유료 - 무료의모든기능을통합, 추가기능 (ios, Mac 등 ) 지원 JOESandbox Cloud 보고서샘플 - https://www.joesecurity.org/joe-sandbox-reports 하이브리드아날리시스 - https://www.hybrid-analysis.com/ API 를제공, OSINT 로사용하기좋으나개인또는독립형은구매필요 로그인후샘플다운로드가능 보고서샘플 - https://www.hybridanalysis.com/sample/37462679766ade74c154a103f34df496760bff59e659ff5e1c9b18017806fd3d? environmentid=100 24
바이너리인텔리전스의한계 인텔리전스목적 적을파악 ( 선별 ) 과거를통해미래를예측 ( 대응 ) 바이너리분석인텔리전스 바이너리에서사용하는다양한공격및응용기법을통계적으로다룰수있음 데이터마이닝을통해근본에가까운기법을파악할수있음 체계적으로악성코드를관리, 많은데이터가모이면연관관계분석가능 바이너리분석인텔리전스의한계 모든데이터는변조 / 위장가능하다는전제를인식 한계를해결하기위해최대한많은데이터를수집하는것이중요 서버, 클라이언트전체를다루어야더욱선명한정보를얻을수있음 - 바이너리의한계 하지만서버의침해를분석하거나정보를얻기위한권한이나수사권이없음 ( ㅠ. ㅠ ) 25
결론 악성코드초동분석은자동화분석이용을추천 500건의악성코드 > 자동화분석 > 10건의특별한샘플추출 > 상세분석 = 효율성 악성여부를파악하기힘들때자동화분석을추천 분석요청후간략한정보만으로쉽게추측이가능 예, 오토런, 파일시스템사용흔적, C2 통신이력, 바이러스토탈탐지내역등한눈에 분석에대한기초지식을크게요구하지않음 ( 도구의편리성 ) 오픈소스이기에기능의알고리즘을파악하여활용 API를이용하여기존시스템에접목하여활용 악성코드관련신기술을파악하기좋음 개선및기능강화할때마다다양한기술을접목시켜활용 여러참여자가다양한형태로변형하여공개 26
결론 27
Q & A
The End