Share
Embed
インシデントレスポンスを自動化で支援する Slack Bot で人機一体なセキュリティ対策を実現する - SEASON2
Hiroya Ito
March 18, 2023
Transcript
67 slides
-
インシデントレスポンスを自動化で支援する Slack Bot で人機一体なセキュリティ対策を実現する - SEASON2 伊藤洋也 / GMO PEPABO
inc. 2023.03.18 YAPC::KYOTO 2023 Reject Con 1 -
2 自己紹介 GMOペパボ セキュリティ対策室 2007年 入社 伊藤 洋也 Hiroya Ito
セキュリティ対策室に所属 組織横断のセキュリティ対策をやっています • Twitter : @hiboma • YAPC Asia 2009 に登壇してから 13年ぶり! -
7 アジェンダ 1. #インシデントあるある 2. “インシデント” のアウトプット事例 3. GMOペパボのインシデントマネジメント支援ボット 4.
未来の課題 How (どうやって作ったか) より What (何を作ったか) の話しがメインです -
スライドの注意 9 GMO ペパボでは インシデント対応マニュアルで インシデント を下記の通り定義します 本スライドに用いる インシデント の記述は、この定義に準じています
本スライドでの「インシデント」の定義 • 情報資産のうち重要性1、2に属するものについて、アクセス権限がない人が閲覧することができた • (機密性の問題) • 情報資産全てを対象にして、なくなってしまった • (完全性の問題) • 情報資産全てを対象に改ざんされてしまった • (完全性の問題) • 情報資産全てを対象に、一時的に利用できない状態が発生しお客様に影響が発生した • (可用性の問題) -
#インシデントあるある 11 • どこのチャンネルで対応しよう !? • 😲 アラート通知が流れるチャンネルはどんどんログが流れていく ... •
😲 Slack のスレッド(*) で作業してたら みんな気が付かなかった ... • インシデントの対応を始めたけど、人が集まらない ! • 😲 みんなをチャンネルに呼び出すのは気が引ける .... • 😲 そもそも、誰を呼び出したらいいんだっけ ? インシデントの初動、こんなことありませんか? 注) チャンネルの会話を枝分かれさせて、一部の人だけで会話を進行する UI -
12 • 関係者との連絡がうまくいかない • 😲 インシデントが起きたこと、みんなに知らせてないな .... • 😲 対応が終わったこと、みんなが知らなかった
... • 事前に準備したフローやプロセスが機能しない • 😲 どういうフローでやるんだっけ ...? 報告? すぐ対応? • 😲 マニュアルを出したけど、みんな無視しちゃうな インシデントの対応中、こんなことありませんか? #インシデントあるある -
13 • 対応の記録がまとまってない • 🤔 いつのインシデントだったけ ? • 🤔 どこのチャンネルで対応したっけ
? • 再発防止のアクションが出せない • 🤔 サマリがなくて 何やったか全体感がわからん • 🤔 ポストモーテム* やりたいんだけど 準備が面倒 ... インシデントから復旧後、こんなことありませんか? 注) Postmortem Culture: Learning from Failure https://sre.google/sre-book/postmortem-culture/ #インシデントあるある -
“インシデント” のアウトプット事例 16 • テックブログで、インシデントや訓練をテーマに発信 • 技術情報誌の特集・書籍の発刊 • カンファレンスの開催 •
SaaS 注) 定量的なエビデンスはなく、私がそう思っているだけです! 😲 “インシデント” はホットなアウトプットテーマ (*) -
17 「インシデント」「障害対応」をテーマにしたテックブログのエントリ CloudNative Inc. BLOG mercari engineering モノタロウ Tech Blog
2022年以降のエントリを任意で掲載しています。「あの事例が載っていない!」というお声があったら教えてください 引用: https://blog.cloudnative.co.jp/13419/ 引用: https://engineering.mercari.com/blog/entry/20221220-5040a56d02/ 引用: https://tech-blog.monotaro.com/entry/2022/09/06/090000 -
18 STORES Product Blog RAKUS Developer Blog Ubie テックブログ 2022年以降のエントリを任意で掲載しています。「あの事例が載っていない!」というお声があったら教えてください
引用: https://www.blameless.com/ 引用: https://product.st.inc/entry/2022/12/13/090317 引用: https://tech-blog.rakus.co.jp/entry/20220218/troubleshooting 引用: https://zenn.dev/p/ubie_dev 「インシデント」「障害対応」をテーマにしたテックブログのエントリ -
20 「インシデント対応」「障害対応」を特集した技術情報誌 / 書籍の発刊 SoftwareDesign 2022年5月 WEB+DB PRESS vol. 119
システム障害対応の教科書 🌟 GMOペパボ 高橋雄紀 @takapi86 寄稿 🌟 引用: https://gihyo.jp/book/2020/978-4-297-11265-3 引用: https://gihyo.jp/magazine/wdpress/archive/2020/vol119 引用: https://gihyo.jp/magazine/SD/archive/2022/202205 -
22 インシデントをテーマにした海外カンファレンス The Incident Response Conference 2022 引用: https://www.learningfromincidents.io/learning-from-incidents-conference-2023 引用:https://www.irconf.io/
LEARNING FROM INCIDENTS Conference 2023 📝 SRE の文脈も含めた広義のインシデント ( 障害 + セキュリティンシデント ) のカンファレンスのようです セキュリティインシデント をメインテーマにしたカンファレンスは他にもあると思います -
23 インシデントマネジメントの SaaS BLAMELESS rootly jeli 引用: https://www.blameless.com/ 引用: https://rootly.com/
引用: https://www.jeli.io/ 発表者が任意で選択したサービスになります -
25 インシデントマネジメント機能を推す SaaS Datadog PagerDuty Incident Response Graphana Incident 発表者が任意で選択したサービスになります
引用: https://www.datadoghq.com/ja/blog/incident-response-with-datadog/ 引用: https://www.pagerduty.com/platform/devops/incident-response/ 引用: https://grafana.com/products/incident/ -
GMOペパボのインシデントマネジメント 27 インシデントマネジメントを支援する Slack Bot を内製 • プロセスの標準化支援 • コミュニケーションの支援
• 分析・記録の支援 @sssbot <エスエスエスボット> -
https:LFI Conf 23 | Brent Chapman | Incident Response and
Incident Analysis: Two Great Tastes https://www.youtube.com/watch?v=QAl3tF9eZek 29 このモデル図は Brent Chapman さんの発表を元に、発表者が GMOペパボの実情に合わせて 改変・解釈した図としています インシデントマネジメントのプロセス 🛠準備 🔥対応 🔍事後分析 初動 復旧 解決 -
https:LFI Conf 23 | Brent Chapman | Incident Response and
Incident Analysis: Two Great Tastes https://www.youtube.com/watch?v=QAl3tF9eZek 30 このモデル図は Brent Chapman さんの発表を元に、発表者が GMOペパボの実情に合わせて 改変・解釈した図としています • チーム編成 • 訓練・演習 • プロセス策定 • 初動形成 • 復旧作業 • コミュニケーション • 記録 • サマリ • postmortem • 再発防止 インシデントマネジメントのプロセス 初動 復旧 解決 🛠準備 🔥対応 🔍事後分析 -
31 このモデル図は Brent Chapman さんの発表を元に、発表者が GMOペパボの実情に合わせて 改変・解釈した図としています インシデントのタイムライン 時間 会社への影響
ユーザへの影響 インシデントマネジメント 監視 | アラート | 対応 発生 検知 アラート 対応 組織への影響 ユーザへの影響 インシデントマネジメント 監視 | アラート | 初動 検知 アラート 対応 復旧 解決 Incident Command for IT: What We’ve Learned from the Fire Department https://www.usenix.org/sites/default/files/conference/protected-files/srecon18americas_slides_chapman.pdf -
32 インシデントのタイムライン 組織への影響 ユーザへの影響 インシデントマネジメント 監視 |
アラート | Time is Money 💰 監視 | アラート | 初動 時間 発生 検知 アラート 対応 検知 アラート 対応 復旧 解決 このモデル図は Brent Chapman さんの発表を元に、発表者が GMOペパボの実情に合わせて 改変・解釈した図としています Incident Command for IT: What We’ve Learned from the Fire Department https://www.usenix.org/sites/default/files/conference/protected-files/srecon18americas_slides_chapman.pdf -
38 1インシデント = 1チンャネル • 人間の認知負荷を下げたい • 自動化で処理しやすい単位になる #サービスA-20200101i #サービスB-20200101i
#サービスC-20200101i 🔥 🔥 🔥 事後対応 対応 初動の支援 -
スクリーンショットは Salesforce Collective: Collection Preview https://salesforce.widencollective.com/c/raqrnql6 を用いた 39 初動対応チーム セキュリティ対策チーム
@sssbot が初動対応チーム(*) を invite する CTO, VPoE, ... 事後対応 対応 招集! 💡 サービス、部門ごとに初動対応チームを編成しています。技術職、カスタマーサポート職、マネージャー職などが含まれた Slack グループです。 初動の支援 -
41 💡 事象レベル : GMOペパボのインシデント対応マニュアル (非公開) にて定められた インシデントを 5段階評価するレベル タイムキーパーで経過時間をお知らせする
インシデントのメタデータや TODO を表示する UI を兼ねる 💡 インシデントハンドラー (コマンダー): インシデントの進行をリードする、一時的なリーダーロール @hiboma 対応 対応の支援 -
💡 スクリーンショットはインシデント対応訓練時の Slack 通知であり、実際のインシデントではありません 43 “復旧 ” できたら通知をブロードキャストする 事後対応 対応
開けたら閉める。みんなに認知してもらうのが大事。 対応の支援 -
事後分析 事後分析の支援 45 • postmortem (*)ドキュメント作成の支援 • 記録の編集 事後分析で煩雑な処理を自動化して支援する 💡
ペパボでは可用性・完全生・機密性が損なわれた状態を元に戻したことを「復旧」と呼んでいる -
46 事後分析 postmortem のドキュメント作成と Pull Request 作成 sssbot で記録したデータで ドキュメント
(markdown) の下書きを作ります チャンネルで 📌 したメッセージからタイムラインも自動生成します @hiboma 事後分析の支援 -
💡 スクリーンショットはインシデント対応訓練時の Slack 通知であり、実際のインシデントではありません 48 対応を “完了” したら 通知をブロードキャストする 全ての対応を完了して、チャンネルを
/archive した際にも通知を出します。 事後分析 事後分析の支援 -
事前の準備 50 情報セキュリティ規定* に基づき年一回以上 実施 • 部門、サービスごとに訓練*・演習* を計画し実施する • @sssbot
を用いて実施します Software Design 2022 5月号 @takapi86 の記事もご覧ください! GMOペパボのインシデント対応 訓練・演習 準備 注1) GMO ペパボの社内規定です (非公開) 注2) 訓練 形式的な手続きやフローを習熟する目的で実施 注3) 演習 実践的なシナリオを想定した高度な内容で実施 -
実装 設計 54 社内プライベートクラウド k8s で稼働 • Slack Bot +
ダッシュボード パート • Ruby on Rails + slack-ruby-client • Slack Events API を利用 • ChatGPT パート • Celelry + FastAPI sssbot の実装 Rails FastAPI Celery -
55 先人のプラクティスに学ぶ Incident Response and Incident Analsys Two Great Tastes
Incident Command for IT What We’ve Learned from Fire Department 引用 https://www.youtube.com/watch?v=QAl3tF9eZek 引用 https://www.usenix.org/sites/default/files/conference/protected-files/srecon18americas_slides_chapman.pdf @brent_chapman -
56 チャットを活用するためのプラクティスが盛りだくさん • チャンネルの運用方法 • 例) 1チャンネル1インシデント、名前の付け方 • チャットコミュケーションの回し方 •
例) 自分が何をやっているかテキスト、スクショ、リンクを貼って声をあげよう • インシデント時の組織体制 • 例) 平時と緊急時のリーダーシップは別で考えよう 3象現やタイムラインのモデルも Brent Chapman さんのエントリの内容を元にしています。ありがたすぎる .... @sssbot の DNA: Brent Chapman さんから学ぶ 先人のプラクティスに学ぶ -
58 書籍からプラクティスを学ぶ @sssbot の DNA 引用: https://www.oreilly.co.jp/books/9784873117911/ 引用: https://gihyo.jp/book/2020/978-4-297-11265-3 引用:
https://www.oreilly.com/library/view/incident-management-for/9781491917619/ -
評価 課題 60 @sssbot で改善できたこと • 部門やサービスを超えてのプロセスの標準化 • CSIRT* や
経営層への情報共有の促進 社内CSIRT 経営層 部門 サービス -
61 やっぱり 事後分析のプロセスが 重たい ... • サマリをまとめる • postmortem のドキュメントを書く
• postmortem のレビューを進行する • アクションアイテム* を出す (最重要) 「後でやろう」となりがち @sssbot を使っても、なお残る課題感 事後分析 注) postmortem の文脈でなければ、再発防止策と呼ぶでしょう。 🪨 🪨 評価 課題 -
62 レスポンス 3日前に作ったばかり 改善案: ChatGPT API でインシデントのサマリを生成 llama_index の SlackReader
+ GPTSimpleVectorIndex + ChatGPTLLMPredictor で作っています 1チャンネルに 1インシデントの記録が集約されるので、チャンネルのメッセージを丸ごとインデックスして扱えば良い 評価 課題 -
最後の締め 63 • インシデントログのデータ活用で、明るい未来が見えてる ! • 初動・対応フェーズでの活用も模索したい • ChatGPT API
の処理速度が上がれば、準リアルタイムでも支援できるだろう • 支援だけでなく「インシデント 解決方法の提案」も実現可能 AI (ChatGPT API) + インシデントマネジメント支援 = 楽しみ -
設計・実装 66 pros • 組織の体制やプロセスに準じた機能を提供 • 同僚からフィードバックを受けてすぐ UI / UX
改善 cons • 作り込み度合いをどこまでやるか • 私が Web UI の実装に弱いという話も ... インシデントマネジメントのシステム内製の pros / cons 🛠 💰 -
67 インシデントが同時多発すると グシャ っとなる • 例) 社外連携している SaaS や IaaS
で障害 🔥 • ペパボ内の複数サービスでインシデントチャンネルが同時にたつ • チャンネルを超えて情報共有や指示出しが進めにくい 最近の課題感 🔥 🔥 🔥 Saas / Iaas 🔥