5

Java 開発者として、Web プロジェクトに参加する予定です。そのため、Web セキュリティのさまざまな側面について情報を得ようとしています。

今、私は DoS 攻撃の主題に到達し、Java 開発者として何ができるか、何をすべきかを理解しようとしています。あるいは、システム管理者の仕事かもしれません。

最初に頭に浮かんだのは、1 つの要求に多くの時間とリソースがかからないように機能を実装することです。たとえば、処理されるデータの量にいくつかの制限を設定します。しかし、これがすべての場合に当てはまるかどうかはわかりません。

リクエストが多いのでDoSに気をつけたほうがいいですか?

アドバイスをいただければ幸いです。よろしくお願いします!

4

3 に答える 3

4

まず、DoS 攻撃を防ぐためにできることは何もありません。

あなたにできることは、コードを分かりやすく (開発者)、アーキテクチャを堅牢にする (システム管理者) ことだけです。それは共同の努力です。

開発者は、DoS 攻撃だけでなく、仕事の一環としてリソースの使用を最小限に抑えるように努める必要があります。

開発者はキャッシュを使用してデータベースを保護する必要があります。すべてのリクエストで国のリストを参照する必要がある場合、データベースからそのリストを毎回リクエストするのは良い方法ではありません。

開発者は、不正なリクエストができるだけ早く失敗するようにする必要があります。例えば。口座番号が実際に存在することを確認するまでは、Countries リストを参照しないでください。

開発者は、セッションをメモリに保持するのではなく、各リクエストを個別に処理する REST などのアプローチを採用する必要があります。これにより、攻撃中にメモリ使用量が急上昇するのを防ぐことができます。メモリの問題やネットワークのフラッディングは避けたいものです。

開発者は、アプリケーションをスケーラブルにする必要があります。繰り返しますが、REST はここで役立ちます。なぜなら、メモリに何かを保存することに縛られていないからです。アプリケーションの 10 個のインスタンスを一度に実行し、それぞれがリクエストのサブセットを処理できる場合、DoS 攻撃にさらされる時間が長くなります (いずれにせよ、ユーザーによりスムーズな Web サイト エクスペリエンスが提供される可能性があります)。

システム管理者は、このスケーラビリティを管理するために、負荷分散、フェイルオーバーなどのフレームワークを提供する必要があります。また、インスタンスのハードウェアも管理します。また、必要に応じてインスタンスを自動的に追加するオプションを使用することもできます。つまり、サーバーの自動作成とデプロイが重要になります。物理ボックスではなく VM を使用すると、これに役立ちます。

システム管理者は、ファイアウォールとプロキシを設定して、攻撃が発生したときに、REAL トラフィックの通過を維持し、攻撃トラフィックを阻止できるようにすることができます。疑わしい IP 範囲でトラフィックをフィルタリングしたり、「疑わしい」リクエストをブロックしたり、トラフィック レベルを穏やかなフローに調整したりできます。

全体として、DoS は単なる「大量のトラフィック」と見なすことができます。アプリケーション コードとアーキテクチャが「通常のユーザー」からのトラフィックの増加に対応できない場合は、DoS 攻撃に関係なく、どうせ運命づけられています。Facebook が DoS の脅威にさらされたとき、誰かが「Facebook にとっては毎日が DDoS 攻撃です...」と指摘したことを覚えています。しかし、それは対処できるように開発され、構造化されています。

于 2013-02-20T14:18:40.230 に答える
3

通常、DoS 攻撃は IT 部門の関心事です。Web アプリケーションを開発している場合、通常はアプリケーション コンテナー (Tomcat、Rails など) にリクエストを転送するフロント コントローラー (Apache、nginx など) の背後にあります。フロントコントローラーは通常/常にこの問題に対処するロジックを持っています

あなたがアプリケーション開発者である場合は、XSS 攻撃 ( http://en.wikipedia.org/wiki/Cross-site_scripting ) に専念してください。これは完全にアプリケーション開発者の責任の範囲内です。

于 2013-02-20T14:05:30.163 に答える
2

これは主にシステム管理者の懸念事項であると言えますが、それは開発者がそれを回避するための措置を講じるべきではないという意味ではありません。

DoS 攻撃は通常、実際のリクエストを処理できないようにシステムをダウンさせること (サービス拒否) であるため、ウィキペディアは DoS 防止について次のように述べています。

通常、DoS 攻撃に対する防御には、攻撃検出、トラフィック分類、および対応ツールを組み合わせて使用​​する必要があり、不正と識別されたトラフィックをブロックし、正当と識別されたトラフィックを許可することを目的としています。

私の意見では、これらはファイアウォール、ルーター、スイッチなどを構成する必要があるため、sysadmin タスクです。

于 2013-02-20T14:06:06.613 に答える