メインコンテンツへスキップ

たった一行のコードであなたのiPhoneが文鎮化する可能性

·3 分
2025/04 IPhone プログラミング セキュリティ プライバシー IOS

たった一行のコードであなたのiPhoneが文鎮化する可能性

引用元:https://news.ycombinator.com/item?id=43814360

e28eta 2025/04/28 02:13:17

このAPIで通知するのにエンタイトルメントいらないって、マジかよ。64ビットの情報をどのプロセスとも共有できるって?これ完全にアプリ間のトラッキングに使えるじゃん。<br>正直どんな情報共有したいかはわかんないけど、プロセス間の情報共有は今まで制限されてきた歴史があるんだよね。<br>システムが値を保存してくれて、どのアプリから来たか追跡してないなら、再起動しなければアプリ消して再インストールしても情報残るってこと。<br>IDFAとかIDFVのリセット回避に簡単に使えそう。

tgv 2025/04/28 07:18:43

それ、アプリ間のトラッキングにピッタリだね。でも、この設計自体は古いみたい。facebookより前からあるかもだから、悪意はないだろうけどさ。たしかに悪用できそうだけど、ネットにつながってればもっと別の良いやり方もあるんじゃない?<br>どうなんだろう。

tgv 2025/04/28 20:16:32

公式ドキュメントによると、NSNotificationCenterはMac OS X 10.0にはもうあったらしいね。NextSTEP 3.3、つまり1995年には存在してたみたいだよ。

agos 2025/04/28 07:41:23

俺もまさにそこに目がいったよ。64ビットあれば、アプリ間のトラッキングに簡単に使えちゃうね(1行で!)。まさにiOS版スーパーcookie。これにエンタイトルメントが必要になれば、プライバシー的には良いことだね。

croemer 2025/04/28 09:22:29

センシティブな通知だけエンタイトルメントが必要になったみたいだよ。トラッキング対策にはなってないってことだね。

icoder 2025/04/28 10:20:09

IDFVは同じベンダーのアプリ間ならトラッキングできるんだよね。でも、ベンダーのアプリ全部消すとリセットされる。ユーザー自身でリセットできるかは知らないけど、ベンダーは自前のIDで紐付けられるから結局同じ。<br>あなたが言ってる方法はほぼ同じことだけど、権限が違ったり、ベンダーを超えてできる可能性があるね(事前に合意は必要だろうけど)。

e28eta 2025/04/28 15:53:43

これが一番ヤバいのは、サードパーティのSDKじゃないかな(分析とか広告とか?)。そういうSDKは、いろんなベンダーのアプリに入り込んでるからね。

jillyboel 2025/04/28 15:42:46

DMAによると、Appleのアプリで使える機能は、サードパーティのアプリでも使えるようにしなきゃいけないんだって。もちろん、Appleは数十億ドル稼いでる囲い込みを守るために、必死で抵抗するだろうね。

95014_refugee 2025/04/28 00:04:21

記事で説明されてるエクスプロイトじゃ、デバイスは“brick”しないよ。それは完全にぶっ壊すことだから。このケースなら、tethered restoreすれば元に戻せるはず。

the__alchemist 2025/04/28 00:20:04

見てるとね、“brick”って言葉は言葉の例にもれず,進化してるんだよ。実際には,君が言ってる伝統的な定義じゃなくて,ここで使われてるみたいなもっと緩い意味で使われることが多いんだ。

miki123211 2025/04/28 07:56:52

物理的にiPhoneを完全に“brick”する方法はないよ。DFUモードはROMから起動するから,USBで全部復元できるんだ。Apple Silicon Macも同じ。systemとかを壊しても,別のMacで初期化できる。PCはBIOSを壊したりすると“brick”することがあるから違うんだ。rm -rf /でefi varsを消して“brick”した話もあるけどね。

Kerbonut 2025/04/28 00:22:19

ちょうど“soft”-brickみたいだね。

