目安時間: 約120分 ・ 読了目安: 18分

この章で学ぶこと

この章は「データベース」(52語)と「セキュリティ実装技術・評価」(56語)という2つの中分類、合計108語を扱います。ネットワークとDBの基礎・セキュリティ管理策・暗号・インシデント対応の基礎・APセキュリティプロトコルで扱った基礎を土台に、PD-Sではデータベースの内部動作(同時実行制御・分散処理)と、実装レベルのセキュリティ技術(暗号プロトコル・脆弱性診断)まで踏み込みます。DBとセキュリティを1つの章にまとめているのは、どちらも「その他の分野」として簡潔に扱う構成で、DMコース第6章と同じ発想です。ただしPD-Mコース第7章(マネジメント層のガバナンス視点)とは異なり、この章は実装者として押さえるべき技術的な中身が中心になります。

データモデルと3層スキーマ

データベースの全体構造を捉える上で、扱うデータの構造を表すデータアーキテクチャと、それを外部スキーマ・概念スキーマ・内部スキーマの3段階で独立させるデータベースの3層スキーマアーキテクチャが土台になります。データの表現方法であるデータモデルには、ノードと関係でデータを表すグラフ型のデータモデル、表形式で表す関係モデルがあり、設計段階では業務要件を表す概念データモデルから実装向けの論理データモデルへと詳細化します。データの整合性を保つ一貫性制約(一意性制約・参照制約・検査制約 など)を定め、重複を排除する正規化を行います。

運用面では、応答時間などを測るデータベースの性能評価と、それを改善するチューニングが欠かせません。データ操作の理論的な基礎として、複数の表から必要な行を取り出す集合演算と関係演算があり、実務ではテーブル定義を扱うDDL(データ定義言語)とデータ操作を扱うDML(データ操作言語)を使い分けます。

扱う用語(精選・15語)

  • データアーキテクチャ/データベースの3層スキーマアーキテクチャ
  • データモデル/グラフ型のデータモデル/関係モデル/概念データモデル/論理データモデル
  • 一貫性制約(一意性制約・参照制約・検査制約 など)/正規化
  • データベースの性能評価/チューニング
  • 集合演算/関係演算/DDL(データ定義言語)/DML(データ操作言語)

同時実行制御とトランザクション管理

複数の利用者が同時にデータベースへアクセスしても矛盾が起きないよう制御する仕組みが同時実行制御(排他制御)です。データへのアクセスを制限するロック方式、資源の利用可否を管理するセマフォ方式、更新結果を確定させるコミットメント制御があり、ロックをかけずに複数バージョンを管理して競合を減らす多版同時実行制御(MVCC)という高度な方式もあります。

ロック制御の代表的な方式が2相ロッキングプロトコルで、ロックを獲得する成長期と解放する縮退期の2段階に分けることで整合性を保証します。

2相ロッキングプロトコルにおけるロック数の推移

ロックの奪い合いが発生し互いに待ち続けるデッドロックへの対処法としては、古いトランザクションを優先するWait-Die方式、新しいトランザクションを優先するWound-Wait方式があります。複数のデータベースにまたがる更新を確実に完了させる2相コミットメントも分散処理での重要な技術です。

同時実行時に起こりうる異常事象としては、コミット前のデータを読んでしまうダーティリード、同じ行を2回読んで結果が変わるノンリピータブルリード、条件に合う行が増減するファントムリードがあり、これらをどこまで許容するかを隔離性水準で設定します。処理を完全に取り消せない場合に埋め合わせの処理を行う補償トランザクションという考え方もあります。トランザクションが満たすべき性質を原子性・一貫性・独立性・永続性の4つでまとめたものがACID特性です。障害対策としては、定期的にバックアップを取るダンプファイルとそこから復元するリストア、実データの保管場所であるデータディレクトリ、更新前のページを保持して障害時に戻せるようにするシャドウページ法があります。

