このトピックでは、Security Center のアプリケーション保護機能に関するよくある質問について説明します。
アプリケーション保護と WAF の違い
アプリケーション保護は、ランタイムアプリケーション自己保護 (RASP) 技術を使用します。ランタイム内部からアプリケーションの動作を監視し、トラフィックソースに関係なく、境界防御をバイパスするゼロデイエクスプロイト、暗号化されたトラフィック、メモリ内 Webシェルなどの攻撃をブロックします。
Web Application Firewall (WAF) はネットワークレイヤーで動作し、トラフィックの特性に基づいて攻撃トラフィックをフィルタリングします。HTTP フラッド攻撃、クローラー攻撃、スキャン攻撃などのボリューム型の脅威がサーバーに到達する前に阻止することに優れています。
この 2つのツールは相互補完的です。多層防御を実現するために、これらを併用することを推奨します。WAF は境界でトラフィックをスクリーニングし、アプリケーション保護はそれを通過した攻撃を遮断します。
| アプリケーション保護 | WAF | |
|---|---|---|
| 焦点 | トラフィックソースに関わらないアプリケーションのセキュリティ | ネットワークレイヤーでのトラフィックフィルタリング |
| 一般的な保護範囲 | 一般的な Web の脆弱性:SQL インジェクション、リモートコード実行、ファイルインクルード、Webシェル | 一般的な Web の脆弱性:SQL インジェクション、リモートコード実行、ファイルインクルード、Webシェル |
| 専門的な保護範囲 | ゼロデイ脆弱性、複雑にエンコードまたは暗号化されたトラフィック、メモリ内 Webシェル、非 HTTP プロトコル、内部ネットワーク経由の水平展開 | DoS 攻撃 (HTTP フラッド、クローラー、スキャン攻撃)、アクセス制御、API セキュリティの問題 |
| 検出方法 | 攻撃を検出 | トラフィックパターンマッチング |
| デプロイメント | サーバーにデプロイされ、アプリケーションに挿入される | サーバーの手前のボーダーゲートウェイにデプロイされる。アプリケーションへの影響はない |
| パフォーマンス | サーバーリソースを消費する | WAF リソースを消費する。アプリケーションやオリジンサーバーへの影響はない |
| 脆弱性修正 | 仮想パッチ。脆弱性を悪用する実行コードを特定する | 仮想パッチ。脆弱性の悪用可能な特徴を報告する |
| ゼロデイ脆弱性対策 | デフォルトでサポート | 既知の悪用方法に基づくルールを使用して緩和する |
アプリケーション保護は内部ネットワークのサーバーで機能しますか?
はい。Security Center エージェントと RASP エージェントの両方をインストールした後、内部ネットワークサーバーはプロキシ接続を介して Security Center に接続できます。
内部ネットワークがインターネットにアクセスできず、Alibaba Cloud の virtual private cloud (VPC) への接続性もない場合、Security Center またはそのアプリケーション保護機能は使用できません。
使用制限
プロキシ接続は、コンテナ環境の Java アプリケーションのみをサポートします。
プロキシサーバーとして、インターネットアクセスまたは Alibaba Cloud VPC への接続が可能なサーバーが少なくとも 1台必要です。
プロキシ接続の設定
アプリケーション保護に接続する際は、[アクセス管理] パネルで [手動アクセス] > [コンテナの追加] に移動し、[カスタムインストール] を選択して適切なプロキシクラスターを選択し、RASP エージェントのインストールを完了します。
詳細な手順については、「アプリケーション保護の有効化」をご参照ください。

アプリケーション保護がサポートするアプリケーションの種類とランタイム
アプリケーション保護は、Java および PHP アプリケーションのみをサポートします。Python、Go、.NET アプリケーションはサポートされていません。各ランタイムは特定のバージョン要件も満たす必要があります。完全なリストについては、「アプリケーション保護の有効化」をご参照ください。
シャットダウンしたサーバープロセスはリソース統計に表示されるか
プロセスデータは 7日間保持され、自動的に消去されます。サーバーがシャットダウンする前にスキャンされた場合、収集されたプロセスデータは 7日間の保持期間が終了するまでリソース統計に残ります。シャットダウン後のスキャンでは、そのサーバーの新しいデータは収集されません。
アプリケーションが保護されていることの確認方法
Security Center コンソールにログインします。上部のナビゲーションバーで、管理するアセットのリージョンを選択します。Security Center コンソールにログインします。
左側のナビゲーションウィンドウで、[保護設定] > [アプリケーション保護] を選択します。
[アプリケーション保護] ページで、[アプリケーション設定] タブをクリックし、対象のアプリケーショングループの [オンラインインスタンス] 列の数値をクリックします。
表示されたパネルで、確認したいアプリケーションを見つけます。アプリケーションプロセスの PID がリストに表示されていれば、そのアプリケーションは保護されています。

