TT Lab
はじめる
学ぶ 学習パス コース

閉域網の現場 — 防衛ドメイン

固定構成の脆弱性対応と引き継ぎ

TT Labで続きを見る

目標

認証を受けた構成で上げられない脆弱性を判定して、緩和の根拠を文書として残したあと、夜間作業ログの監査違反を見つけ出し、次の人がインターネットなしで読んで従える引き継ぎパッケージを完成させます。

なぜ重要なのか

認証を受けた構成は、最新のパッチを適用した瞬間に、認証を受けたその構成ではなくなり、再認証には数か月かかります。そのため、ここでは脆弱性への対応が、アップデートではなく緩和措置と文書化で終わることがよくあります。緩和は、バージョン番号がそのままなので、外から見ると何もしなかったことと区別がつかず、判断したという事実を残すこと自体が仕事になります。監査証跡も同じ性質です。事故のあとに探すものではなく、作業の前に残るようにしておくものであり、残していないものは、どれだけうまく探しても出てきません。

ステップ

  1. python3で/root/handover/に、baseline.json(構成10件)、advisories.json(アドバイザリ8件)、worklog.csv(作業14件)、window.txtを作ります。
  2. /root/handover/impact.csvに、アドバイザリごとの影響の有無を判定して書きます。バージョンはドットで区切って、数字で比較してください。
  3. /root/handover/mitigation.mdに、影響のある項目の措置の区分・根拠・再評価の時点を、表で書きます。
  4. /root/handover/freeze.txtに、認証番号、構成リストのSHA-256、固定・変更可能な構成の数、固定なのに影響を受ける構成の数を書きます。
  5. /root/handover/audit-noapproval.csvに、承認記録なしで実行された作業を、元の行そのままで抽出します。
  6. /root/handover/audit-selfapproved.csvに、実行者と承認者が同じ作業を抽出します。
  7. /root/handover/audit-window.csvに作業ウィンドウ外の作業を抽出し、/root/handover/audit-summary.txtに、3つの件数と、重複を除いた実際の違反作業数を書きます。
  8. /root/handover/runbook.mdに、7つの節からなる引き継ぎ手順書を書きます。
  9. /root/handover/HANDOVER.sha256と/root/handover/index.mdで、パッケージを閉じます。

参考

構成・アドバイザリ・作業ログを作る

python3で/root/handover/に、baseline.json(構成10件)、advisories.json(アドバイザリ8件)、worklog.csv(作業14件)、window.txtを作ります。

python3でbaseline.json、advisories.json、worklog.csv、window.txtの4つを作ります。値が固定されていてはじめて、互いの判定を突き合わせられるので、生成スクリプトをそのまま使ってください。

構成とアドバイザリを突き合わせて影響を判定する

/root/handover/impact.csvに、アドバイザリごとの影響の有無を判定して書きます。バージョンはドットで区切って、数字で比較してください。

バージョンを文字列で比較すると、16.2が16.10より大きく見え、3.12.3が3.9.20より小さく見えます。ドットで区切って数字で比較してください。インストールされていない構成は、影響なしです。

緩和措置と根拠の表を書く

/root/handover/mitigation.mdに、影響のある項目の措置の区分・根拠・再評価の時点を、表で書きます。

影響のある項目だけを表に載せます。認証済み構成に縛られた構成は、措置の区分が緩和で、根拠として認証番号が必要です。構成の外のものは、パッチです。すべての行に再評価の日付を付けてください。

構成リストを凍結する

/root/handover/freeze.txtに、認証番号、構成リストのSHA-256、固定・変更可能な構成の数、固定なのに影響を受ける構成の数を書きます。

構成リストファイルのSHA-256を記録しておけば、リストが静かに変わることを防げます。frozen_affectedは、影響を受けていて、かつバージョンを上げられない構成の数です。

承認なしで実行された作業を探す

/root/handover/audit-noapproval.csvに、承認記録なしで実行された作業を、元の行そのままで抽出します。

approver列がハイフンか空の行です。元の行をそのまま移してください。要約すると、あとで元と突き合わせられません。

2人統制が壊れた作業を探す

/root/handover/audit-selfapproved.csvに、実行者と承認者が同じ作業を抽出します。

operatorとapproverが同じ行です。承認欄がハイフンの行は、ここではなく前のステップに入ります。2つを混ぜると、両方の一覧が間違います。

作業ウィンドウ外の作業と実際の違反数を数える

/root/handover/audit-window.csvに作業ウィンドウ外の作業を抽出し、/root/handover/audit-summary.txtに、3つの件数と、重複を除いた実際の違反作業数を書きます。

ウィンドウは、window.txtの開始を含み、終了は含みません。そして、3つの違反の合計は、違反作業数ではありません。1つの作業が2つを同時に破ることがあるので、seqで重複を除いてください。

引き継ぎ手順書を書く

/root/handover/runbook.mdに、7つの節からなる引き継ぎ手順書を書きます。

7つの節が必要です。本文に外部リンクを使わず、画面キャプチャを指し示さず、人の名前の代わりに役割で書いてください。コマンドは、コードブロックで、実際に打てるように書きます。

引き継ぎパッケージを束ねる

/root/handover/HANDOVER.sha256と/root/handover/index.mdで、パッケージを閉じます。

成果物8個のハッシュ一覧を作り、何が何なのかを教える一覧文書を付けます。一覧文書そのものは、マニフェストに入れません。表紙は、パッケージの中身ではありません。