基本情報技術者 学習ページ|科目B・セキュリティ
事例で技術策を選ぶ
セキュリティ実装の問題では、攻撃の仕組みと対策が対応しているかを見抜くことが大切です。このページでは、Webアプリ、認証、暗号化通信、VPN、ログを事例の中で使い分けます。
入力を命令にしない
Webアプリでは、利用者の入力をそのまま命令文の一部として組み立てると、意図しない処理につながることがあります。SQLインジェクションでは、SQL文と値を分けて扱うプレースホルダなどが対策になります。
クロスサイトスクリプティングでは、出力先に応じたエスケープ処理などで、入力をスクリプトとして解釈させないようにします。
入力値を命令として解釈させない実装を選ぶ。
認証を重ねる
認証は利用者が誰であるかを確かめる仕組みです。多要素認証は、知識、所持、生体など異なる種類の要素を組み合わせます。
パスワードを二つ入力しても同じ知識要素だけなら多要素にはなりません。事例では、盗まれた一つの情報だけでログインできるかを考えると、対策の強さを判断しやすくなります。
認証後に何へアクセスできるかは認可の問題なので、認証の強化とは分けて見ます。
多要素認証は異なる種類の認証要素を組み合わせる。
TLSで通信を守る
TLSは、通信相手の確認や通信内容の暗号化、改ざん検知に用いられます。WebではHTTPSとして利用され、利用者とWebサーバ間の通信を保護します。
ただし、暗号化通信を使っていても、Webアプリ自体の脆弱性がなくなるわけではありません。通信路の保護とアプリの安全性は別々に評価します。
TLSは通信路を保護するが、アプリの欠陥は別に対策する。
VPNで経路を作る
VPNは、公衆網などを使いながら、拠点間や端末と社内ネットワークの間に保護された通信経路を構成するために使われます。遠隔勤務で社内システムへ接続する場面などが例です。
VPN接続後に広すぎる権限を与えると別の問題が残ります。接続経路の保護とアクセス制御を分けて判断します。
接続元端末の状態確認など、利用条件を組み合わせる設計も事例では検討対象になります。
VPNは通信経路を保護し、権限管理は別に行う。
ログを調査に使う
ログは、いつ、誰が、何へ、どのような操作をしたかを後から調べる材料になります。認証ログ、Webサーバのアクセスログ、アプリの操作ログなどを目的に応じて確認します。
時刻が大きくずれていると複数機器の出来事を対応付けにくくなります。必要な記録を保全し相関して見ることが、原因調査や影響範囲の把握につながります。
ログは時刻と利用者を対応付け、複数の記録を突き合わせる。
本番の形で解いてみる
科目Bの形: 事例を読んで解答群から選ぶ(このページのために作った問題)
E社の社内Webシステムでは、商品検索画面の入力値を使ってSQL文を文字列連結で組み立てている。テストでは、検索欄へ特定の記号を含む文字列を入力すると、本来の検索条件とは異なるSQLとして解釈された。商品名には記号を含む場合があるため、記号を一律に禁止することは難しい。また、検索用のデータベース接続アカウントには、検索機能では不要な仕入価格を含む複数の表への参照権限が付いている。表中の(一)~(三)に適用する対策の組合せとして、最も適切なものを選べ。
| 記号 | 対策 |
|---|---|
| 対策a | 入力値が業務上許される文字数や形式かを確認する |
| 対策b | SQL文と入力値を分離し、プレースホルダを使って値を渡す |
| 対策c | データベース接続アカウントの権限を必要な範囲に絞る |
| 項目 | 状況 |
|---|---|
| (一) | 入力値がSQL文の一部として解釈される |
| (二) | 検索機能から不要な表まで参照できる |
| (三) | 極端に長い入力など、業務上想定しない形式も受け付けている |
- 対策b / 対策c / 対策a
- 対策b / 対策a / 対策c
- 対策a / 対策c / 対策b
- 対策b / 対策c / 対策b
- 対策c / 対策b / 対策a
- 対策a / 対策b / 対策a
答えと解説を見る
正解: 対策b / 対策c / 対策a
入力値がSQL文の構造として解釈される問題には、SQL文と値を分離するプレースホルダを用います。検索機能から不要な情報まで参照できる問題には、データベース接続アカウントの権限を必要最小限にします。また、業務上想定しない文字数や形式の入力については、入力条件を確認する対策が対応します。
まちがえやすい点: 入力チェック、プレースホルダ、最小権限は目的が異なる。入力チェックだけでSQLインジェクション対策を置き換えたり、プレースホルダだけで過大なDB権限を解消したりはできない。
科目Bの形: 事例を読んで解答群から選ぶ(このページのために作った問題)
F社では、社外から勤怠システムへログインするとき、社員番号とパスワードを使用している。最近、他サービスから流出したとみられるパスワードを悪用した不正ログインが発生した。社員には会社支給スマートフォンがあり、端末上の認証アプリを利用できる。また、スマートフォンを紛失した場合や社員が退職した場合の利用停止手続も見直すことにした。表中の(一)~(三)の状況に対応する対策の組合せとして、最も適切なものを選べ。
| 記号 | 対策 |
|---|---|
| 対策a | 紛失した端末を認証に利用できないようにする |
| 対策b | 退職者の勤怠システムの利用資格を無効化する |
| 対策c | パスワードに加え、会社支給端末の認証アプリを用いる |
| 項目 | 状況 |
|---|---|
| (一) | パスワードが漏えいすると、それだけで社外からログインできる |
| (二) | 認証アプリを設定した会社支給スマートフォンを紛失した |
| (三) | 退職した社員の利用資格がシステム上に残っている |
- 対策c / 対策a / 対策b
- 対策c / 対策b / 対策a
- 対策a / 対策c / 対策b
- 対策c / 対策a / 対策c
- 対策b / 対策a / 対策c
- 対策a / 対策b / 対策b
答えと解説を見る
正解: 対策c / 対策a / 対策b
パスワードだけでログインできる問題には、異なる種類の認証要素を組み合わせる多要素認証が対応します。認証アプリを設定した端末を紛失した場合は、その端末を認証に利用できないようにします。退職者については、端末の返却だけに頼らず、システム側の利用資格を無効化します。
まちがえやすい点: 多要素認証、紛失端末の無効化、退職者のアカウント管理は別の対策である。一つの対策で三つの状況をまとめて解決できると考えない。
科目Aの形: 四肢択一(このページのために作った問題)
TLSを利用する目的に関する記述として、最も適切なものはどれか。
- TLSを利用すれば通信内容が暗号化されるので、接続先のWebアプリにSQLインジェクションの脆弱性があっても悪用されなくなる
- TLSは、通信内容の暗号化や改ざんの検知、証明書を用いた通信相手の確認などによって通信路を保護するために利用される
- TLSで暗号化された通信なら、利用者の端末内やサーバ内に保存されたデータも自動的に暗号化された状態になる
- TLSを利用すれば通信途中で内容を盗み見られにくくなるので、推測されやすいパスワードを使用しても認証上の問題はなくなる
答えと解説を見る
正解: TLSは、通信内容の暗号化や改ざんの検知、証明書を用いた通信相手の確認などによって通信路を保護するために利用される
TLSは、端末とサーバなどの間で行われる通信を暗号化し、改ざんを検知し、証明書を用いて通信相手を確認するために利用されます。一方、Webアプリの脆弱性、保存データの保護、パスワードの強度などは別の対策が必要です。
まちがえやすい点: TLSで守る中心は通信中のデータである。アプリの脆弱性、保存中のデータ、認証情報の安全性まで自動的に解決するわけではない。
基本情報の学習ページ
ほかの学習ページの一覧と、2択の用語カード(750語)は、基本情報技術者のページにあります。
基本情報技術者のページへ →このページの内容は、IPA「基本情報技術者試験 シラバス Ver.9.2」(2026年1月公表)と試験要綱Ver.5.6の範囲にもとづきます(2026年10月確認)。IPAは2027年度春ごろから新しい試験制度に移る予定です。