如何使用IaC Scan Runner扫描IaC中的常见安全漏洞

关于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:27017export SCAN_PERSISTENCE=enabledexport 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传送门】

参考资料

IaC Scan Runner — IaC Scanner documentation

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/654939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正则表达式 文本三剑客

一 正则表达式: 由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用…

2023年算法GWCA -CNN-BiLSTM-ATTENTION回归预测(matlab)

2023年算法GWCA -CNN-BiLSTM-ATTENTION回归预测(matlab) GWCA -CNN-BiLSTM-Attention长城建造算法优化卷积-长短期记忆神经网络结合注意力机制的数据回归预测 Matlab语言。 长城建造算法(Great Wall Construction Algorithm,GWC…

防御保护第四次作业

防火墙的智能选路 就近选路 --- 我们希望在访问不同运营商的服务器是,通过对应运营商的链路。这样可以高 通信效率,避免绕路。 策略路由 -- PBR 传统的路由,仅基于数据包中的目标IP地址查找路由表。仅关心其目标,所以&#…

排序【数据结构】

文章目录 一、 稳定性二、排序1. 插入排序(1) 直接插入排序(2) 希尔排序 2. 选择排序(1) 直接选择排序(2) 堆排序 3. 交换排序(1) 冒泡排序(2) 快速排序① 普通版快排② 关于优化快排③ 快速排序的非递归方式 4. 归并排序5. 计数排序 三、 总结 一、 稳定性 在计算机科学中&am…

CHS_03.2.3.2_2+进程互斥的硬件实现方法

CHS_03.2.3.2_2进程互斥的硬件实现方法 知识总览中断屏蔽方法TestAndSet指令Swap指令 知识回顾 进程互斥的四种软件实现方法 知识总览 这个小节我们会介绍另外的三种进程互斥的硬件实现方法 那么 这个小节的学习过程当中 大家需要注意理解各个方法的原理 并且要稍微的了解各个…

【Uni-App】Vue3如何使用pinia状态管理库与持久化

安装插件 pinia-plugin-unistorage 引入 // main.js import { createSSRApp } from "vue"; import * as Pinia from "pinia"; import { createUnistorage } from "pinia-plugin-unistorage";export function createApp() {const app create…

SpringBoot不同的@Mapping使用

文章目录 一、介绍二、使用 一、介绍 一般Mapping类注解在Spring框架中用于将HTTP请求映射到对应的处理器方法。它们各自对应于不同类型的HTTP方法,主要用于RESTful Web服务中。以下是每个注解的作用: GetMapping: 用于映射HTTP GET请求到处理器方法。通…

Life is Strange 奇异人生汉化指南

奇异人生汉化指南 引言:在搜索引擎上看了许多的攻略,都无法得到指向性明确的安装步骤,其中最令人不解的分别为汉化包与汉化包的安装地址,以下会以汉化包获取与汉化包安装地址两个维度来确保汉化的正确,以及在最终附上…

爬虫学习笔记-get请求获取豆瓣电影排名多页数据★★★★★

1. 导入爬虫需要使用的包 import urllib.request import urllib.parse 2.创建请求函数 def create_request(page): # 定义不变的url部分 base_url https://movie.douban.com/j/chart/top_list?type5&interval_id100%3A90&action& # 根据规律定义data拼接url …

算法沉淀——二分查找(leetcode真题剖析)

算法沉淀——二分查找 01.二分查找02.在排序数组中查找元素的第一个和最后一个位置03.搜索插入位置04.x 的平方根05.山脉数组的峰顶索引06.寻找峰值07.寻找旋转排序数组中的最小值08.LCR 173. 点名 二分查找(Binary Search)是一种在有序数组中查找特定元…

【算法专题】二分查找(入门)

📑前言 本文主要是二分查找(入门)的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日…

幻兽帕鲁服务器怎么收费?4核16G配置

幻兽帕鲁服务器价格多少钱?4核16G服务器Palworld官方推荐配置,阿里云4核16G服务器32元1个月、96元3个月,腾讯云换手帕服务器服务器4核16G14M带宽66元一个月、277元3个月,8核32G22M配置115元1个月、345元3个月,16核64G3…

前言:穿越迷雾,探索C语言指针的奇幻之旅

各位少年,大家好,我是博主那一脸阳光,今天给大家分享指针,内存和地址的使用,以及使用。 前言: 在编程的世界中,若论灵活多变、深邃神秘的角色,非“指针”莫属。如同哈利波特手中的魔…

深度学习快速入门--7天做项目

深度学习快速入门--7天做项目 0. 引言1. 本文内容2. 深度学习是什么3. 项目是一个很好的切入点4. 7天做项目4.1 第一天:数据整理4.2 第二天:数据处理4.3 第三天:简单神经网络设计4.4 第四天:分析效果与原因4.5 第五天:…

基于SpringBoot的玩具租赁系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…

【原创课程】KUKA机器人与S7-1200进行Profinet通讯

一、KUKA机器人与S7-1200进行Profinet通讯 1、硬件配置 ①硬件配置 名称 型号 数量 PLC S7_1217C 1个 机器人 KUKA_KR-210 1台 2、机器人一侧参数配置 ①添加备选软件包 首先,从KUKA机器人控制柜中将KOP备选软件包拷贝出来,然后在”WorkVi…

【lodash.js】非常好用高性能的 JavaScript 实用工具库,防抖,深克隆,排序等

前言:lodash是一款前端必须要知道的js库,它里面提供了许多常用的功能和实用的工具函数 基本上我参与的项目中都有lodash,只能说lodash太强大了,lodash.js 提供了超过 300 个实用的工具函数,涵盖了很多常见的编程任务 l…

【ascii码对照表】

计算机各种表 ascii码表BCD码(Binary-Coded Decimal‎)有权码-8421码有权码-2421码有权码-5421码无权码-余3码无权码-余3循环码无权码-格雷码 ascii码表 BCD码(Binary-Coded Decimal‎) BCD码也称二进码十进数 BCD用4位二进制数来…

数字图像处理(实践篇)三十六 OpenCV-Python 使用ORB和BFmatcher对两个输入图像的关键点进行匹配实践

目录 一 涉及的函数 二 实践 ORB(Oriented FAST and Rotated BRIEF)是一种特征点检测和描述算法,它结合了FAST关键点检测和BRIEF描述子。ORB算法具有以下优势: ①实时性:能够在实时应用中进行快速的特征点检测和描述。 ②

Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?

本文九河云介绍Windows实例内部自定义域名解析与本地网络域名解析不一致导致无法访问网站的问题描述、问题原因和解决方案。 问题描述 在Windows实例内部通过浏览器无法访问某网站,但在其他设备上可以正常访问,排查发现Windows实例内部自定义域名解析与…