mook 2025/04/28 03:19:31

もっと大事なのは,その一行コードは単に再起動を強制するだけってことだよ。外部の修理が必要だって言うとしても,“brick”だって考えるなら,タイトルはやっぱり間違ってる。

taneq 2025/04/28 00:36:17

“Bricking”は厳密に定義された用語じゃないんだ。“realtime”みたいな感じで,(この特定のユーザーにとって,この特定の状況で)っていう暗黙の意味がついてくるんだよ。たいていのユーザーにとっては,電源ボタン押しても起動して動かなきゃ“bricked”ってことになる。ここにいるほとんどの読者にとっては,dev toolでbootloaderを再フラッシュするのはかなり簡単だろうけど,USBが動かなくなったら終わりかもね。ASICをde-capして回路をいじって生き返らせる人も数人はいるだろうけどね。

SamBam 2025/04/28 03:32:51

間違いだよ。それは単に再起動を強制するだけじゃなくて,無限再起動ループになるんだよ。起動するたびに再起動しちゃう。
結果,soft-brickedになって,デバイスを全部消去してバックアップから復元しなきゃいけなくなるんだ。
デバイスの消去が必要でも,完全な“brick”じゃないのは確かだけど,それでもかなり深刻だよ。

cantrecallmypwd 2025/04/28 03:45:12

間違いだよ。“Bricking”ってのは,ユーザーが自分で元に戻したり修理したりできない文鎮になっちゃうことなんだ。それがこの言葉の本来の意味だよ。

jchw 2025/04/28 18:14:01

PC側の経験から話すね。PCよりAppleのUXはいいけど,e-wasteにならないのが重要。PCはBIOS壊しても復旧しやすい例とか,efi varsを消しても大丈夫な話とか。Apple Siliconがソフトで“brick”する一番の原因はSSDの寿命消耗だろうね。M4 Mac Miniは交換可能になったけど,多くのMacはSSD交換が大変。AppleはSSD周りのハード選択が怪しいこともあった。ソフトウェアよりハードウェア問題でe-wasteになる可能性の方が高いね。パーツペアリングとか修理性が問題。これはAppleの設計はすごいけど,修理実績はダメってこと。

fc417fc802 2025/04/28 02:30:17

だから素人には何も言わないけど、の連中はもっと気を遣うべきだと思うんだ。「なんでもあり」な態度はコミュニケーションを難しくするよ。”Soft brick”がすでに存在する正しい用語だよ。

AStonesThrow 2025/04/28 05:52:16

昔、デバイスがもうちょっと大きかった頃は、慣習的に”boat-anchors”って呼んでたね。

mook 2025/04/28 07:13:46

いや、_single line_の部分は一度の再起動を引き起こすだけだよ。終わらないループにするにはウィジェットの設定が必要だから、それは一行以上かかるんだ。

nullhole 2025/04/28 05:08:06

A soft brickって焼く前のレンガのことじゃないの?違うかな?だから、用語は’soft brick’じゃなくて’muddied’の方がいいかも。”That updated muddied my device, I had to clean it up with a restore”

timschumi 2025/05/01 18:11:02

> EFI varsをいじるだけじゃ大抵のシステムは起動不能にはならないよ。俺は面白いことやろうとしてEFI varsを何回か壊したことあるけど。UEFI実装はバグが多い傾向にあるけど、全部が壊滅的にひどいわけじゃないし。ちなみに、俺は手元に完全に(フラッシュメモリのダンプを持ってて書き戻せる場合を除いて)brickできるノートPCを持ってるよ。WindowsのAdministrator権限とかLinuxのrootユーザーに利用可能な完全に意図的な操作でEFI変数をいじるだけでね。

rendall 2025/04/28 04:41:54

> ”Soft brick”がすでに存在する正しい用語だよ。それは記事が使ってる用語でもあるね。”The result is a device that’s soft-bricked, requiring a device erase and restore from backup.”

