internet week 2016 脆弱性スキャナによる対策支援の課題 vuls

42
Copyright ©2016 by Future Architect, Inc. Japan 脆脆脆脆脆脆脆脆脆脆脆脆脆脆脆脆脆 フフフフフフフフフフフフフフフフ Technology Innovation Group フフ フフ

Upload: kota-kanbe

Post on 16-Jan-2017

468 views

Category:

Software


12 download

TRANSCRIPT

Page 1: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

Copyright ©2016 by Future Architect, Inc. Japan

脆弱性スキャナによる対策支援の課題

フューチャーアーキテクト株式会社Technology Innovation Group

神戸 康多

Page 2: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 2 -Copyright ©2016 by Future Architect, Inc. Japan

神戸康多(かんべこうた)フューチャーアーキテクト株式会社所属サウナが趣味(週 2 )Linux/FreeBSD 向け脆弱性スキャナ Vuls 作者 GitHub

自己紹介

Page 3: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 3 -Copyright ©2016 by Future Architect, Inc. Japan

I. IPS/IDS/Antivirus ではカバーできない脆弱性を紹介。Linux サーバでのパッケージ、ライブラリなどのアップデートの重要性を知る。

II. 人力での脆弱性対策の大変さを知る。

III. OSS の脆弱性スキャナ Vuls を用いて、楽に、漏れなく、無料で出来る脆弱性対策の一例を紹介する。

本日のテーマ

Page 4: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 4 -Copyright ©2016 by Future Architect, Inc. Japan

Linux システムの、 24. 脆弱性スキャンが対象

本日の対象範囲

\

JNSA 2013 年度 情報セキュリティ対策マップより

Page 5: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 5 -Copyright ©2016 by Future Architect, Inc. Japan

Dirty Cow (CVE-2016-5195) SSH 接続可能な一般ユーザが Root へ権限昇格可能な脆

弱性

内部犯行可能運用ルールで一般ユーザ、 Root ユーザを分けていて

も、数秒で一般ユーザが Root ユーザに権限昇格可能

SSH で接続可能なユーザであれば誰でも簡単に実行可能PoC が沢山公開されているhttps://dirtycow.ninja/

PoC をカスタマイズすれば IDS/IPS, Antivirus での検知は難しい

IDS/IPS, Antivirus では防げない脆弱性も存在する

Linux サーバもソフトウェアアップデートは必要

Page 6: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 6 -Copyright ©2016 by Future Architect, Inc. Japan

プロダクション環境は手動アップデートを採用するケースが多い

OS パッケージ、ライブラリアップデート方法は 2 種類

メリット メリット手間なし漏れなし

事前にテスト可能

サービスダウンの可能性ミドルウェア、ライ

ブラリの API が変更される可能性

脆弱性情収集、影響調査のコスト大漏れる可能性あり

デメリットデメリット

自動アップデート 手動アップデート

Page 7: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 7 -Copyright ©2016 by Future Architect, Inc. Japan

日々公開される脆弱性情報を追い続ける必要があるシステム運用者は以下のサイクルを日々回している

手動アップデート運用での脆弱性対策は大変

情報収集

影響調査

テスト

パッチ適用

大規模、カオスな環境は大変 パッケージ、ライブラリ、 N/W 機器 漏れはないか?

約 7 千件 / 年の脆弱性 全部チェックするのは大変 漏れたら放置されてしまう

毎日の大変な作業は自動化すべき

Page 8: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 8 -Copyright ©2016 by Future Architect, Inc. Japan

日々の情報収集、影響度調査を自動化パッチ適用漏れによる脆弱性の放置を防ぐ

Vuls は脆弱性情報の収集、影響度調査を自動化する

情報収集

影響度調査

テスト

パッチ適用

私が作りました

Page 9: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 9 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls を作った経緯

100 台規模の Linux 環境を運用した経験より…

• Ubuntu, CentOS, Debian などディストリビューション、バージョンもバラバラ。 Ruby, Java など複数の言語

人力での脆弱性対策が大変だった

• 日々公開される脆弱性情報を全てチェック• 影響調査• 見逃してないか?調査結果は正しいか?• また OpenSSL か…

Vuls は怒りと憎しみから生まれた

Page 10: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls
Page 11: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 11 -Copyright ©2016 by Future Architect, Inc. Japan

潜在する脆弱性と該当サーバを可視化定期実行で対策漏れがなくなる

Vuls 概要

管理対象システム ソフトウェア情報

脆弱性情報

日本の脆弱性データベース

米国の脆弱性データベース

e-mail 、 slack 等による脆弱性を通知

突合

Page 12: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 12 -Copyright ©2016 by Future Architect, Inc. Japan

世界で注目の OSS

エージェントレス

日本語レポート

OS パッケージ、言語ライブラリ、 N/W 機器に対応

