cloudgrep

cloudgrep

跨云平台的高效日志搜索工具

CloudGrep是一款开源的云存储日志搜索工具,支持AWS S3、Azure Storage和Google Cloud Storage。它能够直接搜索包括gzip和zip在内的压缩日志文件,通过并行处理提高效率。CloudGrep无需预先摄取或索引日志,适用于快速调试和安全分析。该工具提供灵活的搜索功能,包括正则表达式和自定义日志格式支持,为用户提供高效且经济的日志分析方案。

cloudgrep云存储搜索日志文件AWS S3Azure StorageGithub开源项目

cloudgrep

cloudgrep 用于搜索云存储。

ci License

目前支持在AWS S3、Azure Storage或Google Cloud Storage中搜索日志文件,可选择使用gzip (.gz)或zip (.zip)压缩。

图表

为什么使用?

  • 直接搜索云存储,而不是将日志索引到SIEM或日志分析工具中,可能更快、更便宜。
  • 无需等待日志被摄取、索引并可供搜索。
  • 它并行搜索文件以提高速度。
  • 这在调试应用程序或调查安全事件时可能有用。

示例

简单示例:

./cloudgrep --bucket test-s3-access-logs --query 9RXXKPREHHTFQD77
python3 cloudgrep.py -b test-s3-access-logs -q 9RXXKPREHHTFQD77

简单的Azure示例:

python3 cloudgrep.py -an some_account -cn some_container -q my_search

简单的Google示例:

python3 cloudgrep.py -gb my-gcp-bucket -q my_search

简单的CloudTrail日志示例,以JSON格式输出结果:

python3 cloudgrep.py -b test-s3-access-logs -q 9RXXKPREHHTFQD77 -lt cloudtrail -jo

简单的自定义日志示例:

python3 cloudgrep.py -b test-s3-access-logs -q 9RXXKPREHHTFQD77 -lf json -lp Records

更复杂的示例:

python3 cloudgrep.py -b test-s3-access-logs --prefix "logs/" --filename ".log" -q 9RXXKPREHHTFQD77 -s "2023-01-09 20:30:00" -e "2023-01-09 20:45:00" --file_size 10000 --debug

将输出保存到文件:

python3 cloudgrep.py -b test-s3-access-logs -q 9RXXKPREHHTFQD77 --hide_filenames > matching_events.log

输出示例:

[2023-11-30 13:37:12,416] - 存储桶位于区域:us-east-2 : 从同一区域搜索以避免出口费用。
[2023-11-30 13:37:12,417] - 正在test-s3-access-logs中搜索11个文件,查询9RXXKPREHHTFQD77...
{"key_name": "access2023-01-09-20-34-20-EAC533CB93B4ACBE", "line": "abbd82b5ad5dc5d024cd1841d19c0cf2fd7472c47a1501ececde37fe91adc510 bucket-72561-s3bucketalt-1my9piwesfim7 [09/Jan/2023:19:20:00 +0000] 1.125.222.333 arn:aws:sts::000011110470:assumed-role/bucket-72561-myResponseRole-1WP2IOKDV7B4Y/1673265251.340187 9RXXKPREHHTFQD77 REST.GET.BUCKET - \"GET /?list-type=2&prefix=-collector%2Fproject-&start-after=&encoding-type=url HTTP/1.1\" 200 - 946 - 33 32 \"-\" \"Boto3/1.21.24 Python/3.9.2 Linux/5.10.0-10-cloud-amd64 Botocore/1.24.46\" - aNPuHKw== SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader bucket-72561-s3bucketalt-1my9piwesfim7.s3.us-east-2.amazonaws.com TLSv1.2 - -"}

参数

用法:cloudgrep.py [-h] [-b BUCKET] [-an ACCOUNT_NAME] [-cn CONTAINER_NAME] [-gb GOOGLE_BUCKET] [-q QUERY]
                    [-v FILE] [-y YARA] [-p PREFIX] [-f FILENAME] [-s START_DATE] [-e END_DATE]
                    [-fs FILE_SIZE] [-pr PROFILE] [-d] [-hf] [-lt LOG_TYPE] [-lf LOG_FORMAT]
                    [-lp LOG_PROPERTIES] [-jo JSON_OUTPUT]

