Mondoo:Cloud-Native安全和漏洞风险管理系统

2019-09-24 17:05:28 浏览数 (1)

Mondoo是一个Cloud-Native安全和漏洞风险管理系统且开箱即用。Mondoo集成了主要的云环境,CI/CD环境和构建工具(如packer)以及资源调配工具Terraform,Ansible和Chef等。

Mondoo支持以下操作系统的漏洞扫描:

Amazon Linux 1 & 2 RedHat 6,7,8 CentOS 6,7 Oracle Linux 6,7,8 Ubuntu 14.04, 16.04, 18.04 Suse 12 openSUSE leap

Mondoo的报告可以直接打印在终端:

在你的Mondoo仪表板中:

或在你的CI/CD环境中:

快速入门

使用Mondoo的最简单方法是在你的工作站本地安装agent,或使用我们的Docker容器mondoolabs/mondoo。

安装

Windows workstation

代码语言:javascript复制
iex (new-object net.webclient).downloadstring('https://mondoo.io/download.ps1')

有关详细信息,请参阅在Windows工作站安装 Mondoo Agent部分。

macOS Workstation

代码语言:javascript复制
brew tap mondoolabs/mondoo
brew install mondoo

有关详细信息,请参阅在MacOS工作站安装Mondoo Agent部分。

Linux Workstation

代码语言:javascript复制
curl -sSL https://mondoo.io/download.sh | bash

