Thunderboltポート経由で本来行えないはずのデータの読み取りなどが行える脆弱性が見つかる 64
ストーリー by hylom
アイデアとしては分かるが実際にやれるとは 部門より
アイデアとしては分かるが実際にやれるとは 部門より
Thunderboltではハードウェア同士がソフトウェアを介さずに直接データ転送を行うDMAを使ったデータ転送が可能だが、Thunderbolt経由で接続された機器からDMAを使ってシステムメモリを直接読み書きできてしまうという脆弱性が見つかったことが報じられている。これを悪用し、意図的にデータを盗んだり改変するようなThunderbolt接続のハードウェアを作ることができるようだ(itnews、GIGAZINE、Slashdot)。
この問題は「Thunderclap」と呼ばれている。DMAによるデータ転送を行う場合、通常は許可されたアドレスへのデータ転送以外は行えないよう制限がかけられる。しかし、多くのOSでこの制限をバイパスしてDMAアクセスを可能にする脆弱性が存在するという。
この問題を指摘した研究者らはFPGAを使い、Thunderbolt経由でPCに接続して攻撃を行うデバイスを実際に作成、さまざまなOSで検証を行った。その結果、WindowsやmaOS、Linux、FreeBSD、PC BSDなどでデータの読み取りといった悪意のある操作を実行できたという。
USB C端子にも気をつけろ (スコア:5, 参考になる)
(論文3ページ目左側)
・悪意あるPCIeデバイスはこの脆弱性を使って攻撃できるよ
・Thunderboltは外部デバイスをPCIeで接続するものなので、同じ攻撃ができるよ
・USB Type-Cは、AlternateモードでThunderbolt 3の通信を流す端末もあるよ
つまりUSB C端子しかない端末でも油断できないってことだね。
# 後の章には「ユーザーはデバイスの物理的な形状に騙されやすい」「Windowsは新規デバイスに警告を出すがユーザーはプロンプト慣れしてしまう」「悪意ある充電ステーションが出てくるかも」とかの懸念も書いてある。
Re:USB C端子にも気をつけろ (スコア:3)
外見上の「Thunderbolt端子」というのはありません。USB Type-C(TB3)またはMini DisplayPort(TB1, TB2)です。
USBやDPとホットプラグ可能なPCIeをひとつのポートで提供するためだけの規格なので。
Re: USB C端子にも気をつけろ (スコア:1)
昔からのUSBには充電だけ可能でわざと通信を出来なくしたケーブルが売ってたけど、USB-Cにはそういうのないのかな。
片方が旧来のAで、片方がCと言うケーブル(つまりPDには対応しない)ではある様だったが、PDに対応したものでは見当たらない。
USB-PDでは通信してネゴするらしいから、無理なのだろうか。
Re: (スコア:0)
今の時代に「データ通信は行わせたくない、充電だけ行わせたい」なんて言ったら「USB充電器買え」で終わるからでしょ
Re: (スコア:0)
ていうかUSB規格内のC-Cケーブルですら6種類あってわかんねーとか言われてるのにこれ以上増やそうとするな
Re: (スコア:0)
いや買うとか買わないとかじゃなくて、悪意のある充電ステーション対策ってことよ。
最近、AC電源はないけど、USB電源はとれる施設とか高速バスとか結構ある。そう言う所で使うの。
Re: Re: USB C端子にも気をつけろ (スコア:1)
端子から100vが出てくるような悪意は想定しないの?
Re: Re: USB C端子にも気をつけろ (スコア:1)
無接触充電器を接続し、その上にスマホを乗せるんだ。
充電器には盗まれるようなデータはないし、
もし高電圧等がかかっても、充電器が壊れるだけで済む。
Re: (スコア:0)
別会社製造のモバイルバッテリーを二つ以上経由すればそこそこ安全じゃないかな
Re: Re: USB C端子にも気をつけろ (スコア:1)
「充電中は給電できないモバイルバッテリー」って結構ありますし、
下手に頑張って「充電/給電が同時に可能な機種」探すよりも、
・充電ステーションはモバイルバッテリーの充電だけに使う
のが簡単でいいんじゃないかな。
Re: Re: USB C端子にも気をつけろ (スコア:2)
「この脆弱性を持つ〇〇社製USBモバイルバッテリーSoCは通販サイト売り上げ上位の75%で採用される上に低価格帯アクセス端末やコンシューマ向けロボットでも採用が進み……」
Re: (スコア:0)
USB PDとしてバッテリ系は定義があるけど、どの道相手とプログラマブルな通信して
電力の調整とかは必要だからなあ
とはいえ、データ通信は殺せるので、変な穴がなけりゃ、街中で接続して給電は安全になった、かなあ?
# USB 2.0の頃の枠組で、街中接続はちょっとやばいから
# 3.0+Type-C+PDな枠組なら、ロールと電源ソースの制御で接続の選択でるし
## Type-Cは専用の制御線(CC)で、というい意味で)
Re: (スコア:0)
通信できなくしてるのは規格違反の外道ケーブルなんだよ
それがまずいからUSB-PDって規格を作ったの
脆弱性の名称 (スコア:4, 参考になる)
GIGAZINEやSlashdotでは脆弱性の名称を"Thunderclap"としているけど、それらが参照しているitnewsや大元のpdfを見ると、"Thunderclap"はあくまでも脆弱性の確認に使えるデバイス(プラットフォーム)の名前であり、脆弱性の名称じゃ無いっぽい。
参考 itnewsより: "To explore if and how the IOMMU is used, the researchers built an open source field programmable gate array (FPGA) platform they called Thunderclap."
英語圏のニュースでも間違えた理由は、大元pdfのタイトルが良くないせいだろうなあ("Thunderclap: Exploring Vulnerabilities in Operating System IOMMU Protection via DMA from Untrustworthy Peripherals")
作成者の意図としてはThunderclapの機能を一行で説明したつもりなんだろうけど、これ予備知識が無いとThunderclapという未知の脆弱性の内容を一行で説明しているようにしか読めないw
IOMMUで対応可能 (スコア:1)
この脆弱性は昔から指摘されているもので基本的にはIOMMUで対策可能です.
IOMMUは,Intelだとvt-d,AMDだとAMD-Viなどと呼ばれているものです.
https://ja.wikipedia.org/wiki/IOMMU [wikipedia.org]
IOMMUは,要はメモリへのアドレス変換を行う装置で,メモリへのアクセス制限をかけることができます.
このIOMMUを適切に使えばThunderclapの攻撃も防ぐことができます.
ただIOMMUは無効になっている場合が多々あります.一般的には以下の条件ではIOMMUが機能しません
- OSが未サポート
- BIOS(EFI)でIOMMUを無効にしている
- IOMMUに対応したCPUを使ってない
IntelのCPUを使っている場合だと,以下の場合IOMMUが使えません
- BIOSの設定画面で vt-d を無効にしている
- CPUが vt-d 未対応.オーバクロック可能なCPU(型番の末尾がKのCPU)など
Re: (スコア:0)
そういえばIOMMUってBIOSでデフォルト無効にされてるケースが多い気がするけどなんでだろう
Re:IOMMUで対応可能 (スコア:3)
itnewsの記事(#3575295に引用されたところ)に
パフォーマンスが犠牲になるのでデフォルトで切ってる
という話がありますね。
Re: (スコア:0)
とりあえずi7 6700Kではvt-dはサポートされてるみたいですね。
https://ark.intel.com/content/www/us/en/ark/products/88195/intel-core-... [intel.com]
K付でも世代とかで違うんでしょうか。
DMA (スコア:0)
DMAってソフトウェアを介さないのではなくてCPUを介さない制御じゃないの?
Re: (スコア:0)
そうですね
まあ、最近のCPUはメモリコントローラを内蔵してるので、
CPUコアとか実行ユニットを介さないって言ったほうが正しいかもしれませんが
Re: (スコア:0)
挙句、昔と違い最近のDMAって単純にデータ転送する以外の事も出来るからね。
Re: (スコア:0)
Direct Memory Attack
何で今頃この話題が? (スコア:0)
と思って読んでみたら、Windows の問題なのね。
>Apple patched the vulnerability in macOS 10.12.4 that was released in 2016,
そこそこ有名だった話だ。
ええ… (スコア:1)
なぜ文章の後半をちょんぎって引用するの?
Apple patched the vulnerability in macOS 10.12.4 that was released in 2016, but the researchers say the more general scope of such attacks remains relevant.
Re: (スコア:0)
英語が読めないからApple、macOS、patchedとか2016っていうワードだけ拾ってmacではパッチされてると理解
後半はわかんないけど同じようなことが書いてあるに違いないと誤解
macじゃパッチされてるからwindowsの話だな
という思考からだと思われる
Re: (スコア:0)
具体的にどうrelevantなのか何も書いていないから、ほんとにMacでも引き続き問題なのか、それとも単に「バグが復活する可能性がある」と煽ってるだけなのか、この記事からはわからんってのが正直なところ。そこのところを詳しく書いてる論文とかないのかな。
Re:ええ… (スコア:2)
The main defence against the above attacks is the input-output memory management unit (IOMMU) that allows devices to access only the memory needed for the job to done.
Enabling the IOMMU to protect against DMA attacks comes at a high performance cost however. Most operating systems trade off security for performance gains, and disable the IOMMU by default.
一般にDMA(direct memory access)というのはCPU以外からメインメモリを直接読み書きする方法を指します。CPUにはフェッチ/デコード/実行/書き戻しといったマシンサイクルのステージがあるわけですから、原始的には稼働時間の3/4とか、4/5とかはメモリに触れません。極論すれば論理的には切断されていたって何も困らないのです。であればその間は~WRと~RDが両方上がっていることだけ確かめてメモリーバンクをペリフェラルに繋ぎ変えデータを勝手に流し込んでやれば、CPUのプログラムが戻ってきてメモリを見に行った時には魔法のようにデータが現れていることになるから転送が早く済む、というのがDMAの概要です。
流石にCore i9-9900Kから分岐できるような~WR信号線は出ちゃいないでしょうし、プロセッサーのパイプライン化というすばらしい概念も生まれているのですが、プログラミングモデルやメモリコントローラの権限制御機構には太古から大して進歩がありません。従って、メモリコントローラにDMAができるペリフェラルは今でも物理メモリの任意のアドレスに読み書きアクセスができるのです。
これに対し、対策としてIOMMUを活用することができるわけですね。なるほどなあ。
Re: (スコア:0)
gigazineは日本語で書いてあるやん
さらに
>特に2011年以降に製造されたApple製コンピューターは、12インチのMacBookを除いてすべて脆弱であるとのこと。
Re: (スコア:0)
それは単に2011年以降に製造されたApple製コンピュータは12インチのMacBookを除いて全てThunderboltを実装している、ということを言い換えているに過ぎないので、特に参考にはならない。
Re: (スコア:0)
カンマで引用を終わらせるなんて優しかしかないよね。
PC BSD? (スコア:0)
初めて聞いたけど、FreeBSD派生ですか。
ところでOpenBSDとかの他のBSDは大丈夫なのかな。
Re:PC BSD? (スコア:1)
PC BSDがPC-BSDのことならTrueOS [trueos.org]に名前が変わった筈 [gihyo.jp]だけど、仰る通りFreeBSD派生ですな
脳味噌腐乱中…
Re: (スコア:0)
PC-BSDはFreeBSDを以前使ってたので知ってたけど、TrueOSに改名してるのは知らんかった
#なぜそんな名前になった…
Re:PC BSD? (スコア:1)
Hewlett Packard他(DEC, HP, IBM, Compaq)がTru64 UNIX [google.com]の命名を採用したことに着想を得たのかな?
Re: (スコア:0)
> #なぜそんな名前になった…
どっちかというとOpenBSDにふさわしい名前な気が...
Re: (スコア:0)
そういえば、OpenBSDにはこの弱点はなかったのだろうか?だとすれば、さすがのOpenBSDだと脱帽するしかないが…
Re: (スコア:0)
FreeBSDはBSD四天王最弱説がさらに強化されますね。
Re: (スコア:0)
関連ストーリー:PC-BSD、「TrueOS」に「進化」することを発表 [opensource.srad.jp]
Re: (スコア:0)
今は TrueOS [trueos.org] と名乗っている。
IEEE 1394の通った道? (スコア:0)
mac OSでパッチできてるみたいなので、対策可能なら問題ないかな?
M-FalconSky (暑いか寒い)
maOS (スコア:0)
なんだよこれ・・・・
Re: (スコア:0)
マオツォートン同志にちなんだ中華OSなんじゃないの?
Re: (スコア:0)
hylomだし
映画の世界 (スコア:0)
映画とかアメリカドラマで、凄腕ハッカーが主人公にUSBメモリみたいなの渡して、
主人公が敵のオフィスに忍び込んで、PCにデバイスさしたら、
プログレスバーが伸びていって100%になったらデータ抜き出し完了(※)みたいなのか
よくあって、「そんなデバイスねーよ」と思ってたけど、そうでもないんだね。
国の諜報機関ならこんなのとっくに把握してて使ってるんだろう。
※ だいたい95%でエラーが起きるか邪魔が入る
Re: (スコア:0)
狙うなら機密管理されてないなんでも見れそうなアクセス権限になってるパソコン使うから、やろうと思えば出来ちゃうんじゃないの。
侵入するまでが大変そう。
USB4 (スコア:0)
やばいじゃん
Thunderbolt 3が「USB4」として登場へ (スコア:0)
TB3/USB4ではこの問題はないのかしらん
https://pc.watch.impress.co.jp/docs/news/1172948.html [impress.co.jp]
馬鹿じゃねーの (スコア:0)
できることがあるからに決まってるだろ。そもそもMicrosoft信者じゃなくてもそうだわ。
事実、macOSは対策しているし、ソフトウェアには外部接続端子の制限を行うものがある。
もう一度言う。馬鹿じゃねーの。
Re: (スコア:0)
このストーリーに何の関係があるのかわからんが、(別の脆弱性による)攻撃に対する緩和策があることと脆弱性があることをごっちゃにしてないか。
Re: (スコア:0)
DLLの問題に信者が現れるなら、このトピックにあなたが現れるんだから偏ってはいないでしょ。