OWASP Dependency Trackを使った脆弱性管理のFirst Step

OWASP Dependency Trackを使った脆弱性管理のFirst Step

2019/03/07(木)に開催した OWASP Evening Okinawa #11 の発表資料です。
Speaker: サイバーエージェント 野渡 志浩様
https://owasp-okinawa.doorkeeper.jp/events/87084

30378bb847308912c4727c8a8d6c8cf3?s=128

OWASP Okinawa

March 07, 2019
Tweet

Transcript

  1. OWASP Evening Okinawa #11 OWASP Dependency Track を使った 脆弱性管理 の

    First Step
  2. 自己紹介:野渡 志浩 • 株式会社サイバーエージェント  システムセキュリティ推進グループ マネージャ  ITセキュリティ戦略室 副室長  CyberAgent CSIRT

    Rep • 経歴 ◦ ベンダー側 ▪ ネットワークエンジニア(セキュリティ寄り) ▪ FW/IDS/アンチウィルス/WAF/脆弱性スキャナ 等々の販売 ▪ 脆弱性診断サービス (ネットワーク/サーバ/ウェブ/ネイティブアプリ) ◦ サービス事業者側 ▪ はじめは脆弱性診断関連業務の担当者 ▪ セキュリティ関連業務の取りまとめ ▪ 社内CSIRTの運営  
  3. 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018

    2019 5749 4696 4172 5349 5314 7995 6679 6739 18341 18213 2121
  4. 今日の話のテーマ ネットワーク機器 OS ミドルウェア ミドルウェア アプリケーション 自社開発 アプリケーション OSS 公開システム

    内部システム ネットワーク機器
  5. 今日の話のテーマ ネットワーク機器 OS ミドルウェア ミドルウェア アプリケーション 自社開発 アプリケーション OSS 公開システム

    内部システム ネットワーク機器
  6. 今日の話のテーマ ネットワーク機器 OS ミドルウェア ミドルウェア アプリケーション 自社開発 アプリケーション OSS 公開システム

    内部システム ネットワーク機器
  7. None
  8. None
  9. None
  10. None
  11. なにができるツールなのか • OS、アプリケーション、開発言語、フレームワークなどの脆 弱性情報を収集し閲覧することができる • 使用している環境をコンポーネントとして登録すると、そのプ ロダクト、バージョンに存在する脆弱性を監視することができ る • コンポーネントの登録はCPEベース

    • グラフィカルなダッシュボード、メール・slackへの通知機能も 用意されている • 同じような機能を有するOSSはVulsなど ただしVulsの方が高機能 IPAテクニカルウォッチ「脆弱性対策の効果的な進め方(ツー ル活用編)」:IPA 独立行政法人 情報処理推進機構
  12. None
  13. None
  14. • ダウンロード • 実行 • 監視するコンポーネントの登録 • プロジェクト – 作成

    – コンポーネントの割り当て • その他 – 脆弱性管理 – 通知 • APIを使った構成 使い方
  15. ダウンロード • Dependency-Track | Software Composition Analysis https://dependencytrack.org/ • ダウンロード

  16. 実行 • Dockerコンテナを利用 $ docker pull owasp/dependency-track $ docker volume

    create --name dependency-track $ docker run -d -p 8080:8080 \ --name dependency-track \ -v dependency-track:/data owasp/dependency-track $ java -Xmx4G -jar dependency-track-embedded.war $ java -Xmx4G -jar dependency-track-embedded.war \ -Dalpine.application.properties=~/.dependency-track/application.properties • 実行可能なWARファイルを実行 – とりあえず実行 – 設定をカスタマイズして実行 • Tomcat+warで実行 Tomcatをインストールしてデプロイ
  17. 設定のカスタマイズ • 使用するデータベースの変更 組み込みのH2DBは本番使用非推奨 – Microsoft SQL Server 2012以降 –

    MySQL 5.6と5.7 – PostgreSQL 9.0以上 • ユーザ認証のLDAP化 • 外部接続用のProxyサーバ設定 • 設定ファイルが保存されるディレクトリの変更 • などなど
  18. 起動 • 初回起動 – データのダウンロード 初回のみダウンロードと登録処理に30分程度 • NPM advisory •

    NVD Data Feeds – adminパスワードの変更
  19. 起動 • dependency-trackのログ – dockerを使った場合 /data/.dependency-track/dependency-track.log – 実行可能なWARを使った場合 {実行したディレクトリ }/.dependency-track/dependency-track.log

  20. コンポーネントの登録 • コンポーネントとは 監視するプロダクトのこと CPE(Common Platform Enumeration)に沿って登録する – CPEとは –

    CPEの構造 cpe:{CPEバージョン}:{種別}:{ベンダ名}:{製品名}:{バージョン}:{アップデート}:{エディション}:{言 語} – 検索 https://nvd.nist.gov/products/cpe/search 正規表現が使えるため以下のようなキーワードで検索が できる cpe:2.3:a:*:nginx:*
  21. Dependency-Track プラグイン API ウェブUI 自作したスクリプト コンポーネントの登録

  22. Dependency-Track プラグイン API ウェブUI 自作したスクリプト コンポーネントの登録

  23. コンポーネントの登録 • tomcat 8.0 を登録する場合 Component Name、Version の入力が必要 cpe:{CPEバージョン}:{種別}:{ベンダ名} cpe:2.3:a:apache:tomcat:8.0

  24. コンポーネントの登録

  25. Tips CPEの調べ方 1. 登録したいプロダクトで公開済みの脆弱性情報を調べて CVEを確認する 2. NISTのページで詳細情報を確認 https://nvd.nist.gov/vuln/detail/{CVE} 3. Vulnerable

    software and versions でCPEを確認 2019/02/26に公開されたOpenSSL の脆弱性 (CVE-2019-1559)の場合
  26. Tips CPEの調べ方 1. プロダクト名はわかるがベンダー名や正しいバージョンの 表記がわからない場合 2. NISTのCPE検索画面 https://nvd.nist.gov/products/cpe/search 3. CPEの書式で検索

    MySQL 5.6系の場合 cpe:2.3:a:*:mysql:5.6*:*:*:*:*:*:*:*
  27. プロジェクト • プロジェクトを作成してコンポーネントを登録

  28. プロジェクト • プロジェクトを作成してコンポーネントを登録

  29. 脆弱性管理 • 脆弱性管理

  30. 脆弱性管理 • 脆弱性管理 - ステータスやコメントの設定

  31. 脆弱性管理 • 脆弱性管理 - ステータスやコメントの設定

  32. 脆弱性管理 • 脆弱性から影響のあるプロジェクトを見つける – CVEで検索して調査したい脆弱性のページを開く – 影響を受けるプロジェクトが表示される

  33. 通知 • Administration-Notifications-Alerts

  34. 通知 • slack

  35. REST API - Integrations

  36. まとめ • 良いところ – 手動で登録してスタンドアロンで状況を確認するには良い ツール – Dockerでサクッと動く – 通知関連の機能は充実している

    – ダッシュボード、レポートがグラフィカルで直感的 • ツラいところ – Severityが未定義の場合、脆弱性として扱われない (チャートに表示されない) – 能動的にデータを取得する方法が乏しい Jenkinsプラグインを使うかAPIからデータを入れる仕組 みを自作するか – 日本語の情報が少ない
  37. 必要な対策に応じた手段の選定 ネットワーク機器 OS ミドルウェア ミドルウェア アプリケーション 自社開発 アプリケーション OSS 公開システム

    内部システム ネットワーク機器
  38. 必要な対策に応じた手段の選定 ネットワーク機器 OS ミドルウェア ミドルウェア アプリケーション 自社開発 アプリケーション OSS 公開システム

    内部システム ネットワーク機器
  39. 必要な対策に応じた手段の選定 ネットワーク機器 OS ミドルウェア ミドルウェア アプリケーション 自社開発 アプリケーション OSS 公開システム

    内部システム ネットワーク機器
  40. 必要な対策に応じた手段の選定 ネットワーク機器 OS ミドルウェア ミドルウェア アプリケーション 自社開発 アプリケーション OSS 公開システム

    内部システム ネットワーク機器
  41. 必要な対策に応じた手段の選定 ネットワーク機器 OS ミドルウェア ミドルウェア アプリケーション 自社開発 アプリケーション OSS 公開システム

    内部システム ネットワーク機器
  42. 必要な対策に応じた手段の選定 ネットワーク機器 OS ミドルウェア ミドルウェア アプリケーション 自社開発 アプリケーション OSS 公開システム

    内部システム ネットワーク機器
  43. 必要な対策に応じた手段の選定 ネットワーク機器 OS ミドルウェア ミドルウェア アプリケーション 自社開発 アプリケーション OSS 公開システム

    内部システム ネットワーク機器
  44. 必要な対策に応じた手段の選定 ネットワーク機器 OS ミドルウェア ミドルウェア アプリケーション 自社開発 アプリケーション OSS 公開システム

    内部システム ネットワーク機器
  45. 実現したいセキュリティ対策に応じて、 適当なツールを見極めて、 できることから取り組んでいきましょう。