ガチ文系の40代が情報処理安全確保支援士試験にチャレンジ③

こんにちはちゅーりーです。

2024年春の情報処理安全確保支援士試験に午後試験85点(上位3%)で合格しました。2023年秋試験であえなく不合格となり、春の試験も自信が全く持てない出来でしたがまさかの高得点での合格にびっくりです。

ちゅーりー

正直、まだ実感わかないです・・

ちゅーりーは市販のテキストや問題集・IPAの過去問にももちろん取り組みましたが、それ以外に暗記事項をまとめたノートを作成し何度も何度も書いて覚えました。

この記事ではちゅーりーが情報処理安全確保支援士試験に合格した際に作成したまとめノートについて紹介します。テキストや問題集、IPA資料などから得た情報が多いためほとんどの人が「もう知ってるよ!」と思われるかもしれませんが、今後受験される方に少しでも助けになればと思い記事を書きました。

【注意】
この内容は午後試験対策ですがもちろんテスト内容、暗記事項を全て網羅しているわけではありません。あくまでちゅーりーが学習を進めてきたなかで暗記した方が良いな」、「これは出そうだなと思ったポイントを書き連ねているだけなのでその点ご容赦ください。

詳細な学習ログやテキスト等の教材については下2つの記事を見ていただけると嬉しいです。

あわせて読みたい
ガチ文系の40代が情報処理安全確保支援士試験にチャレンジ!① こんにちはちゅーりーです。少し前に一大決心をしたのでご報告です。 決めました! 何・・改まって・・ それは最難関情報処理試験(LV.4)の一つである情報処理安全確保支...
あわせて読みたい
ガチ文系の40代が情報処理安全確保支援士試験にチャレンジ!② こんにちはちゅーりーです。皆さんお元気ですか? セキュリティのプロ(モテモテ)を目指して必死に勉強して高度試験である情報処理安全確保支援士試験に挑んだものの、結...
目次

まとめノート

ここからはまとめノートの内容を紹介します。ひたすら文章や単語を書き殴って記憶しましょう。
カテゴリごとに整理されておらずバラバラなのはご容赦ください。


相手はさすがの高度情報処理試験、受験生の細かな記憶の隙をついてきます。あれ?どうだったかな・・と思ったら相手の思うツボ。キーワードは知らない人に説明できるレベルを目指し、あいまいな状態にしないようにしましょう。

ちゅーりー

ちゅーりーは書いて覚えるタイプ・・

ウォンバ

へー・・(興味なし)

暗号方式

共通鍵暗号方式はAESやCamellia、K-Chiher-2、公開鍵暗号方式はRSAやECC、DSA。とりあえず名前は覚えておこう。ブロック暗号方式(ECB、CBC、CTR)あたりの名前と特徴も押さえよう。DES、RC4は危殆化だ。

CRYPTREC

CRYPTREC(クリプトレック)”は支援士受験生としてもちろん書けないとダメ。ちなみに結構改廃があって、XTSやChaCha20-Poly1305(認証付き暗号モード)などが追加されています。出題頻度は低いと思いますが午前Ⅱで役に立つかも。

ちゅーりー

ChaCha20-Poly・・かわいい名前のすごい奴・・

ウォンバ

何なんだ・・・

デジタル署名

メッセージをハッシュ化(MD=メッセージダイジェスト)して送信者の秘密鍵で暗号化したもの。受信者が送信者の公開鍵で複合し自らハッシュ化したメッセージと比較することでメッセージの完全性(改ざんがない)、真正性(なりすましがない)を保証する。

また、回答として”秘密鍵“というキーワードが問われることは多いので、丁寧に覚えていきましょう。

(例えば「デジタル署名に対する”秘密鍵“が漏洩しないことが重要である」、「”秘密鍵“が漏洩しても悪用されないよう複雑なパスフレーズを設定する」)

ちゅーりー

公開鍵、鍵ペア、などとも誤回答しやすいです

デジタル証明書

最初はデジタル署名と混同して訳が分かりませんでした。PKI(公開鍵)暗号基盤を象徴するすごい奴。
簡単に言うと「デジタル証明書は公開鍵の正当性を証明するもの」です。鍵ペアとCSRで認証局に申請することで発行されます。デジタル証明書には公開鍵の情報と認証局のデジタル署名が。

デジタル署名を公開鍵で検証=対応する秘密鍵で署名されていることがわかり、改ざんもなさそう。さらに公開鍵を認証局のデジタル証明書で検証することで、正当なもの(なりすましがない)ことも確認できる。

このようにデジタル署名とデジタル証明書は切っても切れない仲と言えるでしょう。

ちなみに認証局のデジタル署名はさらに上位の認証局のデジタル証明書(公開鍵)で検証しますが、ルート認証局までずらーッとデジタル署名⇔デジタル証明書の列が並ぶことになります。これを「証明書チェーン」と言い、この検証を「証明書パスの検証」と言います。

