Slide 1

Slide 1 text

+ 卒業制作 サーバーの脆弱性情報管理システム Team : gippy

Slide 2

Slide 2 text

+ Agenda n Introduction n 開発経緯 n Features n システム説明 n Architecture n アーキテクチャー説明 n Matching algorithm n 脆弱性情報のマッチング処理説明 n Demo n WebUIによる紹介 n Using Technology n 本システムで使われているソフトウェアや技術等の紹介。

Slide 3

Slide 3 text

+ Introduction n 2014年様々な脆弱性が世間を騒がせた。 n サーバーを始めとするLinux系OSを狙った「ShellShock」。 n 度重なる「OpenSSL」の脆弱性。 n クラウド化が進む中、サーバーの台数は増え続ける。 n サーバー管理者は、脆弱性の対応が重荷になっている。 n サーバーのコモディティ化が進む。 n 安価なサーバーを一般ユーザーが借りることができる。 n セキュリティの対策は自分で行わないといけないサービスが多い。 ※コモディティ化 : 高価な商品が低価格化・普及品化すること

Slide 4

Slide 4 text

+ Introduction n 私自身、多数のサーバーを管理していた。 n インターネットからアクセス可能なサーバーを数十台管理。 n CVEが発表されるたびに、sshでサーバーに繋いで対象パッケージ のバージョン等を確認、アップデート作業が手間だった。 n 脆弱性対応作業が重荷になっている。 n サーバーを多数管理している知人も、脆弱性対応が手間だった。 n 脆弱性対応作業が、作業×サーバー台数分なので非常に大変。 n 脆弱性対応作業を自動化したい。 n 依存パッケージが勝手にアップデートされると、別のプログラムに 影響が出る。 n パッチ当てる/アップデートについては人間が判断したい。

Slide 5

Slide 5 text

+ Introduction n 脆弱性対応作業の流れ n 調査 n 脆弱性情報を探す or 発表された情報を確認。 n 脆弱性によって、どのような問題が発生するか確認。 n 対策するか否かについて検討。 n 対策情報を探す。 n 対象サーバーの確認。 n テスト n 対象サーバーと同等の環境を用意し対策を行った場合、他のソフト ウェアに影響が発生しないか検証を行う。 n 実施 n 対象サーバーに対して、対策を実施。 n 対策を実施したことで影響が発生していないか確認。 n 本システムでは、調査段階の省力化を目指して開発。

Slide 6

Slide 6 text

+ Introduction n これらの解決のために n 脆弱性対応オペレーションの省力化を補助するシステムを開発。 n サーバーにインストールされている、ミドルウェア/パッケージ情 報管理と脆弱性情報の管理と可視化を行う。 n システムは脆弱性対策をするかどうかの判断材料の提供までを行う。 n 脆弱性対策の実施、判断を行うのはサーバー管理者自身で。

Slide 7

Slide 7 text

+ Features n Server / Agent によるシステム n 管理対象(Agent)にはエージェントプログラム。 n 管理側(Monitoring Server)にはサーバープログラム。 n サーバーにインストールされているパッケージ情報の管理 n ミドルウェア/パッケージの情報等管理。 (name,vendor,version,release,etc…) n インストールされているパッケージ情報をAgentが自動取得、Monitoring Serverに送信。 n install / remove / updateに対応、情報が変更される度に自動取得。 n AgentをProject -> AgentGroup -> Agentという階層構造で管理。 n 脆弱性情報の管理と可視化 n 脆弱性情報データベース(NIST)からCVE情報を自動取得。 n パッケージが、脆弱性のあるバージョンかどうかチェック。 n WebUIを通して、Agentにインストールされているパッケージ情報と関連す る脆弱性情報を表示。

Slide 8

Slide 8 text

+ Architecture NIST NVD Monitoring Server Software Version OpenSSL 1.0.2c NIST NVDより脆弱性情報(CVE)を取得。

Slide 9

Slide 9 text

+ Architecture Monitoring Server Web2(Agent) OpenSSL 1.0.2c Web1(Agent) OpenSSL 1.0.1e {“software” : “OpenSSL”, “version” : “1.0.1e”} {“software” : “OpenSSL”, “version” : “1.0.2c”} Software Version OpenSSL 1.0.2c Agentから、インストールされているパッケージ情報を送信。

Slide 10

Slide 10 text

+ Architecture Monitoring Server Web2(Agent) OpenSSL 1.0.2c Web1(Agent) OpenSSL 1.0.1e Host Software Version Web1 OpenSSL 1.0.1e Web2 OpenSSL 1.0.2c Software Version OpenSSL 1.0.2c Host Software Version Web1 OpenSSL 1.0.1e Web2 OpenSSL 1.0.2c Agentから取得した情報と、CVE情報を突き合わせて脆弱性情報の有無をチェック。

Slide 11

Slide 11 text

+ Architecture Monitoring Server Host Software Version Web1 OpenSSL 1.0.1e Web2 OpenSSL 1.0.2c Software Version OpenSSL 1.0.2c Host Software Version Web1 OpenSSL 1.0.1e Web2 OpenSSL 1.0.2c H S V × ◻ ○ WebUIを通して、Agentにインストールされているパッケージ情報と 関連する脆弱性情報を表示。

Slide 12

Slide 12 text

+ Matching algorithm Software CVE ID Name Version 2 openssl 1.0.2c Agent ID Name 1 Web02 CPE ID CPE Name Version 3 cpe:/a:openssl:openssl:1.0.2c openssl 1.0.2c ID CVEID CVSS Score …. CPE 4 CVE-2015-**** 8 …. cpe:/a:openssl:openssl:1.0.2c ※実際の実装と基本的には同等のアルゴリズムです。 ※完全一致しないSoftwareについては、脆弱性情報を誤検知・見逃しをする可能性があります。(改良中)

Slide 13

Slide 13 text

+ WebUI - AgentGroup AgentGroupに所属するAgentの一覧を表示。

Slide 14

Slide 14 text

+ WebUI - Agent Agentにインストールされているパッケージに関する情報を表示。

Slide 15

Slide 15 text

+ WebUI - Software パッケージの情報と関連する脆弱性情報を表示。 誤検知の場合、非表示に することが可能。 該当するバージョンに脆弱性が存在して いても、リリース番号を調べることで fixされている事もあるので、changelog も表示。

Slide 16

Slide 16 text

+ WebUI - CVE 脆弱性情報の詳細表示。

Slide 17

Slide 17 text

+ WebUI - Search 検索画面、Agent情報から該当するAgentを検索と 任意のパッケージがインストールされているAgentを検索可能。

Slide 18

Slide 18 text

+ WebUI - SearchResult 任意のパッケージがインストールされているAgentを検索した結果。 クリックする事で下部にインストールさ れているAgentの一覧を表示。

Slide 19

Slide 19 text

+ Using Technology n OS n Server (Monitoring Server) n CentOS 6.7 n Agent(動作検証) n CentOS 6.x, CentOS 7.x n Red Hat Enterprise Linux 7.2 n Oracle Linux 5.x, 6.x, 7.x n Fedora 23 n Program n Server (Monitoring Server) n Python(2.7.6) n Django(1.8) n Agent n Python(2.7.6) n DB n PostgreSQL(9.5) n MySQL(5.1.73)