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

数億人が使うアプリにコード実行権を得る方法とは?

·2 分
2025/02 セキュリティ プログラミング エレクトロン アプリ開発 脆弱性

数億人が使うアプリにコード実行権を得る方法とは?

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

felixrieseberg 2025-02-28T23:38:33

Electronのメンテナとして言うけど、自動更新やコード署名、ノータリゼーションの仕組みは本当に大事。それを台無しにされると苦労が倍増。コード署名証明書が危険にさらされるのはマジで最悪の事態だから、気を付けて。自分のプロジェクトでは、抽象化や依存チェーンの長さには注意してるよ。

RadiozRadioz 2025-03-01T06:06:40

自動更新なしでソフトをリリースしよう。それぞれのソフトが永続的に使えることを目指すべき。ユーザーのシステムに触れるのは特別な場合だけに。サーバーが関わるアプリなら、ユーザーに混乱を与えない方法で通知だけして、良いアップデートの理由があればユーザーは自発的にアップデートするはず。

Hackbraten 2025-03-01T08:11:19

サポートの負担が増えるし、ユーザーのためにも、ソフトを時々アップデートできるようにしとくべき。でもその負担が全部サポートにいくのも現実だよね。

cdmyrm 2025-03-01T08:37:03

サポートしないバージョンを拒否することはできる。でもユーザーが自分のPCでソフトを自由に使うことは許されるべきだよ。

PeterStuer 2025-03-01T09:58:15

必ずしもB2Bの話じゃないよ。300ドル未満の製品に関しては、君の提案は無理があるから。

sigmoid10 2025-03-01T11:30:57

B2Bも悪ソフトにやられることは多い。それに、自己更新機能は長期的には有利だから、古いソフトが放置されることがセキュリティ上の爆弾になるリスクを考えるべき。

buran77 2025-03-01T12:48:08

企業内の閉じられたネットワークでは自己更新は有効でないよ。更新は運用の方針としてIT部門が決定するべきだから。

sigmoid10 2025-03-03T10:18:58

短期的にはユーザーが選んで更新するのが良いかもしれないけど、長期的には更新を遅らせるリスクは大きい。結局、システムがカオスになる。

account42 2025-03-04T11:47:18

昔の消費者向けソフトはこうだったね、今は高速なブロードバンドがあるから珍しいけど。

klabb3 2025-03-01T12:19:15

自動更新はプラットフォームが提供すべきだと思う。旧システムをサポートするのは難しいけど、ユーザーに影響を与えない更新が理想だってこともある。

RadiozRadioz 2025-03-01T13:23:41

ファイル転送のことなんだから、ファイルに触れないでいるなんて無理でしょ。システムのプログラムファイルについて言ってるのは明らかだよね、ユーザーのパッケージマネージャーによって管理されてるファイルのこと。

klabb3 2025-03-01T14:12:46

多くのケースでパッケージマネージャーなんて存在しないし、Windows StoreはMSアカウントが必要だし、macOSのアプリストアはサンドボックス制限でアプリを制限してる。Linuxはパッケージマネージャーの種類が多すぎて、対応が大変。自動更新機能は必要だけど、理想的にはアプリが自分でアップデートするべきじゃないんだよね。私のアプリはオフラインでも動くし、プライバシーのためにe2eeも使ってるから、アップデートの心配は無い方がいいけど、常に変わる環境の中では難しい。

pjerem 2025-03-01T08:13:20

あなたの意見には同意だけど、アップデートの役割については残念ながら違うと思う。理想的なビジョンは共有できるけど、現実はそれとは違う。AppleやMicrosoftは良いアップデートの仕組みを提供していないし、ユーザーがソフトを自分で更新するのは無理なんじゃない?

cdmyrm 2025-03-01T08:38:07

今のLinuxのパッケージ管理はこうなってるよ。新しいバージョンをリリースして、パッケージの保守者がそれをパッケージ化してリリースする。解決策は存在するのに、JavaScriptを書いてる人がそのことを知らないのが現実なんだ。

pjerem 2025-03-01T10:10:42

