情報処理安全確保支援士に合格した

会社で受験料等の補助があったので、情報処理安全確保支援士の試験(令和5年秋)を受験し、合格した。

情報処理安全確保支援士は情報処理技術者向けの資格試験の一つで、情報セキュリティの知識を問うもの。この試験の合格後、所定の登録手続き(研修、登録料の支払い等)を行うことで、国家資格「情報処理安全確保支援士(登録セキスぺ)」の資格保持者となることができる。が、登録料は会社から出ないので、登録はしない予定。合格しただけでも、履歴書には「情報処理安全確保支援士試験 合格」と書けるはず。

試験概要

情報処理安全確保支援士試験は大別すると以下の3科目に分かれる。

午前1(高度共通)多肢選択式

午前2(情報処理安全確保支援士)多肢選択式

午後(情報処理安全確保支援士)記述式

令和5年春までは、午後1と午後2に分かれていたが、令和5年秋からは午後1と午後2が統合されて午後になった。これに伴い、問題の形式に若干の変化が見られるが、試験で問われる内容や難易度の面では大きな変更はない。

いずれの科目も100点満点で、60点の得点で合格になる。前段となる科目が基準点に満たない場合、その時点で不合格になる(例えば午前1が59点なら、午前2と午後は採点されず自動的に不合格)。

午前1は「高度共通午前1」と呼ばれることもある。情報処理安全確保支援士は、ネットワークスペシャリスト、データベーススペシャリスト等とともに「高度情報処理技術者試験」の一つとして位置付けられている。これらの試験では午前1の問題が共通化されている。応用情報技術者試験の午前試験と同等の範囲と難易度の問題が30問出題される。午前1の出題範囲には情報セキュリティ以外の分野も含まれるため、広範な知見が必要になる。

一方、午前2と午後は情報セキュリティ関係の問題に特化している。午前2では基礎知識を問われるのに対し、午後では事例の分析や適切な回答の作成といった能力も求められる。

午前1・午前2・午後のうち、合格点を超えるのが最も難しいのは午後だと思う。しかし、最も出題範囲が広いのは午前1で、午前1対策に手を抜きすぎると門前払いされてしまう。午前1対策と午後対策のバランスをとるのが難しいところ。

ちなみに、自分の試験結果は以下だった。

午前1: 71.40点

午前2: 92.00点

午後: 75点

午前1の対策方法

午前1はテキストの読み込み + 過去問で対策できる。テキストとしては情報処理教科書 高度試験午前Ⅰ・Ⅱなどの高度共通午前試験対策書が市販されている。ただ、午前1の出題範囲は応用情報技術者試験と同じなので、応用情報技術者試験のテキストも十分に使える。実際、自分は以下のテキストで対策した。

令和06年【春期】【秋期】 応用情報技術者 合格教本

本書の良いところは細かい事項まで載ってる網羅性の高さ。一方で解説はあまりわかりやすくないので、おすすめというほどではない。書店で類書をいくつか手に取ってみて、好みのものを買うのが良いと思う。

過去問は情報処理安全確保支援士試験ドットコムが使いやすくておすすめ。このサイトで過去5年分(10回分)くらいの過去問を潰せば午前1・2は合格ラインに達すると思う。自分は情報処理安全確保支援士 午前Ⅰ・Ⅱ 一問一答問題集も併用した。本書は頻出問題を集めているのが良いところ。

午前1対策のコツは、重要な分野や得意な分野を重点的に対策し、苦手な分野は捨てること。情報処理安全確保支援士を目指すにあたって、重要な分野はセキュリティとネットワークで、この2つは午前1では満点を目指したい。しかし、それ以外の分野については、いくつか捨てても合格ラインを超えることができる。例えば自分の場合、基礎理論の数学は捨てていたが、問題なく合格できた。

午前2の対策方法

午前2は、セキュリティを中心に出題されるが、午前1と比べて特に難しいというわけではない。基礎知識が身についていれば十分にクリアできる。勉強方法も午前1と同じで、テキストを読んで過去問を解くだけ。

