RFIDへの攻撃

RFIDテクノロジーについて少し





RFID(Radio Frequency IDentification)は、無線信号を使用してデータを読み書きする自動識別技術です。 データは、いわゆるRFIDタグに保存されます。 RFIDシステムは、リーダーとタグで構成されています。



RFIDタグは、動作周波数、メモリタイプ、および電源によって分類されます。 リーダーは固定式でモバイルです。



RFIDテクノロジーで使用される攻撃の種類




RFIDに関する興味深い記事を読むと、攻撃の例が不快になります。 以下は、使用される攻撃の小さなリストです。







ドス攻撃




オーストラリアの大学の科学者は、第1世代のRFIDはDos攻撃を受けやすいと主張しています。 一番下の行は、この世代のチップがチャネルに分割された902-938 MHzの範囲を使用することです。 スキャナーは1つのチャンネルから別のチャンネルに切り替えることができ、チップはその受動性により範囲を変更できません。 この範囲は、簡単な無線送信機を使用して1 mの距離からdrれることができると主張されています。 これに関して、Dos攻撃との比較的抽象的な比較が与えられます。



RFID Zapper




次の攻撃は、マークの単純な破壊です。 Chaosランクの2人の男は、電子レンジで短時間チップを見つけることが、タグを破壊する最も効果的な方法であると結論付けました。 この点で、RFID-Zapperデバイスが開発されました。 基礎として石鹸カメラを使用しました。 いくつかの更新の後、デバイスは、パッシブタグを殺す強力な電磁場を作成することを学びました。



クローニング




Jonathan Westhuesは、タグのクローンを作成できるデバイスを作成した学生です。 デバイスはproxmarkと呼ばれます。 それはポケットに簡単に収まり、かなり近い距離でタグをクローン化できます。



RFIDタグメモリの内容のオーバーライド




Defconハッカー会議の最後に、ドイツの情報セクションの専門家であるLukas Grunwaldは、電子パスポートのコンテンツを他のRFIDタグに簡単に転送できる方法を示しました。 同時に、ルーカスは、数年前に同僚のボリス・ウルフと共同で開発したRFDumpプログラムを使用しました。このプログラムは、RFIDタグデータの読み取り、編集、書き込み(可能な場合)が可能です。 このプログラムの最初のバージョンは単純なperlスクリプトでしたが、現在ではRFDumpはGPLライセンスの下で配布される便利なツールです。 これまでのところ、Linuxバージョンのみが存在します。 プログラムを機能させるには、ACGマルチタグリーダーなどが必要です。 Grunwaldは、時々ソフトウェアを調整します。 たとえば、ラベルで読み取りカウンター(Cookie関数)を使用できるようになりました。ブルートフォースまたは辞書攻撃を使用してラベルデータの暗号化を削除する機能を導入するとともに、「デフォルト」で設定されたキーをチェックする予定です。



プログラムを作成した後、ルーカスとボリスは、さまざまなRFIDシステムをハッキングする可能性を積極的に研究し始めました。 まず、地元の大学のカフェのRFIDシステムを調査しました。このシステムでは、クライアントのアカウントの金額がカードに直接保存されていました。 食べ物は彼らのために無料になりました:)。 さらに-さらに:彼らは部屋に入るために近接カードが使用されたホテルやホテルに滞在しました。 興味深い事実:調査した10のRFIDシステムはいずれも暗号化されておらず、2〜3枚のカードを調べた後、Grunwaldはドアを開くマスターカードを作成できました。 ただし、暗号化されたシステムは非常に簡単に回避できます。キーは単純な検索で選択されたか、メーカーによってデフォルトで設定されました。 スーパーマーケットシステムも脆弱であり、バーコードの代替としてRFIDを使用し始めました。 ハッカーは、ハンドヘルドコンピューターの助けを借りて、高価な商品のラベルをより安価なものに変更し、現金を「節約」することができました。 Grunwaldによると、彼が調査したすべてのRFIDシステムの3/4が何らかの形で脆弱であることが判明しました。



RFIDタグを介した攻撃