ちゅーりー

最初は理解できずかなり混乱しました

ウォンバ

図に書き出してイメージをつかむしかないね

アクセス制御

とりあえずDAC(任意)、MAC(強制)、RBAC(ロールベース)の3つの言葉と意味を押さえておこう。MACはメッセージ認証コードと混同しないように。これも午前Ⅱ向きの内容かも。

AAAフレームワーク

Authrization(認証)、Autentication(認可)、Accounting(アカウンティング)の3つ。本人であることを認証し、必要な権限を認可し、記録する。認証フローなどでも役立つ基本的な考え方なので頭に入れておこう。

ちゅーりー

「認証」と「認可」は違います!

認証技術

ここからは各種認証技術(フロー)です。フロー図は空で書けるようになろう。そのためには登場人物(クライアントや認証サーバなど)や処理内容、やりとりするパラメータ(公開鍵証明書、アサーション情報、シークレットなど)とタイミング(事前、処理中)などを覚える必要がある。

また、各認証フローの特徴も「文章で」説明できるように。この記事では主に文章の方を記載します。

FIDO

認証情報に含まれるデジタル署名とオリジンの一致をFIDOサーバが行う仕組み」。UAF、U2F、FIDO2 /Webauthnなどの種類がありCTAPは要素技術。

ちゅーりー

CTAP、TKIP、ISAKMP・・・

ウォンバ

Webauthnとかキーワードは覚えておこう

SAML

アサーション情報を他ドメインに転送する仕組み」。SPがアサーションを検証し、なりすましや改ざんがないことを確認する。SSO(シングルサインオン)に使用されることが多い。事前にSPとIdpでやり取りしておく情報(リダイレクト用URLや公開鍵)もチェック。

OAuth 2.0

リソースを権限委譲する仕組み」。認証は行わず認可のみ行う。CSRFを防ぐstateパラメタは押さえておこう。

OIDC

簡単に言うとOAuthに認証機能を付けたもの」。認可コードフロー、インプリシットフロー、ハイブリッドフローがある。IDトークン、アクセストークン、リフレッシュトークンは誰が誰に発行するのか調べておこう。

何故リソースを直接渡さずトークンを介すのか?それは認証と認可の処理を分けるため。トークンが流出するとリプレイ攻撃を受けてしまう。そのためトークンには認可する権限と有効期限を設定する

stateパラメタ、nonce、PKCE(ピクシー)もチェック。トークンはJSON WEB形式。

Kerberos認証

「WindowsのAD(アクティブディレクトリ)でも使われる認証・認可の仕組み」、チケットを発行するのが特徴。出題される可能性は低いと判断し、レルム、プリンシパル、KDC、AS、TGS、TGT、STなど構成・役割と単語だけ書いて覚えました。ゴールデンチケット、シルバーチケット、名前だけ聞くとなんだか夢があります。

ちゅーりー

合格へのゴールデンチケットが欲しい!!

ウォンバ

この場合攻撃の名前なんだけどね・・

デジタル証明書(X.509証明書)

.509なのでテンゴク(0をO)と覚えました。発行者、Subject (CNなど)、SAN、シリアル番号、CAのデジタル署名、公開鍵、暗号アルゴリズム…など項目と何がセットされるかを押さえよう。CNにはFQDNやipアドレス、メールアドレス(S/MIME証明書)が入ることがある。

模試とか過去問ではやけに”サブジェクト(subject)“について問われる気がしました。

ちゅーりー

合格して天国へ!

ウォンバ

えっ・・・どこ行くの・・・

デジタル証明書のエラー

httpsによるWEBサーバへのアクセスでは下記のケースでブラウザに警告が表示される。
2023年秋試験で悔しい想いをしたので暗記です。ちなみにHSTSはブラウザにhttpsによる接続を強制するものです(これも秋試験で答えられませんでした)。httpによるアクセスはTLSが有効になっていないのでそもそもサーバー証明書の検証が行われません


・失効している。
・有効期限が切れている。
・信頼する認証局(CA)が発行したものではない。
・証明書のサーバ名がアクセス先と異なる。

ドメインフロンティング攻撃への対処

ドメインフロンティング攻撃は本来様々な通信層で異なるドメイン名を使用してインターネット上の検問をかいくぐる攻撃です。

IPAの過去問だとCDN(コンテンツデリバリーネットワーク=WEBサイト負荷軽減の仕組み)が悪用され利用者を不正なサイトへ誘導していました。その対策は「TLSの接続先サーバ名とhostの値を比較する」。

攻撃手法とその対策(主にWEB)

XSSに対してhttpレスポンスヘッダのX-Frame-Optionsを指定、CSRFに対してセキュリティトークンを使用する、SQLインジェクションにはサニタイジングとバインド機構。など、攻撃に対する対応先は対比して覚えておこう