CloudGrep搜索是用于云存储(如S3和Azure Storage)的grep工具。版本:1.0.5

选项: -h, --help 显示此帮助信息并退出 -b BUCKET, --bucket BUCKET 要搜索的AWS S3存储桶。例如: my-bucket -an ACCOUNT_NAME, --account-name ACCOUNT_NAME 要搜索的Azure账户名 -cn CONTAINER_NAME, --container-name CONTAINER_NAME 要搜索的Azure容器名 -gb GOOGLE_BUCKET, --google-bucket GOOGLE_BUCKET 要搜索的Google Cloud存储桶 -q QUERY, --query QUERY 要搜索的文本。将被解析为正则表达式。例如: example.com -v FILE, --file FILE 包含要搜索的单词或正则表达式列表的文件。每行一个。 -y YARA, --yara YARA 包含Yara规则以扫描文件的文件。 -p PREFIX, --prefix PREFIX 可选地过滤对象名称的开头。例如: logs/ -f FILENAME, --filename FILENAME 可选地过滤匹配关键词的对象。例如: .log.gz -s START_DATE, --start_date START_DATE 可选地过滤在指定日期或时间之后修改的对象。例如: 2022-01-01 -e END_DATE, --end_date END_DATE 可选地过滤在指定日期或时间之前修改的对象。例如: 2022-01-01 -fs FILE_SIZE, --file_size FILE_SIZE 可选地过滤小于指定文件大小(以字节为单位)的对象。默认为100 MB。 -pr PROFILE, --profile PROFILE 设置要使用的AWS配置文件。例如: default, dev, prod。 -d, --debug 启用调试日志记录。 -hf, --hide_filenames 不显示匹配的文件名。 -lt LOG_TYPE, --log_type LOG_TYPE 根据预定义的日志类型返回单个匹配的日志条目,否则可以使用自定义log_format和log_properties。例如: cloudtrail。 -lf LOG_FORMAT, --log_format LOG_FORMAT 定义在应用搜索逻辑之前要解析的原始文件的自定义日志格式。在未定义--log_type时使用。例如: json。 -lp LOG_PROPERTIES, --log_properties LOG_PROPERTIES 定义要遍历以动态提取最终日志记录列表的自定义属性列表。在未定义--log_type时使用。例如: [Records]。 -jo JSON_OUTPUT, --json_output JSON_OUTPUT 以JSON格式输出。

部署

安装方法: pip3 install -r requirements.txt 或从这里下载最新编译版本

你可以在本地笔记本电脑上运行,也可以在云提供商的虚拟机上运行。

这需要python3.10或更高版本

Docker

构建命令: docker build -t cloudgrep .

运行命令: docker run --rm -ti cloudgrep

要传递环境变量,例如AWS的: docker run --rm --env-file <(env|grep AWS) -ti cloudgrep

在云中运行和身份验证

AWS

你的系统需要访问S3存储桶的权限。例如,如果你在笔记本电脑上运行,你需要配置AWS CLI。 如果你在EC2上运行,实例配置文件可能是最佳选择。

如果你在与S3存储桶相同区域的EC2实例上运行,并使用S3的VPC端点,你可以避免出站流量费用。 你可以通过多种方式进行身份验证。

Azure

与Azure进行身份验证的最简单方法是首先运行:

az login

这将打开一个浏览器窗口,提示你登录Azure。

GCP

你需要创建一个服务账户并下载凭据文件,然后设置:

export GOOGLE_APPLICATION_CREDENTIALS="/Users/creds.json"

贡献

我们欢迎对这个项目的任何贡献!请通过Pull Request添加。

可能的未来工作包括:

  • 支持zstd压缩
  • 使用grok模式、Sigma、Yara或正则表达式文件进行日志解析和检测
  • 以标准syslog格式导出解析后的日志

帮助

如果你有任何问题或建议,请开启一个GitHub issue。 这不是Cado Security的官方支持产品。

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE��编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

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

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多