
strelka v1.0.2
엔터프라이즈 규모의 실시간 컨테이너 기반 파일 스캐닝
Strelka는 위협 헌팅, 위협 탐지 및 사고 대응에 사용되는 실시간 컨테이너 기반 파일 스캐닝 시스템입니다. 원래 Lockheed Martin의 Laika BOSS 및 유사 프로젝트(참조: 관련 프로젝트)의 설계를 기반으로 하며, Strelka의 목적은 엔터프라이즈 규모에서 파일 추출 및 메타데이터 수집을 수행하는 것입니다.
Strelka는 몇 가지 중요한 측면에서 자매 프로젝트와 다릅니다:
- 핵심 코드베이스는 Go와 Python3.10+입니다.
- 서버 구성 요소는 배포의 용이성과 유연성을 위해 컨테이너에서 실행됩니다.
- Windows, Mac, Linux용 OS 네이티브 클라이언트 애플리케이션
- 크로스 플랫폼, 크로스 언어 지원을 제공하는 라이브러리 및 형식을 사용하여 구축되었습니다.
특징
Strelka는 모듈식 데이터 스캐닝 플랫폼으로, 사용자나 시스템이 파일을 제출하여 파일 콘텐츠 및 메타데이터를 분석, 추출 및 보고할 수 있도록 합니다. SIEM과 결합하면 Strelka는 데이터를 집계하고 알림을 제공하며 분석가가 직접 데이터를 수집하거나 시간 소모적인 파일 분석을 수행하지 않고도 환경을 더 잘 이해할 수 있는 기능을 제공합니다.

빠른 시작
Strelka를 통해 파일을 실행하는 것은 간단합니다. 이 섹션에서는 일회성 분석을 위해 Strelka의 추출 및 분석 기능을 시연합니다.
엔터프라이즈 환경에서 Strelka를 올바르게 빌드하고 배포하는 방법에 대한 자세한 내용은 문서를 검토하십시오.
1단계: 필수 구성 요소 설치
# Ubuntu 23.04
sudo apt install -y wget git docker docker-compose golang jq && \
sudo usermod -aG docker $USER && \
newgrp docker
2단계: Strelka 다운로드
git clone https://github.com/target/strelka.git && \
cd strelka
3단계: 선호하는 YARA 규칙 다운로드 및 설치 (선택 사항)
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
4a단계: 사전 컴파일된 이미지 가져오기 및 Strelka 시작
참고: 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
4b단계: Strelka 빌드 및 시작
참고: 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
5단계: 분석할 파일 준비
Strelka가 분석하기를 원하는 악성코드 샘플 또는 다른 파일을 사용하십시오.
wget https://github.com/ytisf/theZoo/raw/master/malware/Binaries/Win32.Emotet/Win32.Emotet.zip -P samples/
6단계: Docker화된 oneshot을 사용하여 Strelka로 파일 분석
./strelka-oneshot -f samples/Win32.Emotet.zip -l - | jq
여기서 무슨 일이 일어나고 있나요?
- Strelka는 제출된 파일이 암호화된 ZIP임을 확인했습니다. (참조: taste.yara, backend.yaml)
- ScanEncryptedZip은 사전을 사용하여 ZIP 파일 비밀번호를 해독하고 압축 파일을 추출했습니다.
- 추출된 파일은 스캐너에 의해 다시 Strelka 파이프라인으로 전송되었고, Strelka는 추출된 파일이 EXE임을 확인했습니다.
- ScanPe는 EXE 파일을 분석하고 유용한 메타데이터를 출력에 추가했습니다.
- ScanYara는 제공된 규칙을 사용하여 EXE 파일을 분석하고 수많은 일치 항목을 출력에 추가했으며, 그중 일부는 파일이 악성일 수 있음을 나타냅니다.
다음 출력은 간결함을 위해 편집되었습니다.
{
"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")
Fileshot UI
Strelka UI는 제공된 컨테이너를 빌드할 때 사용할 수 있습니다. 이 웹 인터페이스를 통해 파일을 Strelka에 업로드하고 로컬에 저장되는 이벤트를 캡처할 수 있습니다.
http://localhost:9980/로 이동하여 strelka/strelka 로그인을 사용하십시오.

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

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