テキストやIPAのドキュメントを読んでおくのが手っ取り早いです。

安全なウェブサイトの作り方
セキュアプログラミング講座

TLS1.2と1.3

24年の春季試験では出ませんでしたが、次は怪しいと考えています。
TLS1.3ではハンドシェイクが簡素化、高速化(0-RTT)され「前方秘匿性」のある鍵交換アルゴリズムのみ使用されます。ネットで変更点を調べておこう。

IPv6

午前Ⅱ対策(過去問)のみでほとんど勉強しませんでした。今後は主流になっていきますし、IPv4とv6を相互に接続させるサービスもあります。でも細かく出るとしたらネスペかなあ・・・

httpリクエストヘッダ/レスポンスヘッダ

代表的なパラメータとセットされる可能性のある値、効果は暗記です。こちらにはパラメータ名と概要のみ記載しています。

Httpリクエストヘッダ

・Referer 接続元のURL、Getメソッドだとキー値など情報漏洩につながる。
・Host 接続先のホスト名。
・Cookie Cookie値、セッションIDなどがセットされる。
・UserAgent 利用するブラウザやバージョンなど。
・X-Forwarded-For プロキシNAT前のIPアドレス。
・Authorization APIキーなど。

Httpレスポンスヘッダ

・XSTS ブラウザに次回からhttpsによる接続を強制する。URLを書き換えるのはブラウザ!
・X-Frame-Options 読み込むコンテンツを制限するセキュリティ機能。
・Content-Security-Policy 読み込むコンテンツを制限するセキュリティ機能。こっちがメジャー。
・Location リダイレクト先を指定。
・Set Cookie Cookieに値をセットして送り返す。Cookieの属性も覚えておこう。
・www-Autentication 認証が必要。
・Cache-Control キャッシュ有効期限などについて指定。

ちゅーりー

2024年春試験ではCache-Contorlが出題されました

Same Originポリシー

異なるオリジン(のオブジェクト)にリソースを送信しないブラウザのセキュリティ機能」もともとブラウザに機能として備わっているものです。

ちゅーりー

お弁当屋さんみたいだけど、なんかかっこいい名前・・・

ウォンバ

なんかおなかすいたな・・

DNS Over TLS

スタブリゾルバとフルサービスリゾルバの通信を暗号化する」。スタブリゾルバはクライアントPCです。

DNSSEC

権威DNSがレコードにデジタル署名を行い、問合せ元がデジタル署名を検証することでレコードの真正性と完全性を担保する」。本気で理解しようとすると結構複雑な仕組みなので大変。

ちゅーりー

DNSキャッシュポイズニング対策として有効です

Cookieの属性

ユーザーのセッションIDなどを保存するCookie属性とパラメタがあるので代表的なものを暗記しておこう。余裕があれば記述方法も調べておくと役に立つかも。

Expires = XX
Max-age = XX
Http only
Secure
Domain = ~.jp
Path = /~
Samesite

ちゅーりー

2024年春試験ではSamesite属性が出題されました!

メール送信のフロー

EHELLO → MAILFROM → RCPTTO → DATA → QUIT

【START TLS の場合】

EHELLO → (START TLS → AUTH LOGIN → ID/PASS ※ここからTLSで暗号化) → MAILFROM → RCPTTO → DATA → QUIT ※START TLSでもポート番号は変わらない。

DHCPのフロー

DHCP DISCOVER → DHCP OFFIER → DHCP REQUEST → DHCP ACK

DISCOVERは宛先不明なのでブロードキャスト通信です。

S/MIME

ハイブリッド暗号とデジタル署名でメールの機密性、完全性と真正性を守る仕組み」だ。鍵の管理が分かりづらいので各登場人物に必要な鍵の種類とフローを理解しておこう。SMTPSはサーバ上では平文だが、S/MIMEはEndToEndで暗号化だ。よって鍵をセットする場所が異なる(SMTPSはサーバ、S/MIMEはクライアント)。

ちゅーりー

マイムマイム・・・

ウォンバ

しょうもないな・・

ディレクトリトラバーサル

PHPのプログラムなどで入力値にたいしてBaseName()関数でファイル名だけを取得します。
それはなぜか?「../などが入力され意図しないパスが生成されるため」。

SQLインジェクション

WEBサイトで特殊文字をテキストボックスに入力したらSQLエラーが表示された、ということは、特殊文字を含んだSQLが生成されているのでサニタイジング(エスケープ処理)していない。「SQLインジェクションの脆弱性あり」となるらしい。

TLSって一言でいうと?

こちらはネスペの問題から。TLSってどういうもの?という質問「暗号化メッセージ認証の仕組み」。改めて聞かれるとなかなかスッと出てこないですね。