注意:Mondoo支持广泛的[Linux操作系统(../agent)。我们建议你为服务器环境安装软件包,以确保始终检索最近更新。对于工作站,我们还提供了一个与mondoo二进制文件一起发布的脚本。

注册

代码语言:javascript复制
mondoo register --token 'ey...FlP'
  ✔  agent //agents.api.mondoo.app/spaces/dazzling-hermann-857694/agents/1NmZG4Mt2fKXRrYGvUPiyLG7JyQ registered successfully

扫描你的第一个目标

代码语言:javascript复制
mondoo scan -t ssh://ec2-user@54.205.49.51
Start vulnerability scan:
  →  verify platform access to ssh://ec2-user@54.205.49.51
  →  gather platform details
  →  detected amzn 2
  →  gather platform packages for vulnerability scan
  →  found 435 packages
  →  analyse packages for vulnerabilities
Advisory Report:
  ■   SCORE  PACKAGE       INSTALLED               VULNERABLE (<)          **AILABLE               ADVISORY                                 
  ■   7.8    curl          7.61.1-9.amzn2.0.1      7.61.1-11.amzn2.0.2     7.61.1-11.amzn2.0.2     https://mondoo.app/vuln/ALAS2-2019-1233  
  ■   7.8    libcurl       7.61.1-9.amzn2.0.1      7.61.1-11.amzn2.0.2     7.61.1-11.amzn2.0.2     https://mondoo.app/vuln/ALAS2-2019-1233  
  ■   6.9    kernel        4.14.123-111.109.amzn2  4.14.133-113.112.amzn2  4.14.133-113.112.amzn2  https://mondoo.app/vuln/ALAS2-2019-1253  
  ╰─  6.5    kernel        4.14.123-111.109.amzn2  4.14.133-113.105.amzn2  4.14.133-113.112.amzn2  https://mondoo.app/vuln/ALAS2-2019-1232  
  ■   6.9    kernel-tools  4.14.133-113.105.amzn2  4.14.133-113.112.amzn2  4.14.133-113.112.amzn2  https://mondoo.app/vuln/ALAS2-2019-1253  
  →  ■ found 3 advisories: ■ 0 critical, ■ 1 high, ■ 2 medium, ■ 0 low, ■ 0 none, ■ 0 unknown
  →  report is available at https://mondoo.app/v/tender-elbakyan-495615/gallant-kilby-587371/reports/1P4JUZrB1n6rkKU5J5JthPtP42Q

尝试使用 Docker

1.启动mondoo容器

在容器中启动mondoo非常简单:

代码语言:javascript复制
$ docker run -it --entrypoint /bin/sh mondoolabs/mondoo
/ $ mondoo

_____ ______   ________  ________   ________  ________  ________
|   _   _   |   __  |   ___  |   ___ |   __  |   __  
   \__      |     \      _|    |     |  
    \|__|      \     \       \    \     \  
               \     \      _\    \     \  
    __     __ _______ __\ __ _______ _______ _______
    |__|     |__||_______||__| |__||_______||_______||_______|

Mondoo scans operating systems for known vulnerabilities

Usage:
  mondoo [command]

Available Commands:
  help        Help about any command
  register    Registers Mondoo agent with Mondoo Cloud
  scan        Scans an asset for known vulnerabilities
  status      Verifies the access to Mondoo Cloud
  unregister  Unregister Mondoo agent from Mondoo Cloud
  version     Displays the Mondoo agent version

Flags:
      --config string   config file (default is $HOME/.mondoo.yaml)
  -h, --help            help for mondoo

Use "mondoo [command] --help" for more information about a command.

2. 注册代理

代码语言:javascript复制
/ $ mondoo register --token 'ey...FlP'
  ✔  agent //agents.api.mondoo.app/spaces/dazzling-hermann-857694/agents/1NmZG4Mt2fKXRrYGvUPiyLG7JyQ registered successfully

1.扫描本地容器

代码语言:javascript复制
/ $ mondoo scan
Start vulnerability scan:
  →  verify platform access to local://
  →  gather platform details
  →  detected alpine 3.10.0
  →  gather platform packages for vulnerability scan
  →  found 38 packages
  →  analyse packages for vulnerabilities
Advisory Report:
  →  ■ found no advisories
  →  report is available at https://mondoo.app/v/tender-elbakyan-495615/dazzling-hermann-857694/reports/1NmZH5j4FEusxhzN6QsPeniuJJB

2.从容器内扫描远程容器镜像:

代码语言:javascript复制
/ $ mondoo scan -t docker://centos:7
Start vulnerability scan:
  →  verify platform access to docker://centos:7
  →  gather platform details
  →  detected centos 7.6.1810
  →  gather platform packages for vulnerability scan
  →  found 146 packages
  →  analyse packages for vulnerabilities
Advisory Report:
  ■        PACKAGE       INSTALLED          VULNERABLE (<)       ADVISORY                                                                                     
  ■   9.8  python        2.7.5-76.el7       0:2.7.5-77.el7_6     https://mondoo.app/advisories/RHSA-2019:0710  
  ╰─  9.8  python        2.7.5-76.el7       0:2.7.5-80.el7_6     https://mondoo.app/advisories/RHSA-2019:1587  
  ■   9.8  python-libs   2.7.5-76.el7       0:2.7.5-77.el7_6     https://mondoo.app/advisories/RHSA-2019:0710  
  ╰─  9.8  python-libs   2.7.5-76.el7       0:2.7.5-80.el7_6     https://mondoo.app/advisories/RHSA-2019:1587  
  ■   8.8  libssh2       1.4.3-12.el7       0:1.4.3-12.el7_6.2   https://mondoo.app/advisories/RHSA-2019:0679  
  ■   8.6  bind-license  32:9.9.4-73.el7_6  32:9.9.4-74.el7_6.1  https://mondoo.app/advisories/RHSA-2019:1294  
  ■   4.7  openssl-libs  1:1.0.2k-16.el7    1:1.0.2k-16.el7_6.1  https://mondoo.app/advisories/RHSA-2019:0483  
  →  ■ found 5 advisories: 2 critical, 2 high, 1 medium, 0 low, 0 none, 0 unknown
  →  report is available at https://mondoo.app/v/tender-elbakyan-495615/dazzling-hermann-857694/reports/1NmZUg5URmOErNRqjxmLiOJsip1

从你的工作站扫描目标

虽然Mondoo agent被设计为在你的服务器基础架构上连续运行,但使用CLI进行快速漏洞扫描也很容易。这允许任何人收集特定资产的快速风险评估。通过使用Mondoo的代理,你可以扫描:

Ssh 目标 Docker images Running Docker containers Stopped Docker containers Local system(代理运行的位置)

以下示例假定你已在工作站上安装了Mondoo。

SSH 目标

mondoo代理具有完整的ssh支持,并会自动从ssh配置和ssh-agent的凭据中获取配置。因此,你不需要将密码作为明文传递,以避免在shell历史记录中存储凭据。另外,它更方便:-)

