8/11/2015

[LAIKABOSS]록히드마틴(Lockheed Martin)의 라이커보스(LAIKABOSS) 설치 및 사용/간단분석

최근 우주항공 및 방위산업체인 록히드 마틴(Lockheed Martin)사에서 악성코드 분석도구인 라이커보스(LaikaBOSS)를 오픈소스로 공개하였습니다. 이 툴은 록히드 마틴에서 3년 동안 사용된 툴이며 멀웨어 분석 시 유용하다고 합니다.



이 기사를 본 후 저는 바로 github 주소를 찾아 따로 메모해두었고, 간단하게 설치하여 동작을 확인할 수 있었습니다.

관련하여 록히드 마틴에서 제공하는 문서 주소는 아래와 같습니다.

http://lockheedmartin.com/content/dam/lockheed/data/isgs/documents/LaikaBOSS%20Whitepaper.pdf

LAIKABOSS 설치하기(Install LAIKABOSS)

라이커보스는 오픈소스로 공개되었으며 github를 통해 쉽게 다운로드가 가능합니다.

https://github.com/lmco/ 하위에 있습니다.

git clone 명령을 통해 clone 을 생성합니다.

# git clone https://github.com/lmco/laikaboss.git
(git이 설치되지 않았다면, apt-get 이나 yum을 통해 설치하시면 됩니다.)

해당 프레임워크는 ubuntu 기준으로 개발된 듯 합니다. 패키지가 우분투에서 제공하는 패키지이며, apt로 쉽게 설치가 가능합니다. (데비안에서는 의존성이 좀 걸리는듯합니다. 패키지가 없는것도 있구요..)

# apt-get install yara python-yara python-progressbar
# pip install interruptingcow
# apt-get install libzmq3 python-zmq python-gevent python-pexpect
# apt-get install python-ipy python-m2crypto python-pefile python-pyclamd liblzma5 # libimage-exiftool-perl python-msgpack libfuzzy-dev python-cffi python-dev unrar
# pip install fluent-logger olefile ssdeep py-unrar2 pylzma
# wget https://github.com/smarnach/pyexiftool/archive/master.zip
# unzip master.zip
# cd pyexiftool-master
# python setup.py build
# python setup.py install
# apt-get install jq

한줄명령(One line command)
apt-get install yara python-yara python-progressbar;pip install interruptingcow;apt-get install libzmq3 python-zmq python-gevent python-pexpect
apt-get install python-ipy python-m2crypto python-pefile python-pyclamd liblzma5 libimage-exiftool-perl python-msgpack libfuzzy-dev python-cffi python-dev unrar;
pip install fluent-logger olefile ssdeep py-unrar2 pylzma;wget https://github.com/smarnach/pyexiftool/archive/master.zip;unzip master.zip;cd pyexiftool-master;python setup.py build;python setup.py install;apt-get install jq;

이로써 설치가 완료되었습니다. laika 디렉토리 하위에 python 코드가 있습니다.

LAIKABOSS 실행 및 사용(Using LAIKABOSS)

일단 가이드가 될만한 문서를 아직 못찾았기 때문에 상세한 사용방법은 연구가 필요할 것 같습니다.
크게 3개의 파일로 나눠서 볼 수 있겠네요.

laika.py
입력한 파일에 대해 스캔 후 Report 를 제공합니다.
라이카보스의 핵심이며 객체모델 및 디스패치 로직을 포함하고 있습니다.


laikad.py
라이카보스를 데몬 형태로 돌립니다. 네트워크 서비스로 라이카 실행를 실행합니다.(서비스 or 데몬)

cloudscan.py
laikad가 실행중인 서버에 분석한 파일을 전송하는 명령입니다.

Command
# python laika.py  laika.py  | jq '.scan_result[] | { "file type" : .fileType, "flags" : .flags, "md5" : .objectHash }'
100%[###################################] Processed: 1/1 total files (Elapsed Time: 0:00:00) Time: 0:00:00
{
  "md5": "6305070a0e4ee027703528f2aa9efaa2",
  "flags": [
    "yr:suspicious_sig_1"
  ],
  "file type": []
}

laika.py 를 이용해 파일에 대한 분석이 가능합니다. jq 를 이용하여 보기 쉽게 파싱한 결과입니다.


대충 다른 Exe 파일(msf 로 생성)도 돌려봤는데. 확실히 데이터 양이 늘어나긴하네요..
jq를 이용해 파싱해서 분리하는게 보기 좋을듯합니다.

jq를 통해 파싱 처리

100%[#########################################################] Processed: 1/1 total files (Elapsed Time: 0:00:00) Time: 0:00:00
{
  "md5": "ebe65da1fdbdbd8729808974216f5c4b",
  "flags": [],
  "file type": [
    "pe"
  ]
}


록히드마틴이 제공한 명령 예시에 laikad와 cloudscan을 이용한 분석이 있습니다.

$ ./laikad.py

$ ./cloudscan.py ~/test_files/testfile.cws.swf | jq '.scan_result[] | { "file type" : .fileType, "flags" : .flags, "md5" : .objectHash }'
{
  "md5": "dffcc2464911077d8ecd352f3d611ecc",
  "flags": [],
  "file type": [
    "cws",
    "swf"
  ]
}
{
  "md5": "587c8ac651011bc23ecefecd4c253cd4",
  "flags": [],
  "file type": [
    "fws",
    "swf"
  ]
}

laikad.py 를 실행하여 서버 실행 후 cloudscan을 이용하여 swf 파일을 분석하여 서버에 업로드한 것 같습니다.

라이커보스의 장점은 세밀한 모듈화라고 합니다. 여러개의 모듈들이 각각의 분석을 진행하는 형태이고, 모듈을 만들고 관리하는 법이 쉽다고 합니다. 분석 스타일에 맞게 모듈을 추가하고 세분화 한다면 굉장히 좋은 툴이라고 생각됩니다.


HAHWUL

Security engineer, Gopher and H4cker!

Share: | Coffee Me:

0 개의 댓글:

Post a Comment