cantrecallmypwd 2025/04/28 07:48:46

それは、コンシューマー向け技術に遅れをとった頑丈な政府向け携帯電話みたいに、扱いにくくて不便なデバイスに対する蔑称だったんだね。Brickっていうのは、ドアストッパーとか投擲物とか建築資材以外には全く役に立たないって意味だよ。

Andrew6rant 2025/04/28 17:44:41

> 物理的にiPhoneを完全に”brick”する方法はない。いや、絶対あるよ(jailbrokenなiPhoneを数に入れるならね)。俺はすべての熱スロットリング制限を解除して、その後の世界一ひどい水冷セットアップでマザーボードを損傷させて、一台をbrickしたことがあるよ。ハードウェアが損傷してたらDFUを使って復元なんてできないからね。

Koshcheiushko 2025/04/28 08:01:27

AStonesThrow 2025/04/29 00:27:39

異議あり。”Boat anchor”はJargon Fileにもあるきちんとした用語だよ。不可逆的に壊れたハードウェアを意味する。”一度雷が落ちたら即席のboat anchorさ!”俺は、brickはこのboat-anchorの類推に基づく新しい言葉だと思う。brickは小さいけど、”boat-anchor”ができた頃の部品は巨大だった。90年代はデカいほど信頼されてたんだよ。

jchw 2025/05/01 21:35:44

知る限りほとんどのEFI変数はバッテリーバックアップ付きNVRAMに保存されてるから、いつもの解決策はCMOSバッテリー外してクリアすることだってば。ホストOSからは絶対読み書きできないもの(例えばBIOSパスワードとか)だけが解決策だと思うな。分解はいるけどさ。NVRAMクリアすると動かなくなるPCもあるらしいぜ笑

codetrotter 2025/04/28 00:25:10

あと、HN読者には色々デバイスあるだろうけど、スマホしか持ってなくてPCない人もいるからね。そういう人にとってはかなり悲惨だろな。Appleか第三者修理の技術者に見てもらえるといいけど。

internetter 2025/04/28 13:34:12

ちょっと読み飛ばしすぎだよ。記事にはね、Widgetはアプリ開くとき評価されて、システムが失敗を続けるって書いてるじゃん。
”再起動後、SpringBoard初期化されたらすぐextension起こされて、以前失敗したからまた最初からやるんだ。”ってさ。

もっとコメントを表示(1)
dgoldstein0 2025/04/28 07:06:24

気持ちは分かるけど、流行るとは思えないな。brickedの変種の方が意味通じるよ、直せるまで使えないって意味だし。muddiedの比喩は合わないね、泥まみれでも使えないわけじゃないからさ。

leptons 2025/04/28 20:05:49

ソフト問題でe-wasteになるより近年はハード問題で多いって言うけど、短い期間でサポートやめるAppleこそソフト問題でe-waste作ってるんだよ。完璧に動くのにAppleがサポートやめたせいで使えないハードウェアがいっぱいあるもん。タブレットとかApple TVとかApple Watchとかね。他のメーカーもだけど、Appleほどひどいのはないと思うな。

taneq 2025/04/28 00:29:36

デバイスはpillowedされたって言えるかもね。:D でも古いスマホのバッテリー考えると、ちょっと曖昧か。

dmckeon 2025/04/28 03:16:38

だから、たぶん”loafed”かな、brickみたいな塊だけどソフトな感じもあるやつ。
”loafed”なデバイス、つまり何もしてないデバイスはloafingしてるってことになるね。

nomel 2025/04/29 19:06:28

”直す”のが昔のbrickの定義だったんだよ、ハード修理って意味で。もし修理がソフト再インストールなら、それはハードウェアは壊れてないってこと。運転できない奴が運転席にいるからって車が壊れてるって言わないだろ!まったく!

nomel 2025/04/28 17:57:56

これって昔は”OS再インストールが必要”って言われてたの覚えてる。よくあったし大したことなかったから、誰も名前つけようとしなかったんだよ。

