Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第34回 総関西サイバーセキュリティLT大会

hogehuga
August 14, 2022

第34回 総関西サイバーセキュリティLT大会

脆弱性対応に関する簡単な資料

hogehuga

August 14, 2022
Tweet

More Decks by hogehuga

Other Decks in Technology

Transcript

  1. - 2 - 目次 ◼ 自己紹介 1. どのように脆弱性と向き合うか 2. どのように対応したらよいのか

    3. まとめ ※本発表は私個人の私見であり、所属会社とは無関係です。 キーワード • 事業へのリスクで判断 • SBOM • SSVC
  2. - 3 - 自己紹介 ◼ 井上圭 ➢ Future株式会社 CyberSecurityInnovataionGroup(CSIG) ✓

    オープンソースなVulsを基にした、脆弱性検知ツール FutureVuls の販売やサポート ✓ セキュリティコンサルティング サービス ✓ トレーニング等(サイバーコロッセオ:脆弱性診断実務、塩尻市主催勉強会登壇等) ◼ 趣味 ➢ 水風呂、バイク、四輪のレース ✓ (水風呂の人、と覚えて頂けるといいかと) ◼ 個人的な活動 ➢ SNS上のアカウントの方が知られているようだ ➢ 脆弱性に関する勉強会「脆弱性対応勉強会」の実施 ✓ 関東在住ですが、旅行/出張に合わせて関東外でも実施 ◆ 札幌、大阪(淀屋橋付近)など開催 ◆ 声かけてくれればどこでも行きます!(大阪行きたい!)
  3. - 6 - 1-2. どのような影響があるのか 脆弱性により、どのような影響があるかを明確にする ◼ 脆弱性それ自体の影響 ➢ CVSSや脆弱性情報を参照し、脆弱性自体の影響を確認する

    ◼ 保有するシステムでの影響 ➢ 脆弱性自体の影響度と、実際のシステム上での影響は異なる場合がある ◼ 事業に対する影響 ➢ 脆弱性を、事業に対するリスクとしてとらえる ✓ ソフトウェアにバグがあるから直さなければいけない、ではなく、事業インパクトがあるから対応しなければいけない、と いう考え
  4. - 7 - 1-3. 対応を行う 事業に対する「リスク」にどう対応するかを決める。 リスクに対しては以下の対応が取れる。 ◼ 回避 ➢

    発生頻度が無くなるような対策をする ✓ アップデートを実施し、根本解決をする ◼ 転嫁 ➢ 影響や責任を他の対象に移す ✓ サービスの所有を、SaaSサービスに移管する ◼ 軽減 ➢ 発生頻度や影響度を減らす ✓ 不正なWEBアクセスを、WAFなどで防御する ✓ 仮想パッチを適用する、設定変更で機能を無効にする ◼ 受容 ➢ 影響を受け入れ、対策を行わない リスクマネージメント自体は NIST SP 800-37辺りが参考になるでしょう
  5. - 8 - 2. どのように対応したらよいのか 運用としては、以下のようなフローが必要 記録 認知 判断 対応

    構築情報 変更情報 判断記録 攻撃情報 脆弱性情報 構築情報 脆弱性情報 判断記録 判断情報 リスク 判断基準 対応情報 検証情報 技術的内容 変更情報
  6. - 9 - 2-1. 認知 対象システムに脆弱性が発見されたことを認知する ◼ 対象システムへの理解 ➢ 現在のシステムの情報=構築情報+更新情報

    ✓ どのようなネットワーク構成か、どのような機器が使われているか ✓ どのようなOS/アプリケーション/ミドルウェア/ライブラリが使われているか ◆ 利用しているものに対する脆弱性情報、を得る必要がある ◼ 脆弱性情報への理解 ➢ 脆弱性についての情報 ✓ 情報源により、速度や内容に差がある ✓ どこまでの情報が必要かは、組織の体力による ➢ 攻撃についての情報 ✓ どのような攻撃が流行っているか(キャンペーンなど) ✓ 意図して攻撃せずとも 無差別に攻撃がされている場合は、 被害を受ける場合があるので、無関心ではよろしくない
  7. - 10 - 補足:ソフトウェア特定とSBOM 「どのようなOS/アプリケーション/ミドルウェア/ライブラリが使われているか」 ◼ 実際の所、これの管理が難しい ➢ 例えば、「今利用しているWordPressのバージョンは?」というのに答えられても… ✓

    「WordPressで利用しているPluginのバージョンは?」 ✓ 「WordPressを動かしている、WebサーバやPHPのバージョンは?」 ✓ 「WordPressを動かしているサーバの、opensslのバージョンは?」 ✓ 「利用しているopensslに依存しているライブラリのバージョンは?」 ➢ 特に、ライブラリの依存関係がある物は分からなくなる ◼ これらのソフトウェアを示すために、SBOMというものが今後利用されていくと思われる ➢ SBOM:Software Bill Of Materials(ソフトウェア部品表) ✓ 特定製品に含まれるソフトウェア/ライセンス/依存関係を一覧化するもの ✓ 米国バイデン大統領が2021年05月に署名した、サイバーセキュリティ強化のための大統領令でサプライチェーンセキュリ ティ対策の一環として示された ✓ 2021年07月に、米国商務省電気通信情報局(NTIA)が、最小要素・自動化サポート・プラクティスとプロセス、につ いて定めた ➢ 現時点では必須ではないが、(少なくとも米国では)今後 連邦機関への対策として必須となっていくと思われ る(Known Exploited Vulnerability Catalogと同様に) Wordpress httpd2 openssl 依存ライブラリ 4.7.1! 2.4.x? 1.1.? ??? ワカラン
  8. - 11 - 以下の内容が記載される ◼ ソフトウェア名称 ◼ バージョン ◼ ハッシュ

    ◼ etc… しかしながら、現状では 項目は決まっているが、その中身の表現 方法は結構バラバラ のように見える。 相互運用性の為の標準化が もう少し必要かもしれない
  9. - 12 - 2-2. 判断 どのような影響を与えるのかを確認し、どのように対応するかを判断する。 ◼ 対象にどのようなリスクがもたらされるのかを基に、対応を決める ➢ 脆弱性それ自体の影響を理解する

    => CVSSのScoreなどを利用 ➢ 対象システムでは、どのような影響があるかを理解する ✓ 事業への影響がある物と、事業への影響がないものは、対応は異なる ✓ リスクとしてとらえる=非常に危険だが発生頻度はほぼない場合、許容できるか、等 ◼ リスクで考え、対応を検討する ➢ 受容できるものは、(すぐには)対応しない ✓ 別の脆弱性対応をするときに一緒に解消されればよい ➢ リスクを許容できない場合、対応が必要 ✓ 直接リスクに対応する=更新を行う ✓ 代替えの方法で対応する
  10. - 13 - 判断基準はぶれがち ◼ 例えば「CVSS v3 BaseScoreが8.0以上は全て対応する」ポリシー ➢ 該当する脆弱性が多数で、対応工数がたりず、対応できない

    ➢ 「8.0以下にすればやらなくて済むのでは」という基準値改ざん ➢ 仮想パッチを当てたから更新は不要、という根本解決をしない状況 ◼ CVSS BaseScore等は、「脆弱性それ自体の影響」しか示さない ➢ 実装されている環境は考慮されないため、環境により「影響はない」こともある ◼ 最近は、SSVCという「決定木」に状況を入れて決めていく手法が出てきている ➢ SSVC:Stakeholder-Specific Vulnerability Categorization ➢ Exploitがあるか、攻撃が自動化できるか、等の情報を基に、対応を自動決定する ➢ 脆弱性の影響や環境情報を入力し、アクションがアウトプットされる ✓ defer(静観)、scheduled(計画対応)、out-of-cycle(計画外対応)、Immediate(緊急対応) ✓ CVSSの場合は、脆弱性それ自体の危険度しか出ず、どうすべきかは教えてくれないという違いがある https://democert.org/ssvc/
  11. - 14 - 2-3. 対応 プログラム更新等を行い、「リスクの影響を最小化する」作業。 ◼ どのような手段で対応するか、は前述の「判断」でどこまで決めるか次第 ➢ やり方はいろいろある

    ✓ 「判断」でリスクは許容できない事/対応を行う事を決め、「対応」で手段を決める ◆ 運用担当者に任せることになるので、CSIRTや情シスは ✓ 「判断」でどのような手段で対応するかまで決め、「対応」は実施計画/実行の管理とする ◆ 運用担当者判断等は少なくなるが、CSIRTや情シスなどの指示側の負担は高い ➢ 現実問題、更新するように作られていないシステムの更新、は難しい(慎重な計画が必要) ◼ 手段 ➢ 更新プログラムの適用、設定の変更、他機器での保護 ✓ 但し、更新以外は潜在的なリスクは残る(脆弱性を隠しただけ) ➢ 脆弱性情報から、どのようにすれば影響を受けないのかを正しく読取り、実装 ◼ 対応後の検証 ➢ 適用後、正しく適用されていることを確認する ✓ 反映には再起動が必要、設定変更が成功していない、などのミスをなくす ✓ 事前計画が重要で、汎用的な手順を用意しておくのがよさそう
  12. - 15 - 2-4. 記録 比較的忘れられがちな、記録 ◼ 判断・対応の記録 ➢ どのように判断し、どのように対応したか

    ◼ 対応による変更の記録 ➢ 更新をした場合、更新後のバージョンなどの記録が必要 ➢ 設定変更で対応した場合、特に注意が必要 ✓ 後日、何故その設定なのか分からないからデフォルト値に変更する=>設定変更で回避、が終了する 理想的には、チケット管理のような仕組みがあるとよい。 ◼ 人力で記録を取るのは合理的ではない ◼ 更新後、例えばSBOMのスキャンをする、などで記録する
  13. - 16 - 全体補足 IPA等も同様なフローを時々出している ◼ 「脆弱性対策の効果的な進め方(ツール活用編)」 ➢ https://www.ipa.go.jp/files/000071584.pdf ➢

    右下に例示したフローでは、適用について多少踏み込んでいる ✓ 今回の私が説明したフローでは、個々のアクションについては詳細には踏み込んでいない ✓ その為、実際にフローを回す段階で検討する事項はまだある ◼ どの場合も、以下の三項目の必要性を説いている ➢ 検知 ✓ 脆弱性情報の収集、自組織構成要素への影響 ➢ 判断 ✓ 対応緊急度、対応要否 ➢ 対応 ✓ 実施計画、適用 ✓ リスクを最小化した状態になる、のが目的
  14. - 17 - 3. まとめ 脆弱性対応は、今後もなくならない作業と思われます。 対応を簡単にするには… ◼ 更新ができるような環境を作る(シフトレフト) ➢

    コンテナ化などを用いて、更新が簡単にできるようなシステムを最初に作る ➢ 更新ができないシステムは、設計時から更新することを考慮されていないから ✓ 設計時の不備を、運用側に押し付けられている、ともいえる ◼ 利用している環境を理解する ➢ 利用しているソフトウェア/ライブラリなどが何かを、知る必要がある ✓ 設計時にそれを考慮して作る、SBOMのスキャナなどを利用する、などして自動化をしたい ◼ 要求に合った、脆弱性情報収集などを行う ➢ まずは「脆弱性があること」を認知しないと何もできない ➢ 利用しているソフトウェアを把握していれば、それだけを見ればよいので、見る対象を減らせる ◼ 対応をフレームワーク化する ➢ 毎回どうするべきかをその場で考えるのではなく、判断基準を作ってそれで対応方針を決める方が良い 脆弱性対応は日々続いていくので大変ですが、自動化やフレームワーク化して対応負荷を下げていきましょう。 (いろいろ考えるのは大変なので、更新できる環境で構築し、日々更新していくと楽かもしれませんね。)
  15. - 18 - ご紹介 オープンソースな脆弱性管理ツール Vuls のイベントをやります ◼ Vuls祭り #6

    (https://vuls-jp.connpass.com/event/253558/) ➢ 2022/08/26(Fri)19:00- ➢ online / offline (Hybrid) ➢ 特段vulsにこだわっておらず、脆弱性対応をする人に有意義な内容を紹介する、が目的 ➢ 何で宣伝してるの?->私が主催のhogehugaです… ✓ NICTさんから「脆弱性管理の重要性」、私からは「SSVC」について話をします。 ※これは弊社CMではありません