
strelka v1.0.2
Analyse de fichiers en temps réel, basée sur des conteneurs, à l'échelle de l'entreprise.
Strelka est un système d'analyse de fichiers en temps réel basé sur des conteneurs, utilisé pour la chasse aux menaces, la détection des menaces et la réponse aux incidents. À l'origine basé sur la conception établie par Laika BOSS de Lockheed Martin et des projets similaires (voir : projets connexes), l'objectif de Strelka est d'effectuer l'extraction de fichiers et la collecte de métadonnées à l'échelle de l'entreprise.
Strelka se différencie de ses projets frères à plusieurs égards importants :
- Le code de base est en Go et Python3.10+
- Les composants serveur s'exécutent dans des conteneurs pour la facilité et la flexibilité du déploiement
- Applications client natives pour Windows, Mac et Linux
- Construit avec des bibliothèques et formats permettant une prise en charge multiplateforme et multilingue
Fonctionnalités
Strelka est une plateforme d'analyse de données modulaire, permettant aux utilisateurs ou aux systèmes de soumettre des fichiers dans le but d'analyser, d'extraire et de rapporter le contenu et les métadonnées des fichiers. Couplé à un SIEM, Strelka est capable d'agréger, d'alerter et de fournir aux analystes la capacité de mieux comprendre leur environnement sans avoir à effectuer une collecte directe de données ou une analyse de fichiers chronophage.

Démarrage rapide
Exécuter un fichier via Strelka est simple. Dans cette section, les capacités d'extraction et d'analyse de Strelka sont démontrées pour une analyse unique.
Veuillez consulter la documentation pour les détails sur la façon de construire et déployer correctement Strelka dans un environnement d'entreprise.
Étape 1 : Installer les prérequis
# Ubuntu 23.04
sudo apt install -y wget git docker docker-compose golang jq && \
sudo usermod -aG docker $USER && \
newgrp docker
Étape 2 : Télécharger Strelka
git clone https://github.com/target/strelka.git && \
cd strelka
Étape 3 : Télécharger et installer les règles yara préférées (optionnel)
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
Étape 4a : Tirer les images précompilées et démarrer Strelka
Remarque : Vous pouvez ignorer le processus go build et utiliser l'Interface Strelka à http://0.0.0.0:9980 pour analyser des fichiers.
docker compose -f build/docker-compose-no-build.yaml up -d && \
go build github.com/target/strelka/src/go/cmd/strelka-oneshot
Étape 4b : Construire et démarrer Strelka
Remarque : Vous pouvez ignorer le processus go build et utiliser l'Interface Strelka à http://0.0.0.0:9980 pour analyser des fichiers.
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
Étape 5 : Préparer un fichier à analyser
Utilisez n'importe quel échantillon de malware, ou tout autre fichier que vous souhaitez que Strelka analyse.
wget https://github.com/ytisf/theZoo/raw/master/malware/Binaries/Win32.Emotet/Win32.Emotet.zip -P samples/
Étape 6 : Analyser le fichier avec Strelka en utilisant le oneshot dockerisé
./strelka-oneshot -f samples/Win32.Emotet.zip -l - | jq
Que se passe-t-il ici ?
- Strelka a déterminé que le fichier soumis était un ZIP chiffré (Voir : taste.yara backend.yaml)
- ScanEncryptedZip a utilisé un dictionnaire pour casser le mot de passe du fichier ZIP et extraire le fichier compressé
- Le fichier extrait a été renvoyé dans le pipeline Strelka par le scanner, et Strelka a déterminé que le fichier extrait était un EXE
- ScanPe a disséqué le fichier EXE et a ajouté des métadonnées utiles à la sortie
- ScanYara a analysé le fichier EXE en utilisant les règles fournies, et a ajouté de nombreuses correspondances à la sortie, certaines indiquant que le fichier pourrait être malveillant
La sortie suivante a été modifiée pour des raisons de concision.
{
"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"
]
}
}
}
Et ensuite ?
Si Strelka était déployé et ingérait des fichiers dans votre environnement, vous pourriez collecter ces événements dans votre SIEM. Avec cette analyse, vous pourriez écrire une règle qui recherche les événements correspondant aux tags yara suspects, vous alertant d'un fichier potentiellement malveillant.
scan.yara.tags:("Technique_AntiDebugging" && "SubTechnique_SEH")
Interface Fileshot
L'interface de Strelka est disponible lorsque vous construisez les conteneurs fournis. Cette interface web vous permet de télécharger des fichiers vers Strelka et de capturer les événements, qui sont stockés localement.
Accédez à http://localhost:9980/ et utilisez les identifiants strelka/strelka.

Utilisations potentielles
Avec plus de 50 scanners de fichiers pour les types de fichiers les plus courants (par exemple, exe, docx, js, zip), Strelka offre aux utilisateurs la capacité d'obtenir de nouvelles informations sur les fichiers présents sur leur hôte, réseau ou entreprise. Bien que Strelka ne soit pas un moteur de détection en soi (bien qu'il utilise YARA), il peut fournir suffisamment de métadonnées pour identifier des fichiers suspects ou malveillants. Voici quelques utilisations potentielles de Strelka :

Documentation supplémentaire
Plus de documentation sur Strelka se trouve dans le README, y compris :
Contribuer
Les directives pour contribuer se trouvent ici.
Problèmes connus
Problèmes de chargement des règles YARA
Il est conseillé aux utilisateurs de précompiler leurs règles YARA pour des performances optimales et éviter les problèmes potentiels lors de l'exécution. L'utilisation de fichiers YARA précompilés permet de réduire le temps de chargement et l'utilisation des ressources, en particulier dans les environnements disposant d'un grand nombre de règles. Assurez-vous d'utiliser l'option compilée dans la configuration de Strelka pour pointer vers le fichier de règles précompilé.
Autres problèmes
Consultez les problèmes étiquetés bug dans le suivi pour tout autre problème.
Projets connexes
Licence
Strelka et son code associé sont publiés sous les termes de la Licence Apache 2.0.