Aquaを使うならこんなふうに 第8回 Aquaのランタイムセキュリティについて(2) #Aqua #Container #Security
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
Aquaのランタイムセキュリティについて(2)
前回は、Aquaが提供するコンテナランタイムポリシーについて説明しました。今回は、Aquaが提供する以下のランタイムポリシーについて説明します。
- Functionランタイムポリシー
- ホストランライムポリシー
今回の説明は、Aqua Enterprise 6.5の機能に基づいています。
Functionランタイムポリシー
Functionランタイムポリシーは、AWS Lambda Function を対象としたランタイムの監視・制限します。コンテナランタイムポリシーはコンテナが特定のホスト上で使用するため、AquaEnforcerで制限可能です。しかし、Lambda FunctionはAWSがコントロールするホストを使用するため、NanoEnforcerをLambda Function起動時に使用することで、Function内のアクティビティを監視・制限できます。
Functionランタイムポリシーの対象
Functionランタイムポリシーは、1つ以上の定義が可能で、AWS Lambda Function の以下のランタイムに対応しています。
- Java 8 と 11
- .Net Core 2.1 もしくは 3.1 上で動作する C#とPowerShell
- Node.js 8.10、10、12、14
- Python 2.7、3.6、3.7、3.8
Function ランタイムポリシーの作成と配布
Functionランタイムポリシーを作成すると、Aquaはこれに対応するNanoEnforcerを自動的に作成し、Lambda Function で使用します。正常に適用されたLambda Function数と、適用できなかった数を示すアラートがAquaのUIで監査イベントとして記録されます。
Function ランタイムポリシーを作成・更新した場合、自動的に既存のポリシーは適用されません。Functionランタイムポリシーを作成・更新する際には、新しいLambda Function、もしくは既存のポリシーのスコープへの追加が必要です。
Function ランタイムポリシーの更新
Functionランタイムポリシーのスコープ、コントロール、Enforcementモードの切り替えは、いつでも可能です。
この更新では、NanoEnforcerを再作成するため、Lambda Functionの再起動が必要です。Aquaでランタイムポリシーを変更した場合は、NanoEnforcerを再作成し、新しく作成されるLambda Functionに対して自動的に使用します。実行中のLambda Function へは何も行いませんが、通常Lambda Functionの実行時間はとても短いので、特に問題ありません。
ポリシーコンポーネント
Function ランタイムポリシーの設定内容は、以下のとおりです。
- アプリケーションスコープ
ポリシーが適用されるFunction を指定します。 - Enforcement モード
AuditかEnforceを指定できます。この効果はコンテナランタイムポリシーと異なります。コントロールの項で説明します。 - コントロール
コントロールには以下のような種類があります。
コントロール | 説明 | Enforcementの効果 |
---|---|---|
Block Malicious Executables | Functionの呼び出し中に、/tmpの実行可能ファイルの実行を検出します。 | Enforceモードの場合、Aquaはこれらの実行可能ファイルの実行をブロックし、Auditイベントをログに記録します。 Auditモードの場合、実行のブロックを行わず、Auditイベントをログに記録します。 |
Executables Blacklist | 指定した名前の実行可能ファイルが、Function内で実行されないようにします。 | Enforceモードの場合、Aquaは指定された実行可能ファイルの実行をすべてブロックし、Enforcerイベントタイプで監査イベントをログに記録します。 Auditモードの場合、Auditイベントをログに記録します。 |
Honeypot | Honey Pod コントロールは、攻撃者を誘き寄せて、セキュリティ違反となるアクティビティを起こしやすく構成されてたものです。Honey Pod はおとりとして使用され、攻撃者のアクティビティを観測し、攻撃手法の分析を行います。 | Enforceモードの場合、見つかった攻撃が、将来実行されないようにブロックし、監査イベントをログに記録します。 Auditモードの場合、Function Runtimeイベントタイプで監査イベントをログに記録します。 |
ホストランタイムポリシー
ホストランタイムポリシーは、コンテナが動作する(VMを含む)ホストに対して制限・監視します。1つ以上の ホストランタイムポリシーを設定することで、組織のセキュリティ要件に応じて、ホスト特有のランタイムアクティビティを制限・監視できます。
- 特定のユーザー・グループによるホストへのアクセス防止
- ホスト上の特定のアクティビティを監視・監査する
すべてのランタイムアクティビティは、ユーザーもしくはアプリケーションが実行した場合でも、監視・監査の対象となります。この対象には、ホストへのログイン、シェルコマンド経由の実行、コンテナ・アプリケーションからの実行も全て含みます。ホストランタイムポリシーを実行するには、VM Enforcer、またはAquaEnforcerを対象ホスト上で実行する必要があります。
Aquaはスコープに含まれるホストに対し、ホストランタイムポリシーによって監視されたアクティビティを検知します。Enforceモードでは、検知したアクティビティをブロックします。Auditモードでは、検知したアクティビティを監査ログに追加します。
ホストランタイムポリシーは、説明、スコープ、有効・無効、Enforceモード、コントロールをいつでも変更でき、即時に適用します。
また、ホストランタイムポリシーでは、よく使われるポリシー(Linux、Windows、PCIDSS、NISTなど)をデフォルトで用意しています。
ホストランタイムポリシーのコンポーネント
ホストランタイムポリシーは、以下の内容が含まれます。
-
アプリケーションスコープ
ポリシーが適用されるホストのセットを定義します。 -
ステータス
ポリシーが有効であるかを示します。 -
Enforcement モード
Auditモードでは、監査イベントをログに記録します。
Enforceモードでは、ポリシー違反のアクティビティ発生をブロックし、監査イベントをログに記録します。 -
コントロール
コントロール | 説明 |
---|---|
Block Cryptocurrency Mining | 暗号通貨マイニングに使用されることがわかっているDNS / IPアドレスと、ホストとの通信をブロックします。 |
Brute Force Login Detection | ブルートフォースによるログイン試行を識別し、監査イベントを作成します。一定時間内に複数回のログイン試行が失敗した場合に識別が行われ、試行の発信元IPアドレスなども考慮されます。 |
Bypass Scope | ランタイムポリシーの適用を受けないホストを定義します。 このコントロールはDefault Host Runtime Policyでのみ有効です。 |
DNS/IP Reputation | 悪評が知られている外部IPアドレスへのホストからの通信をブロックします。 |
File Block | 特定の名前のファイル・ディレクトリの読み取り、書き込み、実行をブロックします |
File Integrity Monitoring | ファイルやディレクトリの読み取り、書き込み、変更の操作を監視します。ワイルドカードを使って、1つ以上のファイル名やディレクトリ名を入力できます。また、ファイル名やディレクトリ名があらかじめ設定されている「プリセット」を1つ以上選択できます。後述の「File Integrity Monitoring」を参照してください。LinuxとWindowsのホストは、機能の異なるサブセットをサポートしています。 |
Forensics | OSユーザーのアクティビティや完全なコマンド引数を監査ログに含めます。以下のオプションが指定できます。 ・すべてのOSユーザーアクティビティの監査 ・完全なコマンド引数の監査 ・ホストへのログイン成功イベントの監査 ・ホストへのログイン失敗イベントの監査 ・ユーザーアカウント管理(ユーザー/グループの作成と削除)の監査 |
OS Users and Groups Allowed | 特定OS(Linux、Windows)のユーザーまたはグループに、ホストへの認証を許可し、それ以外のユーザーからの認証要求をブロックします。 |
OS Users and Groups Blocked | 特定OS(Linux、Windows)のユーザーまたはグループが、ホストに対して認証を行うことを防ぎ、それ以外のユーザーからの認証要求を許可します。 |
Real-time Malware Protection | マルウェアのスキャン中に除外される特定のファイル、ディレクトリ、プロセスを指定できます。Enforcementモードの選択に応じて、マルウェアの実行を制限・監視するためのアクションを、アラート・ブロック・削除から選択できます。 |
System Integrity Monitoring | 設定された操作に対して監査イベント(Integrity Monitoringタイプ)を生成しますが、操作をブロックすることはありません。 |
Windows Registry Monitoring | Windows レジストリのキーワード、値、パス属性に対する選択された操作を監視します。ワイルドカードを使用して、これらの用語を1つ以上入力できます。設定により、特定のプロセスやWindowsユーザーの活動に監視を限定できます。 監査イベント(Integrity Monitoringタイプ)を生成しますが、操作をブロックすることはありません。 |
Windows Registry Protection | このコントロールは、Windows Registry Monitoringと似ていますが、ユーザーやプロセスによるキー・値・パス属性の変更をブロックしWindows レジストリを保護します。 |
- File Integrity Monitoring
このコントロールをポリシーへ最初に追加すると、操作・監視対象パス・プリセットの3つのセクションのみが表示されます。モニタリングされたパス、プリセットのいずれかを設定すると、他のすべてのセクションが表示されます。特に明記されていない限り、すべての情報の指定は任意です。
セクション | 説明 |
---|---|
Operations | 操作の一部またはすべてを個別に設定して、監視・監査することができます。 ・作成、読み取り、変更、削除 ・ディレクトリ、ファイルのパーミッションに対するあらゆる変更 少なくとも、1つ以上の操作を選択する必要があります |
Monitored Paths | 監視対象のパス(ディレクトリもしくはファイル)を指定します。パス名にはワイルドカードが使用できます。*を使用しない場合は、指定されたディレクトリにのみ監視が適用されます。 |
Presets | プリセットを選択して、監視するディレクトリやファイルのセットを設定します。LinuxとWindowsのホストでは、それぞれ異なるプリセットが用意されています。例えば、システムのコアとなるファイル、システム設定ファイルなどが選択可能です。 |
Excluded Paths | 監視対象から除外する、ディレクトリやファイルを1つ以上入力します。それぞれ、「Monitored Paths」で指定したパスのサブセットである必要があります。これは「ホワイトリスト」の一形態です。 |
終わりに
今回は、AquaのFunctionおよびホストランタイムポリシーについて説明しました。次回は、Aquaのファイアウォールポリシーについて説明します。次回をお楽しみに。
Aqua に関する最新情報はこちらをご覧ください。