VTRyo Blog

一歩ずつ前に進むブログ

Vulsとは何か & Vuls祭り#3に行ってきた!

f:id:vtryo:20180716020602p:plain

vulsに関する投稿ははじめてだが、実は業務で本番運用しているのでご紹介。

それと、Vuls祭りというイベントにDMM.com Lab社にお邪魔して、開発者の話を聞いてきたので合わせて書いておく。

アジェンダ

そもそもVulsとは

VulsはVULnerability Scannerの略で、Linux/FreeBSD向けの脆弱性スキャンツールです。OSのみならずプログラミング言語やライブラリに至るまで多くの環境に対応し、レポートや通知を行います

https://thinkit.co.jp/article/10092

とりあえずこっちではないことは先に言っておく。

f:id:vtryo:20180716021120j:plain

いわゆるオープンソースというやつで、Vulsは誰でも無料で使用することができる。

OSとしてはUbuntu、Debian、CentOS、Amazon Linux、RHELに対応。

また、多くのクラウド環境やDockerコンテナもサポートしているので、昨今のトレンド技術もばっちりだ。

脆弱性とは

脆弱性とは、コンピュータまたはネットワーク全体のセキュリティに弱点を作り出すコンピュータソフトウェアの欠陥や仕様上の問題点です。

https://jp.norton.com/security_response/vulnerabilities.jsp

つまり、この脆弱性を放置しておくと外部から攻撃を受けたり、ウイルスに感染したりと深刻な被害を受けてしまう。

WEBサービスを展開している企業はもちろん、サーバを保有している人はこうした脆弱性に対応していかなければならい。

だが、こうした脆弱性は何度対応してもすぐに新たな脆弱性が発生してしまう。すると、サーバ管理者側での対応が徐々に遅れていく。

  • どのサーバで
  • どの脆弱性があって
  • どこまで対応したのか
  • 即時対応すべきか

これらを常に把握して作業しなければならないと思うと、脆弱性対応というのは調査や管理の段階で非常に工数がかかる作業だった。

Vulsが変える、これからの脆弱性対応

脆弱性の可視化、検知の自動化

Vulsのココが凄い!を言うならば

  • スキャン対象ソフトウェアが広範囲
  • 米国の脆弱性データベース、NVDを参照している
  • エージェントレスアーキテクチャ
  • 日本語の脆弱性レポート(ただしJVN iPediaに日本語訳がなければ英語になる)
  • VulsRepoというWEBUIがある(外部の@usiusi360さん作)

脆弱性レポートはこのような形で見ることができる。

f:id:vtryo:20180716021240j:plain

こうしたレポート情報を、Vulsは自動で引っ張ってきてくれることも非常に魅力的だ。

画像は弊社SlackにVuls Scan結果を通知しているところ。

URLを踏めば、脆弱性データベース(上記画像)へ飛ぶことができる上、脆弱性レベルまで記載されているので即時対応すべきか判断しやすい。

f:id:vtryo:20180716021317j:plain

サービス責任者に説明する際にも、ソースがはっきりしているので話しやすいのも助かっている。

Vuls Cloudの登場

なんとVulsのクラウド版が11月にβ版リリースされるという。

特徴は以下の通り。

  • データ集計をして、対応のレコメンドを実行
  • セキュリティ面の相談
  • 履歴管理
  • JSONパースしてRedmine連携もいらなくなる
  • 高い検知精度
  • 容易な優先度付

単にサーバレスにする目的だけでないあたり、こだわりを感じた。

気になるのはお値段。

クラウドでやっていく以上は有料だと思われるが、現在は早期ユーザを募集中とのこと!

チャンスだ。

サイトの信頼性

脆弱性対応が自動化され可視化されることで、より脆弱性を放置している企業は目立つことになると思う。

反対に、しっかり対応している企業には間違いなく信頼性が保たれ、安心してサービスを展開することができる。

整理

一旦ここで整理しよう。

  • 脆弱性検知を自動化することで、これまで大変だった調査時間は格段に減る
  • ただし検知したサーバ対応で逆に作業が発生するのは否めない
  • セキュリティ担保には必要不可欠
  • 工夫して楽に脆弱性対応できるようにしとこう

弊社では5月あたりからVulsの運用が始まったが、我々SREチームもだいぶ運用になれてきた。