対象 OS が幅広い

プラットフォーム非依存

WebUI

Vuls の特徴

Page 13: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 13 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴 世界で注目の OSS

世界で注目の OSS

エージェントレス

日本語レポート

OS パッケージ、言語ライブラリ、 N/W 機器に対応

対象 OS が幅広い

プラットフォーム非依存

WebUI

Page 14: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 14 -Copyright ©2016 by Future Architect, Inc. Japan

2016/4/1 GitHub 公開 https://github.com/future-architect/vuls

公開直後から世界中で話題になり、 2016/10/1 にGitHub スター獲得ランキング全言語 1位に

Vuls の特徴 世界で注目の OSS

スター数は順調に増加世界 1位

Page 15: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 15 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴 エージェントレス

世界で注目の OSS

エージェントレス

日本語レポート

OS パッケージ、言語ライブラリ、 N/W 機器に対応

対象 OS が幅広い

プラットフォーム非依存

WebUI

Page 16: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 16 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴 エージェントレス

セットアップが簡単

• 1 台のみでよい

既に動いている本番環境に導入しやすい

• 既存本番環境にエージェントを入れたくない /入れられないケースでも導入可能

大規模環境向き

• Vuls 本体のデプロイ、アップデートが簡単

Vuls サーバから対象サーバには SSH で接続

• 対象サーバ上でコマンドを発行(ホワイトボックス)• 非破壊テスト型スキャナ

Page 17: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

脆弱性 DB

Vuls サーバ

Page 18: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 18 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴 日本語レポート

世界で注目の OSS

エージェントレス

日本語レポート

OS パッケージ、言語ライブラリ、 N/W 機器に対応

対象 OS が幅広い

プラットフォーム非依存

WebUI

Page 19: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 19 -Copyright ©2016 by Future Architect, Inc. Japan

Slack, E-mail 通知に対応( 2016/11時点)

Vuls の特徴 日本語レポート

Page 20: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 20 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴  OS パッケージ、言語ライブラリ、 N/W機器に対応

世界で注目の OSS

エージェントレス

日本語レポート

OS パッケージ、言語ライブラリ、 N/W 機器に対応

対象 OS が幅広い

プラットフォーム非依存

WebUI

Page 21: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 21 -Copyright ©2016 by Future Architect, Inc. Japan

CPE登録済みのものであれば脆弱性の検知が可能参考 : IPA共通プラットフォーム一覧 CPE 概説

https://www.ipa.go.jp/security/vuln/CPE.html 

Vuls の特徴  OS パッケージ、言語ライブラリ、 N/W機器に対応

  [servers]

  [servers.172-31-4-82]  host = "172.31.4.82"  user = "ec2-user“  keyPath = “/home/username/.ssh/id_rsa"    cpeNames = [    "cpe:/a:rubyonrails:ruby_on_rails:4.2.1",  ]

Vuls の設定ファイル  RoR4.2.1 を定義した例

Page 22: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 22 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴  OS パッケージ、言語ライブラリ、 N/W機器に対応

CPE の調べ方その1

• NVD で検索する• https://web.nvd.nist.gov/view/cpe/search

CPE の調べ方その 2• NVD での検索は面倒という方のためのツール• ターミナルでインクリメンタル検索可能• https://github.com/kotakanbe/go-cpe-dictionary 

それでも面倒という方は…

Page 23: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 23 -Copyright ©2016 by Future Architect, Inc. Japan

プログラミング言語ライブラリ用脆弱性スキャナ OWASP Dependency-Check と連携する方法

利点Vuls の設定ファイルにライブラリの CPE を定義しな

くてよいバージョンアップ時に Vuls設定ファイルの変更不要Vuls と連携すると日本語でのレポートが可能

Vuls の特徴  OS パッケージ、ライブラリ、 N/W 機器にも対応

  [servers]  [servers.172-31-4-82]  host = "172.31.4.82"  user = "ec2-user"  keyPath = “/home/username/.ssh/id_rsa"    dependencyCheckXMLPath = "/tmp/report.xml“

Vuls の設定ファイル

Page 24: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 24 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴 対象 OS が幅広い

世界で注目の OSS

エージェントレス

日本語レポート

OS パッケージ、言語ライブラリ、 N/W 機器に対応

対象 OS が幅広い

プラットフォーム非依存

WebUI

Page 25: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 25 -Copyright ©2016 by Future Architect, Inc. Japan

Linux系 OS, FreeBSD の脆弱性をスキャン可能サポート期間中のものが対象

Vuls の特徴 対象 OS が幅広い

Redhat系 RHEL(5), 6, 7CentOS

5, 6, 7Amazon Linux 全バージョン

Debian系 Debian7, 8Ubuntu12, 14,

16BSD FreeBSD

10, 11