アプリケーション保護はアプリケーションのパフォーマンスに影響するか
パフォーマンスへの影響は最小限です。テストによると、アプリケーション保護を有効にした後、サーバーの超過 CPU 使用率は 1% 未満に留まり、メモリ使用量は 50 MB 未満の増加、アプリケーションのレイテンシーは 1ミリ秒未満の増加です。
アプリケーション保護には、極端な負荷がかかった場合に自動的に保護を解除し、重要な操作への干渉を回避するソフトヒューズエスケープメカニズムも含まれています。詳細については、「アプリケーション保護の有効化」をご参照ください。
使用すべき保護モード
まず、[モニター] モード (デフォルト) から開始します。このモードでは、機能が攻撃を検出してログに記録しますが、ブロックは行わないため、検出内容を確認し、誤検知を除外する時間を確保できます。
アプリケーションがモニターモードで安定して実行された後、[ブロック] モードに切り替えます。ブロックモードでは、検出された攻撃がリアルタイムで遮断されます。
コンテナ化された Java アプリケーションにおける manager.key パラメーターの用途は何ですか?
起動コマンド内の manager.key パラメーターは、コンテナ化された Java アプリケーションをアプリケーション保護機能にリンクします。Security Center はこの関連付けを使用して、脆弱性が検出されたときに保護対象のアセットをマークします。このパラメーターがないと、Security Center はどのアセットがアプリケーション保護の対象であるかを識別できません。
コンテナ化された Java アプリケーションをアプリケーション保護に追加する際、manager.keyパラメーターを空にすることはできません。Java ホストアプリケーション (非コンテナ化) の場合、manager.keyはオプションです。ホストアプリケーションはアセットに直接関連付けられます。
「攻撃統計」ページにデータが表示されない理由
アプリケーションが保護対象として登録されているか確認します。アプリケーションがアプリケーション保護に追加されていない場合、攻撃データは収集されません。「アプリケーション保護の有効化」の説明に従って、アプリケーションプロセスを再度追加してください。
アプリケーション保護が何を攻撃としてカウントするかを理解します。悪意のある特徴を含むすべてのパケットにフラグを立てる従来のファイアウォールとは異なり、アプリケーション保護は、アプリケーションの外部防御を突破して内部で危険な操作を実行することに成功した攻撃のみを記録します。たとえば、Java アプリケーションに対する PHP インジェクションの試みは安全と見なされます。その環境ではエクスプロイトは成功しないためです。実際の攻撃は稀ですが、重大です。攻撃が現れた場合は、直ちに遮断またはパッチを適用してください。
脆弱性検出と脆弱なパスワードのベースラインチェックの違い
脆弱性検出は、アプリケーションの実行中にその動作とメモリ状態を分析することで、ランタイムのリスクを特定します。
脆弱なパスワードのベースラインチェックは、システム設定の静的スキャンです。国際的に合意されたベストプラクティス、等級保護コンプライアンス要件、および静的ファイル分析に基づくチェックをカバーします。
アプリケーションをアプリケーション保護に追加できなかった理由
一般的な原因は 2つあります:
サーバー上のウイルス対策ソフトウェア。ソフトウェアが RASP エージェントまたは Security Center エージェントをブロックしている可能性があります。確認するには、お使いのウイルス対策ソフトウェアのブロック結果を確認してください。
Linux の root パスワードの有効期限切れ。root ユーザーのパスワードの有効期限が切れている場合、エージェントのインストールプロセスを完了できません。root パスワードをリセットして、再試行してください。
ブロックされた脅威の特定方法
ビジネスログに AliCloudRaspSecurityException という名前のランタイム例外が表示された場合、アプリケーション保護が例外または潜在的なセキュリティ脅威を検出し、関連プロセスのアクセス試行をブロックしたことを意味します。正規のプロセスがブロックされるのを防ぐには、そのプロセスをホワイトリストに追加してください。詳細については、「ホワイトリストルールの作成」をご参照ください。