代码语言:javascript复制
# scan ssh target with default port 22
$ mondoo scan -t ssh://ec2-user@52.51.185.215
# scan ssh target on a custom port  
$ mondoo scan -t ssh://ec2-user@52.51.185.215:2222

mondoo代理使用~/.ssh/config中的定义。以下定义了ssh的host shorty:

代码语言:javascript复制
Host shorty
  HostName 54.205.49.51
  User ec2-user

你可以使用shorty作为monndoo的主机标识符:

代码语言:javascript复制
# use hosts defined in ~/.ssh/config 
$ mondoo scan -t ssh://shorty

身份验证

你可以通过-i选项传递未加密的密钥:

代码语言:javascript复制
mondoo scan -t ssh://vagrant@192.168.100.70 -i /path/to/private_key

注意:我们建议使用ssh-agent作为身份密钥,因为mondoo无法自行解密密钥

Agent 验证

由于mondoo与ssh-agent集成,因此你无需提供身份密钥。这也是加密身份密钥的推荐解决方案:

代码语言:javascript复制
ssh-add /path/to/private_key
mondoo scan -t ssh://vagrant@192.168.100.70

密码验证

注意:我们不建议将此方法用于任何生产工作负载,因为它可能会在日志中将密码公开为明文

代码语言:javascript复制
mondoo scan -t ssh://vagrant:vagrant@192.168.100.70

Docker Images

Mondoo可以通过其注册表名称直接扫描Docker容器镜像:

代码语言:javascript复制
$ mondoo scan -t docker://ubuntu:latest
$ mondoo scan -t docker://elastic/elasticsearch:7.2.0
$ mondoo scan -t docker://gcr.io/google-containers/ubuntu:14.04
$ mondoo scan -t docker://registry.access.redhat.com/ubi8/ubi

如果安装了Docker代理,你可以按其id扫描镜像:

代码语言:javascript复制
$ mondoo scan -t docker://docker-image-id

Docker Container

你可以通过id轻松扫描正在运行的容器:

代码语言:javascript复制
$ mondoo scan -t docker://docker-container-id

扫描也可用于已停止的容器。

注意:只有安装了Docker引擎才能扫描Docker容器

本地系统

基于Linux的系统也可以在本地扫描:

代码语言:javascript复制
$ mondoo scan

Mondoo Agent

Mondoo agent是一个小型的跨平台二进制文件,可轻松评估系统漏洞。其主要职责是确定已安装的软件包,并将包括其版本的软件包列表发送到Mondoo的漏洞数据库进行进一步分析。

在 Windows 工作站安装 Mondoo Agent

Powershell

运行此powershell脚本将Mondoo安装到C:Users\mondoo中的默认位置。

代码语言:javascript复制
iex (new-object net.webclient).downloadstring('https://mondoo.io/download.ps1')

安装代理后,你可以注册代理

代码语言:javascript复制
$MONDOO_REGISTRATION_TOKEN="pastetokenhere"
mondoo register --token $MONDOO_REGISTRATION_TOKEN
  ✔  agent //agents.api.mondoo.app/spaces/peaceful-burnell-555533/agents/1ON7UPoNpkKxkMncKTFUcwZLVrt registered successfully

Binary 下载

Mondoo为Windows分发二进制文件。要安装代理,请下载相应的软件包。Windows系统的存档文件使用.zip。下载完成后提取内容。Mondoo代理是一个名为mondoo的二进制代码。最后一步是将mondoo二进制文件添加到路径中。你可以通过控制面板配置路径:

转到控制面板 - >系统 - >系统设置 - >环境变量 在系统变量部分向下滚动,找到Path。 单击编辑并添加新路径,确保以分号分隔路径,即C:path1;C:path2 启动新控制台以使更改生效

WSL

如果你使用的是WSL,则可以使用我们的Linux Bash安装程序:

代码语言:javascript复制
MONDOO_REGISTRATION_TOKEN='ey...ax'
curl -sSL https://mondoo.io/install.sh | bash

在 macOS 工作站安装 Mondoo Agent

首先,添加mondoo brew tap:

代码语言:javascript复制
brew tap mondoolabs/mondoo

然后,安装mondoo代理:

代码语言:javascript复制
brew install mondoo

向你的mondoo云组织注册代理

代码语言:javascript复制
mondoo register --token 'TOKEN'

