Webアプリケーション開発者は、ほとんどのユーザーがルールに従ってアプリケーションを使用しようとしていると信じていますが、ユーザー(またはハッカー)がルールを曲げるのはどうですか?ユーザーが気の利いたWebインターフェイスをスキップし、ブラウザの制約を受けずにボンネットの下で混乱し始めるとどうなるでしょうか?
Firefoxについて
Firefoxは、プラグインに優しい設計のため、ほとんどのハッカーにとって最適なブラウザです。 Firefox用の最も一般的なハッカーツールの1つは、Tamper Dataというアドオンです。タンパーデータは、非常に複雑なツールではなく、ユーザーと閲覧しているWebサイトまたはWebアプリケーションの間に自分自身を挿入する単なるプロキシです。
Tamper Dataは、ハッカーがカーテンをはがして、舞台裏で起こっているHTTPの「魔法」をすべて見て混乱させる。これらのGETとPOSTはすべて、ブラウザに表示されるユーザーインターフェイスによって課せられた制約なしに操作できます。
何が好きですか?
だから、なぜTamper Dataのようなハッカーが、そしてなぜWebアプリケーション開発者がそれを気にしなければならないのですか?主な理由は、人がクライアントとサーバーの間でデータをやりとりすることを許可するということです(したがってTamper Dataという名前)。 Tamper Dataが起動され、FirefoxでWebアプリケーションやWebサイトが起動されると、Tamper Dataはユーザーの入力や操作を可能にするすべてのフィールドを表示します。ハッカーは、フィールドを「代替値」に変更し、そのデータをサーバーに送信して、それがどのように反応するかを確認することができます。
なぜこれはアプリケーションに危険なのでしょうか?
ハッカーがオンラインショッピングサイトにアクセスし、仮想ショッピングカートにアイテムを追加しているとします。ショッピングカートを構築したWebアプリケーション開発者は、カートなどのユーザーからの価値を受け入れるようにカートをコーディングしている可能性があります。 数量= "1" 量に関する所定の選択肢を含むドロップダウンボックスにユーザインタフェース要素を制限する。
ハッカーは改ざんデータを使用して、ユーザーが1,2,3,4,5などの値のセットから選択できるようにするドロップダウンボックスの制限をバイパスできます。改ざんデータを使用すると、ハッカーは「-1」や「.000001」などの異なる値を入力します。
開発者が入力検証ルーチンを適切にコーディングしていない場合、この「-1」または「.000001」の値は、アイテムのコストを計算するために使用される式に渡される可能性があります(たとえば、価格x数量)。これにより、エラーチェックの進行状況や、開発者がクライアント側からのデータにどの程度信頼しているかによって予期しない結果が生じる可能性があります。ショッピングカートのコーディングが不十分な場合、ハッカーは意図せぬ巨額の割引、購入していない製品の払い戻し、店舗のクレジット、または他に何を知っているかを知ることになります。
Tamper Dataを使用したWebアプリケーションの悪用の可能性は無限です。私がソフトウェア開発者であれば、Tamper Dataのようなツールがそこにあることを知っているだけで、夜に私を守ることができます。
裏返して、Tamper Dataは、セキュリティを意識したアプリケーション開発者が使用する優れたツールです。そのため、アプリケーションがクライアント側のデータ操作攻撃にどのように応答するかを確認できます。
開発者は、ユーザーがソフトウェアを使用して目標を達成する方法に焦点を当てるために、「ユースケース」を作成することがよくあります。残念なことに、彼らはしばしば悪い人の要因を無視します。アプリ開発者は、悪意のあるユーザーの帽子をかぶせて、Tamper Dataなどのツールを使用してハッカーを説明するために「誤用ケース」を作成する必要があります。
改ざんデータは、トランザクションやサーバー側のプロセスに影響を与える前に、クライアント側の入力が検証され、検証されるように、セキュリティテストの一環として行う必要があります。開発者がTamper Dataのようなツールを使用してアプリケーションが攻撃に対してどのように反応するかを確認することに積極的な役割を果たすことができなければ、何を期待するのかわからなくなり、ハッカーが購入した60 "プラズマテレビ彼らの不良ショッピングカートを使用して99セント。