対象システム/ソフトウェアにとって、インターネットのような”信頼のないネットワーク”を介して行われる攻撃が「脅威」となります。
セキュリティを実現するためのアーキテクチャは、外側(防御システム)と内側(セキュリティ機能)の2つのレイヤに分けられます。対象システム/ソフトウェアを「脅威」から守るため、外側に防御システムを構築します。さらに、対象システム/ソフトウェアの内側に、セキュリティ機能を実装します。
これらの対策によって、脅威に対応しながら、対象システム/ソフトウェアの本来の機能を提供できるようにします。

■ 防御システムの構成
防御システムは、一般的にパッケージソフトやアプライアンスなどの既存のコンポーネントを使って構築します。既存のコンポーネントには、以下のようなコンポーネントがあります。
・FW(ファイアウォール)/RT(ルータ)
インターネットからの通信トラフィックを制御するネットワーク機器です。セキュリティを確保するため以下の技術を使い、業務上、適切なネットワークに必要な通信トラフィックだけを流すように制御します。
1)セグメンテーション
VLANあるいはネットワークアドレスによってネットワークを分離し、不要な通信データの流入・流出を防止します。
2)フィルタリング
送信元アドレス/ポート、送信先アドレス/ポートを明記し、必要なものだけに制限します。
・IPS/IDS
通信トラフィックを監視し、既知の攻撃パターン(シグネチャ)に一致した異常な挙動を検出します。
検出した内容はログに記録されたり、アラート通知されます。IPSには、FWなどと連動し、不正な通信を即時ブロック(遮断)できる機能があります。
IPS/IDSのフリーソフトには、Snort, Suricataがあります。IPS/IDSが組み込まれたFWには、FortiGate、Palo Alto Networksなどの製品があります。
・ログ管理・監視
各コンポーネントからログを収集・一元管理し、定期的にレビュー可能な状態にします。自動的に異常を検出し、アラートを通知する機能を持ちます。
NW機器のログ:SNMPやSyslogプロトコルによってログを収集
Linux:Syslogプロトコルによって、Syslog形式のシステムのログやアプリケーションのログを収集
Windows:イベントログをファイルサーバなどに保存
ログ管理・監視するためのSIEM(Security Information and Event Management)と呼ばれる製品・サービスがあります。
オンプレ型:IBM QRadar、ArcSight、Splunk Enterprise
クラウド型:Microsoft Sentinel(Azure)、Sumo Logic、Logz.io
OSS:Wazuh、ELK Stack(Elasticsearch + Logstash + Kibana)
・変更監視
システム構成ファイルやプログラム、設定情報などの重要なデータに対して、不正または意図しない変更が行われていないかを監視します。以下のような製品とサービスがあります
TrendMicro Deep Security、McAfee Integrity Control
OSS:AIDE、Tripwire、Wazuh、Auditd、Sysmon
・マルウェア対策
マルウェア(ウイルス、ワーム、トロイの木馬、ランサムウェア、スパイウェア、バックドアなど)をチェックするパッケージソフトを使用します。
エンドポイント防御と呼ばれる代表的なアンチウイルス製品には、Windows Defender(Microsoft)、ESET Endpoint Security、トレンドマイクロ ウイルスバスター、カスペルスキー、Symantec Endpoint Security、CrowdStrike Falconがあります。
最低限であっても、FW(ファイアウォール)の設置、マルウェア対策の実施は必要となります。ただし、対象システム/ソフトウェアへ与えるリスクをできる限り減らすには、これらすべてのコンポーネントを導入し、稼働をさせる必要があります。すべて人手でやるには、技術的にも不可能ですし、何より時間とコストがかかります。
■ セキュリティ機能
防御システムで対応できないセキュリティ対策は、対象システム/ソフトウェアのセキュリティ機能として実装する必要があります。
・認証
ユーザを識別するための認証要素を使って、ユーザを一意に特定します。主な認証要素には以下があります。
知識要素(Something you know) | パスワード、PINコード |
所持要素(Something you have) | ICカード、ワンタイムパスワード(OTP)トークン、セキュリティキー(YubiKey、FIDO2デバイス)、スマホアプリ、スマートフォンアプリ(Google Authenticator、Microsoft Authenticator) |
生体要素(Something you are) | 指紋、顔認証、声紋、虹彩 |
また、認証のための標準プロトコルには、以下のようなものがあります。
LDAP(Lightweight Directory Access Protocol) | ディレクトリサービスでユーザー情報を一元管理し、認証に使用 |
Kerberos | ネットワーク認証プロトコル。チケットを用いた安全なシングルサインオン(SSO) |
RADIUS / TACACS+ | ネットワーク機器へのリモートアクセス認証で使用 |
SAML(Security Assertion Markup Language) | XMLベース。企業間のSSOでよく利用(IDプロバイダとサービス間の認証連携) |
OAuth 2.0 | 権限委譲の仕組み。外部サービスにパスワードを渡さずにアクセス許可 |
OpenID Connect(OIDC) | OAuth 2.0を拡張し、認証情報(ユーザーID)を安全にやり取り、FIDO2 / WebAuthn パスワードレス認証。公開鍵暗号と生体認証を組み合わせる |
多くのシステムでは、複数の印象要素を組み合わせた多要素認証(MFA)を採用しています。ユーザーがシステムやサービスにアクセスする際に、2つ以上の異なる要素を組み合わせて認証を行うセキュリティ手法です。単一のパスワード認証よりも安全性が大幅に向上します。MFAの主な方式には、以下があります。
TOTP(Time-based One-Time Password) | 時間ベースで変わる6桁コード。Google Authenticatorで生成 |
SMS/Email OTP | 短時間有効なコードをSMSまたはメールで送信 Push通知認証 スマホアプリに承認・拒否を通知し、ワンタップで認証 |
FIDO2/WebAuthn | パスワードレス認証。公開鍵暗号で認証、フィッシング耐性が高い ハードウェアトークン RSA SecurIDなど、物理デバイスでワンタイムコード生成 |
・アクセス制御
ユーザを認証した結果、許可される範囲(操作と対象)を制御する機能です。
アクセス制御は、認証後にユーザーがシステムやデータに対してどの操作をどこまで行えるかを制御する仕組みです。セキュリティの「認証」とセットで利用され、最小権限の原則(Principle of Least Privilege)を実現します。
アクセス制御を構成する観点には、以下があります。
[ 対象(リソース)]
データベース、ファイル、API、システム設定など
[ 操作(アクション)]
読み取り、書き込み、削除、実行、設定変更など
[ 条件(コンテキスト)]
ユーザーの属性、デバイス状態、場所、アクセス時間帯など
これらの観点を取り入れた主なアクセス制御の方式には、以下があります。
方式名 | 説明 | 例 |
DAC(任意アクセス制御) | リソース所有者がアクセス権を自由に設定 | Windowsのファイル共有 |
MAC(強制アクセス制御) | セキュリティラベルに基づきシステムが強制的に制御 | 軍事システム SELinux(ラベル付け ファイル・プロセスに「セキュリティコンテキスト(ラベル)」を付与し、カーネルレベルの強制制御 DACの上に重ねて、さらに厳しい制限を適用) |
RBAC(ロールベースアクセス制御 | ユーザーが持つ役割(ロール)単位で権限を付与 | 管理者、開発者、閲覧者 |
ABAC(属性ベースアクセス制御) | ユーザーやリソースの属性でポリシーを判 | 「場所が社内で、デバイスがセキュアなら編集可」 |
・暗号化(データ)
データを暗号化するために必要になるのは、鍵を使った暗号化アルゴリズムです。暗号化アルゴリズムには、以下があります。
データ暗号化は、データを第三者から保護するため、鍵(Key)と呼ばれるユニークなデータと、と暗号化アルゴリズムを使って情報を不可読化する技術です。復号には正しい鍵が必要となるため、機密性と安全性を高めることができます。ただし、鍵の安全な管理が不可欠となります。
暗号化アルゴリズムとは、データを変換する数学的手順であり、セキュリティ強度、速度、利用用途により選択されます。また、鍵のデータサイズ(鍵長)は、暗号の強さに影響を与えます。
暗号化方式 | 説明 | 例 |
対称鍵暗号(Symmetric Encryption) | 同じ鍵で暗号化・復号 高速で大容量データ向き | AES(Advanced Encryption Standard) ChaCha20 DES/3DES(現在は非推奨) |
非対称鍵暗号(Asymmetric Encryption) | 公開鍵暗号(Asymmetric Encryption) 公開鍵で暗号化し、秘密鍵で復号 鍵の共有が不要 | RSA ECC(Elliptic Curve Cryptography) |
・暗号化(通信)
ネットワーク上でデータを送受信する際に、第三者による盗聴や改ざんを防ぐため、暗号化プロトコルを用いて通信内容を秘匿化するセキュリティ技術です。主にインターネットを介した通信では必須の対策です。通信暗号化に使われる主なプロトコルを以下に示します。
プロトコル | 用途・説明 |
TLS/SSL | Web通信(HTTPS)、メール(SMTPS/IMAPS/POP3S)、API通信の暗号化。TLS 1.2/1.3が主流 |
SSH | リモート接続(サーバ管理)、安全なファイル転送(SCP、SFTP) |
IPSec | ネットワーク層での暗号化。VPNでの拠点間接続に使用 |
VPN(SSL VPN) | インターネットを経由した安全な社内接続を提供 |
FTPS / SFTP | ファイル転送プロトコルに暗号化を追加 |
HTTPS WebSocket (WSS) | 双方向通信での安全な暗号化通信 |
・鍵管理
鍵管理(Key Management)とは、暗号化に用いる鍵(Key)の生成から廃棄までのライフサイクル全体を、安全かつ効率的に取り扱うためのプロセスと技術です。暗号化の安全性は、アルゴリズムだけでなく「鍵の安全な管理」に大きく依存します。
鍵管理の目的を以下に示します。
①鍵の機密性を守る(漏えい・不正コピー防止)
②鍵の完全性を保証する(改ざんされていないこと)
③鍵の可用性を確保する(必要時に使用可能)
鍵には、以下のような生成~廃棄までのライフサイクルがあります。
①鍵の生成(Key Generation)
安全なランダムソース(CSPRNG)で生成
鍵長、アルゴリズムをセキュリティ要件に応じて決定(例:AES-256)
②鍵の配布(Key Distribution)
対称鍵は安全なチャネルで共有(公開鍵で暗号化して渡すなど)
公開鍵基盤(PKI)での証明書配布
③鍵の保管(Key Storage)
ハードウェアセキュリティモジュール(HSM)、クラウドKMS、Vaultを利用
平文での保存は厳禁、暗号化された形式で安全に保管
④鍵の利用(Key Usage)
必要最小限の権限でのみアクセス許可
利用ログを記録し、アクセス監査を可能にする
⑤鍵のローテーション(Key Rotation)
定期的に新しい鍵に切り替えることで、漏えい時の被害を最小化
自動ローテーション機能を活用
⑥鍵の破棄(Key Destruction)
使用期限切れや不要になった鍵は安全に削除
復元不可能な形で物理・論理的に破棄
鍵管理の実装例としては以下のようなものがあります。
●ハードウェアセキュリティモジュール(HSM)
鍵を安全に生成・保管する専用装置
金融機関、政府、クラウドサービスで利用
●クラウドKMS(Key Management Service)
AWS KMS、Azure Key Vault、Google Cloud KMS
鍵管理をクラウド上で統合的に提供
●ソフトウェアVault
HashiCorp Vaultなどでアプリケーションの秘密情報を集中管理
・ロギング
ロギング(Logging)とは、システムやアプリケーションで発生した操作・イベント・エラーなどの記録を行い、後から監査やトラブルシュート、セキュリティ分析に活用できるようにする仕組みです。
セキュリティや運用管理において必須の要素です。
ロギングは、以下の目的を満たすように設計する必要があります。
目的 | 説明 |
監査証跡 | 誰が・いつ・何をしたかを記録し、不正行為や内部不正を追跡 |
セキュリティインシデント検知 | 不正アクセス、攻撃パターンの早期発見 |
トラブルシューティング | 障害やエラー発生時の原因分析 |
運用改善 | 利用状況の把握や性能最適化に活用 |
ログには、以下のような種類があります。
種類 | 例 |
アプリケーションログ | Webアプリの操作履歴、エラー情報 |
システムログ | 認証成功/失敗、アクセス許可・拒否、権限変更 |
セキュリティログ | OSの起動・停止、サービス開始、エラーメッセージ |
ネットワークログ | Firewall、IDS/IPS、プロキシ、DNSクエリ |
監査ログ | 管理者操作、設定変更、重要リソースへのアクセス |
DBログ | SQL実行履歴、トランザクション情報 |
イベントログ(Windows) | Application、System、Securityの各ログ |
以下にロギング設計のポイントを示します。
①時刻同期(NTP)
全システムで時刻を統一し、ログの相関分析を容易にする
②ログフォーマット標準化
JSONやCEFなど統一形式で出力し、解析を容易にする
③重要イベントの明確化
認証、権限変更、データアクセス、設定変更などを必ず記録
④改ざん防止
WORMストレージ、電子署名、ハッシュチェーンで改ざん検出
⑤保存期間と容量管理
法令・規制に基づき数ヶ月~数年単位で保管
⑥アクセス制御
ログへの読み書き・削除は厳格に制限
⑦ログの転送
防御システムのログ管理・監査へログをSyslogなどで転送
・時刻同期
ネットワーク内やシステム全体で時刻(日時情報)を正確かつ統一するための仕組みです。
Kerberos認証やTLS証明書の有効期限チェックなどセキュリティプロトコルの時刻を基準とする仕組みが正常に動作することを保証し、攻撃や障害の発生時に、複数システムのログを時系列で正しく並べられる相関分析を可能とします。
通常、対象システムの時刻を時刻同期プロトコルであるNTP(Network Time Protocol)を使って、公開NTPサーバや社内の基準NTPサーバと同期させます。精度はミリ秒~数ミリ秒単位の誤差に抑えることができます。
・バージョンアップ
ソフトウェアやファームウェアを新しいバージョンに更新し、以下のような機能追加・改善や不具合修正、脆弱性対策を適用するための仕組みです。特にセキュリティの観点では、既知の脆弱性を解消し、安全な状態を保つために不可欠な機能です。
①脆弱性修正:既知のセキュリティホールを塞ぎ、攻撃リスクを低減
②不具合修正(バグフィックス):動作不良や性能劣化を解消
③機能追加・改善:ユーザー体験向上、新規要件対応
バージョンアップの方式として、以下の機能を実現する必要があります、
手動更新:ユーザーが手動でパッケージをダウンロード・インストール
自動更新:定期的に更新を確認し、無人で適用
差分更新:変更部分のみダウンロードして更新時間と通信量を削減
また、バージョンアップ機能自体においても、セキュリティと整合性を確保するために以下について配慮する必要があります。
アップデート配布元の正当性確認(デジタル署名や証明書で改ざん防止)
通信経路の暗号化(HTTPS/TLSで更新ファイルを安全にダウンロード)
バージョン管理と追跡(適用履歴を記録し、更新失敗やロールバックに対応)
ロールバック機能(不具合発生時に前のバージョンへ戻せるようにする)
■ まとめ
セキュリティ・アーキテクチャは、防御と機能の2つのレイヤから成り立ち、それぞれが補完し合うことでシステム全体の安全性を支えます。
ネットワーク制御や監視などの外部防御に加え、認証・アクセス制御・暗号化・ロギングといった内部機能を適切に設計・実装することが重要です。
・設計段階からセキュリティを組み込む
・運用フェーズでも継続的に見直す
・技術だけでなくプロセス・文化として定着させる
この3つを実践することで、変化する脅威環境にも柔軟に対応できる堅牢なシステムを構築できます。