扱う用語(精選・20語)

  • 同時実行制御(排他制御)/ロック方式/セマフォ方式/コミットメント制御/多版同時実行制御(MVCC)
  • 2相ロッキングプロトコル/デッドロック/Wait-Die方式/Wound-Wait方式/2相コミットメント
  • ダーティリード/ノンリピータブルリード/ファントムリード/隔離性水準/補償トランザクション/ACID特性
  • ダンプファイル/リストア/データディレクトリ/シャドウページ法

分散データベースとビッグデータ基盤

データ量の増加に対応するため、行単位で分割する水平分散と列単位で分割する垂直分散という表の分散の考え方があります。分散環境では複数拠点にまたがる分散問合せと結合演算、複数データベースにまたがる分散トランザクションを扱う必要があり、ネットワーク分断でシステムが分裂してしまうスプリットブレインという障害モードにも備えます。大規模データを分散処理する基盤としては、Apache HadoopやApache Sparkに代表される分散処理フレームワークが使われます。

分散システムの設計指針としては、一貫性・可用性・分断耐性の3つを同時にすべて満たすことはできないというCAP定理が基本になります。

CAP定理:3つの性質のうち同時に満たせるのは2つまで

厳密な一貫性より可用性・分断耐性を優先する設計では、更新が徐々に反映されればよいというBASE特性と、最終的には整合性が取れるとする結果整合性の考え方を採用します。データを複数ノードに分割配置するシャーディング、大量ファイルを分散管理する分散ファイルシステム(HDFS・Ceph・GlusterFS など)、取引記録のような追記型データを扱うファクトデータベースと、マスタ情報を扱うリファレンスデータベース、クラウドで提供されるデータベースサービス、大規模データを高速検索する大規模データセットのクエリエンジン(Apache Hive・Presto など)も押さえます。

扱う用語(精選・17語)

  • 水平分散/垂直分散/表の分散(水平・垂直)
  • 分散問合せ/結合演算/分散トランザクション/スプリットブレイン
  • 分散処理フレームワーク(Apache Hadoop・Apache Spark など)
  • CAP定理/BASE特性/結果整合性/シャーディング
  • 分散ファイルシステム(HDFS・Ceph・GlusterFS など)/ファクトデータベース/リファレンスデータベース/データベースサービス
  • 大規模データセットのクエリエンジン(Apache Hive・Presto など)

通信の暗号化・認証プロトコル

ネットワーク層でIPパケット自体を暗号化するIPsec、トランスポート層で通信を暗号化するTLS、リモート操作を暗号化するSSH、TLSでHTTPを保護するHTTP over TLS(HTTPS)、TCPより高速なQUICが代表的な暗号化プロトコルです。無線LANの暗号化方式にはWPA2・WPA3があり、暗号化なしでも通信を保護するEnhanced Openという方式もあります。メールのなりすましを防ぐスパム対策(ベイジアンフィルタリング・送信ドメイン認証・SPF・DKIM・DMARC)、外部サービスに自分の情報を渡さず認可だけを与えるOAuth、DNS応答の改ざんを防ぐDNSSECも重要な実装技術です。

有線LANの認証規格IEEE 802.1Xのもとで動作する認証プロトコルEAPには、証明書を使うEAP-TLSや、TLSトンネル内で認証情報をやり取りするPEAPという方式があり、認証情報を一元管理するプロトコルとしてDiameterがあります。

扱う用語(精選・16語)

  • IPsec/TLS/SSH/HTTP over TLS(HTTPS)/QUIC
  • WPA2/WPA3/Enhanced Open
  • スパム対策(ベイジアンフィルタリング・送信ドメイン認証・SPF・DKIM・DMARC)
  • OAuth/DNSSEC
  • IEEE 802.1X/EAP(Extensible Authentication Protocol)/EAP-TLS/PEAP/Diameter

アクセス制御とネットワーク境界防御