※ RHEL5 は対応予定

Page 26: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

OSごとのスキャンフロー

Debian/Ubuntu/CentOS RHEL/Amazon/FreeBSD

未アップデート部分のチェンジログを解析

コマンドで取得

Page 27: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 27 -Copyright ©2016 by Future Architect, Inc. Japan

脆弱性情報には該当するパッケージ、バージョン情報が含まれる。実装前はバージョンの比較で実現できるだろうと思っていたが、以下の通りバージョン比較での実現は不可能であることを悟る

Vuls の特徴 対象 OS が幅広い - チェンジログ解析の理由

locales 2.13+git20120306-21 login 1:4.1.5.1-1.1ubuntu7 lsb-base 9.20160110make 4.1-6mawk 1.3.3-17ubuntu2mime-support 3.59ubuntu1multiarch-support 2.21-0ubuntu5

Ubuntu パッケージ、バージョンの例

試行錯誤の末、チェンジログの解析を思いつく

Page 28: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 28 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴 プラットフォーム非依存

世界で注目の OSS

エージェントレス

日本語レポート

OS パッケージ、言語ライブラリ、 N/W 機器に対応

対象 OS が幅広い

プラットフォーム非依存

WebUI

Page 29: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 29 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴 プラットフォーム非依存

オンプレ、クラウドどこでも動作

• SSH 接続できればスキャン可能• Vuls 本体は Go 言語製のプログラム

Docker コンテナの脆弱性もスキャン可能

• Dockerホストに SSH 接続コンテナへは docker exec でコマンド発行

• Docker コンテナには SSH デーモンを起動しなくてもよい

Page 30: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 30 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴  WebUI

世界で注目の OSS

エージェントレス

日本語レポート

OS パッケージ、言語ライブラリ、 N/W 機器に対応

対象 OS が幅広い

プラットフォーム非依存

WebUI

Page 31: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 31 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴  WebUI

VulsRepo• Exel のピボットテーブルのようにスキャン結果の分析

が可能• https://github.com/usiusi360/vulsrepo

Page 32: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 32 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴  WebUI

Faraday• 現在、 Vuls プラギン作成中• https://github.com/infobyte/faraday

Page 33: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 33 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴  WebUI

AWS Quicksight

• AWS の BIツールを使ってダッシュボードを作った例

Page 34: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 34 -Copyright ©2016 by Future Architect, Inc. Japan

Vuls の特徴  TUI

Vuls TUI

• ターミナル UI が Vuls 本体に付属している

Page 35: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 35 -Copyright ©2016 by Future Architect, Inc. Japan

他ツールとの連携

スキャン結果を出力・加工

Zabbix でトリガー条件指定、

通知Zabbix に送信

Zabbix との連携

JSON 出力

Qiita:脆弱性スキャナVulsのスキャン結果をZabbixへ連携しアラート通知する

Qiita:Zabbixに登録されたホスト情報を脆弱性スキャナVulsへ自動連携する

設定ファイル生成ホスト情報取得 スキャン実施

Page 37: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 37 -Copyright ©2016 by Future Architect, Inc. Japan

他ツールとの連携

Redmine と連携した脆弱性対策のワークフロー

Redmine API 担当者 / 対応履歴JSON 出力 監査で使用

Trend Micro Deep Security ルールのカバレッジ表示

DeepSecurity

ルール取得カバレッジ表示JSON 出力 CVE-ID

比較

https://github.com/kn0630/vulssimulator_ds 

Page 40: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 40 -Copyright ©2016 by Future Architect, Inc. Japan

今後の課題

スキャンの検知精度の向上

• 現状 Ubuntu/Debian/CentOS はチェンジログを解析チェンジログの記述次第で検知漏れの可能性があるため、バージョン比較での検知ロジックを併用し精度を向上させる

大規模環境対応

• 数千台、数万台規模を想定したチューニング

他の脆弱性スキャナとの連携

• 設定、状態までを考慮した賢いスキャン• サーバ設定 Audit系• WordPress プラギン用脆弱性スキャナなど

Page 42: Internet Week 2016 脆弱性スキャナによる対策支援の課題 Vuls

- 42 -Copyright ©2016 by Future Architect, Inc. Japan

まとめ

サーバのソフトウェアアップデートは必要です

• IPS/IDS, Antivirus では防げない脆弱性が存在します• ツールを使ってシステムに潜在する脆弱性を見える化

しましょうVuls は継続的な脆弱性対策を可能にします

• 新規に脆弱性やアープデートが公開されたタイミングで、脆弱性の詳細情報と該当するサーバを Vuls が教えてくれます

OSS なので明日から無料で使えます!

有償サポートやカスタマイズはご相談ください

• フューチャーアーキテクト株式会社 担当:神戸(かんべ)まで

• mailto: [email protected]