ITエンジニアが仕事に対して思うこと

ITエンジニアとして働く中で感じたことを、現場の温度感そのままに言語化するブログです。設計・実装・運用のリアル、学び続ける負荷、品質とスピードのせめぎ合い、コミュニケーションの難しさなど、きれいごとだけでは語れない「仕事の実態」を整理します。誰かを責めるのではなく、なぜそうなるのかを構造で捉え、明日から少し楽に、少し強く働ける視点を提供します。新人から中堅、マネジメントまで参考に。

令和4年度 秋期 情報処理安全確保支援士試験 午後Ⅰ 問3過去問題解説【改訂版】乗っ取られたゲームサーバの謎 【動画解説付き】

         [https://www.youtube.com/watch?v=OPETeaBw1cs:embed:cite]

本動画では、令和4年度秋期情報処理安全確保支援士試験午後Ⅰ問3を徹底解説します。オンラインゲーム事業者を舞台に、OSSに混入したマルウェアによるサプライチェーン攻撃とコンテナ環境特有のインシデントレスポンスが問われる良問です。初動対応におけるコンテナの一時停止の重要性や、レジストリサーバへの攻撃痕跡の調査、アクセス制御による恒久対策まで、合格に必要な知識を網羅的に学習します。 本問でまず深く理解すべきテーマは、現代のソフトウェア開発において不可避となっているOSSを利用したサプライチェーン攻撃のリスクと、その具体的な侵入経路です。信頼していたライブラリに悪意あるプログラムであるコードZが混入することで、開発部による正規のビルドプロセスを経てマルウェアがコンテナイメージとして生成され、本番環境にデプロイされてしまうという一連の流れを把握する必要があります。このマルウェアはセキュリティ製品によるサンドボックス解析をすり抜けるために、起動直後は無害を装い数時間経過してから活動を開始するという巧妙な潜伏機能を持っており、こうしたゼロデイ攻撃に近い挙動への理解が求められます。次に、実務でも非常に重要なコンテナ環境におけるインシデントハンドリングの鉄則について解説します。従来の物理サーバや仮想マシンの調査とは異なり、コンテナ技術ではデータが揮発性を持つことが多く、本問のケースでもアプリケーションのログが一時ディレクトリに出力される設定となっていました。そのため、不審な挙動を示したコンテナを慌てて終了(Kill)させてしまうと、一時ディレクトリごとログが消去され、原因究明に必要な証拠を失ってしまいます。したがって、メモリ上の状態とファイルシステムのログを維持するために、終了ではなく「一時停止(Pause)」を選択するという判断プロセスは、コンテナフォレンジックの基礎として確実に押さえておくべきポイントです。また、攻撃者が内部ネットワークの構成図を持っていない状態で、どのようにして重要なレジストリサーバを特定したかという偵察行為のテクニックも学習します。攻撃者は手当たり次第にリクエストを送信し、たとえ「404 Not Found」というエラーが返ってきたとしても、そのレスポンスヘッダに含まれる「Docker-Distribution-Api-Version」といった固有の情報を手掛かりに、そのサーバがコンテナイメージを管理するレジストリであると特定しました。これに対する復旧措置として、PUTメソッドにより上書き改ざんされたタグ番号のイメージ群を削除し、被害の拡大を防ぐ手順も重要です。最後に、恒久的な再発防止策としてのアクセス制御の設計について掘り下げます。攻撃通信先であるIPアドレスをファイアウォールでブロックするという対策は、攻撃者がボットネットを利用して次々とIPを変更してくる場合には効果が限定的です。そのため、より根本的な対策として「最小権限の原則」を適用し、レジストリサーバに対して書き込み(PUSH)を行う必要があるのはビルドを担当するソースコードサーバのみであるという業務フローに着目します。ゲームサーバからは読み取り(PULL)しか行わないため、書き込み権限を持つ通信元をソースコードサーバのIPアドレスのみに制限することで、仮にゲームサーバが乗っ取られてもレジストリ内のイメージは守られるという堅牢なセキュリティ設計を学びます。