web-dev-qa-db-ja.com

バーコードペイロード攻撃から身を守るにはどうすればよいですか?

最近、ペイロードを バーコード に挿入できるツールに出くわしました。このような攻撃から身を守るにはどうすればよいですか?

攻撃シナリオ

  • 攻撃者は脆弱なバーコードを印刷する/脆弱なバーコードを私に送信する
  • 脆弱なバーコードをスキャンし、ペイロードがシステムを攻撃します
  • 攻撃者はアクセスを取得します

可能な予防シナリオ

  • バーコードをスキャンしないでください-しかし、デパートや会社の保管エリア(バーコードのスキャンが重要な場所)の観点からは簡単ではありません

上記とは別に、この種の攻撃を防ぐために考えられる予防策はありますか?

コードを調べた後、それが何かを悪用したり攻撃したりすることになっていることはわかりません。その唯一の目的は、バーコードを使用してペイロードをエンコードすることです。他のすべてのルートがブロックされている可能性がある場合に、バーコードリーダーを使用してシステムにコードをインポートするのは良い方法です。システムの脆弱性を見つけたら、これらのバーコードのいずれかを使用してペイロードを「アップロード」できます。

そのため、防御すべきものは何もありません。それは、バーコードスキャナーに、本来あるべきこと、つまりバーコードをテキストに変換することを正確に実行させることです。

8
schroeder

これはSQLiのような攻撃と非常に似ており、修復方法は同じです。

  • バーコードを入力としてスキャンすることを許可する場合は常に、それを検証してスキャナー内とし、要件に一致する入力のみを許可します。

20桁のフィールドが必要な場合は、20桁のみを許可し、20の後にあるものはすべて取り除きます。8つの英数字が必要な場合は、その数字に制限します。

これはかつて問題でしたが、90年代前半でさえ、私たちはこれを解決しました。 (以前はTelxon、Symbolなどのスキャナーの多くの初期テストを行っていましたが、これはSQLiが実際に対処される前でした。5250および3270端末コードを含むさまざまなユースケースでも解決する必要がありました)-それらを取り除くシステムを攻撃する前に、悪用するように設計されているため、問題は完全に解消されます。

7
Rory Alsop

ほとんどのバーコードには、使用されているプロトコルに応じて、数字と英数字だけでなく、完全なASCII文字(特別な文字が含まれる))も含まれているため、バーコードが悪用される可能性があります。

バーコードスキャナーは基本的にキーボードエミュレーターであり、Code128(ASCII制御文字をサポートする)などのプロトコルをサポートしている場合、攻撃者は、読み取り時にターゲットコンピューターでシェルプロンプトを開いて、コマンドが送信されます。

または、Ctrl +コマンドはASCIIコードを介して送信でき、ホットキーをトリガーするために使用できます。ホットキーは、Ctrl +プレフィックスに登録されます。次に、OpenFile、SaveFileなどの共通ダイアログを起動します。攻撃者はこれらのホットキーを使用して、コンピューターのファイルシステムを参照したり、ブラウザーを起動したり、ターゲットプログラムを実行したりする可能性があります。

したがって、このタイプの攻撃から身を守りたい場合は、リーダーに標準文字のみを読み取らせ、すべてのASCIIスペシャルを処理/解釈から除外します。多くのスキャナーが複数のプロトコルをサポートしているため、数値と英数字のみでこの問題を解決します。

2
Overmind