ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 악성코드 탐지 방법들
    security 2014. 1. 11. 21:49

    보안제품에 적용되는 악성코드 탐지 및 방어 기법들



    그림 출처 : 안랩 trust watch



    아이러니 한게 모든 소스는 공개되어야 한다고 하지만 동적 분석 툴이 오픈소스가 되어버리면, 악성코드 제작자들이 오픈소스 알고리즘을 분석하여 자신의 악성코드가 이를 우회할 수 있도록 해버린다..



    정적 분석 기반 -  시그니처 기반


    시그니처 탐지 기술은 이미 수집된 악성코드의 특징을 분석해 해당 악성코드를 탐지 하는 시그니처를 생성하는 것.


     AV(Anti-Virus) 스캔으로 기존 알려진 악성코드(known malware)를 판정하거나 파일 헤더 및 바이너리 내 문자열을 분석하는 등의 방법이 이용된다. 좀 더 전문적으로는 디버거를 통한 API 호출 관계 분석 등의 방법으로 악성코드 여부를 판정한다.

    안랩은 대규모 파일 DB를 중앙서버에서 관리하는 '스마트 디펜스' 기술을 개발해 6억 개 이상의 정상, 악성 파일 DB를 수집했다. 또한 이 파일 DB에서 500억 개 이상의 악성코드 특징을 추출해 이를 패턴화시켜 악성코드 'DNA '을 만들고 이 'DNA '을 통해 신종, 변종 악성코드를 진단하고 있다.



    ClamAV for Custom Malware Signatures

    YARA for Custom Malware Signatures

    Vscan for Custom Malware Signatures 

    참조 : http://blog.zeltser.com/post/4339793582/custom-signatures-for-malware-scan


    단점 : 새로운 exploit 에 대해 방어가 어렵다. 

    정적분석 기반을 우회하기 위한 packer가 많이 상용화 되어 있다.



    동적 분석 기반 - 에뮬레이터, sandbox



    가상화 기술은 보안 장비나 보안 소프트웨어 상에 가상의 실행 공간을 만들어 모든 의심 파일을 이 공간에서 실행하는 기술이다의심 파일을 사용자 PC에서 실제로 실행해 보기 전에 가상화 기반에서 먼저 실행함으로써 실제 사용자 환경을 보호한.



    장점 : 가상 hardware에서 간접적으로 동작하므로 실제 시스템에는 영향을 끼치지 않음

    단점 : 시스템 자원에 대한 소모가 크다.


     cf) Sandbox

    sandbox는 application application emulator로도 불린다. emulator와는 달리 실제 컴퓨터 시스템 상에서 프로그램을 실행시킨다. unknown 프로그램이 실행되면 CWMonitor.dll파일을 인젝션 시켜서 실행파일의 모든 절차를 추적한다. Windows API를 모두 후킹하여 수집된 정보와 리턴값들을 바탕으로 악성코드인지를 판별한다. 


    동적 분석 기반 - 행위 기반 탐지 기법


    악성코드가 하는 행위 자체를 분석


    운영체제의 변화가 생기는 것을 감지하기 위해서 분석 환경에서는 사용자 모드(user mode)와 커널 모드(kernel mode)에서 API 함수(function)를 후킹(hooking)하는 방식과 특정 이벤트 발생 시, 시스템에서 자동으로 호출하는 이벤트 알림 루틴(notification routine)을 모니터링하는 방식 등이 이용된다.

    해당 정보들을 바탕으로 실행 파일이 어떠한 순서로 실행되는지 모두 log로 남긴다. 그리고 악성코드의 실행 형태와 얼마나 유사한 행위를 하는지 측정한다. 해당 실행 파일이 악성코드로 진단되면 log값들을 기반으로 실행된 순서의 역으로 시스템을 복구한다.



    장점 : 알려지지 않은 악성코드의 실행을 막을 수 있다.

    단점 : false positive를 줄어야지

    참조 : http://acc.daetoo.com/secu_info_view.asp?list=/secu_info_list.asp&seq=9533&pageno=18&v_num=714



    최근읽었던 문서 중 더이상 행위 기반 탐지도 완벽하지 않다고 한다.

    ( 이전부터 malware가 현재 시스템이 가상환경임을 알아낼 수 있는 방법들이 여럿있다. system clock을 비교한다던지 여럿 방법이 있었던 것으로 기억한다.)



    동적 콘텐츠 분석


     [Special Report] 안랩 트러스와처, 차세대 능동형 보안 기술과 만난다

    http://acc.giro.or.kr/secu_view.asp?seq=21580


    안랩에서 자체적으로 개발한 분석 솔루션이다. 특허도 받았다고 한다.APT를 사전에 차단하자고 하는데..


    이 기술은 메모리(memory) 영역에서 어셈블리 코드(assembly code) 기반의 분석을 수행하는 기술


    악성코드 바이너리 디스어셈블하여 어셈블리어를 분석한 후, 응용프로그램(악성코드일수도) 동작시 메모리에서 비정상적인 코드가 실행되는지를 식별하는 것 같다. 




    suspicious mode와 candidate mode가 있다.

    쉘코드로 분기할 수 있는 모든 명령어의 주소마다 eip가 정상적인 메모리에 위치하나?

    candidate mode는 이전에 취약점에 이용된 적이 있는 명령어의 위치를 인식하는 것같다.

    Debugging Mode는 프로그램이 메모리에 load될때 Debug process를 삽입해서 비정상적인 메모리 영역으로의 이동/점프를 탐지한다.




    -  .doc, .pdf와 같이 비실행파일들에 대해서도 탐지가 가능하다.


    - ROP 막을 수 있다

    ① ROP 가젯이 발생 시킬 수 있는 모든 트리거를 모니터링
    ② ROP 방식을 이용해서 셸코드를 실행한다고 판단되는 메모리 영역 검사
    ③ 메모리 영역이 악성 셸코드라고 판단되면 악성으로 판단


    컬럼에서도 밝혔듯이 샘플도 몇초가 소요되며 대량 악성코드분석에는 조금 힘들것 같다.

    근데 여러모로 기존의 단점을 많이 커버할 수 있는 좋은 기술로 보인다.



    Q. 메모리 기반 공격은 막을지 몰라도, race condition, link attack이런 공격은 어떻게 방어할 수 있는가?




    클라우드를 이용한 평판 기반 탐지


    클라우드 컴퓨팅 기술 활용하게된 배경 : 악성코드에 대한 모든 데이터를 PC로 다운로드한 후, PC에서 처리하던 방식으로는 부하나 처리 속도 등의 문제로, 매 시간 수천 개씩 생성되는 신종 악성코드를 당해낼 수 없는 상황이라 해결책으로 클라우드 컴퓨팅 기술을 활용한 파일진단 기법이 적용되고 있는 것이다.


    클라우드 컴퓨팅 기술을 활용한 평판분석은 보안업체의 클라우드 서버를 통해 파일에 대한 평판 정보를 수집한다. 평판 DB란 얼마나 많은 사람들이 해당 파일을 다운로드 했는지, 파일이 발견된 지 얼마나 됐는지, 다운로드 소스가 어디인지, 기존 악성코드와 연관성이 있는지 등의 정보를 말한다

    PC에 어떠한 파일을 내려받으려 할 때, 해당 파일에 대한 평판 정보를 제공함으로써, 사용자가 악성파일을 다운로드할 확률을 낮춰주는 게 이 기술의 핵심이다.

    product : 시만텍의 '인사이트'..



     

     

    FAR(Flase Acceptance Rate) : 틀린데 맞다고 인식. 미탐 

    FRR(Flase Reject Rate) : 맞는데 틀리다고 인식. 오탐



    악성코드 트렌드


    표적 집중 : 특정 IP대역을 타깃으로 배포

    모듈화 : 공격 기능을 여러 파일로 분산시킨 모듈화된 모습

    암호화 : exploit tool kit을 통해 암호화된 형태로 배포

    다형성 : 악성코드 내부 구조, 내용물을 지속적으로 변화시켜 변종 생성

    크로스 플랫폼형 : 특정 OS에 국한되지 않고 어떠한 클라이언트 환경에서나 감염 가능

    제로데이 공격 : 취약점에 대한 패치가 제공되기 전에 공격 감행





    APT :

    http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?menu_dist=2&seq=20643

    http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?curPage=7&menu_dist=2&seq=21581&key=&dir_group_dist=0&dir_code

    http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?curPage=7&menu_dist=2&seq=21580&key=&dir_group_dist=0&dir_code=

    'security' 카테고리의 다른 글

    hash function  (0) 2018.10.28
    SSH 설치, keygen  (0) 2018.05.28
    assembly , sellcode만드는동안 유용했던 사이트  (0) 2016.04.09
    Linking attack (race condition )  (0) 2015.01.31
    난독화 방식  (0) 2014.01.16
Designed by Tistory.