8割解けるCTF「WEST-SEC」

セキュリティ初心者の方でも楽しめるゲーム形式のセキュリティイベント。CTFや勉強会の依頼があればご相談ください。

インシデント対応のワークショップ

1.概要

・インシデント対応の時間に着目して、インシデント対応のプロセスを可視化します。
・皆様にはタスクリストを作成してもらい、Pythonのシミュレータでインシデント対応の総時間およびガントチャートを作成してもらいます(ボタンを押すだけ)。
・対応時間を短縮するための、インシデント対応のプロセス改善策を検討してもらいます

f:id:seeeko:20211108161701p:plain
ガントチャート
▼ガントチャートのイメージ

2.ワークショップの意義

1)対応プロセスが整っているかの確認

 不確実性が高いシナリオが提示され、その対応を考える中で、以下を確認ください。
 ・インシデント対応手順が確立されているかの確認
 ・マニュアルなどが整っているかの確認
 ・そもそも意思決定できるルールになっているかの確認

2)最適なプロセスの検討

3)他のCSIRTとの意見交換、議論

3.ワークショップで想定するインシデントとタスクリスト

1)想定するインシデント

・今回のワークショップでは、公開サーバに対する攻撃および、公開サーバからの情報漏洩を想定してください。
・しかも、攻撃が本当に行われたのか、何が行われているのかが不確実な状態での演習を行います。
 たとえば、サーバが完全に乗っ取られていたら、ネットワークを切り離すなどの対策をすぐに行うことは当然です。ですが、多くの場合は、その前段があります。何が行われたのか、攻撃が成功しているのか、未遂に終わっているのか、よくわからない状態です。たとえば、いつもとは違う種類の攻撃ログを検知しました。でも、攻撃かはわかりません。そういう状態で毎回ネットワークを切り離していたら、業務に大きな支障がでます。具体的なシナリオは、ワークショップ時にお伝えします。

2)タスクリスト

インシデントを検知してから、対処の意思決定、対策の実行までのタスクリストを作成していただきます。
タスクリストは、テキストベース、CSVファイル、Googleスプレッドシートなど、複数の手段で作成いただけます。

4.ワークショップの流れ

項番 内容 詳細
1 ワークショップ説明 ワークショップの概要を説明します
2 作業説明 Googleドライブやシュミレータの操作説明をします
3 チームに分けれて演習 4人くらいのチームに分かれ、作業を開始します。
タスクリストを作成し、それをシミュレータに投入してガントチャートを(自動)作成します
4 意見交換および改善プロセスの作成 チーム内で意見交換をし、現在のプロセスの改善点を議論したり、改善したタスクリストでのシミュレータの再作成を行います
5 まとめ、クロージング クロージングです

6.各種マニュアル

1)GoogleColabのインストール

❶Googleドライブにあるシュミレータ(Pythonのプログラム)があるフォルダを開きます。
f:id:seeeko:20211108181103p:plain
❷右上の青字(ログイン)からGoogleにログインをしてください。ログインしないと、GoogleColabのインストールができません。
f:id:seeeko:20211108181208p:plain
❸ログインすると、左上の「ドライブ」の下に、「+新規」ボタンが表示されます。ここから追加もできますが、今回は、ファイルを開く手順で解説します。
f:id:seeeko:20211108181326p:plain
❹拡張子ipynbを実行すると、テキストで表示されます。ここの上部の「アプリで開く」を押します。
f:id:seeeko:20211108181429p:plain
❺検索窓にcolabと入れると、Colaboratoryが出てきます。
f:id:seeeko:20211108181527p:plain
❻これをクリックしてインストールします。
f:id:seeeko:20211108181616p:plain
その後、ログイン認証が聞かれますので、適宜進めてください。
❼インストールが完了したら、上部の「GoogleColaboratoryで開く」を押します。
f:id:seeeko:20211108181704p:plain
❽Pythonプログラムが開きます。
f:id:seeeko:20211108181744p:plain

2)シュミレータ(Pythonプログラム)の実行方法

❶初めて実行する場合
・該当のフォルダにある、tasklistのスプレッドシートを開きます
f:id:seeeko:20211109073145p:plain
・インシデント対応のタスク、所要時間、先行タスク、リソースを入れます。それ以外の「バラつき」「説明」の項目は、今回のシミュレーションには使わないので記入不要です。
・右側にあるCSIRTの人数では、実際にインシデント対応に携わるメンバーの人数を入れます。もちろん、人数が多いと処理時間が短くなります。
f:id:seeeko:20211109073109p:plain
・次に、拡張子がipynbのPythonプログラムを実行します。
・一番上の「前処理」から順に▶ボタンを押します。
f:id:seeeko:20211109150837p:plain
・2つ目の「Googleスプレッドシートから読み込む場合」のボタン以降も同様です。
f:id:seeeko:20211109150910p:plain
参考ですが、ソースの中にある以下の部分を変更すると、任意のスプレッドシートから読み込みができます。

# 読み込むスプレッドシートのURL
SPREAD_SHEET_URL = 'https://docs.google.com/spreadsheets/d/1pmCgHC9ECSVI9Kxxxxxx'

このとき、はじめての場合は認証画面が表示されます。
f:id:seeeko:20211109073744p:plain
青い部分のURLをクリックして認証を行います。実際には「アカウントを選択」の画面で、ログインしているアカウントを選択すると、以下のように、Google Cloud SDKの表示が出ますので、「許可」を押してください。
f:id:seeeko:20211109073944p:plain
・□ボタンを押して、コードをコピーします。
f:id:seeeko:20211109074023p:plain
・もとのPythonプログラムの「Enter verification code: 」の空欄にコピペしてEnterを押すと、Googleスプレッドシートの読み込みができます。▶ボタンがグルグルと渦を巻くので、終わるのを待ちます。
f:id:seeeko:20211109074129p:plain
・「3. ガントチャートの作成」の▶ボタンを押します。
f:id:seeeko:20211109151342p:plain
❷2回目に実行する場合
たとえば、Googleスプレッドシートでタスクリストを修正した場合
・一番上の前処理以外を実行してください。