Project Icon

strelka

基于容器的实时文件扫描系统 助力威胁检测与响应

Strelka是一款基于容器的实时文件扫描系统,专为威胁检测、威胁狩猎和事件响应而设计。该系统采用Go和Python3.10+开发,具备文件提取和元数据收集功能。Strelka内置50多种文件扫描器,能够分析常见文件类型,并为Windows、Mac和Linux提供原生客户端应用。通过与SIEM集成,Strelka可提供全面的文件分析和环境洞察能力。

Strelka 横幅

[发布][release]   |   [文档][wiki]   |   [拉取请求][pr]   |   [问题][issues]

[![GitHub 发布][img-version-badge]][repo] [![构建状态][img-actions-badge]][actions-ci] [![拉取请求][img-pr-badge]][pr] [![Slack][img-slack-badge]][slack] [![许可证][img-license-badge]][license]

Strelka 是一个实时、基于容器的文件扫描系统,用于威胁搜寻、威胁检测和事件响应。最初基于洛克希德·马丁公司的 Laika BOSS 和类似项目(参见:相关项目)的设计,Strelka 的目的是在企业规模上执行文件提取和元数据收集。

Strelka 与其同类项目在几个重要方面有所不同:

  • 核心代码库使用 Go 和 Python3.10+
  • 服务器组件在容器中运行,便于灵活部署
  • 为 Windows、Mac 和 Linux 提供原生客户端应用程序
  • 使用允许跨平台、跨语言支持的库和格式构建

功能

Strelka 是一个模块化的数据扫描平台,允许用户或系统提交文件以进行分析、提取和报告文件内容和元数据。结合 SIEM,Strelka 能够聚合、预警,并为分析师提供更好地了解其环境的能力,而无需直接进行数据收集或耗时的文件分析。

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:使用容器化的 oneshot 通过 Strelka 分析文件

./strelka-oneshot -f samples/Win32.Emotet.zip -l - | jq

这里发生了什么?

  1. Strelka 确定提交的文件是一个加密的 ZIP(参见:taste.yara backend.yaml
  2. ScanEncryptedZip 使用字典破解了 ZIP 文件密码,并提取了压缩文件
  3. 提取的文件被扫描器送回 Strelka 管道,Strelka 确定提取的文件是一个 EXE
  4. ScanPe 解析了 EXE 文件并在输出中添加了有用的元数据
  5. 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": "注意:在CSS3中,text-decoration属性是text-decoration-line、text-decoration-color和text-decoration-style的简写属性,但目前尚未完全实现。",
        "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": "美国英语"}
      }
    },
    "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用户界面

构建提供的容器时可以使用Strelka的用户界面。这个Web界面允许您将文件上传到Strelka并捕获事件,这些事件会在本地存储。

导航到http://localhost:9980/ 并使用登录凭证strelka/strelka。

Strelka UI

潜在用途

Strelka拥有超过50个针对最常见文件类型(如exe、docx、js、zip)的文件扫描器,为用户提供了获取主机、网络或企业文件新见解的能力。虽然Strelka本身不是一个检测引擎(尽管它确实使用了YARA),但它可以提供足够的元数据来识别可疑或恶意文件。Strelka的一些潜在用途包括:

Strelka用途

其他文档

更多关于Strelka的文档可以在README中找到,包括:

贡献

贡献指南可以在这里找到。

已知问题

加载YARA规则的问题

建议用户预编译他们的YARA规则以获得最佳性能,并避免在运行时可能出现的问题。 使用预编译的YARA文件有助于减少加载时间和资源使用,特别是在具有大量规则的环境中。 确保在Strelka配置中使用编译选项 指向预编译的规则文件。

其他问题

请查看问题跟踪器中标记为bug的问题以了解任何其他问题。

相关项目

许可

Strelka及其相关代码根据Apache 2.0许可证的条款发布。

Target横幅
[发布]:https://github.com/target/strelka/releases/latest "Strelka 最新发布 ➶" [问题]:https://github.com/target/strelka/issues "Strelka 问题 ➶" [拉取请求]:https://github.com/target/strelka/pulls "Strelka 拉取请求 ➶" [维基]:https://target.github.io/strelka/#/ "Strelka 文档 ➶" [仓库]:https://github.com/target/strelka "Strelka 仓库 ➶" [Slack]:https://join.slack.com/t/cfc-open-source/shared_invite/zt-e54crchh-a6x4iDy18D5lVwFKQoEeEQ "Slack(外部链接)➶" [Actions-CI]:https://github.com/target/strelka/actions/workflows/build_strelka_nightly.yml "Github Actions ➶" [PR]:https://github.com/target/strelka/pulls "Strelka 拉取请求 ➶" [许可证]:https://github.com/target/strelka/blob/master/LICENSE "Strelka 许可证文件 ➶" [Docker]:https://www.docker.com/ "Docker(外部链接)➶"
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号