two_handfuls 2025/04/28 01:41:44

あ〜、はいはい。Goebbels effectね。”嘘も千回言えばホントになる”ってやつだ。

guappa 2025/04/28 05:06:25

Appleは結局新しいの売るだけだろ、きっと。

dado3212 2025/04/27 20:43:59

いいね、17,500ドルはかなり良い額だね。こういうブログ記事って、いつもは二束三文だったり、企業が脆弱性は直すけど全然報奨金払わないってのが普通だったからさ。Appleは2019年以降、こういうのは良くなったみたいだね。

nativeit 2025/04/27 21:26:50

最近のYouTube脆弱性の記事のコメントで、報奨金の評価に関する細かいニュアンスの解説を読んだらすごく参考になったんだ。表面上低い/高いに見える評価の理由がよく分かったよ。見つけたらまた貼るね。まあでも、結局ひどい目に遭う人も多いけどね。

croisillon 2025/04/27 21:48:41

これのこと? https://news.ycombinator.com/item?id=43025038

nativeit 2025/05/01 03:06:09

それだ!マジで参考になるよ、俺的にはね。俺の適当な仕事にちゃんと補足してくれてありがとう。

williamscales 2025/04/28 03:44:33

うん、まさに俺が思い出したやつだ。

sdeframond 2025/04/27 21:47:26

多分こういうやつかな https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu

nativeit 2025/05/01 03:07:36

間違いない。手伝ってくれてサンキュー。

cantrecallmypwd 2025/04/28 03:47:23

Zerodiumなら75kドル払ったかもね。でもそれだと倫理的じゃないんだよ、だってIsraelとかAmericaとかがそれを兵器として使うだろうから。

cantrecallmypwd 2025/04/28 07:39:09

その前はVupenだったんだよ.企業名なんてどうでもいいんだ,怪しいグループや個人がたくさんいて0dayaを売買してるんだから.国家主体だって全部自分で開発してるわけじゃないし,どこかから手に入れる必要があるんだ.小さくてもゼロじゃない市場があるんだよ.

saagarjha 2025/04/28 08:23:17

確かにその穴を埋めた企業はあるだろうね.でも”お前のスマホをDDoSしてやったぞ”みたいな市場は本当はないよ.

cantrecallmypwd 2025/04/28 08:48:42

それは違うんじゃない? ターゲットのデバイスを一時的または実質的に永続的に使えなくするのは,君がどう思おうと有用なペイロードだよ.

saagarjha 2025/04/28 09:57:08

誰にとって有用なペイロードなの? そんなバグにお金を払う人がいたら教えてよ,そしたら信じるよ.Zerodiumの昔の支払いリストにさえDoSは載ってなかったし,俺の知る限り他の真面目なベンダーもそうだよ.俺がこれを気にしない人をたくさん挙げられるんだから,君も気にする人を一人くらい見つけられるはずだろ.

tptacek 2025/04/28 18:25:06

脆弱性市場ってのはそうじゃないんだよ.ブローカーがスマホのDoSに7万5千ドルも払うなんて考えはすごく面白いね.

_rrnv 2025/04/27 20:41:51

すごいね! こういうシンプルで効果的でえげつない脆弱性が一番好きだな.20年前,大学の友達とpingだけでサーバーを攻略できる完璧な脆弱性について理論をぶつけ合ったのを思い出すよ.そしてもちろん,2年前にはCVE-2022-23093として実際に発見されたんだ.

Rygian 2025/04/27 21:18:37

Ping of deathは20年前にはもうあったよ.https://web.archive.org/web/19981206105844/http://www.sophis…

jasongill 2025/04/28 00:06:09

実際はもう30年近く前だよ,すごく年取った気分になるね ー 96年の終わりから97年の半ばにかけて,IRCでこれでいたずらするのが流行った時期は本当に魔法みたいだったんだ.

anyfoo 2025/04/28 02:00:32

