min117の日記

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

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

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

 

。記述式。問1、問2、問3の3つのうちから2つを選んで回答する。

問2と問3を選択した。

 

ちなみに前回平成31年4月)は午後2で落ちた

f:id:min117:20191021074143p:plain

 

※ 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


自信は前回よりはある。まずは問2から。

 

令和元年度 期 午後Ⅰ 問2 解答例

設問1

(1)プロキシ認証を通過できなかったから(20字以内)

(2)b(FW)※1つだけ選ぶ

(3)

 プロキシサーバにアクセスログがあり認証成功したログがあること(30字以内)

 FWにC&Cサーバとの通信ログがあること(30字以内)

(4)ア 

 

設問2

(1)TLSクライアント証明書)

  → (コードサイニング証明書)が正解。たぶん。

(2)ゴールデンチケットの窃取)

(3)

 変更すべきルール:3

  送信元:全て

  宛先:外部DNS

  サービス:DNS

  動作:許可

(4)

 b HTTPサーバ

 c パブリックDNSサーバ

 d 名前解決のための情報 再帰問い合わせがたぶん正解

(5)

 レジュームのため同一内容のDNSレコードが多数発生する(30字以内)

 

<思考のメモ>

通信

プロキシサーバにはBASIC認証があるので(9ページの(c))、PC利用者がIDパスワードを入力しないとWebには接続できないはず。

マルウェアはC&Cサーバに向けて(おそらくcurlで)HTTP通信しているから、接続成功するためには、curlのオプションにIDとパスワードを指定しないといけない。

・なのでマルウェアがC&Cサーバに繋がるためには、IDとパスワードを入手している必要があるがそれができなかったのでプロキシサーバを通過できず遮断された(11ページ図3の下線①)と思われる。

 

ログ

・このシステム構成でログが残るのはFWとプロキシサーバ(9ページのbとc)

情報持ち出しが成功したとすればFWにcurlによるHTTP通信ログが残るはずだし、プロキシサーバにアクセスした旨のログが残るはず。

 

ファイル名とフォルダ名

・ISACからの情報提供(10ページ)によれば、マルウェアはファイル名を都度変更するタイプだから、今回の感染情報のうちファイル名を(他社に向けて)情報提供しても何の参考にもならない(ので13ページのオとキは選択肢から消える)。

・ところが11ページの図3においては、感染した2台のPCのフォルダ名はどちらも同じ(フォルダN)であることから、このマルウェアでは感染する先のフォルダNのPATHは(どのPCに感染しても)変わらないと考えられ、他社に共有するにあたっては有効な情報と思われる(13ページのウ)。

 

他社に共有すべき情報

マルウェアPやマルウェアRがHTTP通信を試みたグローバルIPアドレスMは、10ページの情報提供時点で既に既知なわけだから、改めて情報提供しても意味がない(13ページのイは選択肢から消える)。

マルウェアに感染したPCのプライベートIPアドレスなんか他社に伝えても何の参考にもならないのは当然(他社では違うIPアドレスだろうから。なので13ページのエとカも選択肢から消える)。

 

ディジタル署名の検証に利用する証明書

・正規実行ファイルかどうかを判定するためのデジタル署名なんだから、ソースコード(と実行ファイル)に対する署名=サイン=signingなので「コードサイニング証明書」がたぶん正解

rms.ne.jp

 

プロキシ情報の窃取に使用できない攻撃手法

・プロキシサーバはBASIC認証なので(9ページの(c))一切暗号化されていない

・社内ではネットワーク上を平文でIDとパスワードが流れるので、マルウェアからすれば、社内に侵入できさえすればいろいろな方法でプロキシ認証情報を盗むことができる。

 ア 社内PCに侵入してブラウザのオートコンプリート情報を盗むとか

 イ 社内PCにキーロガーを仕込んで、利用者が打つIDとパスを盗むとか

 エ プロキシサーバに総当たり辞書攻撃をしてIDとパスを見つけるとか

 オ プロキシ認証にそっくりの認証画面をマルウェア上に作って誘導するとか

 カ ネットワークのスニファを置いて通信をキャプチャするとか。

・↑ に無いゴールデンチケット」方式では盗めない

・「ゴールデンチケット(Golden Ticket)」はAD認証においてメモリからNTLM認証情報を盗み出すことらしい。

・今回の問題文にはADは一切出てきていないし

・NTLM認証情報を盗んだところでプロキシ認証を通るわけでもない(ので13ページの(2)はウが正解と思われる)

cloud.watch.impress.co.jp

f:id:min117:20191021185536p:plain

 

FWのフィルタリングルールの変更

マルウェアパブリックDNSサービスを利用してC&C通信を行うのを防ぐための変更を問われているのだから、パブリックでないほうのDNSを使えばいいのだろうと思う。

Z社のネットワーク(8ページの図1)をもう一度見てみる

f:id:min117:20191021190537p:plain

マルウェアはオフィスセグメント(のPC)にいる

