Vuls Matsuri #3
Vuls祭りに参加してきました。
30分前に到着する予定が、道に迷ってしまい途中から参加…。国会議事堂前から溜池山王へたどり着けず…。
国会議事堂前から溜池山王にどうしてもたどり着けないので徒歩で六本木向かう
— †森林の伐採者† (@lorentzca) 2017年10月19日
資料はそのうち上がってくると思うので特に印象に残ったことや感想を書きます。
後半になるにつれお酒が回ってきてメモが雑になっていく…。
基調講演(キーノート)
Vulsの最新アップデートと今後の機能拡張についての発表でした。
しかし遅刻してきたのであまり聞けず…。
Alpine Linuxの対応が優先して行われるとのこと!海外だと特にDocker勢力がたくさんいて、Alpineがデファクト的な感じなのでという経緯らしい。
あとVulsへのコントリビュート方法的な紹介も。てっとりばやくコントリビュータになる方法としては、READMEに貼ってあるgo reportにtypoが上がってるからそれを直すPRを出せば良いとのことw
vulsrepoアップデートについて
Vulsのレポートを可視化するvulsrepoの最近のアップデート内容の紹介。
個人的にウホッて思った内容は以下。
- アップデート対象のパッケージのChangelogが見れるようになった
- インストールが簡単になった(ApacheとかWebサーバの準備が不要になった。バイナリになった)
- CVSS基本値をレーダーチャートで表示
- JVNとかの深刻度の表示パット見でわからないので可視化された 🙏
- インストールされてるカーネルバージョンと動作中のカーネルバージョンが違うと表示してくれるように
- つまりカーネルアプデ後のリブート忘れ奴の表示 🙏
#vulsjp 稼働中のカーネルとインストールされたカーネルの差異をチェックしてくれるの良さそう。リブート忘れ検知!
— †森林の伐採者† (@lorentzca) 2017年10月19日
フューチャーアーキテクト
フューチャーアーキテクト株式会社の紹介。内閣官房働き方改革実現会議議員がいたり海外で勉強しながら働いてるメンバーが居たり小汚い部屋で働いている人が居たり、色んな人が居るんだなあ。
Vulsの運用tips紹介と機能要望
貴重な運用の話や…!
環境について
Vulsはt2.mediumで動かしているらしい。スキャン対象は500台くらいだが、それでもCPUパワーは30%程度しか使わないとのこと。
Vuls本体のアップデートや運用について
Vuls本体のアップデートはChefのWhy runを毎日回してgitに更新があればSlackに通知して、アップデートしているとのこと。
アップデート方法はVulsをpullしてmakeしてるとのこと。
NVD/OVAL更新やレポーティングはJenkinsのpipelineを使って毎日更新している。
その辺の詳しい話は以下のブログにまとまっている。👀
機能要望
- Slack通知をサマリだけにしたい
- 通知がサーバ台数分くると通知で埋め尽くされる
- 前日との差分が出せるようにしてほしい
--enablerepo
とかyumのオプションを定義したい
FAQ
- Q. なんでスコアが8点以上のものを対象にレポートしている?
- A. 即時対応必要そうなのは8点以上が多いという経験則から
- Q. 逆にVuls導入して脆弱性対応の仕事が増えた?
- A. 増えたwけどちゃんと対応することが正しいはず
大規模環境でのVuls運用(仮)
貴重な運用の話。そして規模がでかい。
環境
スキャン対象のサーバは3000台くらい。大規模だ…。
プライベートクラウド(OpenStack)上に150個ほどのサービスが動いている。
課題と解決方法
- 3000台クラスなので、スキャンを並列化した(直列だと2日かかるw)
- 15台並列で3〜4時間
- 通知しても見なくなる問題はイベント管理することで対応
- スキャンした結果を前日と比較して差分を通知するようにした(その仕組は自前で作った)
- 対応状況はRedmineのチケット化した
- エンジニア以外も見れるし
差分の出し方は、スキャン結果(json)をDBに一回入れ、前回との差分を出しているとのこと。
導入後の課題
- サーバ毎にチケットきると、Redmineのチケットが数千個作られるwそしてRedmineが落ちる
- vulsrepoを導入して対応状況を可視化。作業の混乱も減った
#vulsjp vulsrepoを導入することで数千台クラスの環境でも全体の対応状況を可視化することができ、issueやチケットなどでの管理よりもより混乱せず対応できる
— †森林の伐採者† (@lorentzca) 2017年10月19日
FAQ
- Q. vulsはもともと並列のはずだけど…?
- A. 検証初めたのがちょっと前で古いバージョンだったりあとほかに1台ずつやらざるを得ない事情があった
- ???「0.4にアップデートしよう!!!!」
- A. 検証初めたのがちょっと前で古いバージョンだったりあとほかに1台ずつやらざるを得ない事情があった
#vulsjp サーバの増減はipアドレスのレンジを設定してssh飛ばすなりして生死確認するなどして対応しているらしい
— †森林の伐採者† (@lorentzca) 2017年10月19日
サーバ台数が変わる環境ではサーバ毎にvuls入れてローカルじこうすればconfも全部同じでいいし良さそうと思うんだけどどうなんだろう。その場合vulsrepoが使えないのかな? #vulsjp
— †森林の伐採者† (@lorentzca) 2017年10月19日
Vulsで検知した脆弱性への対処について
運用について。Vulsで検知した脆弱性ぶっちゃけどうしてる?という座談会。
いかざっくりしたメモ。
- バージョンはあげられるんだったら全部上げるべき!!
- 当てたいのはやまやまだけど色んな事情がある…(お客さんのシステムだったりとか)
- でも自分たちで管理しているサービスだったらちゃんと冗長化するなりすればいいじゃん。yumとかは特に既存のバージョンにパッチ入れてるだけだしあてればいいじゃん
- でも冗長化してても問題が有った場合と切り戻すまでのラグあるけどどーするん
- 金融とか医療とか確かに業界によるところはある。でもどう云う状況ならパッチ当てていいか、定量的に評価できなそう。とはいえほんとにそんなにパッチ当てられない状況ばかりではないはず
- とはいえほとんどの業界ではそこまでシビアではないはず。そこまでいくとVulsでなんとかなる話ではない。一般的な話ではどうかという話。なんか一般レベルでパッチ当てるか当てないかが気にされすぎているんじゃ?
など。やはりパッケージのアップデートって重いよなあ…。医療金融ではもちろん事情は変わりそうだけど、それ以外の業界でも重いと思ってしまう。DBのアプデとかね…。
#vulsjp セキュリティクラスタつおい
— †森林の伐採者† (@lorentzca) 2017年10月19日
#vulsjp 脆弱性対応とか結局どうするんだとか色々事情とか考えると辛い気持ちになりそう…。とりあえず今人間がひいひい言いながら持ち回りとかでやってるセキュリティチェックが自動化されるから楽ちんでいいねってスタンスでやっていきたい
— †森林の伐採者† (@lorentzca) 2017年10月19日
#vulsjp vulsが引っ張ってきて保存しているDBはvulsが対応していないベンダの情報も入っているので(ただの脆弱性データベース)、それを自分で引っ張ってくればいかようにも応用できる。ナルホデュウス
— †森林の伐採者† (@lorentzca) 2017年10月19日
LT
サーバレスVulsを構築しているのが面白かった。
#vulsjp おお! やっぱ自分でサーバ持ちたくないですよね。サーバ持たないでvulsの旨味だけ享受したい
— †森林の伐採者† (@lorentzca) 2017年10月19日
Vuls、クラウドサービス始まる
とうとう来るらしい。🎉
- OSSをクラウド提供始めただけではない
- セキュリティ専門家が挟まる(相談できる窓口)のと、Mackerelとの連携とかがあるっぽい…
- 検知した内容のチケット化も提供
#vulsjp 検知した後のどうするか、をクラウドサービス化でフォロー。
— †森林の伐採者† (@lorentzca) 2017年10月19日
#vulsjp (ioドメインだけど大丈夫だろうか…w)
— †森林の伐採者† (@lorentzca) 2017年10月19日
感想
Vulsの貴重な運用の話が聞けた!!!
とりあえず色々遊んでみたい欲求が生まれた。😊