情報処理安全確保支援士 令和3年度 秋季試験 午後Ⅰ問1を解説していきます。
出題テーマ:SSH・ファイアウォール
出題テーマは『SSH』と『ファイアウォール』です。
普段ネットワーク機器やサーバへログインする際に用いるSSHですが、SSHで接続することは行ったことがあっても、SSHがどのように行われるかまで知っている方は少ないのではないでしょうか。
SSHではパスワード認証が一般的ですが、今回の問題では公開鍵認証という内容まで出題されていて、知識がないと解答することが難しい問題も出題されていました。
ファイアウォールはいつも出題される内容でしたのでそこまで難しくはなかったかと思います。
総じて、SSHに関しては知識がないと解答することが難しい問題も出題されましたが、知識がなくても解答することができる問題だけで合格点は取得できる問題だったかと思います。
設問1 (1)
SSH接続を行う際に接続しようとしている相手が正しい相手なのかを確認するホスト認証が行われます。
ホスト認証の流れについて軽く見ていきましょう。
サーバ側がクライアントに対して公開鍵を送信します。
サーバの公開鍵を受信したクライアントは、自身が保存している公開鍵と一致するかを確認し接続先が正しい相手かどうかを判断します。
ただしこれは接続先に対して2回目以降の動作となります。
初めてアクセスする際はクライアント側にサーバの公開鍵が保存されていない状態ですので、どのように認証が行うのかをご紹介します。
この場合、クライアントは公開鍵のフィンガープリントを表示して、ユーザにフィンガープリントが一致しているかを問います。
インフラエンジニアの御用達のターミナルソフトのTeraTermでこのような画面やLinuxやMacのターミナルなどでSSH接続する際に『(yes/no)』と聞かれたことはがないでしょうか。
とりあえず『yes』にしないと接続できなから『yes』にしていませんでしょうか。
本来であれば事前にサーバの公開鍵のフィンガープリントを入手し、表示されるフィンガープリントと一致することを確認して『yes』とするべきなのです。
フィンガープリントは公開鍵をハッシュ化したもので、公開鍵よりもビット数を少なく表示することができるので、比較などをしやすいというメリットがあるので用いられています。
クライアントは一度アクセスしたサーバの公開鍵をLinuxやMacであれば『~/.ssh/known_hosts』にIPアドレスとセットで保存します。
2回目以降は最初に説明した動作となりますので、『(yes/no)』というようなメッセージが表示されることはありません。
今回の問題で問われているのはSSH接続をした際に警告メッセージが出るタイミングについてです。
さきほどから記載しているようにクライアントはサーバの公開鍵が自身の保持しているものと一致するか確認を行いますが、一致しなかった場合に警告メッセージを表示します。
TeraTermやLinuxでは次のようなメッセージが表示されます。
サーバの公開鍵が異なるケースとしては『接続先のサーバの公開鍵が更新された場合』、『IPアドレスは同じだが異なるサーバに接続しようとしている場合』が考えられます。
前者は問題文中に記載がありますので解答となるのは後者で、解答例としては、『接続先のサーバが保守用中継サーバでない(19文字)』と解答することができます。
設問2 (2)
下線部として、『当該利用社IDには、一般利用者の権限を与える』とあります。
保守用中継サーバがどのような役割を果たしているかというと、『保守PCのいずれかから保守用中継サーバにSSH接続し、さらに、保守用中継サーバから顧客管理サーバにSSH接続する。』とあります。
さらに、『SSH認証について、成功と失敗が接続先のサーバ上にSSH認証ログとして記録される。』、『保守用中継サーバでのコマンド実行及びその結果、並びに顧客管理サーバでのコマンド実行及びその結果が、保守用中継サーバ上に操作ログをして記録される。』、『SSH認証ログ及び操作ログへのアクセスには特権利用者の権限が必要であり、それらのログの確認はJ社のシステム管理者が実施する。』とあります。
これらのことから保守作業員には特権利用者権限を与えると、操作ログを改ざんしてしまうことが可能になってしまいます。
ログはログインしたことや操作を行ったことなどがわかる『証拠』です。
ログを改ざんすることができれば、重要な顧客情報を持ち出したことや不正な操作などを隠蔽したりすることが可能になってしまいます。
よって解答例としては、『保守員が操作ログを改ざんできないようにするため(23文字)』と考えることができます。
設問1 (3)
項番3のFWルールは送信元が【b】で宛先が保守用中継サーバでサービスがSSHとなっています。
項番4のFWルールは送信元が【c】で宛先が保守用中継サーバでサービスがSSHとなっています。
項番3と項番4の最大の違いは動作が『許可』と『拒否』であることです。
『保守PCのいずれかから保守用中継サーバにSSH接続し、さらに、保守用中継サーバから顧客管理サーバにSSH接続する。』とありますので、保守用中継サーバにSSH接続を行う必要があるのは保守PC-A、保守PC-B、保守PC-Cであると考えることができます。
さらに、『保守PC-B及び保守PC-Cは、M社が貸与するスマートフォンでテザリングし、インターネットに接続する。固定のグローバルIPアドレスは付与されない。』と記載があります。
表1に戻ると注記に『保守PC-B又は保守PC-Cからの保守作業の際は、事前申請に記載された作業時間帯だけ、J社のシステム管理者が”許可”に変更する。』とあります。
最後に図1中の字句を確認していきますと、保守PC-AはJ社内からアクセスしているので送信元が固定であると考えることができ【b】に入れるべきは『b:保守PC-A』と解答することができます。
保守PC-Bおよび保守PC-Cはテザリングでインターネット経由でアクセスし、記載のように固定のグローバルIPアドレスが付与されないことから、【c】に入れるべきは『c:インターネット』と全体的に穴あけを行う必要があると考えることができます。
インターネットから常に通信を許可していてはどうぞ攻撃してくださいというようなものなので、表1注記に記載のように普段は拒否をしていて必要なときにだけ許可するようになっています。
設問2 (1)
下線部②の通信を確認すると、『暗号資産を採掘するプログラム(以下、プログラムHという)が保守用中継サーバで動作しており、定期的にインターネット上のサーバに通信を試みていた』とあります。
つまり、『送信元:保守用中継サーバ、宛先:インターネット』の通信であることがわかります。
表1を確認すると送信元が保守用中継サーバであるものは項番5が当てはまりますが、宛先が顧客管理サーバとなっていますので違うと判断することができます。
図1を確認すると保守用中継サーバはDMZのセグメント内に属していることが分かります。
表1に戻って確認すると項番6が『送信元:DMZ 宛先:インターネット サービス:全て』となっていますので、解答は『6』となります。。
設問2 (2)
図3を確認すると『顧客管理サーバの保守を、保守PC-Cを使って6月14日7時から9時30分に行うと事前申請が出されていた。』と記載があります。
設問1(3)で出題されたように保守PC-Cによるアクセスは基本的にFWによって拒否されていますが、事前申請された場合に許可されるというルールでした。
なので、このルールに従いFWの設定変更を行って、保守PC-Cからの通信が許可されるようになりましたが、インターネットからの通信を許可したがために同時に攻撃を受けてしまったわけです。
ということで、解答は『6月14日7時0分から6月14日の9時30分まで』と解答することができます。
設問3 (1)
知識が必要となる問題です。
SSHの公開鍵認証においても、ログインを行う際に秘密鍵のパスフレーズの入力が求められます。
秘密鍵を作成する際にパスフレーズを設定せずに作成することもできます。
パスフレーズを設定せずに作成した場合は、ログインを行う際にパスフレーズの入力が求められませんので、秘密鍵を持っているだけでサーバにSSHでログインすることが可能になってしまいます。
そのため、攻撃者などに秘密鍵を奪われてしまった場合は即座に悪用される可能性がありセキュリティ的に危険です。
よって解答例としては、『秘密鍵が奪われても即座に悪用されないようにするため(25文字)』と解答することができます。
設問3 (2)
【d】の部分として『SSHサーバの設定では、公開鍵認証を有効にするとともに、【d】を無効にする。』とあります。
また、『保守用中継サーバ及び顧客管理サーバへのSSH接続の認証方式を、パスワード認証から公開鍵認証に変更する』と記載があります。
パスワード認証が破られてしまったので、よりセキュリティの強い公開鍵認証に変更するのですから脆弱な認証方法を無効にすると考えれば、【d】に入れるべきは『d:パスワード認証(7文字)』と解答することができます。
設問3 (3)
知識が必要となる問題です。
SSHの公開鍵認証の流れについて簡単に見ていきましょう。
- あらかじめサーバにクライアントの公開鍵を登録
- クライアントからSSHの接続を行う
- クライアントは公開鍵にユーザ名などのデータを付与して、秘密鍵で署名してサーバに送信する
- サーバはクライアントの公開鍵を使用して署名を検証し、確認できた場合はログインを許可する
ここでいうクライアントは保守中継サーバで、サーバは顧客管理サーバです。
クライアント側で必要となるのは署名に用いる『秘密鍵』です。
よって、解答例としては『秘密鍵(3文字)』と解答することができます。
設問3 (4)
『VPN装置を介して又は直接、M社内のネットワークに接続させた後に、インターネット経由で保守用中継サーバにアクセスさせることを考えた。このとき、【f】ことができれば、保守用中継サーバへのアクセスを表1の項番4のルールを変更することによって制限できる。』とあります。
表1の項番4のルールは『送信元:インターネット 宛先:保守中継サーバ サービス:SSH』というものでした。
問題な点はテザリングを使用するためグローバルIPが固定とならず、FWルールとして送信元をインターネットとする必要があったことです。
VPN装置を介すことでVPN用のセグメントが付与されることが一般的ですし、M社内のネットワーク経由であればグローバルIPアドレスが固定であるということが考えらます。
つまりは送信元IPアドレスを固定化させることができます。
送信元IPアドレスが固定となれば、FWルールを送信元:インターネットのように攻撃を受けるような設定ではなく、保守PC-Aの項番3のルールのように送信元を限定にすることができます。
よって解答例としては『送信元IPアドレスを固定化する(15文字)』と解答することができます。
公式解答例との比較
私の解答と公式解答を比較してみました。
満点ではないにせよ、少なくとも7割~8割程度は取れているかと思いますので合格ラインには達していると思います。
予想配点はあくまで予想ですので参考程度でお願いします。
SSHに関しては知識がないと解答することができない問題が出題されていましたが、FWに関する問題や文章中のヒントから解答することができる問題で十分合格ラインが狙える問題だったかと思います。
総じて、難易度としては普通~やや難しいだと思います。
配点 |
|||
設問1 (1) | 接続先のサーバが保守用中継サーバでない(19文字) | 接続先が保守用中継サーバではない | 6点 |
設問1 (2) | 保守員が操作ログを改ざんできないようにするため(23文字) | 操作ログの改ざんや削除を防止するため | 6点 |
設問1 (3) | b:保守PC-A c:インターネット |
b:保守PC-A c:インターネット |
各4点 |
設問2 (1) | 6 | 6 | 4点 |
設問2 (2) | 6月14日の7時0分から6月14日の9時30分まで | 6月14日の7時0分から6月14日の9時30分まで | 4点 |
設問3 (1) | 秘密鍵が奪われても即座に悪用されないようにするため(25文字) | ・保守員以外が不正に秘密鍵を利用できないようにするため ・秘密鍵が盗まれても悪用できないようにするため |
6点 |
設問3 (2) | パスワード認証(7文字) | パスワード認証 | 5点 |
設問3 (3) | 秘密鍵(3文字) | 秘密鍵 | 5点 |
設問3 (4) | 送信元IPアドレスを固定化する(15文字) | 送信元IPアドレスを固定にする | 6点 |
引用元
問題および解答例に関しては、独立行政法人 情報処理推進機構(IPA)より引用しています。