Project Icon

cloudgrep

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

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

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的官方支持产品。

项目侧边栏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号