在 RedHat & CentOS 安装 Mondoo Agent

首先,添加mondoo签名的apt存储库:

代码语言:javascript复制
curl --silent --location https://releases.mondoo.io/rpm/mondoo.repo | tee /etc/yum.repos.d/mondoo.repo

然后,安装mondoo代理:

代码语言:javascript复制
yum install -y mondoo

向你的mondoo云组织注册代理

代码语言:javascript复制
mondoo register --config /etc/opt/mondoo/mondoo.yml --token 'TOKEN'

启动代理:

代码语言:javascript复制
systemctl enable mondoo.timer && systemctl start mondoo.timer
systemctl daemon-reload

代理状态可以通过以下方式显示:

代码语言:javascript复制
systemctl list-timers
systemctl status mondoo.timer

更新

mondoo代理可以通过以下方式轻松更新:

代码语言:javascript复制
yum clean expire-cache && yum update mondoo

在 Amazon Linux 安装 Mondoo Agent

首先,添加mondoo签名的apt存储库:

代码语言:javascript复制
curl --silent --location https://releases.mondoo.io/rpm/mondoo.repo | tee /etc/yum.repos.d/mondoo.repo

然后,安装mondoo代理:

代码语言:javascript复制
yum install -y mondoo

向你的mondoo云组织注册代理

代码语言:javascript复制
mondoo register --config /etc/opt/mondoo/mondoo.yml --token 'TOKEN'

启动代理:

代码语言:javascript复制
systemctl enable mondoo.timer && systemctl start mondoo.timer
systemctl daemon-reload

代理状态可以通过以下方式显示:

代码语言:javascript复制
systemctl list-timers
systemctl status mondoo.timer

更新

mondoo代理可以通过以下方式轻松更新:

代码语言:javascript复制
yum clean expire-cache && yum update mondoo

在 Ubuntu & Debian 安装 Mondoo Agent

首先,添加mondoo签名的apt存储库:

代码语言:javascript复制
curl -sS https://releases.mondoo.io/debian/pubkey.gpg | apt-key add -
echo "deb https://releases.mondoo.io/debian/ stable main" | tee /etc/apt/sources.list.d/mondoo.list

然后,安装mondoo代理:

代码语言:javascript复制
apt-get update && apt-get install mondoo

向你的mondoo云组织注册代理

代码语言:javascript复制
mondoo register --config /etc/opt/mondoo/mondoo.yml --token 'TOKEN'

启动代理:

代码语言:javascript复制
systemctl enable mondoo.timer && systemctl start mondoo.timer
systemctl daemon-reload

代理状态可以通过以下方式显示:

代码语言:javascript复制
systemctl list-timers
systemctl status mondoo.timer

更新

mondoo代理可以通过以下方式轻松更新:

代码语言:javascript复制
apt-get update && apt-get install -y mondoo

在 RedHat & CentOS 安装 Mondoo Agent

首先,添加mondoo签名的apt存储库:

代码语言:javascript复制
curl --silent --location https://releases.mondoo.io/rpm/mondoo.repo | tee /etc/yum.repos.d/mondoo.repo

然后,安装mondoo代理:

代码语言:javascript复制
yum install -y mondoo

向你的mondoo云组织注册代理

代码语言:javascript复制
mondoo register --config /etc/opt/mondoo/mondoo.yml --token 'TOKEN'

启动代理:

代码语言:javascript复制
systemctl enable mondoo.timer && systemctl start mondoo.timer
systemctl daemon-reload

代理状态可以通过以下方式显示:

代码语言:javascript复制
systemctl list-timers
systemctl status mondoo.timer

更新

mondoo代理可以通过以下方式轻松更新:

代码语言:javascript复制
yum clean expire-cache && yum update mondoo

在 Ubuntu & Debian 安装 Mondoo Agent

首先,添加mondoo签名的apt存储库:

代码语言:javascript复制
curl -sS https://releases.mondoo.io/debian/pubkey.gpg | apt-key add -
echo "deb https://releases.mondoo.io/debian/ stable main" | tee /etc/apt/sources.list.d/mondoo.list

然后,安装mondoo代理:

代码语言:javascript复制
apt-get update && apt-get install mondoo

向你的mondoo云组织注册代理

