タンパーデータ:Firefoxアドオン

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はユーザーの入力や操作を可能にするすべてのフィールドを表示します。 ハッカーは、フィールドを「代替値」に変更し、そのデータをサーバーに送信して、それがどのように反応するかを確認することができます。

なぜこれはアプリケーションに危険なのでしょうか?

ハッカーがオンラインショッピングサイトにアクセスし、仮想ショッピングカートにアイテムを追加しているとします。 ショッピングカートを構築したウェブアプリケーション開発者は、Quantity = "1"のようなユーザからの値を受け入れるようにカートをコード化し、量に関する所定の選択肢を含むドロップダウンボックスにユーザインターフェース要素を制限した。

ハッカーは不正行為データを使用して、ユーザーが「1,2,3,4、および5」などの値のセットから選択することを許可するドロップダウンボックスの制限をバイパスできます。不正行為データを使用すると、ハッカーは「-1」とか「.000001」という別の値を入力してみてください。

開発者が入力検証ルーチンを適切にコーディングしていない場合、この "-1"または ".000001"の値は、アイテムのコスト(すなわち、価格×数量)を計算するために使用される式に渡される可能性があります。 これにより、エラーチェックの進行状況や、開発者がクライアント側からのデータにどの程度信頼しているかによって予期しない結果が生じる可能性があります。 ショッピングカートのコーディングが不十分な場合、ハッカーは意図せぬ巨額の割引、購入していない製品の払い戻し、店舗のクレジット、または他に何を知っているかを知ることになります。

Tamper Dataを使用したWebアプリケーションの悪用の可能性は無限です。 私がソフトウェア開発者であれば、Tamper Dataのようなツールがそこにあることを知っているだけで、夜に私を守ることができます。

裏返して、Tamper Dataは、セキュリティを意識したアプリケーション開発者が使用する優れたツールです。そのため、アプリケーションがクライアント側のデータ操作攻撃にどのように応答するかを確認できます。

開発者は、ユースケースを作成して、ユーザーがソフトウェアを使用して目標を達成する方法に焦点を当てることがよくあります。 残念なことに、彼らはしばしば悪い人の要因を無視します。 アプリ開発者は、悪意のあるユーザーの帽子をかぶせて、不正行為データなどのツールを使用してハッカーを説明するための誤用のケースを作成する必要があります。

改ざんデータは、トランザクションやサーバー側のプロセスに影響を与える前に、クライアント側の入力が検証され、検証されるように、セキュリティテストの一環として行う必要があります。 開発者がTamper Dataのようなツールを使ってアプリケーションが攻撃にどのように反応するかを見るのに積極的な役割を果たさなければ、何を期待するのか分からず、ハッカーだけの60インチプラズマテレビ欠陥のあるショッピングカートを使って99セントで買った。

Firefoxの改ざんデータアドオンの詳細については、改ざんデータFirefoxアドオンページを参照してください。