Ansibleを利用して脆弱性アップデートを自動化したりと、工夫できることはたくさんある。

SREの重要性を噛み締めつつ、これからもVulsを追っていきたい。

 

Vuls祭り#3 とは

Vuls開発者の神戸氏や、VulsRepo開発者のusiusi氏を始めとしたVulsユーザのための祭り。

https://vuls-jp.connpass.com/event/67996/

基調講演に始まり、運用方法やTipsなどが紹介された。

ここからは、そのメモ。

Vulsの最新アップデートと今後の機能拡張について(サウナおじさん @kotakanbe

遅刻して聞けませんでした!ごめんなさい!

vulsrepoの最新アップデートについて(@usiusi360

VulsRepoのここが変わった!

VulsRepoとは

f:id:vtryo:20180716021353j:plain

・スキャンしたファイルをWEBで見れる。ピポットテーブル的に項目を入れ替えて表示できる。

・グラフの可視化機能 f:id:vtryo:20180716021448j:plain

・チェンジログが見やすくなる

変わった所

・インストールが簡単になった。WEBサーバのインストールが必要ない

・NVD, JVNのタブを廃止。1画面で見れるようになり、スコアの差がわかりやすくなった

・CVSSの基本値をレーダーチャート表示にした。他の脆弱性検知ツールよりわかりやすく

・CVSSv3にも対応

・RebootRequireの表示。Reboot忘れに助かる

・NewPackafeVer, NotFixYetの表示。(新しいバージョンがあると表示される、修正済みのパッケージが存在しない物を表示)

f:id:vtryo:20180716021512j:plain

要望はSlackにじゃんじゃん言っていいらしいぞ!

vulsの運用tips紹介と機能要望(Raksul) {.entry-title}

Vulsと出会うまでの私

・ネットをにぎわすような脆弱性くらいしかUpdateはしていなかった

・潜在的な脅威には対応できていなかったと思う

・対応ホスト一覧があるわけではなかったので調査に時間がかかっていた

・そんなとき、Vulsと神戸さんに出会った

環境

・対象は400インスタンス超

・運用はChef。パッケージはバージョンロック

運用方法

・Slackに通知

・脆弱性の情報更新はPipelineで毎日自動実行

・週次でRepoを確認し、8点以上のものを対応

・Scan対象が変わるので、毎回config.tomlをテンプレートから生成

・Scan前にバージョンロックを解除する

機能要望

・Slackに通知をサマリーだけにしたいなあ

・yum対応。オプションとか

大規模環境(3000台)でのVuls運用

3000台のサーバをRedmineでチケット管理

管理体制

・プライベートクラウドの上に150サービス

・全社の脆弱性対応状況を把握して速やかに対応すること!!

環境

・前提としてOpenstackで管理されている

・通知先は決まっていて、登録済みである

課題

・サーバ台数多すぎ → スキャンだけで2,3日かかるので並列化

・各サービスに通知する仕組みが必要 → イベント管理

・対応状況を管理できる仕組みがほしい

並列化

・15台で並列Scan。一台につき200台みる

イベント管理

・担当者に通知して対応させるために、前日と比較しての差分通知に絞る

(多すぎて無理だったらしい)

チケット化

・チケット化することで管理系の人にも進捗管理をわかりやすく

・成果をみやすく

・APIでなるべく簡単に

導入後の状況

・つくったはいいが、1個の脆弱性でチケットが数千枚になりサーバが止まる

・対応する人からすればどのサーバにどう対応すればいいかわからない

・作業進捗が低下

・対応改善のためにVulsRepoを導入して見やすくした

まとめ

・大規模環境では時間がかかるので並列化

・イベント化して必要最低限に

・チケット管理で全体を把握

・VulsRepoで可視化しよう

ハマりがちなとこ

・リポジトリ側の設定が独自だったりするとScan結果が複雑になる

Vulsで検知した脆弱性への対処について(座談会)

  • VulsのSlackで中心的に喋ってるひとたち

運用どうしてる?

・スコア見てる? → 見てる人ほぼいない

・全部対応してる? → まさかのほぼ弊社だけ!?ww

パッチ当てたい?

・お客さんのサーバだと当てたいけど当てられない・・・

・サービスに影響のないサーバを持つ人はすぐに当てられる・・・

CentOSユーザは当てとけばいいのでは?

という話題では登壇者(セキュリティクラスタ)と聴講者(金融系セキュリティクラスタ)の反論大会勃発!w 玄人の会話レベル高杉です。

〜LT祭り〜

サーバレスVulsアーキテクチャ再び サーバレスVulsアーキテクチャ再び前回の発表からのアップデートについて(Sansan)

Cloudformationのテンプレートをつくった

・Lambdaでサーバレスアーキテクチャに

・KMSで暗号化・複合。DBパスやSSH鍵

・Step functionでLambdaで関数のループ実行

・Ec2-vuls-configでスキャン対象を選定。EC2タグ(Vuls-scan)を付けたインスタンスをVulsのconfigに書き込む

診断しかできないVuls環境の作り方

導入背景

・PJ毎に点在していたセキュリティ対策を共通化していく

要件

・既存オンプレ環境をAWS上の診断環境より診断

・既存環境への修正は最小限に抑える

・ユーザには最低限の権限。診断に不要な権限は当てない

ポイント

・Vulsユーザ以外でのSSHを禁止

・実行できるコマンドを制御し、拒否する(vuls-ssh-command.sh)。Vuls実行コマンドを抽出して許可

まとめ

・既存オンプレ環境は安全に進めたい

Vulsだけで完結しない、WEBサイト脆弱性対策について

脆弱性対応してますか?それだけじゃだめですよ

Vulsが見ているのはOSのパッケージだけ

・パッケージ以外のもの

・自分で書いたWEBアプリ

脆弱性が発生する場所

・WEBアプリケーション

・フレームワークのライブラリ

・Wordpressなど

・httpdなど

パッケージはVulsで検知できるが、、、見えないところもある。

最も危ないのが自分で作成したフレームワークや認証システムなどは、自分でしか使っていないので報告が上がってこない。

検知タイミング

・WEBアプリケーション → ユーザが使用して発見

・フレームワーク → わからないことが多い。探そうと思ってやっとみつかるとか

わかった上で検知させるとやはりVulsは便利!

デモ

時間的に無理そう。。。せっかく用意した環境が。。。(笑)

まとめ

・Vulsだけでは不十分。他のツールも見て

・OS側を見るのであればVulsは超便利!

・見えない所は業者に頼むしかないのか・・・?

脆弱性検知後のパッチ適用運用が捗るサービスを作ってみた話

Vuls、クラウドサービスを始める

・データ集計をして、対応のレコメンドを実行

・セキュリティ面の相談

・履歴管理

・対策検討、検証・運用をやりやすくするサービスを

・JSONパースしてRedmine連携もいらなくなる

特徴

・高い検知精度

・容易な優先度付

・履歴管理

・対応のレコメンド

どんどん機能拡張するよ!

1月のソフトウェアデザインにクラウド版が掲載!

11月にクラウドβ版リリース!

所感

VulsRepoの存在は大きい

 GUIで脆弱性を確認するだけではなく、人間が見やすいようにレーダーチャートにしてくれる。

さらに、項目並べ替えやサーバのリブートが必要かどうかまで可視化できるので適用忘れがない。

もちろん、弊社ではVulsRepoを運用しているし、WEBサーバなしでブラウザ表示できるのも簡単でよい印象だ。

業界の違いとサーバの所有者の違い

自社サーバではなく、お客さんのサーバを管理している企業は脆弱性対応に非常に苦労している様子だった。

「あっ、脆弱性だ!」と検知してすぐに対応できる弊社はおそらくかなり楽なほうで、業界が金融系や医療系では対応までに時間も労力もいるようだ。

また、発見した脆弱性に対してすべて対応しているのが弊社くらいだったのは嬉しいことだった。

おわりに

開発者のサウナおじさんこと神戸さんにお会いすることが出来た!(めちゃくちゃ飲んでて楽しそうだった)

驚くべきことに弊社SREメンバーの顔を知っていてくれたようで、とても嬉しかった(登壇イベントがCompassにあったので見てくれたらしい!ありがとうございます!)。

最後にノベルティ、ありがたく頂戴しました。

Vuls祭りありがとう!! ぜひ使い倒そう!

f:id:vtryo:20180716021618j:plain