pulpul 日本の試験

基本情報技術者 概念書 · セキュリティ

セキュリティ実装技術

要点と定義

セキュリティ実装技術は、通信やアプリケーションに生じる脅威を、仕組みの特性に応じて抑える技術です。対策を選ぶときは「何を守るか」「どこを通る通信か」「どの時点で検査できるか」を確かめます。

HTTPSはHTTPをTLSで保護して使う方式です。TLSではサーバ証明書を検証して接続先サーバの真正性を確かめられ、通信の暗号化などによって盗聴や改ざんのリスクを抑えます。Cookieによるセッション管理、IDとパスワードによる認証、ブラウザーキャッシュはHTTPでも実現できるため、HTTPS固有の特徴とは区別します。

暗号方式やハッシュ関数の危殆化とは、方式そのものの安全性が低下し、想定していた安全性を保てなくなることです。例えば、ハッシュ値が一致する異なるデータの組(衝突)を現実的な時間で見つける方法が確立すれば、そのハッシュ関数の安全性に関わります。秘密鍵の漏えいは鍵管理上の事故であり、方式自体の危殆化とは別の問題です。

認証では、知識(パスワードなど)、所持(トークンや証明書など)、生体(指紋や静脈など)の要素を使います。2要素認証は異なる種類の要素を二つ組み合わせます。同じ知識要素を二つ使うだけでは、2要素認証になりません。

パケットフィルタリングは、送信元や宛先のアドレス、サービスなどの条件に基づいて通信を許可または拒否する仕組みです。ルールを上から順に評価し、最初に一致した規則を適用する方式では、必要な許可を拒否規則より前に置き、通信の向きと範囲を業務要件に合わせます。

WAFは、Webアプリケーションに向かうHTTP通信を検査し、攻撃とみなすパターンを検知して遮断する仕組みです。通信を復号する機能がないWAFでは、暗号化されたHTTPSの内容を検査できません。TLSを終端して復号した後の通信経路に置く必要があります。

SQLインジェクションは、外部入力がSQL命令の一部として解釈されることで起きる攻撃です。プレースホルダーを使うパラメーター化クエリーでは、SQL文の構造と入力値を分け、入力値が命令として扱われないようにします。

適用条件と例

通信を許可する規則は、必要な送信元・宛先・サービスを絞って設定します。例えば事務用ネットワークが192.168.0.0/24、開発用ネットワークが192.168.1.0/24なら、両者をまとめた範囲は192.168.0.0/23です。両ネットワークのPCからVDI環境へ接続させる要件なら、その範囲を送信元、VDI環境のネットワークを宛先、VDIサービスを対象とする許可規則が必要です。VPN利用者用の別ネットワークだけを送信元にした規則では、社内PCからの接続は許可されません。ネットワーク範囲の集約は、含めるアドレス範囲が要件と一致するか確認して行います。

WAFを使う場合は、どこでTLSが復号されるかを確認して配置します。例えば、利用者からWebサーバまでHTTPSで送られ、途中のTLS終端装置が復号してからWebサーバへHTTPで渡す構成なら、復号後の区間に検査機能のないWAFを設置できます。暗号化された区間に置いただけでは、通信内容に含まれる攻撃を検査できません。WAFはWebアプリケーション向けの通信を扱うものであり、ログを集めて分析する仕組みや複数機能を統合する仕組みとは役割が異なります。

SQLを実行する処理では、例えば「商品番号を条件に検索する」場合、SQL文の条件部分をプレースホルダーにし、商品番号を値として別に渡します。入力にSQLの記号や命令に見える文字列が含まれても、値として扱われるため、命令の条件を書き換えにくくなります。単に入力文字を制限するだけでは、SQL文と値の分離を保証できません。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む