新规则概览
我们发布了30条自定义Semgrep规则,覆盖以下技术栈的安全审计:
- Ansible剧本
- Java/Kotlin代码
- Shell脚本
- Docker Compose配置文件
这些规则聚焦于以下安全问题:
- 未加密网络传输(HTTP/FTP等)
- 禁用SSL证书验证
- 常见命令行工具的不安全参数
- 无限制的IP地址绑定
- Java/Kotlin相关隐患
规则示例
模式 | 规则ID | 描述 |
---|---|---|
Generic | container-privileged | 检测具有扩展权限的容器命令 |
Generic | curl-insecure | 检测禁用SSL验证的curl命令 |
Java/Kotlin | gc-call | 检测依赖垃圾回收器调用的反模式 |
YAML | apt-key-unencrypted-url | 检测通过未加密URL下载的apt密钥 |
YAML | port-all-interfaces | 检测服务端口暴露在所有网络接口 |
Semgrep进阶特性
通用模式(Generic Mode)
- 优势:支持任意文本搜索,可跨多种文件格式(Jinja模板/NGINX配置等)
- 局限性:可能产生误报(如匹配注释内容)
- 典型应用:
ssh-disable-host-key-checking
规则可同时检测Bash脚本/Dockerfile/CI配置中的SSH安全配置
YAML支持
- 覆盖场景:Kubernetes/AWS CloudFormation/GitHub Actions/Ansible等主流配置格式
- 技术实现:通过YAML块样式指示符解析嵌套结构,例如检测Docker Compose中服务绑定所有接口的配置:
|
|
实践应用
使用以下命令运行这些规则:
|
|
延伸阅读
我们此前已将Semgrep应用于:
- 机器学习管道安全
- Goroutine泄漏检测
- Apollo GraphQL服务器加固
如需为您的项目定制Semgrep规则,欢迎联系我们。