TLDR:
ソフトウェア・ベンダーが知らない脆弱性を悪用する0-day攻撃は、重大なサイバー脅威となっている。従来のウェブ・アプリケーション・ファイアウォール(WAF)は、こうした攻撃を防ぐには不十分な場合が多く、頻繁なパッチ適用が必要でした。ランタイム・アプリケーション・セルフ・プロテクション(RASP)は、文書化されたルールに頼らず、ネイティブの統合機能を通じてアプリケーションの動作をアクティブに監視するという異なるアプローチをとり、0-デイ攻撃に対する防御を強化します。
NodeJS 向けのAikido Zen を構築した目的は、開発者が自分のアプリに後付けできるようにし、SQL インジェクション、シェル・インジェクション、パス・トラバーサル、SSRF などの一般的なクラスのインジェクション攻撃からデフォルトで保護することでした。開発者は自分のコードのミスから保護されるだけでなく、使用しているライブラリの未知の欠陥からも保護されなければなりません。
その有効性を評価するため、Zen 多数の CVE に対して評価しました。このホワイトペーパーでは、アプローチ、有効性の評価、トレードオフと限界について説明します。このホワイトペーパーでは、17 件の脆弱性を特定し、そのうち 11 件をZen がブロックしました。
はじめに
WAFは、「ゼロデイ攻撃」のウィンドウ(下図)の間に0デイをキャッチするために、運と繰り返し発生するパターンの組み合わせに依存していたため、WAFは常に0デイに対する最後の望みでした。脆弱性が公開された後(t0)にのみ、WAFのルールを更新して新しい攻撃を阻止することができる。

WAFは、インバウンドの接続データ(ヘッダー、ボディ、...)がアプリケーションに到達する前に、そのデータを調べます。不審なパターン(SQLインジェクション、パストラバーサル)がないかデータをスキャンし、不審なデータをブロックまたは削除します。効果的ではありますが、System Weaknessの調査に見られるように、多くの誤検知を生み出す傾向があります。

もし1万人の顧客がいたとしても、最適なソリューションはそのうちの56人をブロックする可能性がある。
Aikido Zen は、ウェブ・アプリケーション・セキュリティに対して根本的に異なるアプローチを取ります。シグネチャや既知のパターンだけに頼るのではなく、より深いアプリケーション・レベルでの攻撃行動の理解と軽減に重点を置いています。
Aikido Zen 的アプローチ
Aikido Zen 、重要なリソースへのアクセスや操作を試みる時点で悪意のある活動を監視し、遮断することに重点を置き、基礎となるシステムと相互作用する時のみ攻撃を遮断する戦略を採用することで、誤検知を大幅に減らすことができます。
これは、基礎となる環境とのさまざまなタイプの相互作用を精査するシステムを実装することによって達成される。これには以下が含まれる:
- データベースとの相互作用:SQLとNoSQLの両方のデータベース・ライブラリへの呼び出しを監視することで、不正なクエリ、データ流出の試み、またはインジェクション攻撃を検出することができます。これらのデータベース呼び出しの内容と構造を分析することで、悪意のあるアクティビティを特定し、被害を引き起こす前にブロックすることができます。
- 外部通話:HTTP、HTTPS、またはその他のプロトコルを介して行われる外部コールを監視することで、コマンド・アンド・コントロール・サーバーとの通信、マルウェアのダウンロード、データの流出などの試みを明らかにすることができます。これらの通話の内容と宛先を検査することで、悪意のあるトラフィックを特定し、ブロックすることができます。
- ファイルシステムへのアクセスとシェル実行ファイルシステムへのアクセスを監視することで、機密ファイルの読み取り、書き込み、変更、または悪意のあるコードの実行を検出することができます。これらのアクセスに関わるファイルパス、パーミッション、操作を分析することで、不正な活動を特定し、ブロックすることができます。
- サーバーサイドリクエストフォージェリ(SSRF)の試み:SSRF 攻撃は、攻撃者がサーバーの信頼性を利用して内部リソースにアクセスしたり、外部サービスとのやり取りを代行したりすることで、壊滅的な被害をもたらす可能性があります。Zen は、サーバーから発信される内部リクエストの宛先と性質を詳細に監視することで、SSRF 攻撃をブロックできます。
Zen アプローチでは、基盤となるシステムとの相互作用の重要なポイントに焦点を当てることで、攻撃をより正確かつ効果的に検出してブロックすることが可能になるとともに、正当な活動を妨害する誤検出の数を最小限に抑えることができます。この戦略はまた、攻撃の性質と標的に関する貴重な洞察を提供し、全体的なセキュリティ態勢の改善に役立てることができます。
リサーチ
継続的な取り組みとして、Aikido Zen チームは最近発見された脆弱性に対するテストを実施し、Aikido Zen有効性を測定しています。チームは新しい 0 日を特定し、再現可能なテスト環境を構築し、ペイロードのインジェクションを成功させて脆弱性を検証し、その後Aikido Zen インストールして攻撃がブロックされていることを確認します。
この論文のために、チームは17の脆弱性を特定し、そのうち11がZen ブロックされ、6が無数の理由でブロックされなかった。
私たちの調査結果は以下に掲載されており、再現に必要なテスト環境、エクスプロイト、リソースはすべてオープンソース化されています。
ブロック
ブロックされていない
Aikido 継続的に研究を行い、新しいフレームワークのサポートと強化されたアルゴリズムにより、Aikido Zenゼロデイ保護機能を拡張している。
核となる原則は、継続的な保護においてパフォーマンスへの影響を最小限(5%以下)に抑えることです。このため、特定のリソース集約的な保護アルゴリズム(リクエスト時間が2倍から10倍に増加する可能性がある)を直ちに実装することはできませんが、代替の効率的なアプローチを積極的に開発しています。
Aikido Zen 、コードスキャン、APIテスト、その他の堅牢なセキュリティ機能など、Aikido包括的なリアクティブ・コンポーネントを補完する、*追加*の保護レイヤーであると考えてください。
結論
Aikido Zen 、ウェブ・アプリケーション・セキュリティにおける大きなブレークスルーです。Aikido Zenは、ゼロデイ攻撃に対する強力な防御を提供します。攻撃行動に焦点を当て、最先端のテクノロジーを活用することで、常時パッチを適用する必要はありません。Aikido Zen 、脅威の状況が変化する中で、Webアプリケーションの継続的なセキュリティを確保するための潜在的なソリューションを提供します。