LDAPインジェクションとは何かご存知ですか?これは、サニタイズされていないユーザー入力を使用してインジェクションクエリを構築するアプリケーションを標的としたコードインジェクション技術です。LDAP(軽量ディレクトリアクセスプロトコル)は、ユーザー認証や組織データの取得など、ディレクトリ検索によく使用されます。攻撃者がLDAPメタ文字を含む特殊な入力を提供すると、ディレクトリクエリのロジックを変更して、データに不正にアクセスしたり、データを改ざんしたりすることが可能になります。つまり、LDAPインジェクションの脆弱性は、入力のサニタイズや検証を行わずに、ユーザーが制御する値から動的にフィルタが構築される場合に発生します。
仕組み:LDAPインジェクション攻撃のメカニズム #
LDAPインジェクション攻撃は、ユーザーが提供したデータがLDAPクエリに安全でない方法で組み込まれるときに発生します。 login フィルタ:
(&(cn=” + username + “)(userPassword=” + password + “))攻撃者が有効なユーザー名の代わりに「*」や終端文字シーケンスを送信すると、フィルタロジックはより広範な評価または常に真となる条件に崩壊し、認証を事実上回避します。これがまさにこのインジェクションの仕組みです。LDAPロジックを注入して意図した動作を妨害するのです。
つまり、LDAPインジェクションの脆弱性は、括弧、引用符、ワイルドカードなどの特殊文字を含む信頼できない入力によってクエリが構築され、クエリの意味が変わってしまうことに起因します。
さらに、これらの問題は、アプリケーションコードがユーザーデータを安全でない方法でLDAPクエリにコピーし、メタ文字を無効化しない場合に発生し、攻撃者がクエリロジックを中断または操作したり、不正なデータにアクセスしたり、実行フローを変更したりすることを可能にします。
LDAPインジェクション攻撃がなぜ問題となるのか? #
LDAPインジェクション攻撃は、認証を妨害したり、機密情報を漏洩させたり、ディレクトリ構造を変更したりする可能性があります。Impervaは、攻撃者が認証プロセスを侵害し、ユーザー名やパスワードを閲覧または変更したり、マルウェアをインストールしたり、権限を昇格させたりする可能性があり、その結果、データ漏洩、評判の低下、金銭的損失につながると指摘しています。
LDAPインジェクションの脆弱性は、特に相互接続されたサービスを通じて連鎖的に発生する可能性があります。 enterprise シングルサインオン(SSO)、認証、またはユーザーIDと権限の調整にLDAPを使用する環境。
既存のLDAPインジェクション脆弱性の兆候 #
サイバーセキュリティにおけるガバナンスとは、リーダーシップ、ポリシー、および主要な危険信号がどのように機能するかを指します。
- このコードは、ユーザー入力をLDAPフィルターに直接連結します。
- 入力値の検証またはエスケープ処理が不足している。
- 入力時に () * & | = などの特殊文字を制限なく使用できます。
- 予期しないクエリ結果、例えば、認証情報がなくても認証が成功する、あるいは最小限の入力で広範囲のユーザーリストが返される、といった場合。
ユーザー入力に基づくクエリが誤って構築されている場合、不正なデータ取得やロジックのバイパスを許してしまう可能性があります。
それらを軽減するにはどうすればよいでしょうか? #
LDAPインジェクションの脆弱性を軽減するには、以下の対策が必要です。
a. 入力検証/許可リスト
既知の安全な文字またはパターンのみを受け入れます。*、(、)、&、|、=などの制御文字は拒否またはサニタイズしてください。PortsWiggerは、LDAPメタ文字を含む入力をブロックするか、厳密な英数字パターンを適用することを推奨します。
b. エスケープ/エンコード
LDAP固有のエスケープ関数を使用します。DNコンテキストには識別名エスケープ、述語には検索フィルタエスケープを使用します。OWASPは詳細な 予防のための早見表(個別対応のガイダンス付き)
c. パラメータ化されたクエリ/安全なAPI
文字列連結によるフィルタの作成は避けてください。パラメータバインディングまたはフィルタ構築APIをサポートするLDAPライブラリ(例:UnboundID SDKのFilter.createANDFilter(…))を使用して、ユーザー入力が構文ではなくデータとして扱われるようにしてください。
d.最小特権の原則 (PoLP)
最小限のアクセス権限でLDAPをバインドします。インジェクションが発生した場合でも、攻撃者が実行できるアクションを制限します。Underscore PoLPと組み合わせると ゼロトラスト そして、影響を制限するための多国間枠組み協定(MFA)も締結した。
e. セキュアなフレームワーク/ライブラリ
入力値を自動的にエスケープまたはサニタイズし、生のクエリ構築を推奨しないフレームワークを使用してください。
f. コード分析ツール
.NETでは、CA3005分析を使用して、LDAPステートメントに到達する信頼できないHTTP入力を検出します。入力のサニタイズ、エスケープ、または許可リスト化によって修正します。
g. テスト(静的テスト、動的テスト、侵入テスト)
静的アプリセキュリティ(SAST)および動的(ダスト) 静止時と実行時の両方でLDAPインジェクションの脆弱性を検出するためのスキャン。
h. ログ記録、監視、アラート
異常なフィルタパターン、失敗した試行、または予期しないクエリ構造を検出します。Semperisは、Active Directoryを監視して、異常なLDAPクエリやメタデータ操作がないかを確認することを推奨します。
用語集概要表 #
| 契約期間 | 意味 |
|---|---|
| LDAPインジェクション | LDAPフィルタ内のサニタイズされていないユーザー入力を悪用するコードインジェクション技術。 |
| LDAPインジェクションとは何か | 信頼できない入力データを使用してLDAPクエリを構築することに起因する脆弱性。 |
| LDAPインジェクション攻撃 | 入力によってLDAPクエリロジックが変更されたり、アクセス権が取得されたりする実際の悪用。 |
| LDAPインジェクションの脆弱性 | このコードレベルの脆弱性により、LDAPインジェクション攻撃が可能となる。 |
なぜこれがDevSecOpsにおいて重要なのか? #
『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する DevSecOps チームLDAPインジェクションの脆弱性を防止することは、認証フローとディレクトリベースのアクセス制御を保護するために不可欠です。継続的インテグレーション pipelineセキュリティ対策には、安全でないクエリ構築に対する静的コードチェックと、フィルタ操作に対する動的テストを含める必要があります。セキュリティ管理者は、エスケープライブラリの使用、パラメータ化されたAPIの使用、最小権限の原則および入力検証ポリシーの遵守を徹底する必要があります。
DevSecOpsの強化 PipelineXygeniとの #
LDAPインジェクションとは何かを理解した今、現代のアプリケーションをそれらから保護するには、コードレベルの修正だけでは不十分であることがお分かりいただけたでしょう。DevSecOpsチームは、システム全体にわたってセキュリティを徹底する必要があります。 ソフトウェア開発ライフサイクル, コードの作成からビルド、デプロイまで。
のようなツール ザイゲニ 静的解析を統合することで、チームが注入リスクを早期に検出できるように支援します。 IaC スキャンとセキュリティポリシーの直接適用 CI/CD ワークフロー。Xygeniは、安全でないクエリの構築、依存関係のリスク、または設定ミスを継続的に監視することで、LDAPインジェクション攻撃が本番環境に到達する前に防止するのに役立ちます。
Xygeniのようなプラットフォームを導入することで、セキュリティと開発速度を整合させることができ、リアルタイムの可視性、自動化された制御、そして設計段階からセキュリティを考慮したエンジニアリングに合わせた修復ガイダンスを提供できます。
