Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
sast-scan — Scan 是一款免费且开源的 DevSecOps 工具,用于对应用程序及其依赖项执行基于静态分析的安全测试。支持 CI 和 Git 集成。 | Kitploit
工具/GitHubGitHub/shiftleftsecurity/sast-scan
静态分析漏洞扫描器容器安全代码分析配置审计云安全DevSecOps秘密检测错误配置
GitHubshiftleftsecurity/sast-scan

sast-scan

Scan 是一款免费且开源的 DevSecOps 工具,用于对应用程序及其依赖项执行基于静态分析的安全测试。支持 CI 和 Git 集成。

879126133年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
网站
分享

引言

███████╗ ██████╗ █████╗ ███╗   ██╗
██╔════╝██╔════╝██╔══██╗████╗  ██║
███████╗██║     ███████║██╔██╗ ██║
╚════██║██║     ██╔══██║██║╚██╗██║
███████║╚██████╗██║  ██║██║ ╚████║
╚══════╝ ╚═════╝╚═╝  ╚═╝╚═╝  ╚═══╝

Scan 是一款面向现代 DevOps 团队的免费开源安全工具。基于集成多扫描器的设计,Scan 可以在一轮快速扫描中检测应用程序和基础设施代码中的各种安全缺陷,无需任何远程服务器。Scan 专为工作流集成而生,具备自动构建阻断、结果基线对比和 PR 总结评论等便捷功能。Scan 产品采用 Apache-2.0 许可证开源。

Build Status

Scan 理念

  • 你的代码、依赖和配置属于你自己的业务。任何代码都不会离开你的构建环境。所有扫描器、规则以及包括漏洞数据库在内的数据均在本地下载,以执行扫描。
  • 开箱即用:用户无需配置或学习任何内容即可跨语言和流水线使用 Scan。

内置工具

编程语言工具
ansibleansible-lint
apexpmd
armcheckov
awscheckov
bashshellcheck
bomcdxgen
credscangitleaks
depscandep-scan
dockerfilecheckov
gogosec, staticcheck
groovyfind-sec-bugs
javacdxgen, gradle, find-sec-bugs, pmd
jsppmd, find-sec-bugs
jsonjq, jsondiff, jsonschema
kotlindetekt, find-sec-bugs
scalafind-sec-bugs
kubernetescheckov, kubesec, kube-score
nodejscdxgen, yarn, rush
phppsalm, phpstan (仅 IDE)
plsqlpmd
pythoncfg-scan (1), bandit, cdxgen
rubybrakeman (2), dep-scan
rustcdxgen
serverlesscheckov
terraformcheckov, tfsec
Visual Force (vf)pmd
Apache Velocity (vm)pmd
yamlyamllint
docker/container imagedep-scan
  • (1) - Python 深度分析器为内置功能
  • (2) - Brakeman 未与 Scan 捆绑。请使用具有相应许可证的 brakeman,并通过 -o reports/source-ruby-report.json 将报告导出为 json 格式。

内置语言/运行时

  • jq
  • Golang 1.14
  • Python 3.8
  • OpenJDK 11
  • Node.js 10
  • Yarnpkg

请访问官方文档站点了解 Scan 的配置和 CI/CD 集成选项。我们还有专门的 discord 频道 用于问题讨论和技术支持。

快速开始

scan 非常适合在 CI 中使用,也可作为本地开发的预提交钩子。Scan 以容器镜像 shiftleft/scan 的形式分发,同时也为支持的 Linux 发行版提供了 AppImage。

在本地扫描项目

简单的一行命令如下:

sh <(curl https://slscan.sh)

上述命令实际上调用了下面的 docker run 命令。

docker run --rm -e "WORKSPACE=${PWD}" -v $PWD:/app shiftleft/scan scan --build

在 Windows 上,命令根据终端略有不同。

cmd

docker run --rm -e "WORKSPACE=%cd%" -e "GITHUB_TOKEN=%GITHUB_TOKEN%" -v "%cd%:/app:cached" shiftleft/scan scan

PowerShell 和 PowerShell Core

docker run --rm -e "WORKSPACE=$(pwd)" -e "GITHUB_TOKEN=$env:GITHUB_TOKEN" -v "$(pwd):/app:cached" shiftleft/scan scan

WSL Bash

docker run --rm -e "WORKSPACE=${PWD}" -e "GITHUB_TOKEN=${GITHUB_TOKEN}" -v "$PWD:/app:cached" shiftleft/scan scan

git-bash

docker run --rm -e "WORKSPACE=${PWD}" -e "GITHUB_TOKEN=${GITHUB_TOKEN}" -v "/$PWD:/app:cached" shiftleft/scan scan

在 git-bash 中,不要忘记在 $PWD 前加斜杠 (/)!

扫描多个项目

docker run --rm -e "WORKSPACE=${PWD}" -v $PWD:/app shiftleft/scan scan --src /app --type credscan,nodejs,python,yaml --out_dir /app/reports

扫描 Java 项目

对于基于 Java 和 JVM 语言的项目,在开发及 CI 工作流中调用 sast-scan 之前,务必先编译项目。

docker run --rm -e "WORKSPACE=${PWD}" -v ~/.m2:/.m2 -v <source path>:/app shiftleft/scan scan --src /app --type java

# 对于 gradle 项目
docker run --rm -e "WORKSPACE=${PWD}" -v ~/.gradle:/.gradle -v <source path>:/app shiftleft/scan scan --src /app --type java

自动项目检测

可以省略 --type 以启用自动检测。如果项目包含多种类型,可以传入逗号分隔的值。

扫描容器镜像

现在可以使用 slscan 扫描容器镜像。推荐的方法是先使用 docker 或 podman save 命令导出容器镜像,然后使用 .tar 文件调用 scan。

docker pull shiftleft/scan-slim:latest
docker save -o scanslim.tar shiftleft/scan-slim:latest
# podman save --format oci-archive -o scanslim.tar shiftleft/scan-slim:latest
docker run --rm -e "WORKSPACE=${PWD}" -v $PWD:/app shiftleft/scan scan --src /app/scanslim.tar -o /app/reports --type docker

或者,也可以让 scan 在分析前自行拉取容器镜像。但这需要暴露你的 docker 或 podman 守护进程套接字,因此不推荐。如果你喜欢冒险,可以尝试通过向 docker run 命令传递以下参数:

-e "DOCKER_HOST=unix:/var/run/docker.sock:" -v "/var/run/docker.sock:/var/run/docker.sock"

示例:扫描容器镜像 shiftleft/scan-slim:

docker run --rm -e "WORKSPACE=$(pwd)" -e "DOCKER_HOST=unix:/var/run/docker.sock:" \
    -v "/var/run/docker.sock:/var/run/docker.sock" \
    -v "$(pwd):/app" shiftleft/scan scan -t docker -i shiftleft/scan-slim

示例:扫描容器镜像 redmine@sha256:a5c5f8a64a0d9a436a0a6941bc3fb156be0c89996add834fe33b66ebeed2439e:

docker run --rm -e "WORKSPACE=$(pwd)" -e "DOCKER_HOST=unix:/var/run/docker.sock:" \
    -v "/var/run/docker.sock:/var/run/docker.sock" \
    -v "$(pwd):/app" shiftleft/scan scan -t docker -i redmine@sha256:a5c5f8a64a0d9a436a0a6941bc3fb156be0c89996add834fe33b66ebeed2439e

使用 podman 的同样示例

podman run --rm -e "WORKSPACE=$(pwd)" -e "DOCKER_HOST=unix:/run/user/1000/podman/podman.sock:" \
    -v "/run/user/1000:/run/user/1000" \
    -v "$(pwd):/app" shiftleft/scan scan -t docker -i redmine@sha256:a5c5f8a64a0d9a436a0a6941bc3fb156be0c89996add834fe33b66ebeed2439e

查看报告

报告将生成在 --out_dir 指定的目录中。在上面的示例中,该目录为 reports,它将是源代码根目录下的一个子目录。

一些报告会转换为名为 SARIF 的标准格式。此类报告以 .sarif 扩展名结尾。打开和查看 sarif 文件需要查看器,例如:

  • 在线查看器 - http://sarifviewer.azurewebsites.net/
  • VS Code 扩展 - https://marketplace.visualstudio.com/items?itemName=shiftleftsecurity.shiftleft-scan
  • Visual Studio 扩展 - https://marketplace.visualstudio.com/items?itemName=WDGIS.MicrosoftSarifViewer
  • Azure DevOps 扩展 - https://marketplace.visualstudio.com/items?itemName=shiftleftsecurity.sl-scan-results

Dockerhub 有问题?

许多 scan 镜像已通过 CI 流水线镜像到 quay.io。只需在镜像名称前加上 quay.io/ 即可。以下是可用的镜像:

  • quay.io/shiftleft/scan (https://quay.io/repository/shiftleft/scan)
  • quay.io/shiftleft/scan-java (https://quay.io/repository/shiftleft/scan-java)
  • quay.io/shiftleft/scan-oss (https://quay.io/repository/shiftleft/scan-oss)

Scan 用户

Scan 被许多组织和上千个开源项目使用。使用 Scan 的一些知名组织包括:

  • Microsoft
  • D2iQ
  • McKinsey & Company
  • NIO
  • Neo Financial
  • Accenture
  • Wipro
  • NCI Agency

如果你希望将自己的组织名称列入此处,请向我们发送 PR。你也可以在社交媒体上使用标签 #slscan 来表示对 scan 的支持。

下载工具