権限管理の方式には、管理者が一元的にアクセス権を決める強制アクセス制御(MAC)と、役割ごとに権限をまとめるロールベースアクセス制御(RBAC)があり、これらを厳格に実装したOSをトラステッドOSと呼びます。ネットワーク境界の防御では、通信の状態を維持しながらフィルタリングするステートフルパケットフィルタリング、アプリケーション層で中継するアプリケーションゲートウェイ方式、利用者を認証する認証サーバ、認証結果に応じてVLANを割り当てる認証VLAN、拠点間・リモートアクセスを暗号化するVPN、外部からの直接アクセスを隠すリバースプロキシを組み合わせます。

データベース自体の防御としては、保存データを暗号化するデータベース暗号化、権限を細かく制御するデータベースアクセス制御、定期的なデータベースバックアップ、操作履歴を残すログの取得が基本になります。

扱う用語(精選・13語)

  • 強制アクセス制御(MAC)/ロールベースアクセス制御(RBAC)/トラステッドOS
  • ステートフルパケットフィルタリング/アプリケーションゲートウェイ方式
  • 認証サーバ/認証VLAN/VPN/リバースプロキシ
  • データベース暗号化/データベースアクセス制御/データベースバックアップ/ログの取得

AI・アプリケーションのセキュリティ対策

生成AIの活用が広がるにつれ、悪意のある指示を紛れ込ませる攻撃へのプロンプトインジェクション対策、大規模言語モデル特有の脅威に備えるLLMの脅威への対策、AIのセキュリティ確保のための技術的対策に係るガイドラインへの準拠が実装者の責務になっています。Webシステム全般ではWebシステムのセキュリティ対策を土台に、脆弱性を作り込まないセキュアプログラミングを実践し、ソースコードを解析する静的検査(SAST)・動作させて確認する動的検査(DAST)・想定外の入力を大量に送るファジングといった脆弱性検査技術で継続的に検証します。

コンテナ環境特有の対策であるコンテナセキュリティ、異なるオリジンからのアクセスを制限するSame Origin Policyとその例外を許可するCORS(オリジン間リソース共有)のバランス、代表的な脆弱性対策としてパスワードクラック対策・バッファオーバーフロー対策・クロスサイトスクリプティング対策・SQLインジェクション対策(プレースホルダ など)、通信を常にHTTPS化させるHSTSを押さえます。

扱う用語(精選・14語)

  • プロンプトインジェクション対策/LLMの脅威への対策/AIのセキュリティ確保のための技術的対策に係るガイドライン
  • Webシステムのセキュリティ対策/セキュアプログラミング/脆弱性検査技術(SAST・DAST・ファジング など)
  • コンテナセキュリティ/Same Origin Policy/CORS(オリジン間リソース共有)
  • パスワードクラック対策/バッファオーバーフロー対策/クロスサイトスクリプティング対策/SQLインジェクション対策(プレースホルダ など)/HSTS(HTTP Strict Transport Security)

セキュリティ評価・認証制度

システムに求められるセキュリティの中身を定めるセキュリティ機能要件と、その実現度をどう保証するかを定めるセキュリティ保証要件を土台に、暗号モジュールを試験・認証するJCMVP、内部情報を解析されにくくする耐タンパ性、調達時にセキュリティ水準を明示するIT製品の調達におけるセキュリティ要件リストがあります。組織のセキュリティ管理体制を評価するサイバーセキュリティマネジメントシステム(CSMS)のもと、日本の脆弱性情報を公開するJVN、脆弱性の深刻度を数値化する共通脆弱性評価システム(CVSS)、脆弱性を一意に識別する共通脆弱性識別子(CVE)、脆弱性の種類を分類する共通脆弱性タイプ一覧(CWE)、セキュリティ設定を標準化するセキュリティ設定共通化手順(SCAP)を活用して、脆弱性診断や実際に攻撃を試みるペネトレーションテストで継続的に検証します。

