🎯 この章で学ぶこと

  • 情報セキュリティの3要素(CIA)
  • 脅威・脆弱性・リスクの関係
  • 認証と認可の違い
  • 多層防御と最小権限という2大原則
  • IT部門の実務との対応関係

9.1 情報セキュリティの3要素 — CIA

情報セキュリティとは、情報の次の3つの性質を守ることと定義されます。頭文字をとってCIAと呼びます。

要素意味侵害された例
機密性
Confidentiality
許可された人だけが情報にアクセスできる顧客名簿の漏えい、パスワードの盗難
完全性
Integrity
情報が正確で、改ざんされていないWebサイトの改ざん、請求金額の書き換え
可用性
Availability
必要なときに情報・システムを使えるランサムウェアによる業務停止、DDoS攻撃

重要なのは、セキュリティ=機密性(漏えい対策)だけではないことです。「サーバーが止まって業務ができない」も立派なセキュリティインシデント(可用性の侵害)です。バックアップも冗長化も、セキュリティ対策の一部なのです。

9.2 脅威・脆弱性・リスク

この3つの用語は混同されがちですが、明確に区別できます。

「攻撃者(脅威)は消せないが、脆弱性は減らせる」──これが防御側の基本戦略です。パッチ適用や設定の見直しは、脆弱性を潰してリスクを下げる活動です。

💡 脅威は「人」だけではない

IPA(情報処理推進機構)が毎年公表する「情報セキュリティ10大脅威」では、ランサムウェアや標的型攻撃と並んで内部不正や設定ミス・誤送信といった人的要因が常に上位に入ります。IT部門にとって「うっかり」は攻撃者と同格の脅威です。

9.3 認証と認可 — 「誰か」と「何をしていいか」

初学者が最も混同しやすい2つの概念です。ここで完全に区別しましょう。

Pythonの擬似コードで書くと、この2段階は明確に別物だとわかります。

def handle_request(user, password, action):
    # 【認証】この人は本当に本人か?
    if not authenticate(user, password):
        return "401 Unauthorized(あなたが誰か確認できません)"

    # 【認可】本人だとして、この操作をする権限はあるか?
    if not is_allowed(user, action):
        return "403 Forbidden(その操作は許可されていません)"

    return do_action(action)

「ログインさえできれば全部の画面が見えてしまう」システムは、認証はあるが認可が欠けている典型例で、現実のWebアプリで最も多い脆弱性カテゴリのひとつです(第11章のOWASP Top 10で再登場します)。

認証を強くする — 多要素認証(MFA)

認証の要素は3種類に分類されます。知識(パスワード)、所持(スマホ、セキュリティキー)、生体(指紋、顔)。このうち2種類以上を組み合わせるのが多要素認証です。パスワードが漏れても、それだけでは突破されなくなります。IT部門としては「重要システムからMFAを必須化する」が定番の改善施策です。

9.4 2大原則 — 多層防御と最小権限

多層防御(Defense in Depth)

「どの対策も、いつかは破られる」前提で、防御を何層にも重ねる考え方です。

攻撃者
  ↓ ファイアウォール      ← 突破されても…
  ↓ 侵入検知(IDS/EDR)    ← 検知できる
  ↓ アクセス制御・MFA      ← 侵入されても権限がない
  ↓ データの暗号化         ← 盗まれても読めない
  ↓ バックアップ           ← 壊されても復旧できる
  ↓ ログと監査             ← 何が起きたか追跡できる

最小権限の原則(Principle of Least Privilege)

人にもプログラムにも、業務に必要な最小限の権限だけを与える原則です。全員が管理者権限を持つ組織では、1人のPCの感染が全社の感染に直結します。第1部で学んだ「タプルで変更を禁止する」「変数のスコープを狭くする」「カプセル化」は、すべてこの原則のコード版でした。

9.5 攻撃の流れを知る — サイバーキルチェーン

標的型攻撃は、おおむね次の段階を踏みます。防御側はどの段階で検知・遮断するかを考えます。

  1. 偵察 — 公開情報やSNSから標的の情報を収集
  2. 武器化・配送 — マルウェア付きメールなどを送り込む(フィッシング)
  3. 侵入・実行 — 添付ファイルの開封や脆弱性の悪用でコードが動く
  4. 権限昇格・横展開 — より強い権限を奪い、他のサーバーへ移動
  5. 目的実行 — データの窃取、暗号化(ランサムウェア)、破壊

この流れを知ると、日々の業務の意味がわかります。不審メール訓練は②への、パッチ適用は③への、権限の棚卸しは④への、ログ監視は全段階への対策です。

🛡️ セキュリティの視点 — IT部門の日常業務をCIAで捉え直す
日常業務守っているもの
アカウントの棚卸し・退職者処理機密性(不要な入口を塞ぐ)
パッチ適用・脆弱性管理3要素すべて(脆弱性の除去)
バックアップと復旧テスト可用性・完全性
ログの保全・監視完全性(改ざん検知)・事後対応力
権限申請のレビュー最小権限の維持

そして第13章では、このうち「棚卸し」「ログ監視」「改ざん検知」をPythonで自動化します。

9.6 法律とマナー — 学ぶ人の責任

セキュリティを学ぶと、攻撃の手法にも触れることになります。日本で最低限知っておくべき法律があります。

⚠️ 「診断」と「攻撃」の境界は許可の有無

同じポートスキャンでも、自分の環境や書面で許可された対象に行えば診断、無許可の他者に行えば攻撃(またはその準備行為)とみなされ得ます。学習・検証は必ず自分のPC内の環境か、練習用に公開されている合法なサービス(第16章で紹介するCTFなど)で行ってください。

まとめ

練習問題

問題 9-1

次の各インシデントは、CIAのどの要素の侵害でしょうか。①ランサムウェアで全ファイルが暗号化され業務停止 ②社員が顧客リストを私物USBで持ち出し ③攻撃者が価格表ページの金額を書き換えた

解答を見る
  • 可用性の侵害(使えなくなった)。加えて、多くのランサムウェアは窃取も行うため機密性も侵害されることが多い
  • 機密性の侵害(許可されていない持ち出し)
  • 完全性の侵害(情報の改ざん)
問題 9-2

「経理担当のAさんがログインし、給与データを閲覧した」。この文の中の「認証」にあたる部分と「認可」にあたる部分を指摘してください。また、Aさんが営業部の商談データまで見られたとしたら、何が欠けている可能性がありますか。

解答を見る

「ログインし」が認証(Aさん本人であることの確認)、「(経理担当として)給与データを閲覧できる」が認可(役割に応じた権限の判断)です。営業部のデータまで見えるなら、認可の設計(最小権限)が欠けている可能性があります。ログインできること自体は問題の有無を意味しません。

問題 9-3

第4章で書いた「アカウント棚卸し」のプログラム(人事台帳とシステムアカウントの差分)は、サイバーキルチェーンのどの段階への対策になっているでしょうか。

解答を見る

主に④権限昇格・横展開への対策です。放置された退職者アカウントや検証用アカウントは、攻撃者が侵入後に乗り移る足場や、そもそもの侵入口(①〜③)としても悪用されます。不要な入口を消すことは、複数の段階を同時に防ぐ費用対効果の高い対策です。