代码语言:javascript复制
mondoo register --config /etc/opt/mondoo/mondoo.yml --token 'TOKEN'

启动代理:

代码语言:javascript复制
systemctl enable mondoo.timer && systemctl start mondoo.timer
systemctl daemon-reload

代理状态可以通过以下方式显示:

代码语言:javascript复制
systemctl list-timers
systemctl status mondoo.timer

更新

mondoo代理可以通过以下方式轻松更新:

代码语言:javascript复制
apt-get update && apt-get install -y mondoo

在 Suse & openSUSE 安装 Mondoo Agent

首先,添加mondoo签名的apt存储库:

代码语言:javascript复制
curl --silent --location https://releases.mondoo.io/rpm/mondoo.repo | tee /etc/zypp/repos.d/mondoo.repo

然后,安装mondoo代理:

代码语言:javascript复制
zypper -n --gpg-auto-import-keys install mondoo

向你的mondoo云组织注册代理

代码语言:javascript复制
mondoo register --config /etc/opt/mondoo/mondoo.yml --token 'TOKEN'

启动代理:

代码语言:javascript复制
systemctl enable mondoo.timer && systemctl start mondoo.timer
systemctl daemon-reload

代理状态可以通过以下方式显示:

代码语言:javascript复制
systemctl list-timers
systemctl status mondoo.timer

更新

mondoo代理可以通过以下方式轻松更新:

代码语言:javascript复制
zypper update mondoo

通过 Ansible 安装

我们发布了官方Mondoo role。

示例:将Ansible Playbook应用于Amazon EC2实例

此playbook演示了如何使用Mondoo role在许多实例上安装代理:

1. 创建新的主机清单。将你的主机添加到该组。

代码语言:javascript复制
[mondoo-agents]
54.172.7.243  ansible_user=ec2-user

2. 创建一个playbook.yml并更改mondoo_registration_token:

代码语言:javascript复制
---
- hosts: mondoo-agents
  become: yes
  roles:
    - role: mondoolabs.mondoo
      vars:
        mondoo_registration_token: "changeme"

3. 使用本地hosts文件运行playbook

代码语言:javascript复制
# download mondoo role
ansible-galaxy install mondoolabs.mondoo
# apply the playbook
ansible-playbook -i hosts playbook.yml

所有实例都报告了其漏洞状态

通过 Chef 安装

我们在Chef Supermarket上发布了官方mondoo cookbook。你可以在自己的wrapper cookbooks 或 Chef Roles中使用此cookbook

应用cookbook,请通过以下方式设置Mondoo注册令牌:

代码语言:javascript复制
default['mondoo']['registration_token'] = "changeme"

示例:将Cookbook应用于Amazon EC2实例

1.在AWS上启动新的Linux机器

2.如我们的示例中所述,创建运行wrapper cookbook

3.运行chef-run ssh://user@host ./run

4.所有实例都报告了其漏洞状态

它是如何工作的?

代理通过持续评估已安装的软件包,并通过HTTPS将包元数据提交到Mondoo API来工作。在你的Mondoo Space注册后,代理已准备好进行漏洞评估。

CLI专为两种用例而设计:

作为持续漏洞评估的服务运行 在工作站上运行以评估远程系统或docker镜像的漏洞 将docker镜像扫描作为CI/CD的一部分运行

使用案例:服务

你希望持续查看服务器的漏洞评估。代理程序在后台运行并提交已安装软件包的更改以进行漏洞分析。通过使用此方法,你始终可以获得基础架构的最新视图。

使用案例:工作站或CI/CD

你想评估可通过SSH访问的系统的漏洞。

代码语言:javascript复制
mondoo scan -t ssh://ec2-user@54.146.196.40
Start vulnerability scan:
  →  verify platform access to ssh://ec2-user@54.146.196.40
  →  gather platform details
  →  detected amzn 2
  →  gather platform packages for vulnerability scan
  →  found 433 packages
  →  analyse packages for vulnerabilities
Advisory Report:
  →  ■ found no advisories
  →  report is available at https://mondoo.app/v/goofy-hofstadter-187738/gallant-payne-155889/reports/1NmpiPcVfQZLT2GDylRjOc1wSMh

另一种选择是快速扫描存储在docker注册表中的docker镜像:

代码语言:javascript复制
mondoo scan -t docker://centos:7
Start vulnerability scan:
  →  verify platform access to docker://centos:7
  →  gather platform details
  →  detected centos 7.6.1810
  →  gather platform packages for vulnerability scan
  →  found 146 packages
  →  analyse packages for vulnerabilities
Advisory Report:
  ■        PACKAGE       INSTALLED          VULNERABLE (<)       ADVISORY                                                                                     
  ■   9.8  python        2.7.5-76.el7       0:2.7.5-77.el7_6     https://mondoo.app/advisories/RHSA-2019:0710  
  ╰─  9.8  python        2.7.5-76.el7       0:2.7.5-80.el7_6     https://mondoo.app/advisories/RHSA-2019:1587  
  ■   9.8  python-libs   2.7.5-76.el7       0:2.7.5-77.el7_6     https://mondoo.app/advisories/RHSA-2019:0710  
  ╰─  9.8  python-libs   2.7.5-76.el7       0:2.7.5-80.el7_6     https://mondoo.app/advisories/RHSA-2019:1587  
  ■   8.8  libssh2       1.4.3-12.el7       0:1.4.3-12.el7_6.2   https://mondoo.app/advisories/RHSA-2019:0679  
  ■   8.6  bind-license  32:9.9.4-73.el7_6  32:9.9.4-74.el7_6.1  https://mondoo.app/advisories/RHSA-2019:1294  
  ■   4.7  openssl-libs  1:1.0.2k-16.el7    1:1.0.2k-16.el7_6.1  https://mondoo.app/advisories/RHSA-2019:0483  
  →  ■ found 5 advisories: 2 critical, 2 high, 1 medium, 0 low, 0 none, 0 unknown
  →  report is available at https://mondoo.app/v/goofy-hofstadter-187738/gallant-payne-155889/reports/1NmZsWAQUmlXGtf5dqt083hfRJx
exit status 104

代理可以扫描以下资产:

本地操作系统 通过SSH远程操作系统 Docker镜像(本地或远程) Docker容器(运行或停止)

使用

代码语言:javascript复制
mondoo help

_____ ______   ________  ________   ________  ________  ________
|   _   _   |   __  |   ___  |   ___ |   __  |   __  
   \__      |     \      _|    |     |  
    \|__|      \     \       \    \     \  
               \     \      _\    \     \  
    __     __ _______ __\ __ _______ _______ _______
    |__|     |__||_______||__| |__||_______||_______||_______|

Mondoo scans operating systems for known vulnerabilities

Usage:
  mondoo [command]

Available Commands:
  help        Help about any command
  register    Registers Mondoo agent with Mondoo Cloud
  status      Verifies the access to Mondoo Cloud
  unregister  Unregister Mondoo agent from Mondoo Cloud
  version     Displays the Mondoo agent version
  vuln        Scans an asset for known vulnerabilities

Flags:
      --config string   config file (default is $HOME/.mondoo.yaml)
  -h, --help            help for mondoo

Use "mondoo [command] --help" for more information about a command.

请参阅Mondoo CLI使用说明。

配置

代理使用yaml配置文件。有关详细信息,请参阅配置文档。

帮助

有关安装的帮助,请访问诊断文档或联系Mondoo支持。

自动化安装

通过 Bash 脚本安装 Mondoo 代理

此单行脚本安装正在为服务器安装和配置Mondoo代理。其执行以下操作:

检测操作系统 安装Mondoo包 如果提供了MONDOO_REGISTRATION_TOKEN,则注册代理 如果代理已注册,则配置服务

注意:我们建议你在使用之前熟悉我们的脚本。源代码可以在我们的公共github存储库中找到

它没有下载最新的二进制文件,而是配置gpg签名的Mondoo软件包存储库。这样可以方便地安装/更新/删除Mondoo代理。

注意:如果你正在寻找binary下载(例如,我们建议将其用于工作站设置),请按照我们的binary安装说明进行操作

示例

安装包和注册代理

安装包后,安装脚本将查找MONDOO_REGISTRATION_TOKEN环境变量。如果设置了,则启动注册过程。

代码语言:javascript复制
export MONDOO_REGISTRATION_TOKEN='ey...ax'
curl -sSL https://mondoo.io/install.sh | bash

安装包并手动注册

