基本情報 科目Bの情報セキュリティ対策|擬似言語との勉強時間の配分を解説
科目Bのセキュリティって、結局どこまでやればいいの。
擬似言語の対策に追われて、セキュリティを後回しにしていませんか?
科目Bと聞くと、多くの人が擬似言語の長いコードを思い浮かべます。でも本番では、コードが一行も出てこない問題も混ざっています。
その存在は知っているけれど、対策の手が回っていない。科目Bで一番放置されやすいのが、この情報セキュリティです。
私はエンジニアとして10年以上、Webシステムの開発や運用に携わってきました。実務でも、セキュリティの設定は後回しにされがちで、あとから慌てて見直す場面を何度も見ています。
試験も同じ構図です。後回しにしたまま本番を迎えると、取れたはずの点を落とします。
この記事では、セキュリティの4問が何を聞いてくるのかを整理したうえで、擬似言語との勉強時間の配分を決めていきます。
科目Bの情報セキュリティは20問中4問¶
最初に、配分を考えるための前提をそろえておきましょう。ここが曖昧なままだと、力の入れどころが決まりません。
科目Bは、20問を100分で解く試験です。内訳は、アルゴリズムとプログラミングが16問、情報セキュリティが4問という構成になっています。
採点は1000点満点で、合格の基準は600点以上です。科目Aと科目Bのそれぞれで、この基準を満たす必要があります。
分野ごとの合格ラインは設けられていません。つまり、セキュリティで満点を取っても擬似言語が崩れれば落ちますし、その逆もまた同じです。
4問という数字をどう受け止めるか¶
4問は全体の2割です。この数字を大きいと感じるか、小さいと感じるかで、勉強計画は変わってきます。
私は、捨てるには大きすぎる数字だと考えています。20問のうち4問を最初から手放すと、残り16問でかなりの正解率が必要になるからです。
一方で、2割のために勉強時間の半分を使うのも、明らかに投資しすぎです。ここのさじ加減が、この記事の本題になります。
擬似言語とセキュリティのどちらから手を付けるかで迷っている段階の人は、こちらの記事で優先順位を整理しています。
【関連記事】基本情報科目Bで擬似言語と情報セキュリティ、どちらから対策すべき?
セキュリティを固めると擬似言語が楽になる¶
見落とされがちな効果を、一つ挙げておきます。セキュリティの4問は、時間の面で擬似言語を助けてくれます。
セキュリティの問題は、コードのトレースが要りません。そのぶん短時間で終わりやすく、浮いた時間はそのまま擬似言語に回せます。
本番で最初に片づける問題としても向いています。試験開始直後の緊張した状態で、いきなり長いコードを読むより落ち着いて入れるからです。
試験時間の使い方そのものを見直したい人は、こちらの記事もあわせて読んでみてください。
【関連記事】基本情報 科目Bの時間配分|1問にかけられる時間と見直しの順番
情報セキュリティの4問は何を聞いてくるのか¶
対策の中身に入る前に、出題の性格をつかんでおきましょう。相手が分からないまま勉強すると、範囲を広げすぎてしまいます。
科目Bのセキュリティは、情報セキュリティの確保という枠で出題されます。用語の意味を単体で問うのではなく、ある状況を示したうえで、どう対応するのが適切かを聞く形が中心です。
出題範囲は現場の場面に寄っている¶
具体的にどんな題材が出るのかを見ておきます。IPAが公開しているシラバスでは、次のような項目が挙げられています。
マルウェアからの保護、バックアップ、ログの取得と監視、利用者アクセスの管理、脆弱性の管理、情報を転送するときの安全確保などです。物理的な対策や運用面の対策も対象に含まれます。
並べてみると気づくことがあります。どれも、技術そのものというより、組織の中でどう運用するかという話に寄っています。
だから問題文も、社内システムの管理者や担当者が登場する場面設定になりがちです。暗記した用語をそのまま答える形にはなりません。
擬似言語問題との違いを整理する¶
同じ科目Bでも、二つの分野は解く作業がまるで違います。違いを表にまとめました。
| 観点 | 擬似言語の16問 | 情報セキュリティの4問 |
|---|---|---|
| 問われるもの | コードを追って値や動きを特定する | 状況に対して適切な対応を選ぶ |
| 手を動かす作業 | トレース表を書いて変数を追う | 問題文の条件を読み取って照合する |
| 1問にかかる時間 | 長い(読む量が多い) | 短い(コードが出ないことが多い) |
| 必要な準備 | 文法の理解と読む手順の習得 | 科目Aの知識と場面ごとの判断 |
| 苦手になる原因 | 記号や制御構造が読めない | 用語を丸暗記して場面に結び付いていない |
この表で注目してほしいのは、一番下の行です。セキュリティが苦手な人の多くは、知識が足りないのではなく、知識が場面とつながっていません。
用語は言えるのに、問題文を読むと選べない。この状態を抜け出すのが、セキュリティ対策の中心になります。
勉強時間の配分をどう決めるか¶
ここからが本題です。限られた時間を、二つの分野にどう割り振るかを決めていきましょう。
結論から言うと、擬似言語に8割、セキュリティに2割が基本の形です。出題数の比率とほぼ同じですが、理由は比率だけではありません。
擬似言語は、身に付くまでに時間がかかる分野です。文法を覚えて、読む手順を作って、演習を重ねる必要があります。
対してセキュリティは、科目Aの学習と重なる部分が大きい分野です。科目Aを進めていれば、その時間が自動的に効いてきます。
学習の時期で配分を変える¶
とはいえ、最初から最後まで8対2で固定する必要はありません。時期によって、力の入れどころは動かしたほうが効率的です。
私がすすめている目安を表にしました。準備期間が3か月ある場合を想定しています。
| 時期 | 擬似言語 | セキュリティ | この時期にやること |
|---|---|---|---|
| 序盤(1か月目) | 9 | 1 | 擬似言語の文法を固める。セキュリティは科目Aの学習に任せる |
| 中盤(2か月目) | 8 | 2 | 擬似言語の演習を回しつつ、セキュリティの問題形式に慣れる |
| 直前(3か月目) | 7 | 3 | セキュリティを得点源にする。間違えた場面を洗い直す |
直前期にセキュリティの比率を上げるのには理由があります。短い時間で伸びやすいのが、この分野だからです。
擬似言語は、直前の1週間で急に読めるようにはなりません。一方セキュリティは、場面と対応の結び付きを確認するだけでも正解率が動きます。
学習全体の進め方を順番で確認したい人は、こちらの記事にまとめてあります。
【関連記事】基本情報技術者試験 科目Bの勉強法|初心者が合格までにやることを順番に解説
1日の中でどう組み込むか¶
配分の話は、日々の勉強に落とし込まないと意味がありません。具体的な組み方を紹介します。
おすすめは、セキュリティを毎日の締めに置く方法です。擬似言語の演習で頭を使ったあと、最後の10分でセキュリティの問題を2問ほど解きます。
疲れた状態でも解けるのが、この分野の利点です。逆に、疲れた頭で長いコードを追うと、間違いだけが増えていきます。
毎日10分でも、1か月続ければ5時間分になります。まとまった時間を取らなくても、必要な量は積み上がります。
情報セキュリティを得点源にする進め方¶
配分が決まったところで、その2割で何をするかを具体化していきます。やることは、大きく二つです。
一つは、科目Aで覚えた知識を場面に結び付けること。もう一つは、問題文から条件を拾う練習をすることです。
科目Aの知識をそのまま使う¶
まず知っておいてほしいのは、科目Bのセキュリティのために新しい教材を用意する必要はない、ということです。土台は科目Aと共通しています。
科目Aで出てくるマルウェアや認証、アクセス制御といった知識が、そのまま科目Bの前提になります。違うのは、覚えているかどうかではなく、使えるかどうかを問われる点です。
そこで、科目Aの問題を解くときに一手間を加えます。正解の用語を選んだあと、その対策がどんな場面で使われるのかを一言で説明してみてください。
説明できない用語は、覚えたつもりになっているだけです。この確認を挟むだけで、科目Bでの見え方が変わってきます。
場面と対策を対応づけて覚える¶
用語を五十音順に眺めても、試験では使えません。場面ごとに整理し直すと、問題文と結び付きやすくなります。
代表的な整理の例を挙げておきます。この形で自分のノートを作り直すと効きます。
| 起きている問題 | 主な対策の方向 | 判断のポイント |
|---|---|---|
| 不正なプログラムが持ち込まれる | マルウェア対策と持込み機器の制限 | 入口をどこで塞ぐか |
| 権限のない人がデータを見られる | 利用者アクセスの管理と権限の見直し | 誰に何を許すかが決まっているか |
| 障害でデータが失われる | バックアップと復旧手順の整備 | 戻せる状態が保たれているか |
| 誰がやったか分からない | ログの取得と監視 | 後から追跡できるか |
| 古いソフトの弱点を突かれる | 脆弱性の管理と更新 | 直す仕組みが回っているか |
表の右端の列に注目してください。問題文が聞いているのは、たいていこの判断のポイントの部分です。
対策の名前ではなく、その対策が何を守っているのかで覚える。これがセキュリティ問題を安定させるコツになります。
演習の材料はどこから持ってくるか¶
整理が進んだら、あとは問題に当てて確かめるだけです。ここで悩むのが、演習の材料をどうそろえるかという点でしょう。
科目Bのセキュリティは公開されている問題数が多くないため、同じ問題を何度も解くことになります。それ自体は悪いことではありません。
大事なのは、二周目以降の解き方です。答えを覚えてしまった問題でも、なぜ他の選択肢が不適切なのかを毎回言葉にしてみてください。
正解を選ぶ力より、外れを外す力のほうが本番で効きます。公開問題の使い方は、こちらの記事で詳しく整理しています。
【関連記事】基本情報 科目Bの過去問はどこで解ける?公開問題の使い方と勉強法
セキュリティの考え方を擬似言語で確かめる¶
ここで一つ、両方の分野をつなぐ話をしておきます。セキュリティの考え方は、コードにするとはっきり見えてきます。
たとえば、ログインの失敗が続いたときにアカウントを一時的に止める処理を考えてみましょう。擬似言語で書くと次のようになります。
○ログイン試行(文字列型: 入力パスワード, 文字列型: 正解パスワード)
整数型: 失敗回数
論理型: ロック中
失敗回数 ← 0
ロック中 ← false
if (入力パスワード = 正解パスワード)
return "成功"
else
失敗回数 ← 失敗回数 + 1
if (失敗回数 ≥ 3)
ロック中 ← true
endif
return "失敗"
endif
このコードには、実は大きな欠陥があります。どこか分かるでしょうか。
失敗回数を、手続の中で毎回0に戻している点です。これでは何回失敗しても、失敗回数は常に1にしかなりません。
つまり、ロック中がtrueになることは永久にありません。対策を書いたつもりで、まったく機能していない状態です。
実務でも似たことは起こります。私も、設定したはずの制限が別の処理で毎回初期化されていて、まる一日原因を追った経験があります。
こうした真偽を持つ変数の扱いに不安がある人は、こちらの記事で読み方を確認しておくと安心です。
【関連記事】擬似言語のフラグ変数(論理型)の使い方とは?見つかったかどうかを覚えておく処理を解説
動かして確かめると記憶に残る¶
こういうコードは、読むだけより動かしたほうが早く納得できます。値がどう変わるかを目で見ると、欠陥の位置が一目で分かるからです。
Giji Academy の擬似言語シミュレーターなら、変数の値を1行ずつ追いながら動かせます。失敗回数が毎回0に戻る様子も、その場で確認できます。
セキュリティの知識とコードの読み方は、別々の勉強に見えて実は地続きです。両方を行き来すると、どちらの理解も深まります。
科目Bという試験の全体像をつかみ直したいときは、親記事にあたるこちらから確認してみてください。
【関連記事】基本情報技術者試験の科目Bとは?擬似言語・アルゴリズム対策を初心者向けに解説
まとめ¶
最後に、この記事の要点を振り返ります。
科目Bは20問中4問が情報セキュリティです。捨てるには大きく、時間を注ぎ込むには小さい、扱いの難しい2割になります。
勉強時間の配分は、擬似言語8にセキュリティ2が基本です。ただし直前期は7対3まで寄せると、短い時間で点が伸びます。
セキュリティの対策で新しい教材は要りません。科目Aの知識を、場面と対策の組み合わせで整理し直すのが近道です。
そして、毎日の締めに10分だけセキュリティを置いてみてください。疲れた頭でも解ける分野なので、無理なく続きます。
後回しにされがちな4問を拾えるようになると、擬似言語で1問落としても慌てなくなります。今日の勉強の最後に、まず2問だけ解いてみましょう。