だから、私は”Linuxを除いて”って言ったわけ。みんなが使うOSでパッケージの保守者はどこにいるの?(これは皮肉じゃなく、私はLinuxのデスクトップでこの記事を書いてるよ)。

rustcleaner 2025-03-01T12:16:31

この意見は正しいね。シューズボックスの鍵を持って、コピーを2*N(冗長性)作ってN個は2つのシューズボックスに保存する。鍵は常にオフラインにして、重要なものにはほとんど署名しない。もしあなたのCAが攻撃を受けても、オフラインの鍵があれば新しいCAの鍵を署名できるし、古いものの取り消しもできる。

oncallthrow 2025-03-01T12:54:34

テープでも光学でもシリコンでも紙でも大丈夫だけど、数千ドルでハードウェアセキュリティモジュールを手に入れられるよ。理由がないわけじゃない。

xandrius 2025-03-01T14:05:33

数千ドルはちょっと高すぎる理由じゃない?我々が知ってる中で最も信頼性が高く安価なハードウェアセキュリティモデルは紙だよ。QRコードを印刷して、火災対策の金庫に一つ、別の場所にも保管すればいいだけ。

HeatrayEnjoyer 2025-03-01T15:04:53

プリンターにはキャッシュされたページのハードドライブがあることが多いから注意が必要。

TZubiri 2025-03-01T02:13:03

質問です。他のサイトからインポートするウェブサイトをよく見かけるけど、ハッシュが使われていないことが多い。これは見た目通り危険なの?どうして人々はハッシュを使わないの?

もっとコメントを表示(1)
bastawhiz 2025-03-01T02:38:05

やっぱりハッシュを見つけて追加する方法を知ってるかが重要だよね。実際、スクリプトを提供してるサードパーティーの責任だと思うんだけど、あそこはハッシュを使ってもらうインセンティブがないんだよ。

valenterry 2025-03-01T04:20:42

正直、ブラウザがこれを簡単に解決できると思うけど。デブモードで「ハッシュXを持ってるスクリプトが静的に定義されてないのが読み込まれました。これは大きなセキュリティリスクです」と警告を出すだけでいいんだ。そうすれは、スクリプトを追加して、サイトを走らせて、ハッシュを追加するだけで完了。

sirl1on 2025-03-01T06:36:26

CSPヘッダーを定義して、ハッシュが分かってるサードパーティーのスクリプトだけを実行するようにすればいいよ。

no_wizard 2025-03-01T20:14:52

依存関係をベンダリングするのがいいって。メンテナンスする側にはこっちの方がずっと良いし、キャッシュは信頼性があるのはファーストパーティーのドメインだけだから。依存関係をベンダリングすれば、自分でハッシュを計算できるし。

TZubiri 2025-03-01T21:45:14

サードパーティー配信のCDNはハッシュにどう影響するかな?HTTPSとインテグリティハッシュは全然違う攻撃ベクターを対象にしてると思うんだ。

0xCMP 2025-03-02T00:08:57

実際のメリット(キャッシングによる応答速度の改善)が得られないなら、ハッシュをちゃんとすることを気にしないで、信頼できるコピー(もしくは知られていて多分バージョン管理されたもの)をそのまま出せばいい。

TZubiri 2025-03-01T21:43:51

でも、自分でハッシュを手に入れられるよね?例えば、wgetでURLを取得して、sha256でファイルを計算する感じ。

quacksilver 2025-03-01T10:08:46

人気ブラウザが協力して、以下のアップデートを出してくれたらいいなと思う。<br>- Xバージョン以降、ハッシュなしで読み込まれるスクリプトについて目立つポップアップを表示する。<br>- Yバージョン以降、ハッシュなしで読み込まれるスクリプトをブロックする。こんな感じで、年内にはこの問題を解決できると思う。開発者がハッシュを指定しないなら、そのサイトは壊れちゃうし。

valenterry 2025-03-01T04:19:12

その通りだね。ハッシュは絶対に使うべきだよ。

LtWorf 2025-03-01T06:45:18

本来はやるべきじゃないけど、主要なブラウザのベンダーが追跡を好んでるから、禁止にはならないだろうね。