如果未设置环境变量,则可以轻松地执行注册作为第二步:

代码语言:javascript复制
curl -sSL https://mondoo.io/install.sh | bash
MONDOO_REGISTRATION_TOKEN='ey...ax'
mondoo register --config /etc/opt/mondoo/mondoo.yml --token 'MONDOO_REGISTRATION_TOKEN'

systemd 配置

mondoo包附带了systemd配置。默认情况下,不启用mondoo服务。你可以通过以下方式启用和启动服务:

代码语言:javascript复制
$ systemctl enable mondoo.timer
$ systemctl start mondoo.timer
$ systemctl daemon-reload

通过 cloud-init 安装 Mondoo 代理

大多数云环境都支持在启动期间配置操作系统。在大多数情况下都使用cloud-init。对于Linux系统,cloud-init支持bash脚本。

我们只是将Mondoo Bash installer脚本用于cloud-init。要使用cloud-init部署代理,请通过Mondoo Dashboard -> Select Space -> Agents -> New Agent获取注册令牌,并将其粘贴到以下代码片段中:

代码语言:javascript复制
#!/bin/bash
export MONDOO_REGISTRATION_TOKEN='ey..gg'
curl -sSL https://mondoo.io/install.sh | bash

一旦机器准备就绪,第一次扫描将在机器启动后约30秒执行。

示例

AWS EC2 实例用户数据

1. 将上面显示的代码片段保存到mondoo-cloudinit.sh,并粘贴到你的注册令牌中:

代码语言:javascript复制
cat > mondoo-cloudinit.sh << EOF
#!/bin/bash
export MONDOO_REGISTRATION_TOKEN='eyJhbG..bn'
curl -sSL https://mondoo.io/install.sh | bash
EOF

2. 启动一个新实例

代码语言:javascript复制
# Note: you need to adapt the image-id, security-group-ids, key-name to your region and account
aws ec2 run-instances --region us-east-1 --image-id  ami-0ad82a384c06c911e --security-group-ids sg-903004f8 --count 1 --instance-type t2.micro --key-name chris-rock --user-data file://mondoo-cloudinit.sh

安装完成后,你可以在Mondoo仪表板中查看漏洞扫描的结果:

一旦机器启动并运行,它将自动向Mondoo报告漏洞。有关AWS CLI的更多文档,请参阅启动,列出和终止Amazon EC2实例以及启动时在Linux实例上运行命令

如要进行故障排除,请查看/var/log/cloud-init-output.log中的cloudinit运行输出。

CLI 相关

mondoo

Mondoo CLI

Synopsis

代码语言:javascript复制
_____ ______   ________  ________   ________  ________  ________
|   _   _   |   __  |   ___  |   ___ |   __  |   __  
   \__      |     \      _|    |     |  
    \|__|      \     \       \    \     \  
               \     \      _\    \     \  
    __     __ _______ __\ __ _______ _______ _______
    |__|     |__||_______||__| |__||_______||_______||_______|

Mondoo扫描操作系统是否存在已知漏洞

选项

代码语言:javascript复制
 --config string   config file (default is $HOME/.mondoo.yaml)
-h, --help            help for mondoo

mondoo 注册

使用Mondoo Cloud注册Mondoo代理

Synopsis

此命令使用Mondoo Cloud注册mondoo代理。它需要’—token’参数。

你可以通过 Mondoo Dashboard https://mondoo.app -> Space -> Agents -> New生成新的注册令牌。复制令牌并将其作为’—token’参数传递:

代码语言:javascript复制
mondoo register [flags]

选项

代码语言:javascript复制
 --api-endpoint string   mondoo api url
-h, --help                  help for register
-t, --token string          agent registration token

从父命令继承的选项

代码语言:javascript复制
--config string   config file (default is $HOME/.mondoo.yaml)

mondoo 状态

验证对Mondoo Cloud的访问

Synopsis

Status向Mondoo Cloud发送ping以验证凭据。

代码语言:javascript复制
mondoo status [flags]

选项

代码语言:javascript复制
-h, --help   help for status

从父命令继承的选项

代码语言:javascript复制
--config string   config file (default is $HOME/.mondoo.yaml)

mondoo 扫描

扫描资产查找已知漏洞

Synopsis

此命令会触发漏洞扫描。

