マジかよ!スマホに入ってるアプリ、全部筒抜けってマジ!?
引用元:https://news.ycombinator.com/item?id=43518866
ACTION_MAINの抜け穴については以前にも書かれてるよ。https://commonsware.com/blog/2020/04/05/android-r-package-vi… Googleはこれを修正する気がないみたい。Android VDPに権限バイパスとして提出したらどうなるかな?作者によるバイパスに関するSOの質問もあるよ。https://stackoverflow.com/q/79527331
ACTION_MAINの抜け穴は、宣言するアプリにランチャーになることを義務付ければ最終的には修正できるかもね。正当な連携には、もっと具体的なintentが必要だと思う。もし変なゲームがデフォルトランチャーになるか聞かれたら、ユーザーは警戒して報告するか、間違って選択してホーム画面が壊れてPlay Storeで報告されると思う。ランチャークラスのアプリとして公開するには、自動テストとか面倒な要件も増えるはず。
それはいいね。
>Googleはこれを修正する気がないんだね。
だからXPL-Extended(と以前のXPrivacyLua)みたいなプロジェクトが絶対に必要なんだ。これなしでAndroidスマホは使えない。
>情報セキュリティのコミュニティが常に失敗するのは、自分とは違うニーズや優先順位を持つ人、時間がない人や技術力がない人も、プライバシーとセキュリティに値するってこと。
https://hachyderm.io/@evacide/114184706291051769
XPrivactLuaや他のXposedMod/Magisk拡張機能はアプリのサンドボックスをぶっ壊すから、usereng/engビルド(テストデバイス)での実行を制限した方がいいよ。prodビルド(ユーザーデバイス)では、Work Profiles(GrapheneOSは最大31個まで並行してサポート)かPrivate Spaces(Android 15以降)を使って、アプリ同士を完全に隔離するのがおすすめ。
アプリのサンドボックスの受益者は誰?ユーザー?それとも企業?ユーザーなら、悪意のあるプロセスがアプリを改ざんできないから。企業なら、ユーザーがアプリを改造できないようにして、純粋な消費者にするから。技術に詳しい人にとっては後者の方が正確だと思うし、サンドボックスをぶっ壊してプロセスをいじるのは非常に重要だと思う。広告ブロッカーを注入したり、自動化したり、外観を変更したり。ユーザーにはそうする権利があるべき。
私はユーザーだよ。
悪意のあるアプリは審査をすり抜けてくるし、安全じゃないコンテンツを処理しないといけない正直なアプリもある。脆弱性があってもアプリだけに影響するように、スマホの全部が危険に晒されないようにしないと。強力なサンドボックス、メモリと実行保護が安全な方法だよ。サンドボックスを破壊することが、消費者の権利とどう関係あるの?Lucky Patcherみたいにパッチを当ててリパックできるじゃん。
>技術に詳しい人がAndroidを改造したいなら、Pixelみたいにブートローダーのロック解除と再ロックをサポートするAndroidデバイスを買って、CalyxOS/GrapheneOS usereng/engビルドを焼くべき。
Googleが作った流れは、modderにとってすごく敵対的になってる。セキュリティと利便性のトレードオフになってるんだよね。昔のAndroidはそうじゃなかったのに。CyanogenModの機能がPure Androidを超えてた時代が懐かしい。GAppsの制限からPlay Integrityまで、自分の好みに合わせたAndroid OSを作って、銀行や決済アプリを使うのがほぼ不可能になった。Googleのせいで2台持ちだよ。
ContactsとかStorageみたいに、App List Scopesが待ち遠しいね。マジで早くしてほしい。イギリスの銀行は、いくつか口座持ってるところ全部、アプリのリストを本部に送ってるんだって。Revolutが起動しなくなった時に気づいた。NatwestとNationwideはデータ収集の前に教えてくれるけど、気にしてないみたい。結局、バンキングアプリは専用のプロファイルに閉じ込めることになったけど、もっと閉じ込めたいわ。
NatWestのこと言ってるね。NoRoot FirewallでNatWestがFacebookと頻繁に通信してるのを見たことあるよ(Android)。もちろんFacebookとInstagramのIP範囲は全部ブロックしてるけどさ。なんで銀行がFacebookにアプリを起動したことを伝える必要があるんだよ?!ありえない!これがiOSを使わない理由。ファイアウォールがないし(batterygateスキャンダルもあったし)。
Android 14だけど、F-DroidのInsularかPlay StoreのIslandってアプリに満足してるよ。アプリのインスタンスを好きなだけインストールできて、Work Profileに表示されるから、他のインスタンスの存在を知らないんだ。
Work Profile機能のフロントエンドだね。
今はもうInsularを使うのは推奨されてないよ。A14ならShelterを使って。
root化のセキュリティリスクについて、すごく参考になる説明を見つけたよ。
https://madaidans-insecurities.github.io/android.html
サンドボックスについても説明してくれてる。
そのリンク、なんか意図があるみたい。説明が雑すぎる(例えば、root化したスマホが本質的にセキュリティ境界を壊してるのか、それとも[Linuxみたいに]実装にバグがなければ安全なのかを全く区別してない)。自分のデバイスの主権を求めるユーザーに、崖から飛び降りろって言ってるみたい。
dataflowが言ってるように、あのサイトは意図があるよね。Android v4からずっとroot化してるけど、問題ないよ。むしろ、スマホから削除したクソアプリのせいで攻撃リスクが減って、root化のリスクをある程度相殺してると思う。
もちろん、みんなにroot化を勧めてるわけじゃない。最近は、テック系の友達にも勧めなくなったよ(相談されたら別だけど)。
root化してる人は、スマホを完全にコントロールできるって知ってるよね。例えば、トラッカーがたくさん入ってるけど、他に選択肢がないアプリとか。root化すれば、開発者の思うがままじゃなくて、自分のやりたいように使えるんだ。
root化にはリスクもあるけど、メリットの方が大きい。
Madaidanの記事は“セキュリティ至上主義”で有名で、ユーザーの自由を犠牲にしてることが多い。プライバシーを考えると現実的じゃないよね。デバイスを“改ざん”から守るだけのセキュリティに何の意味があるの?もちろん、セキュリティが高い方が良いけど、まずはスパイ行為をやめてほしい。完璧なセキュリティがあれば、Googleだけが全てのデータにアクセスできて、Googleだけがデータ収集を止められるってこと。
rootアクセスの危険性について、もう一つ見つけたことを追加したい。
>The term [rooting] generally also includes the functionality for making runtime code patches (eg. with Zygisk) and making runtime filesystem modifications (eg. Magisk modules).
>Out of the many root-enabled apps I’ve studied or reverse engineered, the vast majority fail to handle arbitrary inputs properly (especially filenames). For example, some root-supporting file managers turn a seemingly benign action like listing a directory into local privilege escalation. This is trivially exploitable, especially with browsers auto-downloading files with server-provided filenames to /sdcard/Download/.
>To avoid repeated root access UI prompts, some apps spawn a long-running shell session, write commands to stdin, and rely on parsing stdout and searching for the shell prompt to determine when commands complete. This approach is prone to desync, which can lead to commands being skipped or other inputs being interpreted as commands.
>All in all, I simply do not trust most root-enabled apps to not leave a gaping security hole, so I avoid them entirely. There are apps that do handle root access in what I would consider a more proper way, by spawning a daemon as root and then talking to the daemon over a well defined binary protocol. Unfortunately, this approach is the extreme minority。
要するにroot化アプリは信用ならないってことだね。
root権限好きな人として言いたいのは、GrapheneOSとかCalyxOSみたいなディストリとか、VPN経由のrootなしフィルタリングも選択肢としてあるってことだよね。バックアップさえあれば、rootなしでも普段の生活なんとかなるかも。どうしてもって時はroot化して、OTAアップデートでまたroot化解除すればいいし:D
https://github.com/schnatterer/rooted-graphene/
GrapheneOSにはSeedvaultより良いバックアップ機能を提供してほしいな。
Androidチームによる、もっと最近の(2023年)サンドボックスと隔離の概要はここにあるよ: >Androidのセキュリティ設計は基本的に、複数パーティ認証モデルに基づいているんだって。つまり、関係者全員が承認した場合にのみアクションが実行されるってこと。 責任共有モデルでは、そういう拒否権もアリなんじゃない?エンドユーザー(アプリからしたら泥棒かスパイかサルか、ほんとにデバイスの所有者かなんてわからない)がアクションを承認したからって、OSとアプリが承認する必要はないわけだし。 power userには厳しいのはわかるけど、Androidは全人類の50%が使ってて、“sudo make me a sandwich”レベルのコントロールを求めてる人がどれだけいるかなんて、誰にもわからないでしょ。 リンクありがとう。package visibility restrictionの導入以来、抜け穴は既にあって、ほとんどの人がその抜け穴を知ってるみたいだね。 その抜け穴は5年前に公開されてから、ずっと修正されてないじゃん。Googleの誰かに、修正を拒否してるって公式文書に書いてもらわないとダメなの? >修正を拒否している セキュリティの問題なら、月例セキュリティパッチでリリースするべきだよね。Private Spaceも根本的な問題を解決してるとは思えない。4つのアプリがあって、互いに知られたくないなら、1つをメインプロファイル、ワークプロファイル、アプリロッカーに入れれば、最後の1つを入れる場所がなくなっちゃう。アプリロッカーの仕組みは、何十個ものサンドボックスには対応できないんだよ。 そういう答えを求めてないのはわかってるんだけど、ユーザープロファイルを使えるよ。標準のAOSP Androidでも複数のユーザーを作れるし、特定のAOSP由来のものなら、通知の転送もできる。Application List Scopesが追加されるまでは(ロードマップにあると思うけど)、ユーザーが連絡先リストの特定の連絡先だけ、ストレージ内の特定のフォルダだけをアプリに嘘をつけるのと同じようにね。 悪意があるよね。明らかに報告された脆弱性を回避するために、複雑すぎる機能をリリースし続けて、power userを黙らせて、企業のシステム管理者を喜ばせてるんだ。残りの99.9%のユーザーは脆弱性を抱えたまま。広告ネットワークにとっては非常に有利。Androidを維持してる広告ネットワークがそうするのは当然だよね。 AndroidのVDPに提出するのは良い考えだと思うけど、「意図通り」って言われて終わるかもね。 理想的なのは(俺的には「意図通り」)、例えば5個のアプリをmanifestでサポートして、開発者がもっと必要ならGoogleに例外申請する(AWSの制限緩和みたいに)。アプリごとに理由を添えて。 みんな忘れちゃってるかもしれないけど、Androidはもともと相互運用性を念頭に置いて設計されたんだよね。システム開発もコミュニティの意見も、こんなに変わっちゃったのが悲しい。 「この修正を拒否した」ってどういうこと?Googleは、そのフィルターを要求するアプリの公開を拒否するよ。Playストアのlauncher以外は。 それって、記事の47個中31個のアプリがこのフィルターを持っていたって主張と矛盾してない? 「似たような」ってことは、言ってることが本当じゃないってこと? 筆者は、このハックが広く使われていて、PlayストアのSnapchatやFacebookなどのアプリにも含まれているって言ってるね。 HSBC銀行のアプリがこれを使ってて、Playストアにあるよ。 どうしてもネイティブの「アプリ」が必要な理由がマジでわからん。いまだに、ウェブサイト/ウェブアプリで済むアプリしか見たことないわ。むしろウェブアプリの方が良くなる場合が多いと思う。 シンプルで使いやすいUXってことだね。実際、スマホのwebappってマジでイマイチなの多いじゃん?ネイティブアプリと比べるとUXが全然違うんだよね。テキスト選択させないでほしいし、毎回pull to refreshとかマジ勘弁。あと、左スワイプで前のページに戻るのとかもやめてほしい。回避策はあるんだろうけど、Silk libraryってのが結構ネイティブに近いらしいよ。でも、有料ってのが、やっぱ簡単じゃないってことだよね。 >テキスト選択させないでほしいとか、pull to refreshとか、左スワイプで前のページに戻るとか”マジで意味不明。テキスト選択できないのとか、マジで敵意しか感じない。ただの嫌がらせでしょ?あと、複数ページ開けないのもクソ。まじで作業効率落ちるわ。ネイティブアプリのUXはゴミだけど、ネイティブだからってわけじゃないんだよね。デスクトップアプリは、まだマシなのあるし。モバイルのUXパターンとかUIフレームワークが悪いんだよ。 MacOSのネイティブアプリって、基本的にボタンとかのクリックできる要素以外はテキスト選択できるよね。 ブラウザアプリにも良いところはあるよ。 言ってることは、ちゃんと開発されたPWAでもできるよ。もちろん、ウィジェットとか、もっと深いシステム連携(電話のコントロールとか)は無理だけどね。 ブラウザで本格的な音楽シンセ作ってみたら?バッテリーすぐなくなると思うけど。 >ブラウザアプリの利点”って言ってるけど、Webアプリが今のUIに向いてない技術で作られてるからそうなってるだけじゃん?テキストを処理するエンジンが、無理やりUIのレンダリングエンジンやってるみたいなもん。 >テキスト選択できないのは”UXが悪いだけじゃなくて、マジでユーザーに敵対してる。 UIでテキスト選択したいと思ったことないなー。昔、エラーメッセージをコピーしたかったことはあったけど、選択できなくてもコピーできたし。 いやいや、具体的な例がないのは弱点だって。てか、人の気持ちを決めつけるなんてマジありえなくない?個人的な話にするならさ。そもそも、なんでメニューのラベルを選べる必要があるの?そんなの、今まで使ったどのOSにもないじゃん。変えたいなら理由を説明すべきじゃね?HNで人を批判するより、何か役に立つ情報を提供してよ。少なくとも俺は自分の経験を話したし、それもデータの一つじゃん。自分の経験を語るのがエゴなの? 例えば、日本に行って日本語のアプリを使うことになったとするじゃん?そしたら、翻訳するためにテキストを選択することすらできなくて超イライラすると思うよ。少なくとも最近のAndroidには、アプリ切り替え画面でテキストを選択できるOCRみたいな機能があるけどね。 一部の機能を無効にできないブラウザを作ってる会社の動機って何なんだろうね?それって、ネイティブアプリの方がずっと優れてるってことじゃん(例えば、Safariのスワイプで戻る機能とか。10万回以上スワイプバックしてるけど、一度も意図的にやったことないし)。 >I have never ever swiped back intentionally in over 100000 swipe backs それってマジで奇妙な意見だよね。ノートPCにネイティブアプリがある理由もないって言いたいの?それって、本質的には同じことじゃん。ネイティブアプリにしかできないことってたくさんあるんだよ。例えば、重いビデオやオーディオ編集、大量のRAMの使用、GPUコンピューティングの利用とか。ブラウザじゃ無理でしょ。 デスクトップでは生産的な作業をするから、アプリにはネイティブな機能が必要なんだよ。モバイルアプリは主に消費、表示、閲覧がメインで、複雑なインタラクションはないじゃん。 コンテンツ制作にiPadを使ってる人も多いよ。ちょっと視野が狭いんじゃない?iPhoneで撮影された長編映画もあるし、少なくとも2本はOscar受賞監督が撮ってるんだよ!モバイルブラウザで撮ったんじゃないよ。 >I still、will never understand the need for native “Apps”。 To this day、I have never seen an “App” that couldn’t simply have been a website/webapp。 >In cases where a native app and web app are both available on iOS、there’s often a huge difference in battery usage and sluggishness。 >Where most of the modern applications are either web wrappers or Electron apps。 良い感じのネイティブMacアプリも減ってきてるよね。 PWAってオフラインでも使えるじゃん。批判する前にちゃんと理解してる? 言いたいことは一部わかるよ。企業が顧客のショッピングトークン集めたり、カスタマーサービスに連絡取ったりするために出してるアプリは、ウェブサイトの方が絶対良いよね。でもオフラインで動くアプリも欲しいし、自分のデータをコントロールできないサービスに預けたくないんだよね。山とかでOsmand/Organic Mapsみたいなオフライン地図アプリ使いたいし。可能な限り、アプリはオフライン優先で作って、必要な時だけネット使うようにしてほしい。ネット必須なアプリはウェブアプリでいいじゃん。 マジごめん。全然わかんない。モバイルウェブってマジで使いにくいし、アプリの方が全然良いじゃん。最後にモバイルウェブでフライト予約したのいつ?ブラウザのスペース無駄じゃん?アプリなら認証情報キャッシュしてFaceIDでログインできるのに、毎回ログインとかありえない。 マジで、ホテルとかフライトの予約はウェブの方が良いって。複数のウィンドウで簡単に料金とか比較できるし。アプリ使う人の気持ちがわかんない。マジでめんどくさい。 デスクトップとスマホを比べてるじゃん。デスクトップなら色々できるけど、スマホで複数タブとかマジ無理。 >Having to log in every time アプリでしか使えないサービスも増えてるよね。例えばRevolutみたいな金融アプリとか。Androidのエコシステム全体がGoogleに管理されてるのも問題。カスタムAndroid ROMも使えるけど、Play Integrity API使ってるアプリは使えなくなるし。 最悪なのはイギリスのNHSアプリ。ただのwebviewなのにアプリでしか使えないとか意味不明。 NHSのウェブページも同じ感じだよ。 バンコクで地震があった時、Grab(Uberみたいなやつ)のおかげでタクシー呼んで子供たちを家に帰せたんだ。携帯のネットワークはほぼ一日中ダウンしてたけどね。みんな家族や友達の安否を知りたがってるから、Grabは回線が悪い状況でも最適化されてるんだろうね。UDPとかに切り替えてるんじゃないかな。ウェブアプリじゃなくて助かったよ。他の多くのケースでは同意だけどね。 ブラウザで動画アプリってどう作るの?例えば、動画撮って編集するとか。 ちょっと言い過ぎな部分もあるけど、大体は合ってると思うな。多くのネイティブアプリは、ウェブアプリでも十分作れたはず。iOSでウェブアプリをホーム画面に追加できるけど、分かりにくいし使ってる人も少ないよね。FirefoxがPWAをサポートしてくれないのは謎。 CapCutみたいな、スマホのカメラにアクセスして動画をキャプチャできるやつだよ。 カレンダーとか、メモとか、メールとか、ネットに繋がってなくても使えるアプリって結構あるよね。オンラインになった時に同期してくれればいいし。 ああ、それね。実装がクソな場合が多いけど、ウェブアプリでもservice workers使えばできるよ。ホーム画面にインストールして、ネット接続なしで使えるようにね。 一番基本的なアプリ、メモ帳ですら、ネイティブの方が好きだな。Google KeepとかNotionからapple notesに移動すると違いがわかる。テキストが長くなると、ウェブアプリはコンテンツを読み込めなくなるんだよね。ブラウザが全てを解決するなんて言わないで。Notepad.exeとかviの代わりになれないウェブアプリが多いんだから。 Hacker Newsが好き。 マジレスすると、r/androidとか他のサブレよりも過疎ってる気がするんだよね。reddit全体が死んだインターネット理論に当てはまるかも。あと、特定のテーマのサブレは、そのテーマに利権持ってる人がモデレーターやってて、コミュニティのためになってない気がする。MetaのLlamaのライセンスについて詳しく書いた投稿が、r/LocalLlamaのモデレーターに理由もなく削除されたし。redditの粛清でモデレーターがredditの社員に変わった時、企業に場所を売ったのかもね。 モデレーションはRedditの弱点だよね。任期なしの君主制がウェブサイトでうまくいくなんて、Redditは何考えてるんだろ?ユーザーがモデレーションについてフィードバックできる投票もないし。/r/moviesみたいに映画ポスターにしか興味ないサブレとか、/r/runningみたいに週ごとのスレッド以外はほとんど話題にされないサブレとかあるし。 redditの良いところは、大衆向けのサブレをフォローしなくてもいいところ。メンバーが多いサブレはだいたいひどい。/r/<city_name>runningみたいなニッチなサブレを見つけると、モデレーターはコミュニティのために面白いことをしてくれるし、スラングとかスパムに対処するだけじゃなくて、コミュニティを育ててくれる。 大きいサブレの意見には賛成だけど、ニッチなサブレもモデレーションの問題があると思う。人気が出ると、モデレーションが気に入らなくても新しいサブレを作るのは難しい。昔、r/lgbtのモデレーターが暴走してr/ainbowができたけど、ほとんどの人はlgbtに行くよね。モデレーターは誰にも縛られてないから、redditがサブレをフォークしやすくすればいいと思う。 > Find a more niche subreddit like /r/<city_name>runningもっとコメントを表示(1)
https://arxiv.org/html/1904.05572v3/
(セクション4.3)
>関係者っていうのは、ユーザー、プラットフォーム、開発者(コンテンツプロデューサーやサービスプロバイダーを暗黙的に表している)のこと。誰か1人でも拒否権を行使できる。
これってユーザーにとってアンチじゃない?アプリ開発者が私の決定を拒否できるって明言してるじゃん…
>Googleはこれを修正することを拒否している
Googleのエンジニアがこの広く使われている抜け穴を知らないとは思えないけど、修正を拒否したっていうソースはあるの?
Googleは、Private SpaceとWork Profileで、(互換性を壊さずに)同じような隔離の問題に対処してるよ:
https://source.android.com/docs/security/features/private-sp…
アプリのメリットは、開発者がいらない個人情報にアクセスできることくらい。
あと「App Store」に出せること。でも「App Store」なんてApple/Googleが売上の分け前をかすめ取るための不必要なコンセプトじゃん。
ウェブブラウザはサンドボックスも優秀だし(完璧じゃないけど)、審査料もかからないし、誰でもアクセスできる。もっとコメントを表示(2)
・テキスト選択できる
・拡大縮小できる
・広告ブロッカー使える
・ソースコード見れる
ネイティブアプリのメリットは
・動作がスムーズ(ナビゲーション、スクロール、アニメーションとか)
・パフォーマンスが良い(JavaScriptはネイティブに勝てない)
・ハードウェア使える(オーディオ、ビデオとか)。ブラウザじゃできないことたくさんある
・ウィジェット便利
・アプリのアイコンが目印になるから、サイトよりアプリをプッシュする
つまり
・ボタンとかまで全部選択できる
・拡大縮小でUX崩壊する。開発者がdisableにするか、ハックする必要がある
ブログならいいけど、UIには向いてない
メニューバーとか、テキストボックスのラベルとか、ダイアログのタイトルとか、間違って選択したくないし。
それマジな質問だけど、スワイプバックするときって、何がしたいの?
ネイティブアプリとWebアプリが両方ともiOSで使える場合、バッテリーの消費量や動作の遅さに大きな違いがあることが多いよね。あと、他の人も言ってるように、オフラインで使えるアプリも欲しいし、例えば地図とかメモとか。
AppleとGoogleのやり方は好きじゃないけど、Webアプリだけになるのは未来じゃないと思うな。だから、Chromebookの代わりに本物のコンピュータを使うつもり。
マジそれな、ネイティブのInstagramがSafariで複数のサイトを見るよりもバッテリー消費が早いみたいな。
>For the same reason I won’t replace my real computer with a Chromebook for the foreseeable future。
>real computer
最近のアプリって、WebラッパーかElectronアプリばっかじゃん。
Linuxみたいな時代遅れのプラットフォームに固執してるならそうかもね。Macなら、ネイティブアプリの方がWebラッパーよりもずっとパワフルで使いやすいよ。Linuxユーザーは、ブラウザでコンピュータを使うっていう壊れたやり方を他のプラットフォームにも押し付けようとするけど、他のプラットフォームは高品質なソフトウェアに慣れてるんだよね。もっとコメントを表示(3)
それ、壊れたウェブアプリじゃん。今使ってるHacker Newsは毎回ログインしなくてもいいよ?
>when the app can just cache my authentication and FaceID me
それも壊れたログインフォームじゃん。Hacker NewsもパスワードマネージャーのおかげでFace IDでログインできるし。Passkeysも使えるし。
iOSアプリの方がtouch IDとかfaceIDでログインできて便利。ウェブページはcookie求めるくせに、設定覚えられないみたい。
この記事昨日見つけてreddit androidに投稿したんだけど、https://old.reddit.com/r/Android/comments/1jmwg4w/everyone_k…
0票で、コメントは落ち込んでる人かボットばっかり。ここでは上位2位だし、面白いコメントが多い。サブレディットにもよるけど、r/androidは最悪。
>もっとニッチなsubredditを見つけろ、例えば/r/<city_name>runningみたいな
アメリカならそうかもね。redditユーザーの半分はアメリカ人みたいだし、runningみたいな一般的な話題ならね。でも、ローカルLLMについて議論できる場所はほとんどないし、モデレーターが議論を邪魔してるなら、どうしようもないよね。