テキストとしては以下がおすすめ。知識面の解説がわかりやすく、午前・午後の問題演習もできる。

令和06年【春期】【秋期】 情報処理安全確保支援士 合格教本

午後の対策方法

午後はこの試験の最大の難所。この科目では主に事例問題が出題される。例えば令和5年秋の1問目は、Eコマースサイトの脆弱性に対する攻撃の事例を分析し、攻撃の仕組みや対策方法について回答させるものだった。

午後は、午前よりも詳細な知識が要求される点が特徴。例えば、前述の問題ではHTMLとJavaScriptのコードを読んで、攻撃の仕組みを解析する必要がある。また、問題文のヒントを元に、どのような形で攻撃が行われたか推測する力が問われる問題もある。

午後対策も基本的な進め方はテキスト読み込み + 過去問演習になるが、過去問演習においては本番を想定した回答用紙に書き込むようにした方が良い(回答用紙がなければ原稿用紙でもいい)。

午後対策においても、できれば過去5年分(10回分)くらいは過去問を解いた方が良いと思う。午後は複数の問題から選択する方式になっており、1回のセットに含まれる問題は、令和5年春までは5問(午後1は3問、午後2は2問)、令和5年秋以降は4問になる。年度によって問題数は上下するが、40〜50問くらいは解きたいところ。

しかし、午後の問題は単に解いて答え合わせをするだけでは得点は上がりづらい。回答を組み立てるための手順を身につける必要がある。残念ながら、市販の過去問集で、十分な量の問題を掲載しつつ、詳細な解説をしているものは、自分の知る限り存在しない。そこで、解説の詳しい過去問集を複数冊組み合わせて使うことをおすすめしたい。

イチオシはネットワークスペシャリストの参考書も多く執筆している左門 至峰氏の以下の過去問集。

支援士 R4[春期・秋期] -情報処理安全確保支援士の最も詳しい過去問解説

本書の良いところの一つは、予想配点が記載されていること。これによって、どの程度まで回答できれば合格できるか目星をつけることができる。また、記述問題の回答を組み立てるための思考プロセスも詳述してあり参考になる。他の書籍との大きな違いは、受験者目線で難しい問題には難しいと率直に述べて、その上で合格ラインを突破するためにはどのような考え方をすれば良いか書いているところ。

ただ、左門氏の過去問集は(2023年秋の時点では)令和4年のものしか出版されていなかったため、2回分計10問しか含まれず、これだけでは対策を完了できなかった。

前述した令和06年【春期】【秋期】 情報処理安全確保支援士 合格教本にも午後(5問分)の過去問と詳しい解説が含まれる。予想配点がないのが惜しいが、解説はわかりやすい。

上の2冊をやった後で、まだ時間が余っていたので情報処理安全確保支援士「専門知識+午後問題」の重点対策の過去問も解いた。この本は受験の2週間前くらいに買ったためテキスト部分はほとんど読んでいないが、過去問の収録量も多く(約20問)、予想配点も記載されている。

また、うかる! 情報処理安全確保支援士 午後問題集[第2版]は過去5年分(9回分・45問)の過去問をバラして再整理した独特の書籍になっている。本の構成上、問題演習には使いづらく、解説もそれほど詳しくはないが、問題演習の補助として使うことができる。

学習時間

個人情報保護士の受験後に勉強を開始した。試験日が2023年10月8日だったので、2023年の7月〜9月の約3ヶ月間を使ったことになる。7〜8月は平日1時間/休日2時間、9月は平日1時間/休日4時間程度の勉強をして、トータルでは150時間くらい勉強したと思う。

感想

午前の問題が思ったより簡単だったのでなめてたけど、8月から午後対策を始めたら難しくて焦った。受験者に向けて一つだけアドバイスするなら、午後対策は早めに始めること。

個人情報保護士を取った

会社で受験料等の補助があったので個人情報保護士の資格を取った。この記事では勉強に使ったテキストや勉強法、勉強時間などについて解説する。

個人情報保護士とは

個人情報保護士は、個人情報の保護に精通し、適正な取扱や安全管理を身に付けたエキスパートである証明です。