信じられないかもだけど,あの頃IRCでは自分のIPアドレスとかクライアント情報とか,サーバーなしで直接繋がる方法(CTCPって言ったんだ)を自動で公開するのが普通だったんだよ.パケットフィルターもNATも全然なくて,認証もせいぜいident serverに名乗るだけ.特権ポートでidentd動かしてるってことはunixマシンのrootだって思われてたからね.

sneak 2025/04/28 06:37:13

CTCPはサーバー経由で、DCCがP2P接続のことだね。DCCはNATだと使えないんだ。俺は98年にNAT越しでIRCやってたけど、ipfwadmで設定したよ。

anyfoo 2025/04/28 20:44:59

ああ,そうだね,CTCPとDCCを間違えてたよ。ごめん。CTCPってDCCの設定にも使われてたんだっけ?(他にもあったけどさ)。俺が90年代はじめにIRC始めた頃はNATもパケットフィルタリングもほとんどなくて,ネットは全然暗号化されてなかったんだ。今とは全然違う時代だったよな。

driverdan 2025/04/28 01:04:08

2001年頃大学にいたとき,ping of deathとか他のクラッシュ exploitで友達にいたずらしてたんだ。暇なときは大学ネットワークのランダムなIPにもやってたよ。それがどれだけ長く使えて,どれだけ簡単に悪用できたかって,マジでヤバかったんだ。

_rrnv 2025/04/28 08:13:47

DOS攻撃はそうだけど,俺が参照したfreebsdのCVEは理論上のRCEなんだ。

giantrobot 2025/04/27 22:48:52

下にスクロールしてみてよ。俺のスマホだと(たぶん広告ブロッカーのせいか),Waybackのページはコンテンツの上に画面いっぱいの空白ができちゃうんだ。これは俺が試したほとんどのWaybackページで起きるね。最近のことだし,正確な原因は分からないんだ。

もっとコメントを表示(2)
jasongill 2025/04/28 00:06:41

これを試してみてよ。https://insecure.org/sploits/ping−o−death.html

NitpickLawyer 2025/04/27 22:39:06

ダイヤルアップ時代には,pingのペイロードフィールドにATHコマンドを追加することで誰かを切断できたんだぜ。

brontitall 2025/04/27 22:42:44

それはモデムがHayesコマンドセットをちゃんと実装してないか,OSが送信する文字ごとのタイミングを制御できる場合だけだよ。1秒のポーズ(デフォルト),ポーズなしで”+++”,もう一度ポーズ,それからATHコマンドが必要だったんだ。

NitpickLawyer 2025/04/27 22:55:08

外部のUSRobotics 56kモデム使ってたから、大丈夫だったんだよね。でも、大量の”バルク”ノーネームモデムは脆弱だったんだ。ダイヤルアップIPのアドレス範囲全部にping打って、その結果をデカいIRCチャンネルで見てたんだよ。うーん、たぶんね

wat10000 2025/04/27 22:46:45

Hayesがその一時停止の特許持ってたから、かなり一般的だったんだよ。

brontitall 2025/04/27 22:55:01

へー、今日知ったよ。たぶんTIESを使ったのかもしれないね
https://en.wikipedia.org/wiki/Time_Independent_Escape_Sequen

mycall 2025/04/28 00:01:06

コンマは2秒間の一時停止をしてくれたんだよ

bslanej 2025/04/27 23:41:30

ちゃんと調べるのは面倒なんだけど、IRCで送れる文字列があって、それでルーターの接続を即座に切らせることができたんだよね。でかいチャンネルにその文字列貼ると、何十人もの人が即切断するのを見たんだ。

aaronmdjones 2025/04/28 00:03:51

これは0x01制御文字(CTCP)に DCC SEND whatever 0 0 0 を送るバグで、古いLinuxカーネルのDCC ALGヘルパーが0をIPと解釈できず接続が落ちたんだ。TLS経由はルーターが見れないから大丈夫。これがTLS+NAT環境でDCCが使いにくい理由で、ポート指定やフォワードが必要。詳細はURL見て。
https://modern.ircdocs.horse/dcc#dcc-send