Thorrez 2025-03-01T13:51:59

Chromeがハッシュのないスクリプトの読み込みを全てブロックすべきって言ってるの?それだとたくさんのサイトが壊れるよね。>”ウェブを壊さないで”という記事を見てみて。 Disclosure:私はGoogleで働いてるけど、Chromeには携わってないよ。

valenterry 2025-03-01T06:49:45

そうかもしれないけど、セキュリティの観点からは全然問題ないよ。

LtWorf 2025-03-01T07:05:38

追跡されるのは追跡されないよりもセキュリティが低いよね。

paradite 2025-03-01T00:11:51

こんにちは、Electronアプリの開発者です。Electron BuilderとAWS S3を使って自動更新を行っていますが、商業用証明書のコストのせいでWindowsの署名を保留しています。Azure Trusted Signingは商業用証明書よりもかなり安いの?CIのビルドパイプラインで実行できるのかな?

felixrieseberg 2025-03-01T00:16:48

Azure Trusted Signingは、Microsoftが去年行ったアプリ開発者向けの最高の施策の一つで、本当に幸せです。月9.99ドルで、身元を確認できる個人や企業が利用可能です。単にsigntool.exeをカスタムDLLで呼び出すだけです。@electron/windows-signを作りました。リンクはこちら: https://github.com/electron/windows-sign

itsFolf 2025-03-01T00:26:11

Azure Trusted Signingの大きな制約は、あなたの組織が少なくとも3年以上の歴史が必要なことです。この解決策の恩恵を受けられる開発者が他の選択肢に向かわせられるのは変な事例だね。

gamedever 2025-03-01T00:27:48

それにしても、たくさんの開発者が全てのリポジトリに対して完全な権限を要求するGitHubアプリをインストールしていて、これでその開発者がそのサービスを使ってる他の開発者にも同じことができるんだ。GitHubは、この可能性が存在することを恥じるべきだし、許可システムとUXがひどすぎて、アプリが全権限を要求する方向に導かれてるのを恥じるべき。GitHubは、ユーザーが権限を持たせたいリポジトリのリストを提示するようにすべきだし、各リポジトリに必要な特定の権限も表示するべきだよ。最小限の権限を奨励する設計が求められている。現状だと、アプリ開発者にとっては”全権限ちょうだい”が一番簡単な道だし、ユーザーは”いいよ、もちろん”ってなっちゃう。

davej 2025-02-28T21:59:36

Daveだよ、ToDesktopの創業者。これまでの経緯をまとめたブログを共有したよ。>”この脆弱性は本当に恥ずかしいものだった、こんなことが起きないよう徹底的に内部と外部の監査を行ったよ。” 特にEvaには責任をもって報告してくれて感謝してる。

spudlyo 2025-02-28T22:04:45

>”二度と起こらない。”傲慢だね。自信を感じないよ。素早い対応は評価するけど、具体的な改善はあったのかな?もしPoLPを守ってないなら他にも見落としがありそう。

davej 2025-02-28T22:08:47

確かに、”このシナリオが再発しないように”って言い直したほうが良さそうだね。改善策としてビルドコンテナを見直したんだけど、かなり大きな変更だったよ。

もっとコメントを表示(2)
AzzyHN 2025-03-01T19:08:56

大きなプロジェクトを扱うチームよりはマシだと思うよ!笑

ddingus 2025-03-01T09:28:13

いい対応だったね、直接的な判断に対処するのも上手いね。絶対的な表現は避けるべきだよ。>”このシナリオが再び起こらないように全力を尽くした。”というのが現実的だと思うよ。

abhiaagarwal 2025-02-28T22:49:20

ブログの内容を見る限り、もう一度起こることは”ない”と言えそうだね。

beardedwizard 2025-03-01T04:56:29

その主張はどこから来たの?同じような深刻なバグが12ヶ月後に発覚する可能性は?

GavinMcG 2025-03-01T16:10:59

明らかに間違ってると思うなら、一瞬立ち止まって考える価値があるかもね。ここでは、”これ”が”深刻なバグ”を指している話だと思うよ。

beardedwizard 2025-03-01T20:32:51