SSL-VPNの種類

こちらもネスペから。リバースプロキシ、ポートフォワーディング、L2フォワーディング。こちらも聞かれるとスッと出てこないです。

ちゅーりー

ネスペにもセキュリティ関連でいい問題がありました

ウォンバ

基本や応用にも基礎理解のためにいい問題があるね

ipアドレス

ネットワーク部をプレフィックス、ホスト部をサフィックスという。

一対一をユニキャスト、一対多をマルチキャスト、一対全をブロードキャストという。

ちゅーりー

ガチ文系はこういうキーワードが苦手なんだよな・・

ポートスキャン

TCP SYN スキャンはステルススキャンという。コネクションを確立しないので発覚しづらい
UDPスキャンもセッション張らないので同様。

タイムスタンプ

タイムスタンプトークンは「その時点での存在証明とその時点からの完全性証明」を行う。

送信ドメイン認証

DNSのTXTレコードの記述方法は確認しておこう。もしかしたら書けと言われるかも。複数のIPアドレスを設定する場合についてもチェック!

SPF

エンベロープFROMドメインのDNSに登録されたIPアドレスとSMTP接続元のIPアドレスの一致を確認する」。DNSにTXTレコードの登録が必要です。

DKIM

メールヘッダとボディにデジタル署名を付与し、送信ドメインのDNSから公開鍵証明書を取得し正当性を検証する」。デジタル署名はDKIMシグネチャヘッダのdタグにセットされる。

DMARC

DMARC認証とは「ヘッダーFROMのドメインがSPFまたはDKIMで認証されたドメインと同一またはサブドメインであること」。
ヘッダーFROMは簡単に詐称できます、DMARC認証はその対策となるものです。

ちゅーりー

残念ながら送信ドメイン認証は2024年春試験には出ませんでした・・

ウォンバ

ヤマ張ってたのに・・

Preparestatement・・

javaでSql実行する時のあいつ。あんまり出ないだろうけど過去頻出したのでプレースホルダとかの書き方を覚えておこう。レースコンディションも含めて素直な問題は今後出題されなそう。

CSRF対策トークンの使い方

更新処理などを行う直前のレスポンスにCSRF対策トークンを埋め込み、リクエストで返されたトークンと比較して一致すれば更新処理を行う」。最初の起点はリクエストではなくレスポンスです。

XSS(反射型、格納型、DOM)、CSRF、SSRFは今後もWEB開発系で出題が見込めます。前述の通り各攻撃の特徴と代表的な対策は覚えておこう。

DNSレコード

A、AAAA、CNAME、MX、TXT、NSなど代表的なレコードと意味、書き方を覚えておく。ドメインを記載する際の最後の「.」に注意。

構成とバージョン情報

使用されているソフトウェアなどの種類とバージョンを押さえておけば、「脆弱性が発見された際の影響範囲の特定を迅速化」できる。「収集すべき脆弱性の情報も絞り込める」。平常時のリソース(メモリ/CPU)利用状況を保存しておくのは「異常発見のための閾値として使用する」。

ちゅーりー

マネジメント系の問題ですね

リスクベース認証

IPアドレスなどからわかる地理的情報をもとに普段と異なる環境からのログインを検知したら追加の検証を行う」。

ちゅーりー

そろり・・そろり・・・

ウォンバ

あ!普段と違うおやつ食べてる!

その他

Linuxのコマンド

curlなど基本的なコマンドは覚えるとして、出題があやしいのはsuとsudoか。軽はずみにsu(rootへのスイッチ)を許しちゃダメ。sudoで必要なコマンドのみオプション指定して実行させよう

セキュアプログラミング

ノー勉では不安があるため過去問とテキスト・問題集に載っているもののみ学習しました。正直なところ普段プログラミングしていない人間が付け焼刃で勉強しても、切羽詰まった本試験では太刀打ちできません。あとから解説を見れば何とか理解できても、初見でプログラミングのミスや脆弱性に気が付けるはずもなく・・。

ちゅーりー

割り切った対策を取りました

セキュアプログラミングガチ問題は避け、WEBセキュリティなどの問題で一部JavaやScriptを問われたときに取りこぼさないことが目的です。勉強するならばオススメはJava。根拠は出題が多いと感じただけでそこまでありません(すみません)。

漢字

脆弱性、脅威、傍受、詐取、窃取、輻輳あたりは書けるようにしておきました。「」数、「」号も字が違うのでうっかり忘れないように。誤字脱字はもしかしたら減点されるかも。

まとめノートの内容は以上です。これから情報処理安全確保支援士試験に挑まれる方、頑張ってください!!心より幸運をお祈りしております。

ちゅーりー

夢に向かい諦めずコツコツ頑張ろう!

ウォンバ

言語化と知識の定着化が重要だね!

GLMOW!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次