情報処理安全確保支援士過去問題 令和3年秋期 午後Ⅰ 問1
⇄問題文と設問を画面2分割で開く⇱問題PDF出題趣旨
サイバー攻撃の被害拡大防止のためには,ID管理,ネットワークフィルタリング,ログ管理などの複数の対策で対処する必要がある。本問では,リモート保守のセキュリティインシデント対応をきっかけとした,被害範囲の調査並びにSSHサーバ及びファイアウォール設定の見直しを題材に,ログ及び認証・認可といった複数の対策を組み合わせての設計能力について問う。
設問1
- a: 接続先が保守用中継サーバではない
- 操作ログの改ざんや削除を防止するため
- b: 保守PC-A
- c: インターネット
- 〔aについて〕
フィンガープリントは、SSH接続においてサーバのなりすまし防止を目的として使用されるホスト認証技術の一種です。フィンガープリントはサーバの公開鍵のハッシュ値から生成される文字列であり、この文字列はサーバごとに固有のものとなります。これにより、クライアントPCが過去に接続したことのあるサーバかどうかを判別する役割を果たします。
SSH接続を初めて行う際、クライアントPCは接続先サーバの公開鍵を受け取り、その公開鍵のフィンガープリントをknown_hostsファイルに保存します。known_hostsファイルは、クライアントPC側に存在し、接続したことのあるすべてのサーバのフィンガープリントが記録されるデータベースのような役割を果たします。// フィンガープリントの例次回以降、クライアントPCが同じサーバにSSH接続する際、サーバは自身の公開鍵を再び提示します。このとき、クライアントPCは提示された公開鍵から計算されたフィンガープリントと、known_hostsファイルに保存されているフィンガープリントとを比較します。もし両者が一致すれば、そのサーバは以前と同じ正当なサーバであると判断され、接続が継続されます。
//先頭からホスト情報、公開鍵の種類、フィンガープリント値
example.com ssh-rsa AAAAB3NzaC1yc2EAAAABI・・・+R3eDyKFYv=
SSH接続時にフィンガープリントの検証に失敗すると、セキュリティ上の理由から警告が表示されてSSH接続が自動的に切断されます。この現象が起こる原因として、次のようなケースが考えられます。- サーバの変更や再インストールによる公開鍵の変更(問題文に記載あり)
- 中間者攻撃(MITM攻撃)やなりすましによるもの
- サーバのIPアドレスやホスト名の変更
∴a=接続先が保守用中継サーバではない - 下線①を読むと「当該利用者IDには,一般利用者の権限を与える」と記載されています。この前文において、保守員2名の利用者ID(op1、op2)について説明されており、この権限の付与は保守用中継サーバに関するものです。したがって、保守員が保守用中継サーバへアクセスする際の権限として、一般利用者を付与した理由を答えることになります。
まず、問題文で指定された「操作ログ」について確認します。図2にある"ログ"には次の記述があります。- 保守用中継サーバ/顧客管理サーバでのコマンド実行及びその結果が,保守用中継サーバ上に操作ログとして記録される
- 操作ログへのアクセスには特権利用者の権限が必要であり、これらのログの確認はJ社のシステム管理者が行う
保守員は外部会社M社の社員であり、すでに顧客管理サーバでは特権利用者としての強大な権限が与えられています。もし保守用中継サーバについても特権利用者の権限を与えてしまうと、操作ログの改ざんや削除が可能となり、都合の悪い操作記録を隠ぺいすることができてしまいます。例えば、顧客管理サーバや保守用中継サーバで不正な操作を行った後、その記録を消去してしまえば、J社のシステム管理者に気付かれることなく不正を働くことが可能となります。このようなリスクがあるので、保守員が操作ログを改ざん・消去できないようにすることが必要です。これが、特権利用者ではなく一般利用者の権限を付与した理由となります。
∴操作ログの改ざんや削除を防止するため - 〔bcについて〕
項番3、4のルールは、宛先を保守用中継用サーバ、プロトコルをSSHとするものです。図2の"接続経路と接続方法"には「保守PCのいずれかから保守用中継サーバにSSH接続し」と記載があり、他の端末が接続するような説明はないので、送信元となるのは保守PC-A、保守PC-B、または保守PC-Cであると考えられます。
項番4の動作「拒否1)」に着目すると、表1の注1)に「保守PC-B又は保守PC-Cから…事前申請に記載された作業時間帯だけ,…"許可"に変更する」とあるため、項番4は保守PC-Bと保守PC-Cの接続を許可するルールであることがわかります。さらに図1と図2の説明より、保守PC-Bと保守PC-Cは、スマートフォンのテザリング機能を使用してインターネット経由で保守用中継サーバにアクセスすることがわかります。図1中の字句で答えるという条件がありますから、空欄cに入る送信元としては「インターネット」が適切です。
項番4のルールでは保守PC-Bと保守PC-Cの接続をカバーしているため、項番3は保守PC-Aの接続を許可するルールとなります。送信元に関しては、図1より「PC-LAN」または「保守PC-A」が候補となりますが、図1の注記1に「保守PC-Aには,固定のプライベートIPアドレスを割り当てている」とあります。最小権限の原則に従えば、送信元を「保守PC-A」に限定するのが適切と言えます。したがって、空欄bに入る送信元は「保守PC-A」です。
∴b=保守PC-A
c=インターネット
設問2
- 6
- 6月14日の7時0分から6月14日の9時30分まで
- 下線②を含む一文を確認すると「暗号資産を採掘するプログラムが保守用中継サーバで動作しており,定期的にインターネット上のサーバへの通信を試みていた」と記載されています。
FWのルール上でインターネットを宛先とするものとして、送信元がPC-LANの「項番1」と、送信元がDMZの「項番6」があります。保守用中継サーバが配置されているのはDMZですから、これに対応する項番は「6」となります。
∴6 - 図3のログの調査結果には「申請された保守時間帯に,二つのグローバルIPアドレスから保守用中継サーバにSSH接続されていた」とあるため、SSH接続はインターネットから行われたと判断できます。
インターネットから保守用中継サーバへのアクセスを制御するルールは項番4で、このルールは前述のとおり、通常時は拒否ですが事前に申請された作業時間帯だけ許可に変更されます。今回、保守員2からは「6月14日7時から9時30分に保守を行う」旨の申請が出されており、J社のシステム管理者はこの申請に基づいて、この時間帯に項番4の動作を許可に変更していたと考えられます。したがって、第三者がインターネットからのSSH接続が可能となっていたのは、項番4の動作が許可になっていたこの時間帯(6月14日7時から9時30分)に限られます。
なお、他に解答になりそうな時間帯として「6月14日7時20分から9時10分」がありますが、こちらは保守員2の作業時間です。保守員2の作業時間=SSH接続可能な期間とはいえないため、適切ではありません。
∴6月14日の7時0分から6月14日の9時30分まで
設問3
- ・保守員以外が不正に秘密鍵を利用できないようにするため
・秘密鍵が盗まれても悪用できないようにするため
- ・保守員以外が不正に秘密鍵を利用できないようにするため
- d: パスワード認証
- e: 秘密鍵
- f: 送信元IPアドレスを固定にする
- 公開鍵認証におけるパスフレーズとは、鍵ペアを生成する際に秘密鍵に任意で設定するパスワードのようなものです。秘密鍵を使用してサーバにログインする際にパスフレーズの入力が必要となる※1ので、もし秘密鍵が第三者の手に渡っても、悪用されるリスクを減らすことができます。
本問では、遠隔保守に使用される保守PC-Bと保守PC-CにSSH接続用の鍵ペア(公開鍵と秘密鍵)が格納されます。しかし、これらのPCが紛失や盗難されるなどした場合、秘密鍵が第三者に流出するリスクがあります。秘密鍵が流出すると、悪意のある第三者がその鍵を使って保守用中継サーバにSSH接続を試みるおそれがあります。このような場合を想定して、正規の保守員しか秘密鍵によるログインができないよう、パスフレーズを設定したことになります。
∴・保守員以外が不正に秘密鍵を利用できないようにするため
・秘密鍵が盗まれても悪用できないようにするため
※1 SSH-Agentを設定することで毎回のパスフレーズ入力を省略することが可能です。 - 〔dについて〕
SSH接続の認証方法にはパスワード認証(デフォルト)と公開鍵認証の2種類があります。これらの認証方法は、片方だけを使用することも、両者を併用することも可能です。両者を併用した場合、いずれかの認証が成功すればサーバへのログインが許可されるため、実質的には両方の認証方法が併存する形となります。本問のように公開鍵認証を有効にしたのであれば、セキュリティ上、パスワード認証を無効にすることが推奨されます。パスワード認証を有効なままにしておくと、不正アクセスされるリスクが高まるためです。したがって、空欄dには「パスワード認証」が当てはまります。
∴d=パスワード認証 - 〔eについて〕
公開鍵認証では、接続元が正当な秘密鍵を所有しているかどうかをもとにクライアントの認証を行います。保守PC→保守用中継サーバでのSSH接続では「保守PCに格納されている秘密鍵」、保守用中継サーバ→顧客管理サーバでのSSH接続では「保守用中継サーバに格納されている秘密鍵」が使用されます。したがって、空欄eには「秘密鍵」が当てはまります。
SSH Agent Forwarding(SSHエージェント転送)は、リモートサーバから別のサーバにログインする際に、その認証チャレンジをクライアント側のSSHエージェントに中継する機能です。この機能を利用することで、ローカルPCに格納された秘密鍵を用いて、リモートサーバからさらに別のサーバに安全にログインすることが可能となり、リモートサーバが秘密鍵を保持する必要がなくなります。- リモートサーバでSSH Agent Forwardingを有効にしておく
- リモートサーバが別のサーバにログインしようとすると、その認証に必要な情報がクライアントに中継される
- クライアントのSSHエージェントは、秘密鍵を用いてチャレンジを検証した結果を、レスポンスとしてリモートサーバに返す
- リモートサーバは、レスポンスをログイン先のサーバに転送して認証を受ける
本機能を使用すれば、秘密鍵を保存する端末を保守PCだけにすることができます。これにより、保守用中継サーバに不正アクセスされたときの秘密鍵の漏えいリスクを回避することができます。
∴e=秘密鍵 - 〔fについて〕
図2の"接続経路と接続方法"によれば、保守PC-Bおよび保守PC-Cはインターネット経由で接続し、固定のグローバルIPアドレスは付与されません。このため、現在の運用では接続元の制限が難しい状況です。
本文中に記載のように、保守PCをM社内のネットワークに接続させた後、M社内からインターネットに接続するように変更すれば、保守PCの送信元グローバルIPアドレスがM社のものとなります。この運用であれば接続元IPアドレスが限定されるので、FWルールによりIPアドレスによる接続元の制限が可能になります。ただし、この方法ではM社からのインターネット接続において送信元IPアドレスが固定されていることが条件となります。そのため、M社側で固定IPアドレスサービスなどを利用していることが必要です。
∴f=送信元IPアドレスを固定にする