socprime/Uncoder_IO
GitHub: socprime/Uncoder_IO
Uncoder IO 是一款开源的检测工程 IDE 和规则翻译引擎,可将 Sigma 和 Roota 通用规则及 IOC 转换为多种 SIEM、EDR 和数据湖平台的特定查询语言。
Stars: 195 | Forks: 44
# 什么是 Uncoder IO(公测版)
:earth_americas: [English](README.md) [Українська](README_Ukrainian.md)
Uncoder IO 是其 SaaS 版本 https://uncoder.io 及其 AI 辅助版本 Uncoder AI 的开源版本。自 2018 年以来,Uncoder IO 一直是一个快速、私密且易于使用的 Sigma Rules 在线翻译器,确保用户的 100% 隐私。开源的 Uncoder IO 将应用场景扩展到以下方面:
- 将 Sigma Rules(一种用于 SIEM 系统的通用规则格式)翻译为特定的 SIEM、EDR 和 Data Lake 语言
- 将任何非二进制格式(如 PDF、文本、STIX 或 OpenIOC)的 IOC 封装为特定的 SIEM、EDR 和 Data Lake 语言
- 将 [Roota](https://github.com/UncoderIO/RootA/blob/main/README.md) Rules(新发布的集体网络防御语言)翻译为特定的 SIEM、EDR 和 Data Lake 语言。
Uncoder 由来自乌克兰、欧洲、美国、阿根廷和澳大利亚的检测工程师、威胁猎手和 CTI 分析师团队开发,旨在帮助他们更快、更好地完成日常工作以及夜间的网络防御爱好,并使其成果更容易共享,造福集体。

**目录:**
- [为什么选择 Uncoder IO](#heart_eyes_cat-why-uncoder-io)
- [支持的语言格式](#dna-supported-language-formats)
- [安装](#computer-installation)
- [如何使用](#mortar_board-how-to-use)
- [如何贡献](#bulb-how-to-contribute)
- [问题与反馈](#mailbox_with_no_mail-questions--feedback)
- [维护者](#wrench-maintainers)
- [鸣谢](#kissing_heart-credits)
- [许可证](#briefcase-licenses)
- [资源与有用链接](#book-resources--useful-links)
# :heart_eyes_cat: 为什么选择 Uncoder IO
## :pretzel: Roota 与 Sigma 翻译引擎
Uncoder IO 支持将 [Roota](https://github.com/UncoderIO/RootA/blob/main/README.md) 和 Sigma 规则自动翻译为多种 SIEM、EDR、XDR 和 Data Lake 格式。
- **Sigma** 是一种通用且开放的签名格式,允许您以直接的方式描述相关的日志事件。根据 SOC Prime 的下载和翻译统计数据,该格式已在 155 个国家/地区被超过 8000 个组织采用。
- **[Roota](https://github.com/UncoderIO/RootA/blob/main/README.md)** 是一种开源语言,支持直接在特定的 SIEM 语言中定义查询、供应商无关的关联语法、用于代码自动补全的 MITRE ATT&CK 14.0,以及基于 Amazon 的 OCSF 或 Sigma 的日志源分类自动补全功能。Roota+Uncoder 作为迈向全面网络安全语言兼容性的第一座桥梁,也许有一天,了解一种特定语言(如 SPL 或 KQL)或通用语言(如 Roota 或 Sigma)就意味着您已经掌握了所有语言的专家级知识。这样,您的复杂检测逻辑就可以通过自动化方式渲染为其他语言。如果原生规则或查询包含 Roota 或目标技术不支持的函数,这些函数将不会被翻译,并会在代码翻译中附加相应的注释。这样做是为了让专家们可以在了解源语言和目标语言的情况下手动完成翻译,或者使用 Uncoder AI 手动处理此类情况。如果说使用 Sigma 进行共享很容易,那么使用 Roota 进行共享则是自然而然且面向未来的。
## :pizza: Roota 与 Sigma 规则编辑器
Uncoder IO 支持内置的 Sigma 和 [Roota](https://github.com/UncoderIO/RootA/blob/main/README.md) 规则自动补全向导,通过最新的 MITRE ATT&CK 和日志源字典提供代码增强建议,从而简化规则创建过程。无论是否使用 AI,Uncoder 都致力于让编码变得更简单。
## :popcorn: IOC 查询生成器
Uncoder IO 充当一个开源的 IOC 封装工具,帮助 CTI 和 SOC 分析师以及威胁猎手直接从任何数字非二进制格式(简单复制粘贴网页、CSV、OpenIOC、PDF、STIX 等)中快速解析任意数量的 IOC,并将它们转换为准备好在选定安全分析平台中运行的、经过性能优化的 IOC 查询。由于危害指标 (IOC) 的共享受 TLP 监管,因此不建议在 Sigma 或 Roota 规则中共享它们,因为后者不属于威胁情报的一部分,因此可以轻松无国界地共享。然而,我们既需要 IOC 匹配,也需要威胁行为检测,因此 Uncoder IO 旨在以易于使用和直观的方式帮助解决这两个任务。
## :smile_cat: 完全隐私
Uncoder IO 可以在本地运行,无需互联网连接,从而支持物理隔离网络的运行。然而,我们建议定期检查并部署更新。同时,SaaS 版本依然通过无 cookie 追踪、无数据或代码记录、不与第三方共享来确保 100% 的隐私。即使提供了 Uncoder AI 功能选项,您也始终完全掌控自己的代码和数据。
# :dna: 支持的语言格式
[Roota](https://github.com/UncoderIO/RootA/blob/main/README.md) 和 Sigma Rules 可以翻译为以下格式:
- AWS OpenSearch Query - `opensearch-lucene-query`
- AWS Athena Query (Security Lake) - `athena-sql-query`
- Falcon LogScale Query - `logscale-lql-query`
- Falcon LogScale Rule - `logscale-lql-rule`
- Splunk Query - `splunk-spl-query`
- Splunk Alert - `splunk-spl-rule`
- Microsoft Sentinel Query - `sentinel-kql-query`
- Microsoft Sentinel Rule - `sentinel-kql-rule`
- Microsoft Defender for Endpoint Query - `mde-kql-query`
- IBM QRadar Query - `qradar-aql-query`
- CrowdStrike Query - `crowdstrike-spl-query`
- Elasticsearch Query - `elastic-lucene-query`
- Elasticsearch Rule - `elastic-lucene-rule`
- ElastAlert Rule - `elastalert-lucene-rule`
- Sigma Rule - `sigma-yml-rule`
- Chronicle Security Query - `chronicle-yaral-query`
- Chronicle Security Rule - `chronicle-yaral-rule`
- Graylog Query - `graylog-lucene-query`
- FortiSIEM Rule - `fortisiem-rule`
- LogRhythm Axon Rule - `axon-ads-rule`
- LogRhythm Axon Query - `axon-ads-query`
- Exabeam New-Scale EQL Query - `exabeam-eql-query`
- Exabeam New-Scale Analytics Rule - `exabeam-analytics-rule`
- Exabeam New-Scale Correlation Rule - `exabeam-correlation-rule`
基于 IOC 的查询可以生成以下格式:
- Microsoft Sentinel Query - `sentinel-kql-query`
- Microsoft Defender for Endpoint Query - `mde-kql-query`
- Splunk Query - `splunk-spl-query`
- CrowdStrike Endpoint Security Query - `crowdstrike-spl-query`
- Elastic Stack Query - `elastic-lucene-query`
- AWS OpenSearch Query - `opensearch-lucene-query`
- Falcon LogScale Query - `logscale-lql-query`
- IBM QRadar Query - `qradar-aql-query`
- AWS Athena Query (Security Lake) - `athena-sql-query`
- Chronicle Security Query - `chronicle-yaral-query`
- ArcSight Query - `arcsight`
- FireEye Query - `fireeye_helix`
- Graylog Query - `graylog-lucene-query`
- Logpoint Query - `logpoint`
- Qualys IOC Query - `qualys`
- RSA NetWitness Query - `rsa_netwitness`
- Securonix Query - `securonix`
- SentinelOne Query (Events) - `s1-events`
- Snowflake Query - `snowflake`
- Sumo Logic Query - `sumologic`
- VMware Carbon Black Query (Cloud) - `carbonblack`
- Exabeam New-Scale EQL Query - `exabeam-eql-query`
支持以下类型的 IOC:
- Hash
- Domain
- URL
- IP
我们即将支持的语言 TODO 列表:
- ~LogRhythm Axon~ :white_check_mark:
- ~Graylog~ :white_check_mark:
- Devo
- LimaCharlie
- Sumo Logic
- Sumo Logic CSE
- ArcSight
- Databricks
- Cribl
- ~FortiSIEM~ :white_check_mark:
- ~Exabeam~ :white_check_mark:
- Palo Alto Cortex XSOAR
- ~ElastAlert~ :white_check_mark:
- FireEye OpenIOC
- SentinelOne
- Datadog
- FireEye Helix
- Logpoint
- RSA NetWitness
- PowerShell
- Snowflake
- SQL
- VMware Carbon Black
- Apache Kafka ksqlDB
- HawkSearch
- Regex Grep
- Logiq
- Qualys
- Securonix
- STIX
- StreamAlert
- Sysmon
- UberAgent ESA
# :computer: 安装
可以通过以下方式安装 Uncoder IO:
1. 带有 Web 服务器和 UI 的 Docker 容器 [Docker 容器的启动说明](#launch-instructions-for-docker-container)
2. 仅包含 API 和 CLI 的 Docker 容器(工作正在进行中)
3. 直接从源代码构建(适用于高级用户,可按照 docker 文件中的说明进行操作)
4. 准备好作为 SaaS 使用,在 [https://uncoder.io/](https://uncoder.io/) 私密使用,无需注册或使用 cookie
5. 准备好在 SOC Prime SaaS 中使用,具有私有 AI 增强、SOC 2 Type II 认证环境,并在 [https://tdm.socprime.com/uncoder-ai](https://tdm.socprime.com/uncoder-ai) 支持有关数据隐私、GDPR 等的服务条款
以下是带有 Web 服务器和 UI 的 Docker 容器的要求和启动说明。
## Docker 容器要求
* 运行 Windows、Linux 或其他受 Docker 支持的操作系统的主机
* 主机上应安装以下软件包:
* Docker v23.0.1 或更高版本
* Docker Compose v2.21.0 或更高版本
## Docker 容器的启动说明
1. 下载 `UncoderIO-main` 压缩包并解压。
2. 在 CLI 中,进入解压后文件所在的文件夹:
```
cd UncoderIO-main/
```
3. 运行以下命令以启动 Docker 容器:
```
docker-compose up -d
```
4. 在浏览器中打开 `http://localhost:4010/` 即可开始使用。
# :mortar_board: 如何使用
## :rocket: 翻译
1. 选择输入类型:
- Roota rule
- Sigma rule
2. 将所选语言的规则粘贴或上传到输入面板中。
3. 选择输出内容(语言、内容类型和数据 schema)
4. 点击翻译。
如果无法翻译输入规则,您将看到一条错误消息。翻译 Roota 规则时,目标语言不支持或 Uncoder IO 尚不支持的任何函数都将在输出中作为注释列出。
## :flashlight: 基于 IOC 的查询生成
1. 选择 IoCs 作为输入类型。
2. 在左侧面板中粘贴或上传包含危害指标 (IOC) 的文本。
3. 进行解析配置:
- **全选:** 应用所有列出的选项
- **将 (.) [.] {.} 替换为点**
- **将 hxxp 替换为 http**:此功能不区分大小写,因此 hXXp、HXXP、HXXp 和 hXXP 也会被替换
- **排除私有和保留网络:** 在 IOC 识别期间,将忽略私有和保留的 IP 地址,例如 224.0.0.0/4 或 127.0.0.0/8
4. 选择输出语言。
5. 进行生成设置:
- 选择用于查询的 IOC 类型:
- Hash
- Domain
- URL
- IP
- 设置每个查询的 IOC 数量,以兼顾平台的性能
- 定义例外情况:指定您想从查询中排除的哈希、域名、IP 或 URL(完整或仅部分)
6. 点击翻译。
## :coffee: 编写规则
在输入面板中编写 [Roota](https://github.com/UncoderIO/RootA/blob/main/README.md) 或 Sigma 规则。利用代码模板、语法高亮、带有 MITRE ATT&CK 的自动补全建议程序,以及改善编码体验的其他小功能。
# :mailbox_with_no_mail: 问题与反馈
请将您的技术反馈和建议发送至 support@socprime.com 或 [SOC Prime 的 Discord](https://discord.gg/socprime) 中的专用 **Uncoder** 频道。此外,请参阅[贡献者指南](#how-to-contribute)来支持 Uncoder IO 项目,或直接[报告问题](https://github.com/UncoderIO/UncoderIO/issues)。
# :wrench: 维护者
自 2018 年以来,SOC Prime 团队一直从零开始开发 Uncoder。第一步是我们对 Sigma 规则和 Uncoder IO 项目(一个在线且完全私密的检测工程 IDE)的支持。现在,SOC Prime 团队将 Uncoder IO 作为一个开源项目进行共享。
Uncoder IO 项目由 SOC Prime 维护,虽然我们欢迎任何建议和报告的问题,但是否接受拉取请求的最终决定权将取决于 SOC Prime 的研发团队。
# :briefcase: 许可证
Uncoder IO 社区版采用 Apache 20 许可。作为开源发布的商业版功能,如果您没有付费的 SOC Prime 订阅,则只能用于非商业用途。商业使用权随 SOC Prime SaaS 许可证免费附赠。有关 Uncoder IO 许可的详细信息,请参阅 [LICENSE](https://github.com/UncoderIO/UncoderIO/blob/main/LICENSE/)。
# :book: 资源与有用链接
[Uncoder IO](https://uncoder.io/) - 免费的 Roota、Sigma 和基于 IOC 的查询在线翻译引擎
[Uncoder AI](https://tdm.socprime.com/uncoder-ai) - 作为高级检测工程 IDE 的 Uncoder SaaS 版本
[Roota.IO](https://roota.io/) - 用于威胁检测与响应的单一语言主网页
[SOC Prime Platform](https://tdm.socprime.com/login) - 业界首个集体网络防御平台
[关于 SOC Prime](https://socprime.com/) - 了解更多关于 SOC Prime 及其使命的信息
标签:AMSI绕过, IDE, Sigma规则, 威胁检测, 版权保护, 目标导入, 规则转换引擎, 请求拦截