オフィスセグメントのPC(例えばPC-V)がインターネットに行くときの名前解決をどこでやっているかというと、本文には明確に書いていない

・フルサービスリゾルバとして機能するDNSが2つあることが本文中から分かる

  外部DNSサーバ(8ページの注1)

  パブリックDNSサーバ(10ページの注記)

 から、このどちらに問合せしても名前解決はできる。

マルウェアはこのうちパブリックDNSサーバのほうを悪用したわけだから、それを許可せず、必ず外部DNSサーバに聞きに行くようにすればいいと思う。

・なので、8ページ下のルールを書き直すとすれば

 送信元/宛先/サービス/動作

 全て/外部DNSサーバDNS/許可

・ちなみに、DNS自体を禁止しちゃうと名前解決できなくなってしまう(オフィスセグメントのPCがインターネットに行けなくなってしまう)から、8ページ下のルールで、例えば項番3で 全て/DNS/拒否 とかしたりしてはダメだろうと思う。

・なお「パブリックDNS」と言っているのは、例えばGoogle提供の8.8.8.8とか8.8.4.4とかだろうと思う。

 

C&C通信の各手法への対策案3

・これは難しかった。問題文を書き出してみる。

 攻撃者は、あらかじめ攻撃用ドメインを取得し、bをC&Cサーバとして、インターネット上に用意しておく。マルウェアが、cに攻撃用ドメインについてのdを送信すると、cがC&Cサーバに非dを送信する。こうして、マルウェアはC&C通信を行う。大量の情報を持ち出す場合、次の特徴が現れる。

 ・長いホスト名を持つDNSクエリの発生

 ・e 

f:id:min117:20191021204224p:plain

bとc

・まず10ページの(う)によれば「C&C通信にはHTTP又はDNSプロトコルを使用する」とある。

・つまり、マルウェア(攻撃者がインターネットのどこかに建てた)HTTPサーバに対して窃取データを送信(アップロード)する

・攻撃者もバカじゃない(追跡を逃れるズル賢さが当然ある)だろうから、HTTPサーバのグローバルIPアドレス不定期に変えているだろう(DDNS使うとか、Tor通すとか、ダークネットに逃げるとか)

・そうすると、マルウェア窃取データを送信するためには、送信する時点のHTTPサーバのIPアドレスFQDNから引かなきゃいけない

・それをパブリックDNSやっている。

・だからマルウェア通信はHTTPとDNSなわけで。

・ここまでで「b=HTTPサーバ、c=パブリックDNS」が解答だろうと分かる。

 

d

・難しいのはdに何が入るか。

マルウェアパブリックDNS送るのは、攻撃用ドメインの情報(インターネットにあるHTTPサーバのFQDNだから、dには「名前解決情報」が入りそうに思うが、そうすると「非d」が「非名前解決情報」となり、おかしな文になってしまう。

・「非」が「被」ならまだ日本語として通じる(問題文間違い?)

・無理やりそれっぽいのを入れるなら「非同期通信」とか?かもしれない。

追記)

正解は「再帰問い合わせ」では?という情報。これ正解な気がする。

f:id:min117:20191021221340p:plain  f:id:min117:20191021221357p:plain

 

e

・これも難しい。大量のデータを持ち出すときに「長いホスト名を持つDNSクエリが発生している」ことからして、たぶんHTTPのGETメソッドだろうと当たりは付く。

・POSTメソッドなら引数は見えないから。

・想像だが、攻撃用ドメインが仮に hacker.co.jp だとすると

  http://hacker.co.jp/upload.php?file1=secret1.txt&file2=secret2.txt...

 みたいな長い引数のついた文字列が送られたんじゃないかと思う。

・これ(長い文字列)以外にもう一つ特徴があると(問題文は)言っているわけだが、想像もつかない。

・「大量の=大容量の」と読み替えれば(←かなり無理あるが)、サイズの大きいファイルを持ち出そうとしているとも考えられる。

・大容量ファイルはたいてい転送に失敗する。

・ネットワークが途切れても止まるし

送信先サーバのIPアドレスが変わっても失敗する。

・アップロード途中で失敗してレジューム(失敗の続きからダウンロードすること)がかかるかもしれない。そうするとまた攻撃用ドメイン(HTTPサーバ)の名前解決しなきゃいけなくなるから、その都度DNS要求が発生する。

・特徴としては「レジュームのため同一内容のDNSレコードが多数発生する(30字以内)」くらいしか思いつかない。

 

以下問題文。 

f:id:min117:20191021073424j:plain

f:id:min117:20191021073430j:plain

f:id:min117:20191021073435j:plain

f:id:min117:20191021073439j:plain

f:id:min117:20191021073444j:plain

f:id:min117:20191021073448j:plain

f:id:min117:20191021073452j:plain

問3は別記事で書く。

min117.hatenablog.com

 

なお午Ⅱ はこちら

min117.hatenablog.com