
엔터프라이즈 규모의 실시간 컨테이너 기반 파일 스캐닝
Strelka는 위협 헌팅, 위협 탐지 및 사고 대응에 사용되는 실시간 컨테이너 기반 파일 스캐닝 시스템입니다. 원래 Lockheed Martin의 Laika BOSS 및 유사 프로젝트(참조: 관련 프로젝트)의 설계를 기반으로 하며, Strelka의 목적은 엔터프라이즈 규모에서 파일 추출 및 메타데이터 수집을 수행하는 것입니다.
Strelka는 몇 가지 중요한 측면에서 자매 프로젝트와 다릅니다:
Strelka는 모듈식 데이터 스캐닝 플랫폼으로, 사용자나 시스템이 파일을 제출하여 파일 콘텐츠 및 메타데이터를 분석, 추출 및 보고할 수 있도록 합니다. SIEM과 결합하면 Strelka는 데이터를 집계하고 알림을 제공하며 분석가가 직접 데이터를 수집하거나 시간 소모적인 파일 분석을 수행하지 않고도 환경을 더 잘 이해할 수 있는 기능을 제공합니다.

Strelka를 통해 파일을 실행하는 것은 간단합니다. 이 섹션에서는 일회성 분석을 위해 Strelka의 추출 및 분석 기능을 시연합니다.
엔터프라이즈 환경에서 Strelka를 올바르게 빌드하고 배포하는 방법에 대한 자세한 내용은 문서를 검토하십시오.
# Ubuntu 23.04
sudo apt install -y wget git docker docker-compose golang jq && \
sudo usermod -aG docker $USER && \
newgrp docker
git clone https://github.com/target/strelka.git && \
cd strelka
rm configs/python/backend/yara/rules.yara && \
git clone https://github.com/Yara-Rules/rules.git configs/python/backend/yara/rules/ && \
echo 'include "./rules/index.yar"' > configs/python/backend/yara/rules.yara
참고: go build 과정을 건너뛰고 http://0.0.0.0:9980에서 Strelka UI를 사용하여 파일을 분석할 수 있습니다.
docker compose -f build/docker-compose-no-build.yaml up -d && \
go build github.com/target/strelka/src/go/cmd/strelka-oneshot
참고: go build 과정을 건너뛰고 http://0.0.0.0:9980에서 Strelka UI를 사용하여 파일을 분석할 수 있습니다.
docker compose -f build/docker-compose.yaml build && \
docker compose -f build/docker-compose.yaml up -d && \
go build github.com/target/strelka/src/go/cmd/strelka-oneshot
Strelka가 분석하기를 원하는 악성코드 샘플 또는 다른 파일을 사용하십시오.
wget https://github.com/ytisf/theZoo/raw/master/malware/Binaries/Win32.Emotet/Win32.Emotet.zip -P samples/
./strelka-oneshot -f samples/Win32.Emotet.zip -l - | jq
다음 출력은 간결함을 위해 편집되었습니다.
{
"file": {
"depth": 0,
"flavors": {
"mime": ["application/zip"],
"yara": ["encrypted_zip", "zip_file"]
},
"scanners": [
"ScanEncryptedZip",
"ScanEntropy",
"ScanFooter",
"ScanHash",
"ScanHeader",
"ScanYara",
"ScanZip"
]
},
"scan": {
"encrypted_zip": {
"cracked_password": "infected",
"elapsed": 0.114269,
"total": {"extracted": 1, "files": 1}
}
}
}
{
"file": {
"depth": 1,
"flavors": {
"mime": ["application/x-dosexec"],
"yara": ["mz_file"]
},
"name": "29D6161522C7F7F21B35401907C702BDDB05ED47.bin",
"scanners": [
"ScanEntropy",
"ScanFooter",
"ScanHash",
"ScanHeader",
"ScanPe",
"ScanYara"
]
},
"scan": {
"pe": {
"address_of_entry_point": 5168,
"base_of_code": 4096,
"base_of_data": 32768,
"checksum": 47465,
"compile_time": "2015-03-31T08:53:51",
"elapsed": 0.013076,
"file_alignment": 4096,
"file_info": {
"company_name": "In CSS3",
"file_description": "Note: In CSS3, the text-decoration property is a shorthand property for text-decoration-line, text-decoration-color, and text-decoration-style, but this is currently.",
"file_version": "1.00.0065",
"fixed": {"operating_systems": ["WINDOWS32"]},
"internal_name": "Callstb",
"original_filename": "NOFAstb.exe",
"product_name": "Goodreads",
"product_version": "1.00.0065",
"var": {"character_set": "Unicode", "language": "U.S. English"}
}
},
"yara": {
"elapsed": 0.068918,
"matches": [
"SEH__vba",
"SEH_Init",
"Big_Numbers1",
"IsPE32",
"IsWindowsGUI",
"HasOverlay",
"HasRichSignature",
"Microsoft_Visual_Basic_v50v60",
"Microsoft_Visual_Basic_v50",
"Microsoft_Visual_Basic_v50_v60",
"Microsoft_Visual_Basic_v50_additional",
"Microsoft_Visual_Basic_v50v60_additional"
],
"tags": [
"AntiDebug",
"SEH",
"Tactic_DefensiveEvasion",
"Technique_AntiDebugging",
"SubTechnique_SEH",
"PECheck",
"PEiD"
]
}
}
}
Strelka가 배포되어 사용자 환경에서 파일을 수집하고 있다면, 이러한 이벤트를 SIEM에 수집하고 있을 수 있습니다. 이 분석을 통해 의심스러운 YARA 태그와 일치하는 이벤트를 찾아내는 규칙을 작성하여 잠재적으로 악성인 파일에 대한 경고를 받을 수 있습니다.
scan.yara.tags:("Technique_AntiDebugging" && "SubTechnique_SEH")
Strelka UI는 제공된 컨테이너를 빌드할 때 사용할 수 있습니다. 이 웹 인터페이스를 통해 파일을 Strelka에 업로드하고 로컬에 저장되는 이벤트를 캡처할 수 있습니다.
http://localhost:9980/로 이동하여 strelka/strelka 로그인을 사용하십시오.

가장 일반적인 파일 형식(예: exe, docx, js, zip)에 대한 50개 이상의 파일 스캐너를 통해 Strelka는 사용자가 호스트, 네트워크 또는 엔터프라이즈의 파일에 대한 새로운 통찰력을 얻을 수 있도록 합니다. Strelka 자체는 탐지 엔진이 아니지만(YARA를 사용하기는 하지만), 의심스럽거나 악성 파일을 식별하기에 충분한 메타데이터를 제공할 수 있습니다. Strelka의 잠재적 사용 사례는 다음과 같습니다:

Strelka에 대한 더 많은 문서는 README에서 찾을 수 있습니다. 포함 내용:
기여를 위한 가이드라인은 여기에서 확인할 수 있습니다.
사용자는 최적의 성능을 위해 YARA 규칙을 사전 컴파일하고 런타임 중 발생할 수 있는 문제를 피하는 것이 좋습니다. 사전 컴파일된 YARA 파일을 사용하면 특히 대규모 규칙 집합이 있는 환경에서 로드 시간과 리소스 사용량을 줄이는 데 도움이 됩니다. Strelka 구성의 컴파일 옵션을 사용하여 사전 컴파일된 규칙 파일을 가리키도록 하십시오.
추가 문제는 트래커에서 bug 레이블이 지정된 이슈를 참조하십시오.
Strelka 및 관련 코드는 Apache 2.0 라이선스 조건에 따라 릴리스됩니다.