ブログ名はあとで考える

WEBエンジニアのブログ。強くなりたい。

令和元年度 秋期 情報処理安全確保支援士試験を受験してきました

f:id:zacky2:20191022224438j:plain

はじめに

表題の試験を受けてきたので、自分の解答を書きます。 間違ってたり、自分はこういう答えをしたとか、なぜこう考えたの?というところがあったら教えてください。

目的

私は6年前に情報セキュリティスペシャリスト試験を合格しているんですが、 今回は登録セキスペになるために受験しました。 まあ登録セキスペを取ったからと行って給料が上がるわけでもないし、費用免除されることもないんですが、 個人的には次のようなメリットがあるかなと思いました。

  • 継続的にセキュリティの勉強をするモチベーションにしたい
  • セキュリティ強い優秀な人だと錯覚させることができる(かもしれない?)
  • 雑談のネタになる

制度ができた時点で申請しておけば登録セキスペになることもできたんですが、 当時は、登録セキスペの高すぎる維持費を払うのが苦しかったので申請しませんでした。

解答と所感

問題はこちらにあります。

www.jitec.ipa.go.jp

午前1

免除でスキップ

午前II

公式に正答が出てるので解答はスキップ

1問目で 「認証処理のうち、FIDO(Fast IDentity Online) UAF(Universal Authentication Framework) 1.1に基づいたものはどれか」 という問題が出たが、全く用語を知らなくて間違えた。

FIDO UAFは、SaaSの認証でスマホの顔認証とか指紋認証とかの生体認証をして、スマホ秘密鍵ディジタル署名を作って、そのディジタル署名を認証サーバに送信するときに使っているらしい。 最近そういうサイトやアプリあるなーとおもった。これはもう少し勉強したい。

問7 JIS Q 27014:2015のガバナンスプロセスのうちモニタはどれか? わからなかった。テクノロジ系以外は覚えられないので明日には忘れそう。

問10 BlueBorneもわからなかった。直感で当たったが、Bluetoothの近年話題になった大きな脆弱性とのこと。

Blueborneとは?Bluetooth機器を遠隔操作する危険な脆弱性への対策

問24 のフェールソフトな行動はどれか という問いは、Iパス、基本情報、応用情報でよく出る定番問題なのだが何年もやってなかったので間違えた。

IT業界にいるなら知ってて当然の知識だと思うので、おさらい。

  • フェールソフトは、縮退運転 意地でも運転を続ける
  • フェールセーフは、停止しても安全側に倒れる
  • フォールトトレランスは、障害耐性 冗長化とか
  • フォールトアボイダンスは、障害回避 信頼性の高いマシンを使う
  • フールプルーフは、バカ避け バリデーションチェックとか

自己採点だと85点だった。合格ラインは突破した。 本当の戦いは午後から始まる。 午前はウォーミングアップみたいなものだ。

午後I

問2、問3を選択した。

問1は電子メールセキュリティの問題で、全く明るくないし、DNSのTXTレコードのSPF設定値が穴埋めになってて、 構文知らねーからわかんねーな とおもって選択肢なかった。

5分くらいでざっと問題見て、1問目を捨てようと思った。

午後I 問2

社内システムにマルウェアに感染するインシデントへの対応の問題。

設問1

(1) 通信が遮断された理由:プロキシサーバでプロキシ認証を行っているから

メモ:BASIC認証してるから、それを突破しないと外部サーバとは通信できない

(2) a: FW

パブリックDNSに直接問い合わせすれば内部DNSサーバも外部DNSサーバも通らないし、そもそも両方ログ取ってないから

(3)

メモ:正直間違っているかもしれない、https, dnsなどのプロトコルを書こうと思うと字余りだし、両方FWのアクセスログってひねりないなーという感想。

(4)ISACに伝えるべき内容

メモ:キは完全に間違えた、マルウェアのファイル名は都度変わるって書いてたからキではない。 消去法で、ウ(フォルダNのパス)が正解っぽい。

設問2

(1) エ:コードサイニング証明書

コードが改変されてないか検証できると考えたら、これしかない。

(2)ネ:ネットワーク盗聴

正解はゴールデンチケット窃取っぽい。 ゴールデンチケットはアクティブレコードの脆弱性で、プロキシ情報の摂取に関係ないから。

(3)

  • 送信元:外部DNSサーバ
  • 宛先:インターネット
  • サービス:DNS
  • 動作:許可

外部DNSサーバは、メールサーバやプロキシサーバからDNSクエリが来た時に、 再帰問い合わせのためにインターネット上の権威サーバにアクセスする必要があるので、許可する必要がある。 ほかのDNSは通す必要がないはず。

(4)

  • d:Webサーバ
  • c:DNSサーバ
  • b:名前解決リクエス

ここは死んだ。全部間違っぽい。 その後調べた感じだと以下の解答が有力。

  • d:権威DNSサーバ
  • c:外部DNSサーバ
  • b:再帰問い合わせ