https://www.joho-gakushu.or.jp/piip/

この資格の試験では、個人情報保護法・マイナンバー法といった法律の知識と、個人情報を守るために必要な情報セキュリティマネジメントの知識を問われる。法律とセキュリティのそれぞれで50問出題され、それぞれで正答率70%を超える必要がある。法律だけ・セキュリティだけでは合格できず、幅広い知識が必要。

自分は2023年6月18日に開催された第71回を受験し、自己採点では課題1(個人情報保護の総論)は44/50、課題2(個人情報保護の対策と情報セキュリティ)は48/50だった。

テキスト&過去問

一般に試験で合格するには過去問を繰り返し解くことが有効といわれる。本試験においてもそれは間違いないのだけど、分野によっては前提となる知識が足りずスムーズに過去問を解けないこともあると思う。なので、テキストを読みながら並行して過去問を解き進めるのが良い。

公式/公認のテキストと過去問集はいくつか出版されているが、過去問集は『改訂5版 個人情報保護士認定試験公式精選過去問題集』が収録問題数が300問と多く、公式テキストと対応した章立てになっているのでおすすめ。

この本に掲載されている過去問が全て解けるようになれば、合格ラインは十分に超えると思う。

自分は『改正法対応 個人情報保護士認定試験 公式過去問題集』も半分くらい解いた。しかし、重複している問題も多いので、過去問集を何冊もやる必要はない。

テキスト・過去問の進め方としては、課題1(法律関係)と課題2(情報セキュリティ関係)を並行して進めていくのが良い。この試験は両方の課題で合格ラインを超える必要があるので、いずれの対策もおろそかにはできない。その上で、(可能であれば)得意分野はさらっと流して、苦手分野に集中的に時間を使うのが効率的な学習のコツだと思う。

条文・ガイドライン

個人情報保護法は、法律の条文をベースに、細かい部分は施行令・施工規則で定め、ガイドラインで解説するという構成を取っている。試験の出題範囲にはこれらが含まれるが、テキストがこれら全てを網羅しているわけではない(テキストは基本事項や出題頻度の高い項目に重点を置いている)。

そこで、過去問を解き進める際には、必要に応じて、以下のような条文やガイドラインを参照する必要がある。

「ガイドライン」は、試験問題の元ネタになっていることが多いので、テキストを読み終わったらガイドラインを読んでみることをおすすめしたい。ただし、全部読まないと合格できないというものではない。過去問を解いていて、気になったところを調べるために読む、といった使い方で良い。

「基本書」は必要?

法学を学んだことのある人なら、法律は「基本書」で学ぶものという認識を持っている人も多いと思う。基本書とは、法学者や立法関係者などの有識者が書いた、法律の解説書のこと。実際、個人情報保護法についても基本書は複数出版されている。

しかし、個人情報保護士の合格のために基本書を読む必要があるかは疑問。試験対策の観点では、ガイドラインを読み込んだ方が効率的だと思う。

その他の法律について

課題2では、刑法、不正アクセス防止法、特定電子メール法、不正競争防止法、著作権法など、情報セキュリティに関係のある法律についても出題される。これらについては個人情報保護法やマイナンバー法ほどの理解は求められないので、過去問を一通り解いて対策しておけば十分だと思う(逆に、それ以上の対策をするのは効率が悪い)。

副読本

受験者によっては、法律を学ぶのが初めてということもあると思う。そういう人におすすめなのが『元法制局キャリアが教える 法律を読む技術・学ぶ技術 [改訂第4版]』。本書の冒頭では、そもそも法律を学ぶとはどういうことか解説されている。法律を学ぶことは、個々の条文の文言を暗記することではない。より重要なのは、条文の背景にある考え方(趣旨)を理解すること。本書の言葉で言うと、リーガルマインドを養うこと、となる。実際、個人情報保護法の学習においても、個々の規定の背景にある考え方を理解することが重要だと感じた。

本書は他にも、基本的な条文の読み方、法律・命令・規則の関係、一般法と特別法など、個人情報保護法を学ぶ前に知っておいた方が良い知識が解説されている。ただし、個人情報保護法とは関係のない内容も多いので、試験まで時間がある人は読めば良いという程度。