默认情况下,扫描本地系统:

代码语言:javascript复制
$ mondoo scan

此外,mondoo可以扫描远程ssh目标。Mondoo使用ssh agent和ssh config作为默认值来检索目标的凭据。

代码语言:javascript复制
$ mondoo scan -t ssh://ec2-user@52.51.185.215
$ mondoo scan -t ssh://ec2-user@52.51.185.215:2222

你还可以访问位于docker registries中的docker镜像:

代码语言:javascript复制
$ mondoo scan -t docker://ubuntu:latest
$ mondoo scan -t docker://elastic/elasticsearch:7.2.0
$ mondoo scan -t docker://gcr.io/google-containers/ubuntu:14.04
$ mondoo scan -t docker://registry.access.redhat.com/ubi8/ubi

如果在本地安装docker,也可以通过其id访问容器和镜像:

代码语言:javascript复制
$ mondoo scan -t docker://docker-image-id
$ mondoo scan -t docker://docker-container-id

如果你希望在本地存储报告,请将输出通过管道传输到文件中:

代码语言:javascript复制
$ mondoo scan --format yaml > myreport.yaml

scan子命令返回以下退出代码:

代码语言:javascript复制
* 0 - scan completed successfully with no vulnerabilities found
* 1 - error during execution
* 101 - scan completed successfully with low vulnerabilities found
* 102 - scan completed successfully with medium vulnerabilities found
* 103 - scan completed successfully with high vulnerabilities found
* 104 - scan completed successfully with critical vulnerabilities found

有关更多文档,请访问https://mondoo.io/docs/

代码语言:javascript复制
mondoo scan [flags]

选项

代码语言:javascript复制
--assetmrn string         Optional override of the  asset mrn for the asset
    --collector string        The collector reports the packages to Mondoo cloud only and does not print the result on CLI. This is useful for automated environments. Supported values are 'http' and 'awssns'.
    --color string            Highlights text and vulnerability output with colors. The possible values of when can be 'never', 'always' or 'auto'. (default "always")
-t, --connection string       The connection is the identifier a way to reach the asset. Supported connections are 'local://', 'docker://' and 'ssh://' (default "local://")
    --exit-0-on-success       Returns 0 as exit code of the scan was successful. It ignores the severity of the vulnerability assessment.
    --format string           Set the output format for the vulnerability report. Available options are 'cli' and 'yaml'. (default "cli")
-h, --help                    help for scan
    --id-detector string      Set the assset id detector (eg. awsec2, hostname)
-i, --identity-file string    Selects a file from which the identity (private key) for public key authentication is read.
    --labels stringToString   Additional labels enrich the asset with additional information. Multiple labels can be passed in via --labels key=value). (default [])
-p, --password string         ssh password (not recommended in production)
    --referenceid string      Optional override of the reference id for the target

从父命令继承的选项

代码语言:javascript复制
--config string   config file (default is $HOME/.mondoo.yaml)

mondoo 取消注册

从Mondoo Cloud取消注册Mondoo代理

Synopsis

通过调用mondoo unregister,代理将与Mondoo Cloud分离。此过程还将启动代理证书的重新确认,以确保以后不再使用代理凭据。

代码语言:javascript复制
mondoo unregister [flags]

选项

代码语言:javascript复制
--force   force new registration
-h, --help    help for unregister

从父命令继承的选项

代码语言:javascript复制
--config string   config file (default is $HOME/.mondoo.yaml)

Mondoo 集成

Mondoo为主要的CI/CD和云环境提供了开箱即用的集成。具体请参阅:

https://mondoo.io/docs/integration/aws-ec2 https://mondoo.io/docs/integration/cicd?id=azure-devops https://mondoo.io/docs/integration/cicd?id=circle-ci https://mondoo.io/docs/integration/cicd?id=gcp-cloudbuild https://mondoo.io/docs/integration/cicd?id=gitlab https://mondoo.io/docs/integration/packer https://mondoo.io/docs/integration/terraform

帮助

你可以通过邮件(hello@mondoo.io)与我们取得联系。或在我们的社区中提出你的问题。如果你发现了bug,你可以向我们提交issue。

*参考来源:mondoo,FB小编secist编译,转载请注明来自FreeBuf.COM

0 人点赞