109
104

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

進化するVuls!稼働中のDockerコンテナの脆弱性を検知する

Last updated at Posted at 2016-05-26

前回の記事
あなたのサーバは本当に安全ですか?今もっともイケてる脆弱性検知ツールVulsを使ってみた

はじめに

先日書かせていただいたVulsの記事の反響がすごく、とても驚いています。
個人的に感じていたツールの優秀さに、共感頂けたのはとても嬉しいです。

さて、今回は、 Vulsが稼働中のDockerコンテナの脆弱性検知 に対応したので、そちらを紹介したいと思います。

Vulsとは

download.png

Github: vuls
日本語のREADME: vuls japanese

Vulsはgolang製の脆弱性検知ツールです。
VulsはVULnerability Scannerの略です。
「バルス!」

Docker対応の詳細

README #Docker

スクリーンショット 2016-05-24 20.13.15.png

特徴

  • 設定ファイルにコンテナ名orコンテナIDを登録するだけでscan出来る
  • 動いているコンテナの脆弱性を調べることができる
  • もちろん TUI で確認出来る!
  • コンテナのOSは本体と同じく以下に対応している
Distribution Release
Ubuntu 12, 14, 16
Debian 7, 8
RHEL 4, 5, 6, 7
CentOS 5, 6, 7
Amazon Linux All

実際に試してみた。

環境

Role OS
Dockerホスト AmazonLinux
Dockerコンテナ Ubuntu12.04
VulsScanner OSX

脆弱性スキャン対象のamazonにて

  • ホストOSであるAmazonに入る
console
$ ssh -i /Users/matsunosadayuki/.ssh/vuls-dev.pem ec2-user@54.199.215.192
  • ダウンロードできるdockerの確認
target_amazon
$ sudo yum info docker

読み込んだプラグイン:priorities, update-motd, upgrade-helper
インストール済みパッケージ
名前                : docker
アーキテクチャー    : x86_64
バージョン          : 1.9.1
  • dockerインストール
target_amazon
$ sudo yum install docker
  • dockerグループにec2-userを追加
target_amazon
$ sudo usermod -aG docker ec2-user
  • ubuntu12.04のイメージを取得
target_amazon
$ sudo docker pull ubuntu:12.04
  • ubuntu12.04を起動
target_amazon
$ sudo docker run -d -t  ubuntu:12.04 bin/bash
  • コンテナの起動を確認
target_amazon
$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
65b284c96e29        ubuntu:12.04        "bin/bash"          23 hours ago        Up 19 minutes                           romantic_ptolemy

Vuls Scanを実行するサーバにて

  • 設定ファイルの作成
config.yml
[servers]

[servers.vuls-dev-amazon]
host         = "54.199.215.192"
port        = "22"
user        = "ec2-user"
keyPath     = "/Users/matsunosadayuki/.ssh/vuls-dev.pem"
containers = ["${running}"]

"${running}" と入力すると、動いているコンテナ全てを調べてくれる
個別に設定したい場合は、コンテナ名やコンテナIDを入力する

  • scanの準備
console
$ vuls prepare

INFO[0000] Start Preparing (config: /Users/matsunosadayuki/vuls/config.toml)
[May 25 22:10:27]  INFO [localhost] Detecting OS...
[May 25 22:10:32]  INFO [localhost] (1/1) Detected vuls-dev-amazon: amazon 2016.03
[May 25 22:10:32]  INFO [localhost] Detecting Container OS...
[May 25 22:10:36]  INFO [localhost] Detected 65b284c96e29/romantic_ptolemy on vuls-dev-amazon: ubuntu 12.04
[May 25 22:10:36]  INFO [localhost] Installing...
[May 25 22:10:36]  INFO [vuls-dev-amazon_romantic_ptolemy] apt-get update...
[May 25 22:10:36]  INFO [vuls-dev-amazon] Nothing to do
[May 25 22:10:43]  INFO [localhost] Success
  • scan実行
console
% vuls scan
INFO[0000] Start scanning (config: /Users/matsunosadayuki/vuls/config.toml)
[May 25 22:42:39]  INFO [localhost] Validating Config...
[May 25 22:42:39]  INFO [localhost] Detecting Server OS...
[May 25 22:42:43]  INFO [localhost] (1/1) Detected vuls-dev-amazon: amazon 2016.03
[May 25 22:42:43]  INFO [localhost] Detecting Container OS...
[May 25 22:42:46]  INFO [localhost] Detected 65b284c96e29/romantic_ptolemy on vuls-dev-amazon: ubuntu 12.04
[May 25 22:42:46]  INFO [localhost] Scanning vulnerabilities...
[May 25 22:42:46]  INFO [localhost] Check required packages for scanning...
[May 25 22:42:46]  INFO [localhost] Scanning vulnerable OS packages...

おお。Detecting Container OS... ゆうとる。

  • tui
$ vuls tui

スクリーンショット 2016-05-26 9.01.24.png

そしておなじみのTUIがなんと進化して、階層表示になってる!!
個人的には、たとえ脆弱性スキャンがなくてもこのTUIは利用する価値がある!

注意点

vulsは0.1.4で今回のdocker対応が入ったが、どうやらsqliteの構造が変わったらしい。
https://github.com/future-architect/vuls/pull/67

なので ScanTUI を実行するときは、古いデータを削除する必要がある。

その他便利機能

  • vuls history
    • scanした履歴がみれる!
  • vuls discover
    • CIDRを指定すると、そのネットワーク内にいるサーバをすべて探して設定ファイルを作ってくれる!

特に vuls discover は普通にそれだけでも十分有用なツールです!

さいごに

Vulsはやっぱりすごいです。
一つの武器を手にいれた感じですね。
脆弱性検知だけじゃなくて、ターミナルでのサーバ管理にも使えそうですね!

109
104
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
109
104

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?