誰もが明らかに間違ってるとは思わないし質問するのが好きだよ。多くのバグはクラスで存在して、バリエーションってのは生産事件に繋がるものだと思うけど。

BonusPlay 2025-03-01T09:32:35

みんなこの反応をそんなに非難する理由が分からない。複雑な世の中だし、脆弱性は起こるもんだよ。迅速に修正して、報告者と連絡を取ったのも良い印象。

davej 2025-03-01T09:49:17

ありがとう。企業向けの言葉についてはその通りだね。開示文で読みやすさを保とうとしたと思ってるけど、100パーセント正しいよ、さっきのコメントはもっと簡単に書けたかも。
私たちの開示文:全角”https://www.todesktop.com/blog/posts/security-incident-at-to…全角”

AlexCoventry 2025-03-01T03:40:45

ログを見てアプリバンドルを調査したけど、ログはFirebaseとは独立してるの?この脆弱性を悪用した人がログを消せる可能性はないの?

hakaneskici 2025-02-28T23:07:24

例えばCursorのユーザーは、侵害を受けてないとどうやって確かめられるの?
>悪意のある利用は検出されなかった
STRIDEみたいな方法があれば教えて欲しいな。

Centigonal 2025-03-01T00:36:19

todesktopの報告から:
>ログのレビューを完了。全て確認したアクティビティは研究者からのもので、IPアドレスとユーザーエージェントで確認済み。

hakaneskici 2025-03-01T00:43:16

特権アクセスがあれば、証拠を改ざんできるから、ログに何も載っていないってのは許容範囲かもしれないけど、そう思わない人もいるだろうね。これらの攻撃ベクトルはSTRIDEの脅威モデルに含まれてるよ。

morgante 2025-03-01T01:51:36

詳しいログの内容は説明してないけど、優れたシステムなら管理者でもログの改ざんは許さないはず。

cdmyrm 2025-03-01T08:39:44

彼らのログシステムがどれくらい堅牢なのか、他のソフトウェアの状態を見てどう思う?

beardedwizard 2025-03-01T04:47:16

年に一度のペンテストもいいけど、このギャップを見つけられなかったエンジニアリングデザインプロセスをどう改善するの?こんなことが二度と起きないってどうやって言えるのか気になる。
こういうのは結局あまり意味がなくて、もっと現実的な答えが必要だと思う。

UltraSane 2025-03-02T00:46:19

重要な秘密鍵はHSMに保管しないと、簡単に侵害されちゃうよ。

ec109685 2025-03-01T06:59:03

おいおい、パッチ後に被害を受けた顧客にすぐ連絡しなかったなんて信じられない。どれだけ他に脆弱性があったか分からんし、顧客がサービスを使い続けるかはその人たちが決めるべきだろ。

richardboegli 2025-02-28T22:59:51

>“彼らは私の努力に対してしっかり補償してくれて、全体的に良い対応だった。”え、補償してもらったけど詳しくは語ってないみたい。

jsheard 2025-02-28T23:14:15

前回の記事よりは対処が良かったみたいだね。Arcブラウザの会社は最初、同様のRCEに対してバウンティを出さなかったけど、批判されてから$2kを出し、その後さらに$20kに増額したから。

sphars 2025-03-01T03:23:39

>“この脆弱性のために合計5kもらった”って言ってたけど、そこまで責める気にはならんな。

もっとコメントを表示(3)
oriettaxx 2025-03-01T05:22:11

最初の5,000ドルに加えて50,000ドルもらったって!でかいな!最近の更新には”更新:Cursor(影響を受けた顧客の一つ)が私の努力に対して50k USDくれる”って書いてあった。

eviks 2025-03-01T03:28:04

>“この脆弱性のために合計5kもらった”ってのは確かにそうだったな。

edm0nd 2025-03-01T22:23:19

更新ありがとう。最初のブログ投稿の時には、そんなことは言われてなかったから。

cdmyrm 2025-03-01T08:40:16

いい判断だね。責任のある開発者を解雇することも真剣に考えるべきだ。

throw339d00 2025-03-01T09:16:36

