見出し画像

テクニカルエンジニア(情報セキュリティ)持ちだけど情報処理安全確保支援士試験を受けてみた ④どうやって問題を解いたか

このシリーズは過去に合格した試験(の後継試験)をあえて再度受けてみた訳のわからない話。今回は試験の解答手順について。
とりあえず午前は通ってそう。午後は、感触あるけど……怖いですね。
行政書士試験でもそうでしたが、記述は本当に気が重くなります。

試験解答の手順

大筋は行政書士試験のときと同じです。ざっくり簡単に書けば、

  1. 最初に問題の種類を振り分けする。

  2. 手早く何周も回す。

  3. 試験終了30分前迄はマークシートを塗ったり解答用紙に記述したりせずにチェックするだけ。

です。以下、今回の試験でとくに注意した点を追記します。

午前問題の解き方

午前Iは50分で30問、午前IIは40分で25問。実はあまり時間の余裕はないです。手早く一周して、知識で解けそうな問題はさっさと潰すことが大事です。
ここで過去問道場で過去6回分を金トロフィーにしておく効果があります。午前I・IIともに計算問題とか、ちょっと時間がかかる問題のために時間を取れるようにしましょう。
なお、午前Iの30問、午後IIの25問で「1. 最初に問題の種類を振り分けする」はほとんど不要でした。
「適切なものはどれか」「○○の説明はどれか」といった素直な問題ばかりです。
唯一、午前II 問23のみ「不適切な行為はどれか」というネガティブな選択肢を問うています。

午後問題の解き方

午後問題の最初の難関はすばやく捨て問をえらぶことです。
この点、午後Iでは今回はセキュアプログラミングを捨てると決めていたので、否応なく問1を捨てています。
令和5年春の午後I問2はインシデント系の問題、問3はクラウドサービスの利用です。解答パターンは以下のとおりです。問2を参考例としておきます。

全体の流れ

全体通して時間不足に陥いらずにそれなりの解答を作りたいところです。
以下の通り処理しました。

  1. 問2で下の1~3を行う。

    1. 用語知識形を初見1周だけ解く

    2. 単純引用形を解く

    3. 説明問題形の解答の素案をつくる(①本文中で使えそうな表現を探す、②知識で単語を羅列する)

  2. 問3で同じように解く。*解答すべき大問を2つ選択する午後Iだけです。

  3. 問2(・問3)の説明問題形の表現を整える。

  4. 問2(・問3)の単純引用形・説明問題形を見なおす。

  5. 問2(・問3)の用語知識形を最後1周見なおす。

  6. 終了30分前から解答用紙に無心で転記。時間があまれば、単純引用形・説明問題形の解答を読みやすく書きなおす。

用語知識形・単純引用形・説明問題形とは。