genewitch 2025/04/28 08:40:19

AOLのチャットルームでは音を鳴らせたんだけど、S{/con/con
って音として送ると、ユーザーサウンドをオフにしてないWindowsユーザーをクラッシュさせられたんだ。記憶がちょっと曖昧だし、正確なシーケンスは調べたくないけど、だいたいこんな感じ。

genewitch 2025/04/30 11:52:01

https://mazur-archives.s3.amazonaws.com/aol-files/breaches/c
それは {S /con/con だったんだ。記憶で文字を二つ入れ替えちゃってたよ。{S っていうのはAOLチャットルームが音を送るのに使ってた”システムメッセージ”で、改行の後にそのシーケンスを入れるとコンピューターがその音を探すんだ。/con/con しないってみんなが信頼してるならクールだったね。

cryptoegorophy 2025/04/27 22:49:01

巨大なダイヤルアップネットワーク上で、パスワードを1文字ずつ総当たり攻撃して、誰かのディスクにアクセスできたの覚えてるよ。クレイジーな時代だったね。

vv_ 2025/04/28 12:39:55

マジでウケるんだけど、PPPっていまどきのIoTモジュールでもまだ使われてるんだって。QMIとかMBIM使えないモジュールだと、独自のTCP/IPスタック動かす唯一の方法なんだよね(TLSの制御もできるし)。

urbandw311er 2025/04/27 22:05:26

いいね。iOSのコアチームがこれを見た時、オフィスでどれだけ最悪な一日だったか想像つくわ。

rashkov 2025/04/28 15:05:59

iOSチームの誰かはこれ絶対気づくべきだったと思うんだけど、どう?「やべ、SpringboardのUIイベント起こす方法いんじゃね?」「OK、じゃあこの認証いらないバス使ってSpringboardに購読させようぜ」みたいな?唯一考えられるのは、このコードめっちゃ前に書かれて、抽象化の一番底だから誰も見てなかったってことかな。

jonplackett 2025/04/27 21:16:23

そのシステムいつ導入されたか誰か知ってる?あんなにモロなセキュリティ問題なのにさ。もしかしてAppStoreできる前とか?他のアプリもっと信用してた時代とか?

plorkyeran 2025/04/27 21:52:12

その通知APIはめっちゃ古いよ(iOS 3)。あれは明確に信用しちゃいけないAPIで、復元中のUI表示とかに使うべきもんじゃない。だから、これは結構後から書かれたコードだと思う。Widget拡張はiOS 14だしね。昔からバックグラウンドタスク動かす方法はあったけど、あれで文鎮化はしなかった。Background fetchとか、再起動後アプリ初回起動するまで動かなかったもん。

duskwuff 2025/04/27 23:51:46

これは内部のブロードキャスト通知APIだよ(Linuxのdbusみたいなやつ)。ユーザーに見せる通知APIとは別もんね。

plorkyeran 2025/04/28 01:39:17

ええ、知ってますよ。なんで私がUI通知の話してると思ったんですか?

bee_rider 2025/04/28 02:04:39

ちなみに俺もUI通知のことかと思ってた(なんでかって? 俺がバカだからだよ)。でも、とにかく、あの説明は別に絶対必要ってわけじゃなかったけど、助かったわ。

MBCook 2025/04/27 22:35:12

OS Xでこれより前にあったんじゃないっけ?

plorkyeran 2025/04/28 01:40:30

ドキュメントには10.6って書いてあるらしいね。それがOS Xの同じバージョンの年(どっちも2009年リリース)。

記事一覧へ

海外テックの反応まとめ
著者
海外テックの反応まとめ
暇つぶしがてらに読むだけで海外のテックニュースに詳しくなれるまとめサイトです。