
파이썬 기반 악성코드 분석 샌드박스로, Sysinternals Procmon과 통합하여 런타임 지표를 자동으로 수집, 분석, 보고하며 YARA 스캐닝 및 IOC 생성을 수행합니다.
Noriben 멀웨어 분석 샌드박스
연락처 정보: @bbaskin on Twitter brian _at_ thebaskins _dot_ com
Noriben은 Sysinternals Procmon과 함께 작동하여 멀웨어의 런타임 지표를 자동으로 수집, 분석 및 보고하는 Python 기반 스크립트입니다. 간단히 말해, 애플리케이션을 실행하고 키를 누르면 샘플의 활동에 대한 간단한 텍스트 보고서를 얻을 수 있습니다.
Noriben을 사용하면 샌드박스처럼 멀웨어를 실행할 수 있을 뿐만 아니라, 멀웨어를 강제로 실행시키기 위해 특정 방식으로 수동으로 실행하는 동안 시스템 전체 이벤트를 기록할 수도 있습니다. 예를 들어, 다양한 명령줄 옵션이 필요한 애플리케이션이나 사용자 상호작용이 필요한 애플리케이션을 실행하는 동안 수신 대기할 수 있습니다. 또는 디버거에서 애플리케이션을 단계별로 실행하면서 시스템을 관찰할 수 있습니다.
Noriben은 멀웨어 분석을 위해 설계되었지만 일반 소프트웨어 애플리케이션을 감사하는 데에도 널리 사용되었습니다. 2013년에는 Tor 프로젝트에서 Tor 브라우저 번들에 대한 공개 감사를 제공하는 데 사용되었습니다.
아래는 VM 확인 멀웨어를 디버깅하면서도 샌드박스 결과를 얻을 수 있는 방법을 보여주는 비디오입니다 (마우스 포인터가 5픽셀 어긋나서 잘못 클릭한 장면 포함 :))
Noriben은 작동하기 위해 Sysinternals procmon.exe (또는 procmon64.exe)만 필요합니다. 시스템 활동에서 불필요한 노이즈를 줄이기 위해 수많은 화이트리스트 항목을 포함하고 있으므로 사전 필터링이 필요하지 않습니다 (하지만 사전 필터링은 많은 도움이 됩니다).
자세한 설명은 Black Hat 2015 Arsenal의 내 슬라이드 데크를 참조하세요. 그리고 더 자세한 블로그 게시물: http://ghettoforensics.blogspot.com/2013/04/noriben-your-personal-portable-malware.html
또한 매우 요청이 많았던 프런트엔드 운영자인 NoribenSandbox.py도 포함시켰습니다. 이 스크립트를 사용하면 게스트 VM 내에서 Noriben의 실행을 자동화하고 보고서를 검색할 수 있습니다. 현재 OSX에서 실행되지만 (향후 포팅 예정) 다음과 같은 작업을 담당합니다: 미리 정의된 VM 및 스냅샷 실행, 멀웨어를 VM에 복사, Noriben 및 멀웨어 시작, 미리 정해진 시간 대기, 결과를 ZIP으로 호스트에 복사, VM 스크린 캡처. --update를 사용하면 호스트에서 최신 Noriben을 자동으로 복사할 수 있으므로 스크립트를 변경할 때마다 새 스냅샷을 계속 만들 필요가 없습니다.
작동하는 모습을 보고 싶으신가요?
YARA 시그니처 파일 폴더가 있는 경우 --yara 옵션으로 지정할 수 있습니다. 새로 생성된 모든 파일은 이러한 시그니처로 스캔되며 결과가 출력 결과에 표시됩니다.
VirusTotal API가 있는 경우 "virustotal.api"라는 파일에 넣거나 (스크립트에 직접 포함) MD5 파일 해시를 VT에 자동 제출하여 바이러스 결과 수를 얻을 수 있습니다.
자동 무시할 MD5 목록(예: 모든 시스템 파일)을 추가할 수 있습니다. md5deep을 사용하여 텍스트 파일에 넣고 --hash 로 읽어들입니다. 하지만 이는 결국 변경 사항 아래에 포함됩니다.
샌드박스 사용을 위해 스크립트를 자동화할 수 있습니다. -t <초>를 사용하여 실행 시간을 자동화하고 --cmd "경로\exe"로 멀웨어 파일을 지정하면 멀웨어를 자동으로 실행하고 결과를 복사한 다음 새 샘플을 실행하기 위해 되돌릴 수 있습니다.
--generalize 기능은 절대 경로를 Windows 환경 경로로 자동 대체하여 더 나은 IOC 개발을 지원합니다. 예를 들어, C:\Users\malware_user\AppData\Roaming\malware.exe는 %AppData%\malware.exe로 자동 변환됩니다.
사용법:
--===[ Noriben v1.7.2
--===[ @bbaskin
usage: Noriben.py [-h] [-c CSV] [-p PML] [-f FILTER] [--hash HASH]
[--hashtype {MD5,SHA1,SHA256}] [--headless] [-t TIMEOUT]
[--output OUTPUT] [--yara YARA] [--generalize] [--cmd CMD]
[-d]
optional arguments:
-h, --help 이 도움말 메시지를 표시하고 종료합니다
-c CSV, --csv CSV 기존 Noriben CSV 파일을 재분석합니다
-p PML, --pml PML 기존 Noriben PML 파일을 재분석합니다
-f FILTER, --filter FILTER
대체 Procmon 필터 PMC를 지정합니다
--hash HASH 해시 화이트리스트 파일을 지정합니다
--hashtype {MD5,SHA1,SHA256}
해시 유형을 지정합니다
--headless 처리 후 VM에서 결과를 열지 않습니다
-t TIMEOUT, --timeout TIMEOUT
활동을 수집할 시간(초)
--output OUTPUT 출력 파일을 저장할 폴더
--yara YARA YARA 규칙이 포함된 폴더
--generalize 파일 경로를 환경 변수로 일반화합니다.
기본값: True
--cmd CMD 실행할 명령줄 (따옴표로 묶음)
-d, --debug 디버깅 활성화
Brian Baskin <문서 작성자 환영!>
Copyright 2015 Brian Baskin
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.