勝手に用語をつくりましたが、午後問題の解答の種類は大きく分けてア.用語知識形、イ.単純引用形、ウ.説明問題形です。

  1. ア.用語知識形とは用語やその意味を答えるものです。e.g.設問2(1)の「本文中の[b]に入れる適切な語句」
    このタイプの答は完全に記憶から引き摺りだしてもらうしかありません。記憶していないと書けません。ここで時間をかけるのは無駄です。
    覚えていないものは思い出せないからです。ですから、初見で解答できなかったら適当に思いついたそれっぽい言葉で埋めといて、最後(午後Iの選択問題両方の解答が作れてから)にチェックしました。

  2. イ.単純引用形とは本文中に含まれる特定の単語や値をそのまま書くだけ、または多少の計算をしても端的に書くだけですむものです。e.g.設問2(4)の「本文中の[e]に入れる値」、設問3(3)の「本文中の[f]に入れる適切なサーバ名」
    このタイプが一番得点を拾いやすいです。答えが明確で目grep力が問われます。むしろ目grepの検索条件の組み立て方が大事かもしれません。
    設問2(4)の「本文中の[e]に入れる値」の検索条件は「表2中でポートスキャンしているPID」です。それっぽい単語(range)とかコマンドラインの引数(192.168.0.1-192.168.255.254)をさっと探すだけで答えになります。

  3. ウ.の説明問題形とは理由や手順などを説明させるものです。e.g. 設問3(1),(2)
    このタイプは「解答の素案作成」→「文字数と本文の用語に合わせて表現」という2段階の処理が必要なので、時間がかかります。そしてIPAは点数調整をこのタイプの問題でするでしょう。
    例えば設問3(1)の解答はこのパターンです。
    ここで点数を拾うには出題者が「これは書いて欲しいな」と思う、落せない単語を矛盾なく記述することになります。

    1. まずは「使えそうな言い回しが本文に書いてないか?」をチェックします。あったらそれが解答の素案です。問題文に何ページの何行目かを書きます(P10L5~みたいに)。
      ここで時間はかけられません。設問3(1),(2)ともに、これでは解答できません でした。

    2. 見当らなかったら、知識で解答の素案を組み立てます。私は最初「TXTレコードには任意の文字列が設定できるから」としました。落せないのは「任意」の「文字列」です
      ここまでで解答の素案ができています。これは一周目でさっと作ってしまい、他の設問に移りました。設問が全部埋まったら、次の大問に移っています。

    3. 解答する大問設問中の文字数にあわせて、本文の用語をできるだけ使って表現するようにします。今回は「TXTレコードリソースデータに任意の文字列を設定できるから」に書きなおしました。
      何故なら、本文中では「TXTレコードのリソースデータを取得し、リソースデータの内容をそのまま」と書いてあるからです。
      重ねて書くあたり、「リソースデータ」って言葉を使って欲しそうです。ここで落とせない単語に「リソースデータ」が追加されました。※厳密に言えばDNSのリソースレコードは「ラベル、TTL、クラス、タイプ、リソースデータ」で構成されるところ、TXTレコードとだけ書くとラベルでもTTLでもTXTレコードの一部なので当てはまります。
       ラベルやTTL、クラス、タイプは「任意の文字列」が設定できないので、その点でもリソースデータと特定する必要はあるかもです。

