セキュリティ

セキュリティ・アーキテクチャ

投稿日:

対象システム/ソフトウェアにとって、インターネットのような”信頼のないネットワーク”を介して行われる攻撃が「脅威」となります。

セキュリティを実現するためのアーキテクチャは、外側(防御システム)と内側(セキュリティ機能)の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/SSLWeb通信(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つを実践することで、変化する脅威環境にも柔軟に対応できる堅牢なシステムを構築できます。

-セキュリティ

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

はじめてのOAuth2.0入門

OAuth2.0(オープンオーソライゼーション 2.0)は、ユーザーの認証情報を共有せずに、サービスがユーザーのリソースにアクセスできるようにする認可プロトコルです。認証情報を含むユーザー情報をリソー …

運用・保守とセキュリティ対応

「導入時のセキュリティ」だけではなく「継続的なセキュリティ」が重要です。攻撃者はシステムが古くなるのを待っており、運用担当は攻撃者と同じくらい粘り強く対応し続ける必要があります。運用・保守フェーズは、 …

はじめての「Webセキュリティ」入門

情報セキュリティの中で、最も注視される領域がインターネットを使うWebシステムのセキュリティです。拡大しているECサイトやWebサービスでは、誰でも使える「インターネット」を介してアクセスされます。顧 …

シングルサインオン(SSO)入門(SAML編)

シングルサインオン(SSO)は、ユーザーが一度の認証(ログイン)で、複数のシステムやサービスにアクセスできる仕組みを指します。ユーザを認証するログイン処理を一か所に統括し、アプリケーションやサービスと …

セキュリティのためのテスト

セキュリティテストとは、システムやアプリケーションのセキュリティ対策が適切に機能しているかを検証し、脆弱性や設定不備を特定するプロセスです。目的は、攻撃を受ける前に弱点を見つけ、対策を講じることです。 …

Chinese (Simplified)Chinese (Traditional)EnglishFilipinoFrenchGermanHindiJapaneseKoreanMalayThaiVietnamese