DNSプロトコルだけで攻撃サーバにデータを送ったり、指令を受け取ったりできるということに衝撃を受けた。 しかし2016年くらいに実際に標的型攻撃で使われたらしい。知らなかった。 DNSトンネリングっていうらしい。

DNSトンネリングの現状: OilRigのDNSトンネリング概要 - Palo Alto Networks

(5)e : サイズの大きいDNSクエリが大量に発生する

攻撃サーバにDNSクエリを使ってデータを送るわけだから、複数のDNSクエリに分割されていっぱいクエリが発生するはず。自信あり。

所感

問2かなり死んだ。平均点以下かもしれない。

DNSプロトコルだけで攻撃サーバ(C&C)と情報のやりとりできると思わなくて結構間違えた。 Twitterでは、ここがわからなかったと行っている人が自分以外にもいたが、ここを解けたかどうかが運命の分かれ道かもしれない。 合格はだいたい上位2割だと考えると、落ちた気がしてくる。

午後I 問3

標的型攻撃の問題.

ネットワークのログだけじゃなくて、アプリケーションの実行ログ(実行したプログラムのハッシュ)もあると フォレンジックするとき助かるなと思った。

設問1

(1) メモリ上の情報を保持するため

マルウェア感染時に電源を落としてはいけない理由。あってると思う

(2)

  • 他の業務サーバやPCに感染が広がる
  • C&Cサーバに機密情報が送信される

設問2

  • a ウ
  • b イ
  • c オ
  • d ア

マルウェアが実行したコマンドと、その目的。自信あり

設問3

(1)w1.x.1.y1.z1へのアクセスがログにふくまれているか

(2)マルウェアに感染後、マルウェアが活動する前にシャットダウンしたか、ネットワークから切断された状態 

これは正直わからなかったので、当たり前な答えを書いた。

(3)マルウェアMのハッシュがログに存在するか

所感

概ね解けたと思う。

午後II

問1はWebアプリ開発についての問題

問2は工場のセキュリティの問題

実務に近い問1を選んだ

午後II 問1

Webアプリを開発してる会社の話。

DBの脆弱性を使って感染を広げるマルウェア。 コンテナ技術を使えばセキュアで検証環境作ったりするのが楽でいいよ という話も出た。 topコマンドを改ざんし、マルウェアを見えないようにするルートキット動作もでた。

設問1

(1) 感染済みのサーバに何度も侵入してしまう(ポート6379/tcpが解放されたサーバを探索するから)

自信はない

(2)

(3)マルウェアXは採掘演算結果のみしか外部に送らず、マルウェアX以外不審なアクセスやコマンド実行がないから

マルウェアXは採掘演算結果のみしか外部に送信しないのがキモかなと思った。

設問2

(1)

  • 対策1 イ
  • 対策2 イ、ウ
  • 対策3 ア、エ
  • 対策4 ア、イ、ウ、エ、オ

対策4は悩んだが、実行できるコマンドや書き込めるディレクトリを制限すれば、すべてのマルウェアの機能をブロックできると思ったので、全て選択した。

(2)

  • あ:22/tcp
  • い:6379/tcp
  • う:a2.b2.c2.d2

「あ」と「い」は、意味が通じるように考慮した結果この順番にした。 愚直に元の表の順番で書くと、DBMS-Rのポートが22/tcpになっちゃうので注意。

(3)

(4)

  • え:ハッシュ
  • お:比較
  • か:変更

ファイルのハッシュを比較して改ざんを見つけようという話

設問3

(1) ア、ウ

イ FedRAMPもセキュリティ標準らしいので追加すべきだった

(2)利用しているソフトウェアやライブラリ、ハードウェアの名称やバージョンをリストアップする

(3)

(4)

  • け:レビュー
  • こ:作成者以外

「こ」の方は微妙。だれがレビューしたらいいんだろう?

(5)

  • c: オ コンテナエンジン
  • d: ア アプリ
  • e: エ コンテナ
  • f: カ 変更の履歴
  • g :キ 本番
  • h: ウ 検証

ここは100点だと思う。

所感

8割くらい正解できたと思うが、 問題の難易度が低いため、合格率調整のために落とされる可能性はあると思った。 正直、自分がよく解けただけなのか、問題の難易度が低いのかは肌感覚ではわからない。

実務に近いので学んだことをメモ

Webアプリの動作環境で検討する対策

  • サーバへの接続元を利用が想定されるIPアドレスに限定する
  • サービスのポートをデフォルト以外に変更する
  • サーバから外部への通信(SSH, HTTPなど)を禁止する(必要に応じて限定する)
  • アプリおよびミドルウェアを管理者権限以外の最小限の権限で稼働させる
  • ファイルの改ざん検知

開発プロセスで必要なこと

  • 実装プロセス:セキュアコーデイング基準を利用。コーディングレビューを行う
  • 検証プロセス:脆弱性診断する
  • 運用プロセス:
    • 自社で使用している実行環境について脆弱性情報を収集する
    • ソフトウェア、システム設定、システム構成の変更を管理する

おわり