各問題の解き方

  1. 最初に設問と本文をちら見しながら、アンカーを打っておく。

    1. 例えば、設問2で
      〔受付サーバのプロセスとネットワーク接続の調査〕
      とあれば、本文の当該行に"Q2"と書き、設問2にページ番号を書きます。あとで説明する単純引用形やで説明問題形で使えそうな言い回しを探すときはこのアンカーをベースに前後を目grepしてください。

  2. 本文中のキーワードにアンダーラインを引く。単純引用形の答えと説明問題形のキーとなります。
    ① 具体的な数字…e.g. 1分間に10回以上、10年以上の稼動実績
     → 頻度を示す数値は脅威の大きさや影響範囲の広さなどを特定する鍵になります。
    ② IPアドレスやホスト名、ドメイン名…e.g. 受付サーバが192.168.0.1,DBサーバが192.168.0.2~、(https://)a0.b0.c0.d0
     → 接続・攻撃の元や先など、通信の起点・終点はすべてアドレスを持ちます。
    ③ セキュリティに関する用語…e.g. ステートフルインスペクション、ポートスキャン
     → 特徴を踏まえ、状況を説明させる問題が頻出しています。
    ④ プロトコルやポート番号…e.g. 443/TCP、SSH、FTP
     → こちらも特徴を踏まえ、状況を説明させる問題が多いです。また、よく使われるプロトコルやその実装は脆弱性が広く知られていたり、攻撃者側にとっても実装が容易だからマルウェアに組込んだり悪用しやすかったりします。

  3. ネットワーク構成図に書き込みをする。
    書き込む内容はあまり多くありません。想定している通信プロトコルや、意図して開けたポートの番号と出入りの方向くらいのものです。([受付サーバ]←443 OK みたいな書き方です。

  4. 設問に解答していく。
    記述する解答自体は設問の空きスペースに記述します。本文中の[a]を答えよ、とある場合も、本文ではなく設問の方に記載します。あとで解答用紙に転記するとき、探す必要がないからです。

自己採点

午前Iは22/30(66点)、午前IIは22/25(88点)でした。とりあえず、午前Iは2年間免除してもらえるようになったのでよかったです。また、午後I・午後IIへの挑戦権もあるようです。
しかし正直な気持ち、午後I・午後IIはここまでやっても不安です。午後I,IIの解答は下に記述しておきますが、よくても60点かな。厳しいかな。

午後I 問2
設問1 バイナリ *わからなかった
設問2
(1) SNMPグループ *これも答がすっとんだ
(2) バインド、「2-3のコマンドにて3-3の通り待ち受けたが1-3の通り拒否されたから。」(36文字)
(3) コネクト、「2-4のコマンドにて3-4の通り接続を要求し、1-4の通り許可されたから。」(37文字)
(4) 1365
設問3
(1) リソースデータに任意の文字列を設定することができるから。(28文字)
(2) ポリモーフィック型のマルウェアだと同一性を保証できないから。(30文字)
(3) 受付サーバ

午後I 問3
設問1
(1) a:ア b:イ c:ウ *こういう解答すごく気持ちわるい。きれいに並ぶの怖い。
(2) 「本社UTMのグローバルIPアドレス以外のIPアドレスからのアクセスを拒否するから」(40文字)
設問2
(1) d:ウ e:ア f:イ
(2) g:オ
設問3
(1) 「プロクシサーバによる中継に替わりPサービスによって中継する。」(30文字)
(2) 「営業所のUTMのグローバルIPアドレスからのアクセスも許可する。」(32文字) *「も」、としたのは既存の設定だけでなく、この設定「も」というつもりであった。「変更する設定」ではなく「追加する設定」なので「アクセスを許可する」でよかった。多分大差ないかな。
(3) イ
(4) h:6 i:2
(5) あ:4 j:「https://△△△-a.jp/」 k:「業務で必要な最小限」 l: 許可
     い:3 m:「外部ストレージサービス」 n:「全て」 o: 禁止
  *k:とn:はいたかった

午後II 問2
設問1 a:○ b:× c:×
         d:○ e:○ f:×
         g:○ h:○ i:○
設問2
(1) j:イ k:エ l:ア
(2) {
      "system":"4000",
      "account":"11[1-9][0-9]",
      "service":"オブジェクトストレージサービス",
      "event":"オブジェクトの削除"
     }
   * 手を付けたら簡単。
設問3
(1) m:新日記サービス n,o:サービスT
(2) p:2 g:8
(3) ウ、エ
設問4
(1) 「有効なクライアントIDが判らずclient_idの値を設定することができないから」(40文字) *この辺りから疲れが見えてくる。
(2) 「認可サーバ側でチャレンジコードのSHA256ハッシュ値をbase64エンコードした値を求め、検証コードパラメータと一致するか確認する。」(67文字) *どう答えてほしいのか判らなかった。ここで脳味噌のエネルギーを大分消費した。
設問5
(1) 「ソースコードの変更履歴からファイルZが削除される前の差分をダウンロードする。」(38文字)
(2) 「OSSリポジトリの利用者認証を要に設定しソースコードのダウンロード権限を設定する利用者を限定する。」(49文字) *アップロード権限や承認権限の話だったのに、完全にファイルZをダウンロードさせないことに意識が集中した。
(3) 「Xトークンにはアップロードされたソースコードの承認権限を付与しない。」(34文字) *おそらく「開発リーダにのみ承認権限を付与する」とかの方が適切なのだろう。しかし、「Xトークンが漏えい」したとして、それを不正に利用できないようにする、そのためにXトークンへの設定はどうあるべきか…と考えた。その結果、上記のように記述した。


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