一方、情報セキュリティ関係の知識に自信がないという人もいると思う。実は、情報セキュリティ関係の問題で問われる事項は情報セキュリティマネジメント試験で問われる事項と似ている(個人情報保護士がマネジメント寄りなのに対し、情報セキュリティマネジメント試験は技術寄りという点に違いはある)。過去問を解いていて、よくわからない技術用語が出てきたときは、以下のような情報セキュリティマネジメント試験のテキストを読んでみると良いかもしれない。

学習時間

2ヶ月間、ほぼ毎日1時間程度勉強したので、トータルで50時間くらいは勉強したと思う。合格ラインを超えるという観点からすると、やや過剰な勉強をした印象。ただ、自分の場合は仕事柄、情報セキュリティ関係の知識はあったし、法学もさわりくらいは知っていた。個人情報保護法と情報セキュリティの両方を並行して勉強しようとしたら、最低でも30時間くらいはかかると思う。

『UNIXという考え方』を読んだ

UNIXという考え方―その設計思想と哲学

『UNIXという考え方』は、UNIXというOSがどのような考え方で設計されているか解説した本。

2023年現在、UNIX系OSであるLinuxはサーバの世界を支配している。一方で、クライアントの世界においても、UNIX系OSは広く使われている。iOSやAndroidはもちろん、ゲームコンソールでもUNIX系OSが採用されることは多い。Windowsは今でも大きなシェアを持っているが、以前ほどの支配的な立場にはない。

UNIX系OSはなぜこれほど成功したのか? その理由はさまざまに考えられるが、一つの要因に「UNIXの考え方」があるのは間違いないだろう。本書では、「UNIXの考え方」をいくつかの定理にして紹介している。

それらの定理を簡単にまとめると、小さなプログラムをいくつも組み合わせて連携させることで、「梃子の原理」でアプリケーションを作り上げる、ということになると思う。

UNIXでは、単機能のプログラムが大量に用意されている。それらは「フィルタ」として動作するよう作られているので、簡単に組み合わせることができる。UNIXに習熟したユーザは、これらのプログラムを組み合わせて、自由に高機能なプログラムを作ることができる。UNIXがコンピュータのプロに愛用されているのはこのような理由だろう。

一方で、UNIXでは「自分の足を自分で撃ち抜く」ことが簡単にできる。単純なコマンド一つでコンピュータを完全にめちゃくちゃにすることができる。このような自由はコンシューマ向けOSではトラブルの元になるため、モバイル機器やゲームコンソールのOSは、ユーザのできることを大幅に制限している。これらのOSは、UNIX系OSをベースにしているものの、本書でいうところの「OpenVMS的な考え方」で作られている。

UNIXの哲学を学ぶことで、UNIX系OSをうまく使えるようになることが期待できる。そういう意味で、コンピュータのパワーユーザを目指す人であれば読んで損はないと思う。ただし、本書はあくまで「考え方」を解説した本である。明日からの仕事に役立てられる人はそう多くないと思う。より実用性を求める場合は『達人プログラマー』などを読んだ方が良いかもしれない。

『ソフトウェア品質を高める開発者テスト』を読んだ

ソフトウェア品質を高める開発者テスト 改訂版 アジャイル時代の実践的・効率的でスムーズなテストのやり方

『ソフトウェア品質を高める開発者テスト』は、テストを通してソフトウェアの品質を上げるための方法論について解説した書籍。

テストに関する書籍の中には、ソフトウェアテスト技術者をターゲットにしたものが多いが、本書はソフトウェア開発者をターゲットにしている点が特徴。

ある程度大きなチームでソフトウェアを開発している場合、ソフトウェアを開発するチームとは別にテストを担当するチーム(いわゆるQAチーム)がいることが多い。

そのような環境では、QAがソフトウェアの品質を守るゲートキーパーの役割を果たすことが少なくない。しかし、QAチームによるテストでバグを見つけて修正することは効率が悪い。なぜなら、ソフトウェアのバグを修正するコストは、下流工程ほど高くなるから。したがって、バグはできる限り要求仕様やコーディングの段階で修正することが望ましい。

