面向CI/CD的免费离线SAST引擎:AST与跨文件污点分析、带实时验证的密钥检测、SCA/CVE、IaC配置错误以及Web-shell扫描,支持SARIF输出。
免费、快速的静态应用程序安全测试,适用于你的终端与 CI/CD。
SAST + 污点分析 · 带实时密钥验证的密钥检测 · SCA/CVE · IaC · CMS 与 Web Shell/恶意软件 —
单一自包含二进制文件,在你的 IDE 和构建流程中使用同一引擎。
插件主页 · CI/CD 与 SDLC · 直接下载 · 清单
sast 是一个小巧的启动器。安装瞬间完成;首次运行时,
它会下载与你操作系统匹配的自包含 SAST 引擎二进制文件,验证其校验和,并缓存它。
此后每次运行都是原生速度,无需 Python 依赖。
pip install sast
sast . # 扫描当前目录
sast ./src -f sarif -o out # 将 SARIF 报告写入 ./out
sast . --fail-on high # 在 high+ 级别发现时以非零状态退出(CI 门禁)
sast --help # 完整引擎选项
覆盖范围一览: 1,750+ 条经误报验证的规则 · 针对 16 种语言 的原生 AST + 跨文件 污点分析(40+ 种语言使用正则)· 230+ 个密钥规则包,带 实时密钥验证 · 覆盖 8+ 个生态系统的 SCA + 容器/操作系统包 · 约 24,000 条 CMS 公告 · Web Shell 与恶意软件签名 · IaC(Terraform/K8s/Docker/ CloudFormation)· SARIF / JSON / HTML。
支持 Linux、macOS 和 Windows(x86-64)。在 Apple Silicon 上,macOS 二进制文件在 Rosetta 下运行。
选择适合你技术栈的方式 — 每种方式都安装 同一引擎。
| 方式 | 命令 |
|---|---|
| pip / pipx(任意操作系统,Python 3.8+) | pip install sast · pipx install sast (推荐 — 隔离,始终在 PATH 中) |
| Homebrew(macOS / Linux) | brew tap vulnz/sast && brew install sast |
| npm(全局启动器) | sudo npm install -g sastai |
| Debian / Ubuntu(签名 apt 仓库) | 见下文 — 然后 sudo apt-get install sast |
| 直接二进制文件(Fedora / Arch / Alpine / 隔离网络) | curl -sSL https://insom.ai/latest/sast/linux -o /usr/local/bin/sast |
curl -sSL https://insom.ai/apt/public-key.asc | sudo gpg --yes --dearmor \
-o /usr/share/keyrings/insomnia-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/insomnia-archive-keyring.gpg] https://insom.ai/apt stable main" \
| sudo tee /etc/apt/sources.list.d/insomnia.list
sudo apt-get update && sudo apt-get install -y sast
单一自包含二进制文件 — 适用于隔离网络机器和精简 CI 镜像:
curl -sSL https://insom.ai/latest/sast/linux -o /usr/local/bin/sast # Linux x86-64
# curl -sSL https://insom.ai/latest/sast/macos -o /usr/local/bin/sast # macOS
chmod +x /usr/local/bin/sast
sast --version
Windows:下载 https://insom.ai/latest/sast/windows,或从
下载页面 获取任意构建版本。文件 + SHA-256 列在
清单 中。
pip install sast 会创建 sast 命令(Linux/macOS:<prefix>/bin/sast,
Windows:<prefix>\Scripts\sast.exe)。要让该命令被找到,该
目录必须在你的 PATH 中。在虚拟环境中:
python -m venv .venv
# Linux/macOS:
source .venv/bin/activate
# Windows:
.venv\Scripts\activate
pip install sast
如果在 pip install --user 之后 sast 显示“无法识别”/“找不到命令”,
说明用户级脚本目录不在你的 PATH 中。要么
添加它,要么直接以模块方式运行 — 无论 PATH 如何,这始终有效:
python -m sast .
%APPDATA%\Python\Python3XX\Scripts~/.local/bin预构建的多架构(amd64 + arm64)镜像已内置引擎 — 无需 安装,非常适合 CI/CD。两个仓库均可用:
dominators/sastghcr.io/vulnz/sastdocker pull dominators/sast:latest # 或:ghcr.io/vulnz/sast:latest
扫描本地源代码 — 报告保存到你的文件夹。 将你的项目挂载到
/src;报告会落在 你机器上的 ./reports(而不是容器内,
--rm 会丢弃容器):
docker run --rm -v "$PWD:/src" dominators/sast:latest /src -f html,json,sarif -o /src/reports --fail-on high
# Windows PowerShell
docker run --rm -v "${PWD}:/src" dominators/sast:latest /src -f html,json,sarif -o /src/reports --fail-on high
-o /src/reports 写入挂载目录,因此主机上的 ./reports/ 会
保存 HTML/JSON/SARIF 输出。--fail-on high 在 high+ 级别
发现时以非零状态退出(CI 门禁)。去掉 -f/-o 可进行仅终端的快速扫描。
扫描远程仓库 — 传入 URL,引擎会浅克隆、扫描
并清理(无需 git clone,无需挂载卷):
docker run --rm dominators/sast:latest https://github.com/owner/repo --fail-on high
# 私有仓库:
docker run --rm -e GITHUB_TOKEN=ghp_xxx dominators/sast:latest https://github.com/owner/private-repo
在 GitHub Actions 中,该镜像可作为容器步骤使用:
- name: SAST
run: docker run --rm -v "$PWD:/src" dominators/sast:latest /src -f sarif -o /src/out --fail-on high
- uses: github/codeql-action/upload-sarif@v3
with: { sarif_file: out }
提示:固定版本(
ghcr.io/vulnz/sast:1.8.2)以实现可复现构建。该 镜像以非 root 用户运行,无需 API 密钥、账户或遥测。
单一自包含二进制文件 — 无 Python 依赖,也不调用外部 工具(无 semgrep / trivy / bandit;一切都在引擎内运行):