freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

如何使用IaC Scan Runner扫描IaC中的常见安全漏洞
Alpha_h4ck 2024-01-11 11:59:07 133795

关于IaC Scan Runner

IaC Scan Runner是一款针对IaC(基础设施即代码)的安全漏洞扫描工具,在该工具的帮助下,广大安全开发人员可以轻松扫描IaC(基础设施即代码)中的常见漏洞。

IaC Scan Runner本质上是一个REST API服务,可以扫描IaC包并执行多种代码检测,以识别和发现其中潜在的安全漏洞和可提升安全性的地方。

工具要求

Python 3

Docker

MongoDB

工具运行

Docker运行

广大研究人员可以使用一个公共Docker镜像(xscanner/runner)来运行REST API:

# 在一个Docker容器中运行IaC Scan Runner REST API

# 导航至localhost:8080/swagger或localhost:8080/redoc即可使用

$ docker run --name iac-scan-runner -p 8080:80 xscanner/runner

除此之外,我们也可以在本地构建并运行镜像:

# 构建Docker容器(需要等待一些时间) 

$ docker build -t iac-scan-runner .

# 在Docker容器中运行IaC Scan Runner REST API

# 导航至localhost:8080/swagger或localhost:8080/redoc即可使用

$ docker run --name iac-scan-runner -p 8080:80 iac-scan-runner

命令行接口CLI运行

广大研究人员还可以在本地安装IaC Scan Runner,并通过命令行接口CLI工具调用IaC Scan Runner的功能:

# 安装命令行接口CLI

$ python3 -m venv .venv && . .venv/bin/activate

(.venv) $ pip install iac-scan-runner

# 打印OpenAPI规范

(.venv) $ iac-scan-runner openapi

# 安装工具依赖组件

(.venv) $ iac-scan-runner install

# 运行IaC Scan Runner REST API

(.venv) $ iac-scan-runner run

源码安装

源码本地运行:

# 导出环境变量

export MONGODB_CONNECTION_STRING=mongodb://localhost:27017

export SCAN_PERSISTENCE=enabled

export USER_MANAGEMENT=enabled

 

# 配置MongoDB

$ docker run --name mongodb -p 27017:27017 mongo

 

# 安装工具依赖组件

$ python3 -m venv .venv && . .venv/bin/activate

(.venv) $ pip install -r requirements.txt

(.venv) $ ./install-checks.sh

# 运行IaC Scan Runner REST API

(.venv) $ uvicorn src.iac_scan_runner.api:app

包含的REST API节点

REST API 节点

描述

/checks

检索和过滤检查

/checks/{check_name}/enable

启用运行检查

/checks/{check_name}/disable

禁用运行检查

/checks/{check_name}/configure

配置检查

/scan

初始化IaC扫描

工具使用

常规使用

首先,我们需要使用下列命令将该项目源码克隆至本地,并运行API:

$ git clone https://github.com/xlab-si/iac-scan-runner.git

$ docker compose up

接下来,我们就可以通过访问localhost:8000来使用不同的API节点了。除此之外,我们还可以导航至localhost:8080/swagger或localhost:8080/redoc并测试所有的API节点。

在下面的例子中,我们将使用curl调用API节点。

1、创建一个名为test的项目

curl -X 'POST' \

  'http://0.0.0.0/project?creator_id=test' \

  -H 'accept: application/json' \

  -d ''

此时将返回项目ID给我们,该项目ID为“1e7b2a91-2896-40fd-8d53-83db56088026”。

2、假设我们需要初始化所有测试(但ansible-lint除外)

curl -X 'PUT' \

  'http://0.0.0.0:8000/projects/1e7b2a91-2896-40fd-8d53-83db56088026/checks/ansible-lint/disable' \

  -H 'accept: application/json'

3、项目配置完成后,我们就可以选择需要扫描的文件并压缩,因为IaC Scan Runner的目标工作文件是压缩文档(.zip文件)。响应数据为JSON格式数据,但也可以将其改为HTML

curl -X 'POST' \

  'http://0.0.0.0:8000/projects/1e7b2a91-2896-40fd-8d53-83db56088026/scan?scan_response_type=json' \

  -H 'accept: application/json' \

  -H 'Content-Type: multipart/form-data' \

  -F 'iac=@YOUR.zip;type=application/zip'

命令行使用

首先运行下列命令安装相关的依赖组件:

$ sudo apt update

$ sudo apt install -y python3-venv python3-wheel python-wheel-common

然后安装并配置IaC Scan Runner CLI:

$ mkdir ~/iac-scan-runner && cd ~/iac-scan-runner

$ python3 -m venv .venv && . .venv/bin/activate

(.venv) $ pip install --upgrade pip

(.venv) $ pip install iac-scan-runner

可选参数命令如下:

iac-scan-runner openapi:打印OpenAPI规范;

iac-scan-runner install:安装IaC Scan Runner依赖组件;

iac-scan-runner run:运行IaC Scan Runner REST API;

注意,所有的CLI命令都可以使用-h/--help参数查看帮助选项。

许可证协议

本项目的开发与发布遵循Apache-2.0开源许可证协议。

项目地址

IaC Scan Runner:【GitHub传送门

参考资料

https://xlab-si.github.io/iac-scanner-docs/02-runner.html

https://hub.docker.com/r/xscanner/runner

# 漏洞扫描 # rest api # 漏洞管理 # 安全检查 # 基础设施即代码
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1023 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录