しかし、現実にはそのような開発体制が取れていることは少ない(と著者は述べている)。では、どのようにしてソフトウェアの品質を上げ、開発効率を改善していくか、というところが本書の主題になる。

本書の提唱する手法のうち、最も効果が高く、ぜひとも導入すべきなのは単体テストである。本書では、単体テストを「関数の網羅率を計測しロジックの確らしさを確認するホワイトボックステスト」と定義している。コードの品質を上げるためには単体テストは欠かせない。また、単体テストがちゃんと書けていることを確認するには、カバレッジの計測が必要だし、アサーションをちゃんと書いていることをレビューする必要もある。十分なカバレッジを確保できていれば、ミューテーションテストを使って単体テストの抜け漏れを確かめることもできる。

では、どの程度のカバレッジを目指すべきなのか? この点、本書は「C1カバレッジ(分岐網羅)で80%」という数字を提唱している(医療や自動車などミッションクリティカルなソフトウェアは「100%」)。この数字は決して低くはなく、レガシーアプリケーションにテストを追加しようとする場合には絶望的な数字に思える。そのような場合は、本書でも紹介されているHotSpotという手法を用いて、最もバグの出る可能性の高い部分から単体テストの追加を始めることが望ましい。

単体テストに加えて実施すべき手法としては、コードの静的解析による複雑度の計測とリファクタリング、コードレビュー、ペアプログラミングなどがある。

これらの手法でコードの品質を高めれば、システムテストで検出されるバグの数は少なくなる。そこで、システムテストを大胆に省略し、探索的テストによって効率的にテストした上でリリースする、という状態まで持っていくことができれば、本書のゴールは達成できたことになる。

ソフトウェアの品質に悩んでいる開発者はもちろん、もっと素早く効率的に開発したいと思っている開発者も、一読をお勧めしたい。

『The DevOps 逆転だ!』を読んだ

The DevOps 逆転だ!究極の継続的デリバリー

『The DevOps 逆転だ!』は、ITに問題を抱えている企業が、ITを我が物として業績を上げていくまでの物語。原書は2013年、邦訳は2014年。

タイトルに「DevOps」とあったり副題が「究極の継続的デリバリー」だったりと日本語版のタイトルにはバズワードが盛り込まれているが、原書のタイトルは “The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win” というもの。

実際、本書の中でDevOpsが登場するのはかなり後半で、デリバリーの速度を上げるための施策として登場するに過ぎない。それよりも前の段階で、まず混乱したITの立て直しが行われる。

ここで登場するのがゴールドラットの制約理論。本書の前半ではIT運用のボトルネックを特定し、それを改善するために頭をひねることになる。さらに、ITとビジネスを緊密に結びつけることで会社が業績を上げるためにITを活用できるようになっていく。

主人公が務めるパーツ・アンリミテッドは自動車部品を製造している企業で、主人公は工場の製造ラインの最適化の方法からさまざまな学びを得てITを改善していく。このような筋書きを見ると思い浮かぶ言葉は「DX」で、実際いまこの本が出版されるならタイトルにこのキーワードが盛り込まれると思う。

このように、本書は制約理論やDevOpsを学ぶための参考書なのだが、ITを題材にした小説としても一級品の出来になっている。特に面白いのは前半で繰り広げられるトラブルの山。会計システムの不具合によって給与が支払えなくなったり、電話システムが壊れて顧客と連絡ができなくなったり、POSシステムが動かなくなってクレジットカード決済を手動でやったりと、とにかく大量の障害に振り回される。そんな中でもなんとか秩序を取り戻そうと奮闘する主人公をついつい応援してしまう。

DevOpsや継続的デリバリーについて学びたくて本書を手に取ると、前置きが長くてまだるっこしく感じられると思う。しかし、これらを支える理論的背景を学ぶことができる本書は、自分にとっては学びの多い内容だった。次は『ザ・ゴール』を読んでみたい。

ザ・ゴール