扱う用語(精選・13語)

  • セキュリティ機能要件/セキュリティ保証要件/JCMVP(暗号モジュール試験及び認証制度)/耐タンパ性
  • IT製品の調達におけるセキュリティ要件リスト/サイバーセキュリティマネジメントシステム(CSMS)
  • JVN(Japan Vulnerability Notes)/共通脆弱性評価システム(CVSS)/共通脆弱性識別子(CVE)/共通脆弱性タイプ一覧(CWE)/セキュリティ設定共通化手順(SCAP)
  • 脆弱性診断/ペネトレーションテスト

AIで学ぶ

ここまでの用語は、ChatGPTやClaudeなどの生成AIに以下のプロンプトを投げかけると、比較表つきでさらに深く掘り下げて学習できます。コピーして使ってみましょう。

あなたはプロフェッショナルデジタルスキル(システム)試験の講師です。「データベースとセキュリティ実装技術」の範囲について、以下の用語を初学者向けに**関連づけながら**説明してください(単体の丸暗記より、用語同士のつながりを理解したほうが記憶に定着しやすく、試験本番で紛らわしい選択肢を見分ける力もつくためです)。用語同士の違いが分かる**比較表**を最後に付けてください。

【データモデルと3層スキーマ】データベースの3層スキーマアーキテクチャ、データモデル、関係モデル、概念データモデル、論理データモデル、正規化、DDL、DML
【同時実行制御とトランザクション】同時実行制御、ロック方式、多版同時実行制御(MVCC)、2相ロッキングプロトコル、デッドロック、ダーティリード、ノンリピータブルリード、ファントムリード、隔離性水準、ACID特性
【分散データベース】水平分散、垂直分散、分散トランザクション、スプリットブレイン、CAP定理、BASE特性、結果整合性、シャーディング
【通信の暗号化・認証】IPsec、TLS、SSH、HTTPS、WPA2、WPA3、OAuth、DNSSEC、EAP、EAP-TLS、PEAP
【アクセス制御】強制アクセス制御(MAC)、ロールベースアクセス制御(RBAC)、ステートフルパケットフィルタリング、VPN、リバースプロキシ
【AI・アプリケーションセキュリティ】プロンプトインジェクション対策、LLMの脅威への対策、脆弱性検査技術(SAST・DAST)、CORS、SQLインジェクション対策
【セキュリティ評価】CVSS、CVE、CWE、SCAP、脆弱性診断、ペネトレーションテスト

AIに用語リストだけを渡すと、辞書をそのまま読み上げるような無機質な説明が返ってくることがあります。このプロンプトが役割(試験の講師)・関連づけの指示・出力形式(比較表)の3つを指定しているのはそれを避けるためです。特にCVSS・CVE・CWEやEAP・EAP-TLS・PEAPのように似た略語が並ぶ箇所は、比較表で並べて覚えると混同を防ぎやすくなります。

章末チェック

最後に、この章で学んだ知識をアウトプットして定着させましょう。全問に答えたら「答え合わせ」を押してください。

問1. 2相ロッキングプロトコルにおける「成長期」と「縮退期」の説明として、最も適切なものはどれか。

問2. CAP定理が示す内容として、最も適切なものはどれか。

問3. コミット前のデータを他のトランザクションが読んでしまう異常事象はどれか。

問4. 外部サービスに自分のパスワードなどの認証情報を渡すことなく、必要な権限だけを付与する仕組みはどれか。

問5. 脆弱性の深刻度を数値で評価する仕組みはどれか。

この章のまとめ

この章では、データモデル・同時実行制御・分散データベースというDBの基礎技術と、通信の暗号化・認証プロトコル、アクセス制御、AI・アプリケーションのセキュリティ対策、セキュリティ評価・認証制度という実装レベルのセキュリティ技術を学びました。ここで学んだCAP定理・分散処理の考え方は、次章で扱うシステムライフサイクルプロセス(非機能要件としての性能・信頼性)を理解する土台にもなります。

次章では、要件定義から設計・実装・テスト・移行・運用・保守・廃棄までの一連の開発工程を学びます。→ 第5章 システムライフサイクルプロセス