이 기사를 본 후 저는 바로 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 파일을 분석하여 서버에 업로드한 것 같습니다.
라이커보스의 장점은 세밀한 모듈화라고 합니다. 여러개의 모듈들이 각각의 분석을 진행하는 형태이고, 모듈을 만들고 관리하는 법이 쉽다고 합니다. 분석 스타일에 맞게 모듈을 추가하고 세분화 한다면 굉장히 좋은 툴이라고 생각됩니다.
![]() |
HAHWULSecurity engineer, Gopher and H4cker! |
0 개의 댓글:
Post a Comment