おいおい、そんなのマネージャーの無能さを示すだけだよ。社員がミスしたからって、教育に金かけたのに解雇する理由がわからん。

TZubiri 2025-03-01T01:45:01

心配すんな、君の依存先やツールをダウンロードした人の方が恥ずかしいよ。金払ってないなら、こっちに責任ないから。

TZubiri 2025-03-01T02:25:06

贈り物として提供されたものなので、契約成立してないよね。金が動いてないから、直接の損害はないはず。間接的な損害については、少なくともアプリ側には免責事項があるはず。私は法律家じゃないから、法的アドバイスではないけどね。

remram 2025-03-01T16:14:54

爆弾とかウイルス入りのUSBを渡したら、絶対に責任負うことになるから、その点を考えてみて。

ImPostingOnHN 2025-03-02T14:14:38

ウイルスの存在を知らないUSBを渡しても、責任は問われないぜ。保証がなければね。教訓:知らないUSBは使わない方がいい。爆弾渡すのは普通は違法だからな。

notpushkin 2025-03-01T03:35:21

全部大文字の免責条項があると思うよ、フリーウェアではよくあるし。ToDesktopは有料製品だけど。

sky2224 2025-03-01T00:22:24

この人が見つけた攻撃は二つ目だよね。前のはArcブラウザの脆弱性で、Firebaseの設定ミスを利用してた。Googleがどうして開発者にそんな簡単に躓く環境を提供するのか疑問だわ。

999900000999 2025-03-01T01:07:11

Firebaseがすぐに使えるようにしてくれるから、適切な使用やセキュリティが疎かになりがちだ。開発者が急いで市場に出すせいだから、Googleを責めるのはお門違いだと思う。

bastawhiz 2025-03-01T02:40:59

> Googleは、セキュリティ監査なしに有料製品を出したからって責任を負わないよ。簡単にセキュリティ問題を生むサービスを提供してるなら、その責任は開発者にある。それが面倒なら、もっと面倒な方法にしなきゃいけない。

999900000999 2025-03-01T02:54:04

3人のためにPOCを作る必要があるけど、30,000人にスケールさせる時はセキュリティを真剣に考えないといけない。昔の教えで、完全に安全にしようとすると、むしろその安全を破る奴が出てくるって言ってた。Googleが大きな文字で”あなたは不安定なことをやっている”って警告しても、誰かがデプロイしちゃうから、デプロイボタンを無効にすべきだとは思わない。

prophesi 2025-03-01T04:59:23

子供向けのデータベースにセキュリティ考慮がないと、痛い目を見る人が増える。チュートリアルは、認証や個人情報の保存が必要なデータベースの重要なポイントにフォーカスしてほしい。クライアントサイドだけで動くアプリの提案もいいけど、問題を教えるのも必要。

cdmyrm 2025-03-01T08:42:18

ソフトウェアのセキュリティを考慮せずに使う専門家は単に無責任だと思う。無責任なプログラマーに非があるのに、それを責めないようにするのは分からない。

Eisenstein 2025-03-01T20:22:28

プログラマーに責任があるとしたら、どうしたらいいのか?解決策を探しているのに、手を挙げるだけじゃなくて、効果的な方法で問題に取り組むか、開発者の過ちに対して結果が伴うようにしないと。どちらを選ぶ?

ImPostingOnHN 2025-03-02T14:19:04

選択肢が2つだけじゃなく、3つ目があると思う。人々に長期的な教育の重要性や資金を価値を理解してもらうこと。教育基盤をしっかりするのが将来のためには必要。それに、問題の根本的な原因をみんなが学べるように、責任を問わない振り返りを公開するのもいいこと。

ImPostingOnHN 2025-03-02T22:41:28

やっぱり選択肢3を選ぶ。ソフトウェアの機能を制限するのも、極端に責任を問う振り返りも良くないから、選択肢3がベターだと思う。

Eisenstein 2025-03-03T11:56:16

責任がないシステムの助益者が責任を課すことに反対するのは理解できるけど、その理由を説明しないなら、考えを変える理由がわからない。責任を問う振り返りがなぜ悪いのか教えてよ。

記事一覧へ

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