この Web サービス アーキテクチャの具体的なセキュリティ リスクは何ですか?

StackOverflow https://stackoverflow.com/questions/1595266

質問

昇進するには弾薬が必要です WS-セキュリティ 弊社の実稼働カスタマー サービス アプリケーションと直接対話する、外部で利用可能な一連の Web サービス用。私のビジョンは、IPassword プロバイダーを実装し、AD ストアで認証することです。上から下されたアーキテクチャの推奨事項は SSL で、ルーター上に IP フィルターを使用して、特定の IP アドレスのみが Web サービスを呼び出すことを許可します。アクセスは GUID キーを使用して許可されます。ログインやパスワードは必要ありません。

キーは、当社の Web サービスへのアクセスを許可された各パートナーに付与されます。それは私たちによって生成され、おそらく電子メールで送信されます。私が知っている限り、有効期限ポリシーはありません。

これは私には間違っていると感じますが、ここでは実際の認証は行われていないという私の主張を彼らは受け入れてくれません。このアーキテクチャには具体的にどのようなセキュリティ リスクがありますか?正確にどのような攻撃シナリオが考えられますか?また、システムを侵害することはどれほど簡単なのでしょうか?リスクを詳しく説明し、場合によってはアーキテクチャ チームにそれを説明することもできる必要があります。

役に立ちましたか?

解決

良い...ここではうまくいかないことがたくさんあります...

まず、SSL サーバー証明書は通常の盗聴から保護するだけであり、正しく行われた場合はサーバーの ID を保護します。クライアントが誰であるかは保証されません。(クライアント上のサーバー証明書に対して適切なセキュリティチェックを行っていると仮定しています)。

しかし、これではサーバーにはクライアントについて何も伝わりません。そのためには、クライアント証明書を割り当ててサーバー上で検証する必要もありますが、それでもこのソリューションは依然として脆弱です。 真ん中の男が攻撃する 正しく行われていない場合。

設定に戻ります。サーバー証明書の検証が正しく行われていない場合、誰かが盗聴するだけでなく、通信チャネル上の情報を挿入/変更する可能性があります (変更されていないことを確認するためにメッセージ自体に署名を実行していないため)。

ほとんどの機関が IP フィルターを備えているため、IP フィルターは非常に弱いです。 NAT または プロキシ 外部アクセス用の設定。したがって、同じノードを介して外部にアクセスする PC には同じ IP が表示されます。したがって、「なりすまし」は必要ありません...内部マシンのいずれかを侵害する必要があるだけです...まるで秘書のマシンのようです(笑)。そこからリクエストを行います。

IP スプーフィングが有効な攻撃であるかどうかはわかりませんが、この場合、攻撃者はクライアント マシンでサービス拒否を引き起こし、パケットを偽造してサーバーに接続しようとし、スプーフィングされたクライアントが応答できないことを利用して、最初の攻撃を開始します。接続を終了するパケット。

これはパッケージのシーケンス番号を推測することを意味しますが、現在ではこれは困難ですが、不可能ではありません。そこから、攻撃者は必要なメッセージを盲目的に注入できますが、この場合、接続はプレーンな HTML ではなく、キーなどの情報の交換を伴う ssl ストリームであるため、注入は盲目的に行われるため攻撃者には見えません (少なくとも同じサブネット内にあり、パケットを盗聴できる場合を除いて)...私はその可能性を疑います。

いずれかの方法...推奨される構成。

1-クライアントに検証を伴うサーバーSSL証明書。- サーバー上で検証されたクライアント SSL 証明書。- GUID トークンに加えて、メッセージの何らかのチェックサム。これは、セッションクライアントごとに毎回生成することをお勧めします。(この証明書を暗号化されたストア pkcs12 などに安全に配布することを忘れないでください。そうしないと、このアプローチは中間者攻撃の影響を受けやすくなります)

2- WS -Securityを使用してWebサービスソープメッセージを拡張し、クライアントおよびサーバーの証明書を使用してクライアントとサーバーの署名/象徴を使用し、タイムスタンプサービスを使用します。

接続を IP バインドすることはできます...でもその必要はないでしょう...そしてまだ弱いです。

余談ですが、IP スプーフィングは昔、下村に対してケビン・ミトニックによって使用されました。 1994...したがって、それは可能であり、非常に難しいことではありません。サーバーの OS バージョンによっては、プロセスのほとんどを自動化するツールがすでに存在すると思います。

他の人の意見を聞くのが大好きです。お役に立てれば。

他のヒント

あなたのGUID / SSL方式は穴があります。なりすましのIP住所がする機能が利用可能で、メールがGUIDキーで傍受された場合 - 。あなたが妥協している。

WS-Securityは、確立されたプロトコルと、それが学び、セキュリティ研究者や博士号によってで打たれていますという手段があります。これらは、セキュリティ対策を実装するときに信頼する人々です。自家製セキュリティはほとんど常にそれに重大な欠陥を持っているのに対します。

あなたはIPアドレスをチェックしている方法に応じて、それが可能である、これらは非常に簡単に詐称することができます:

http://en.wikipedia.org/wiki/IP_address_spoofingする

あなたが失う戦いをすることができる。

いいえセキュリティは万全ではありません - あなたはそれを構築する場合、誰かがそれを破ることができます。セキュリティのレベルは、あなたが手元に確保し、リソースているものに依存しています。提案された解決策は、多くのアプリケーションのための非常に合理的です。それはあなたのソリューションをハックするためのリソースを持っているハックするためのリソースを持っているいくつかのいずれか。それはおそらく、元をハックするのは難しいです。

他の問題は、リソースです。たぶん、OPSチームは、より高いセキュリティを扱うことができます。要するにでも最高の引数を使って、あなたが勝訴しないことがあります。

はかなり安全です。ルータレベルでIPアドレスを偽装することはかなり難しいですし、銀行のための一般的なセキュリティアプローチです。ルータでIPアドレスによってそれをロックダウンすることで、あなたがあなたのWebサービスにアクセスされる団体を知っているかなり確信しています。

これは、2つのファクタ認証方式のように聞こえるが、それは「気密」であることを言って、私が実装されようとしているGUIDキーと方法についての詳細を聞く必要があるだろう。誰もが同じキーを使用しようとしている、またはそれは、Webサービスにアクセスして、それぞれの人/アプリケーションごとに異なるのでしょうか?

は彼らのアプローチは、実際にはかなりの音です。 IPアドレスは、「ユーザ名」として機能し、GUIDは、伝統的なユーザ名/パスワードのモデルで「パスワード」を表しています。 IPアドレスは、本質的にISPによって検証されるため、スタックのそのレベルのIPアドレスは、なりすましに非常に困難です。誰かがあまり経験のためにDOSを引き起こすために上流にIPアドレスをスプーフィングすることは可能かもしれないが、実際にあなたのサービスや「ならず者」のクライアントの間で開くようにIPを偽装することは極めて困難です。

最も安全なアプローチは、ルータでのフィルタリングIPを使用して、2つを組み合わせて、すべてのSSLを介してユーザ名とパスワードの使用を強制することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top