LINEで送る
Pocket

去年、実家でCoreOSサーバにdocker入れて遊んでいたのですが
完全に放置気味だったので、(以下ブログより)
今回はVuls Dockerを入れてこのブログ(blog.adachin.me)を定期的にスキャンしてみました。

[CoreOS][docker]ついに自宅dockerサーバを構築した!!!!!!


■vuls/vuls Docker Hub

https://hub.docker.com/r/vuls/vuls/

https://github.com/future-architect/vuls/tree/master/setup/docker

Dockerなのでpullしてrunして終わりなので楽ちん。


■Pull new vuls docker images

まず必要なコンテナはgo-cve-dictionary、goval-dictionary、vulsの3つとなります。
バージョンアップしたい場合は# docker rmiしてまた# docker pullすれば最新となります。(これまた楽ちん)


■ Fetch NVD

今回はroot配下にvuls-dockerディレクトリを作成してそこで管理するようにしました。

sqlite3データベースファイルの出力先にマウントして
最新のCVEデータベースを構築するので、めちゃくちゃ時間かかります。
ちなみにMackerelで監視しているのですが若干ロアベが高かった。。


■Fetch JVN

日本のJVNデータベースはNVDのデータが日本語翻訳されていますのでCVEデータベースぶち込むとサイコー。


■Fetch OVAL (Ubuntu)

https://github.com/kotakanbe/goval-dictionary#goval-dictionary

ADACHIN SERVER LABはUbuntu16なのでUbuntu用OVALもぶち込みます。


■Configuration

・config.toml

あとはconfig.toml作ってテストしてスキャン!
vuls v0.4.0からsudoers NOPASSにしなくてもスキャンできるようになったので、
CoreOS(dockerサーバ)から自分のブログにsshできるか設定します。


■Configtest


■Scan


 ■Report


 ■TUI


 ■Slack

ひえええええええええ多いいいいいいいいいいいい
と思ったらNot Fixed Yet。

つまり、まだ修正版が出てないけどとりあえず脆弱性はあるよということ。
早く!!!

※追記2017/12/21 vuls v0.4.2
あれ!?

docker hostはCoreOSで動いてるのになぜdebianなんだ!?w
サウナおじさんに聞いてみよう→バグとのことなのでissuesに書いた。

https://github.com/future-architect/vuls/issues/566


■定期実行

定期実行する前に上記の脆弱性情報更新からreportまでスクリプトを作ってみました。(勢い)

 ・vuls-auto.sh

#fetchnvd
echo -n $"fetchnvd: "
docker run –rm \
-v $PWD:/vuls \
-v $PWD/go-cve-dictionary-log:/var/log/vuls \
vuls/go-cve-dictionary fetchnvd -last2y
#fetchjvn
echo -n $"fetchjvn: "
docker run –rm \
-v $PWD:/vuls \
-v $PWD/go-cve-dictionary-log:/var/log/vuls \
vuls/go-cve-dictionary fetchjvn -latest
#ubuntu-oval
echo -n $"ubuntu-oval: "
docker run –rm -it \
-v $PWD:/vuls \
-v $PWD/go-cve-dictionary-log:/var/log/vuls \
vuls/goval-dictionary fetch-ubuntu 12 14 16
#redhat-oval
echo -n $"redhat-oval: "
docker run –rm -it \
-v $PWD:/vuls \
-v $PWD/go-cve-dictionary-log:/var/log/vuls \
vuls/goval-dictionary fetch-redhat 5 6 7
#vuls scan
echo -n $"vuls scan: "
docker run –rm \
-v ~/.ssh:/root/.ssh:ro \
-v $PWD:/vuls \
-v $PWD/vuls-log:/var/log/vuls \
-v /etc/localtime:/etc/localtime:ro \
-e "TZ=Asia/Tokyo" \
vuls/vuls scan \
-config=./config.toml
#vuls report
echo -n $"vuls report: "
docker run –rm \
-v ~/.ssh:/root/.ssh:ro \
-v $PWD:/vuls \
-v $PWD/vuls-log:/var/log/vuls \
-v /etc/localtime:/etc/localtime:ro \
vuls/vuls report \
-cvedb-path=/vuls/cve.sqlite3 \
-ovaldb-path=/vuls/oval.sqlite3 \
-format-short-text \
-to-slack \
-lang=ja \
-cvss-over=7 \
-ignore-unfixed
-config=./config.toml

view raw
vuls-auto.sh
hosted with ❤ by GitHub

・スクリプト実行結果

勢いで作ってみましたが良さげ。
あとはCoreOSで定期実行してみます。

・Scheduling tasks with systemd timers

https://coreos.com/os/docs/latest/scheduling-tasks-with-systemd-timers.html

CoreOSにはcronがデフォルトで入っていないのでsystemdでやってみました。
土日以外朝8時に実行する感じ。通勤時にも見れますね。

・systemctl

先程作ったvuls.timerがエラーなく起動していればOK!


■まとめ

CoreOSもvuls scanできるようになれば敦盛と思いましたが、
CoreOS自体相当セキュアなので毎回新しいアップデートが来ると自動的にアップデートされて
再起動されますw(自分はオフにしてる)

[docker]CoreOSが勝手に再起動されたので調査してみた

これで自宅dockerサーバも放置することなくなった!・3・U
同僚の個人サーバも管理してるのでVulsスキャンしよう!
あとでVulsRepoも試してみまふ。

LINEで送る
Pocket

カテゴリー: CoreOSDockerVuls

adachin

1989年生まれのLancers SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、AnsibleやTerraformでのインフラコード化を推進。副業では数社サーバー保守、未経験によるエンジニアのメンターなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。現在はサービスの信頼性向上、可用性、レイテンシ、パフォーマンス、モニタリング、緊急対応、インフラコード化、リファクタリング、セキュリティ強化、新技術の検証、Docker開発環境の提供、AWSでのインフラ構築、グループ会社のインフラをECS/Fargateへ移行、CakePHP4での管理画面作成、メンター、分析基盤の運用を担当している。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください