IAC-Scan-Runner-扫描您的基础架构作为常见漏洞的代码的服务

taibeihacker

Moderator
将您的基础结构作为常见漏洞的代码进行扫描的服务。
方面信息工具名称IaC Scan RunnerDocker Image XSCANNER/RUNNER PYPI PACKENT IAC-SCAN-RUNNER文档文档文档文档[EmailProtected]
3

Purpose and description​

IaC Scan Runner是010-59000是用于扫描IAC的REST API服务,用于扫描IAC(基础构造作为代码),并在各种代码方面进行了订单和各种代码,并找到了各种代码。探索文档以获取更多信息。

Running​

本节说明了如何运行REST API。

Run with Docker​

您可以使用公共XSCANNER/RUNNER DOCKER映像运行REST API如下:
#在Docker容器中运行IAC扫描跑步者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扫描跑步者REST API,并且
#导航到LocalHost:8080/Swagger或LocalHost:8080/redoc
$ docker run - 名称IAC-SCAN-RUNNER -P 8080:80 IAC-SCAN-RUNNER

Run from CLI​

使用IAC扫描跑步者CLI:运行
#安装CLI
$ python3 -m venv .venv。venv/bin/activate
(.venv)$ pip安装IAC扫描式运行器
#打印OpenAPI规范
(.venv)$ IAC-SCAN-RUNNER OPENAPI
#安装先决条件
(.venv)$ iac-scan-runner安装
#运行IAC扫描跑步者REST API
(.venv)$ iac-scan-runner Run

Run from source​

从源本地运行:
#导出env变量
导出mongodb_connection_string=mongodb: //localhost:27017
导出scan_persistence=已启用
导出user_management=启用
#设置MongoDB
$ Docker Run -name MongoDB -P 27017:27017 Mongo
#安装先决条件
$ python3 -m venv .venv。venv/bin/activate
(.venv)$ pip install -r unigess.txt
(.venv)$ ./install-checks.sh
#运行IAC扫描Runner REST API(add -reload标志以在途中应用代码更改)
(.venv)$ UVICORN SRC.IAC_SCAN_RUNNER.API:APP

Usage and examples​

本部分将显示有关如何使用API调用的可能部署和简短示例之一。
首先,我们将克隆IAC扫描运行库存储库并运行API。
$ git克隆https://github.com/xlab-si/iac-scan-runner.git
完成此操作后,$ docker构成,您可以通过调用LocalHost:8000使用不同的API端点。您也可以导航到LocalHost:8000/Swagger或LocalHost:8000/REDOC,并在那里测试所有API端点。在此示例中,我们将使用Curl来调用API端点。
让我们创建一个名为“测试”的项目。 curl -x'post'\
'http://0.0.0.0/project?creator_id=test'\
-h'accept:应用程序/json'\
-d''项目ID将退还给我们。对于此示例,项目ID是1E7B2A91-2896-40FD-8D53-83DB56088026。
例如,假设我们要启动所有检查期望的薄荷。让我们禁用它。 curl -x'put'\
'http://0.0.0.0.0:8000/projects/1E7B...6/checks/checks/checks/ansible-lint/disable'\ \ \ \
-h'accept:应用程序/json'现在在配置项目时,我们可以选择要扫描并缩放它们的文件。对于IAC-Scan-runner而言,可以进行工作文件,预计将是压缩档案(通常是zip文件)。在这种情况下,响应类型将是JSON,但是可以将其更改为html.please将您的zip更改为文件路径。 curl -x'post'\
'http://0.0.0.0:8000/projects/1E7B2A...56088026/scan/scan?scan_response_type=json'th
-h'accept:应用程序/json'\
-h'content-type:乘数/form-data'\
-f'[emailProtected]; type=application/zip'就是这样。

Extending the scan workflow with new check tools​

在某些时候,可能需要在扫描工作流中包括新的检查工具,以便更广泛地覆盖IAC标准和项目类型。因此,在此订阅中,确定和描述了一系列为此目的所需的步骤。但是,必须按照描述的方式手动执行这些步骤,但是计划将来通过API自动自动此过程,并提供用户友好的界面,这些界面将帮助用户,同时导入将成为可提供扫描工作流程的可用目录的一部分的新工具。图16感知到必须采取的所需步骤,以便使用新工具扩展扫描工作流程。
Step 1 – Adding tool-specific class to checks directory First, it is required to add a new tool-specific Python class to the checks directory inside IaC Scan Runner’s source code: iac-scan-runner/src/iac_scan_runner/checks/new_tool.py
新工具的类继承了现有的检查类,该类别提供了扫描工作流工具的概括。此外,有必要提供以下方法的实现:
def configure(self, config_filename: Optional[str], secret: Optional[SecretStr]) def run(self, directory: str) While the first one aims to provide the necessary tool-specific parameters in order to set it up (such as passwords, client ids and tokens), another one specifies how the tool itself is invoked via API or CLI and its raw output returned.步骤2 - 在scanRunner构造函数中添加检查工具类实例一旦将检查派生的新类添加到IAC扫描跑步者的源代码中,也需要修改其主类的源代码,称为ScanRunner。当涉及到此类的修改时,首先需要导入特定于工具的类,创建一个新的检查工具特定的类实例,然后将其添加到def init_checks(self)内的IAC检查字典中。 A.从IAC_SCAN_RUNNER.CHECKS.TFSEC进口tfseccheck B.创建intion_checks'''''
self.iac_checks={
new_tool.name: new_tool,

}步骤3 - 将检查工具添加到另一侧的兼容性矩阵中,内部文件src/iac_scan_runner/compatibility.py,代表兼容性矩阵的字典也应扩展。有两种可能的情况: a)应将新文件类型添加为键,以及相关工具的列表,作为值b)应将新工具添加到现有文件类型的兼容性列表中。
compatibility_matrix={
'new_type': ['new_tool_1','new_tool_2'],

'old_typek': ['tool_1',…'tool_n','new_tool_3']
}步骤4 - 提供结果摘要的支持,最后,扫描工作流扩展所需修改的最后一步是修改class resultsummary(src/iac_scan_runner/resuct_summary.py)。确切地说,需要将代码的一部分附加到其方法summary_outcome上,该方法将寻找特定于工具的特定字符串,可用于确定检查是否通过还是失败。在遍历兼容检查的循环内,对于每个新工具,应包括以下IF-ELSE的结构:
如果检查=='new_tool':
if结果。find('Check Pass String')-1:
self.outcomes [check] ['status']='传递'
返回“通过”
其他:
self.outcomes [check] ['状态']='问题'
返回“问题”

Contact​

您可以通过发送电子邮件给[EmailProtected]来与Xopera团队联系。

Acknowledgement​

该项目已从欧盟Horizon 2020研究与创新计划获得基金会,根据赠款协议101000162(Piacere)。
 
返回
上方