Vulsを使った脆弱性チェック運用はじめるよ
という事で、背景は前の記事で書いた通りですので、実際に環境を構築してみます。 複数アカウントにまたがる環境、且つIPアドレスが結構変動する環境では通常通りのconfigではすんなり動いてくれないため、力業で解決しているところもあります。
当面はIPアドレスが変動してもconfigに反映出来る仕組み作りです。
では、実際に今どんな環境で動いているか見てみましょう。 基本は、公式の内容通りで環境構築をしていますが、レコチョク内での運用を加味しています。
目的
- 稼働中サーバのOSパッケージ脆弱性を可視化し、特に対応が必要なものをあぶりだす。
環境構成
環境Directory
/home/vulsuser/
※()内はPermission、記載が無い場合は上位継承
- .ssh (700) [各環境の公開鍵置き場]
- accout-xxx (700) [ アカウント名毎にDirectory ]
- xxx_rsa (600) [ アカウント名毎の秘密鍵 ]
- xxx_rsa.pub (644) [ アカウント名毎の公開鍵 ]
- known_hosts (644) [ vulsuserのknown_hosts ]
- config (644) [ 確認無しでknow_hostsを上書きするために設定 ]
- accout-xxx (700) [ アカウント名毎にDirectory ]
- go (775) [ golangの各種sourceやpackage置き場($GOPATHはここ) ]
- bin
- pkg
- src
- github.com
- future-architect
- vuls [ vulsのgit clone ]
- future-architect
- golang
- kotakanbe
- go-cve-dictionary [ go-cve-dictionaryのgit clone ]
- goval-dictionary [ goval-dictionaryのgit clone ]
- github.com
- results (700) [ scan結果確認Directory ]
- yyyy-mm-ddTxx:xx:xx+xx:xx [ vuls scan結果(実行時のタイムスタンプがDirectory名) ]
- current (777) [ 最新のscan結果へのsymbolic link ]
- src (775) [ DLしたFile置き場 ]
- vuls_config(700)
- config.toml (600) [ vuls scan用config ]
- config.toml (600) [ vuls scan用config ]
- vulsrepo (775) [ VulsRepo一式 ]
- .git
- dist
- gallery
- plugins
- server
- vulsrepo-config.toml (664) [ VulsRepo用config ]
- vulsrepo-server [ VulsRepo本体 ]
- index.html (664) [ VulsRepo画面 ]
- cve.sqlite3 (644) [ CVE情報データベース ]
- cve.sqlite3-shm (644) [ CVE情報データベース ]
- cve.sqlite3-wal (644) [ CVE情報データベース ]
- oval.sqlite3 (644) [ OVAL情報データベース ]
- fetchdata.sh (700) [ cron用shell ]
- scan.sh (700) [ cron用shell ]
- slack_notify.sh (700) [ scan結果Slack通知用shell ]
- target_host_list (664) [ scan対象ホストリスト(scan.sh実行結果) ]
環境構築手順
1. 事前準備
野村昌男
インフラとセキュリティメインでやっています。
L4/L3以下が好きです。