実際、タグを編集することにより、コンピューターにアクセスして、さまざまな種類の攻撃を行うことができます。 RFIDタグの脆弱性:SQLインジェクション、Webインターフェース、悪意のあるコードを導入する可能性、およびバッファオーバーフローは除外されません。



たとえば、RFIDシステムでは、128バイトのメモリを持つタグのみが使用されます。 タグのコンテンツを処理するアプリケーションを作成したプログラマーは、このコンテンツの長さをチェックするのが面倒です。 その結果、bufferなハッカーが128バイトを超えるメモリを搭載したタグをシステムに挿入し、そこにシェルコードを実装したため、バッファオーバーフローが発生する可能性があります。



実際の攻撃の例





RFIDハッキングから発生する可能性のある問題の種類を明確にするには、実際の攻撃シナリオを検討してください。



「ジョーカー」はスーパーに行き、そこでバスケットの商品をスキャンします。 店舗の製品には、バーコードではなくRFIDタグが装備されています。 多くのスーパーマーケットでは、スキャンがはるかに高速であるため、RFIDシステムの導入を計画しています。 ジョーカーは、チョコレートペーストなどの製品を選択してスキャンし、レジに行って代金を支払います。 家に着くと、彼はRFIDタグを削除および破壊します(RFID-Zapper句で説明されている方法を使用してタグを破壊できます)。 次に、空のRFIDタグを取得し、コンピューターにエクスプロイトを書き込みます。コンピューターは後でタグにアタッチします。 感染したタグは、チョコレートペーストに添付され、店舗に運ばれます。 「ジョーカー」が再びそれを購入し、キャッシャーがスキャンし、この悲しい瞬間にスーパーマーケットのデータベース全体が感染します。



-「ジョーカー」のゲームは続きます。 私たちのヒーローには、皮下IDタグを持つ猫がいます。「ジョーカー」は、市販の機器を使用して何らかの悪用に書き換えることができます。 次に、彼は猫が絶えず食べ物を求めていると不平を言って獣医に行きます。 獣医がスキャンすると、前のストーリーと同じことが起こります-データベースが感染し、このアクションが混乱を招きます。



-そして最悪の部分。 空港では、手荷物に取り付けるRFIDタグの導入も計画しています。 これは、RFIDタグが手荷物バーコードよりも長い距離で読み取れるためです。 行動の原則は同じです-怒っている旅行者には感染したラベルが付いており、スキャンされます。 結果だけがはるかに危険です-世界中の何百もの空港が感染する可能性があります。



多くの企業は現在、自社のソフトウェアがこの種の攻撃を表示すると主張しています。



保護





一般的なヒント

-多くの企業は、新しいソフトウェアを作成するときに、サードパーティのプログラマーが開発者によって許可されたバグを見つけるのに役立つようにコードを公開しています。 RFIDソフトウェアでも同じことを行うことをお勧めします。



-不要な機能を削除します。



データベース攻撃を阻止します。




SQL-インジェクションタイプの攻撃を回避するには、SQLクエリによって送信されたデータの徹底的なチェックを実行する必要があります。 ORMライブラリの概念もあります。これは、ベースとプログラムの間の仲介です。 一部のデータベースには、攻撃の可能性を制限する機能があります。 たとえば、OracleとMySQLはどちらもAPI呼び出し中に1つの実行リクエストのみを許可しますが、MySQLの新しいバージョンではプログラマーは複数のリクエストを含めることができます。



クライアントスクリプトは、適切なスクリプト処理を使用して防止できます。 Web開発で使用される言語は通常、これを行うことができる機能を提供します。 PHPは、独自の「マジッククォート」を使用して、行ごとにこれを自動的に実行できます。 スクリプト言語が不要な場合は、スクリプト言語を無効にすると、その乱用の可能性を回避できます。 SSI注入は、適切な治療を使用することでも回避できます。 または、SSIを無効にします。



バッファのオーバーフローは、バッファの境界を適切にチェックすることでも回避できます。 ValgrindやElectric Fenceなどのツール

確認に役立ちます。 もちろん、これらのチェックを実行するプログラミング言語を使用する方がはるかに良いでしょう。 そのような言語の1つがJavaです。



All Articles