Sandboxアプリがユーザーに気づかれないようMacの画面を録画出来てしまう問題は2011年から指摘され、MacアプリのSandbox化自体が戦略ミスだった?

Peter AmmonさんによるMacアプリのSandbox化の考え OS X
記事内に広告が含まれています。
スポンサーリンク

 Sandboxアプリがユーザーに気づかれないようにMacの画面を録画出来てしまう問題は2011年から指摘されていたそうです。詳細は以下から。

AppleのSandboxアイコン

 2018年02月10日、Googleでfastlane.toolsを開発しているFelix Krauseさんは「Sandboxアプリでもユーザーに気づかれないようMacの画面を録画し、OCRにより個人情報を読み取ることが可能だった」という記事とPoCを公開しましたが、Objective-SeeのPatrick Wardleさんら一部のセキュリティ研究者らは、2011年(Mac OS X 10.7 Lion時代)からこの問題を指摘してきたそうで、

Keyboard and Screen Access
[…] The same is true for screen capturing with CGWindowListCreateImage still working so that an sandboxed app may capture the whole screen including the window contents of other apps without (non-existing) entitlements for that.

Sandbox of Doom – Timschroeder

さらにこの記事がHacker Newsに投稿されると多くのコメントが集まり、その中に2003年からAppleのソフトウェアエンジニアとしてAppKitの開発に関わっていたPeter Ammon(ridiculous_fish)さんが現れ、「私の考えではMacアプリのSandbox化は戦略ミスだった」とコメントしたことからさらに議論が白熱しているそうです。

Peter AmmonさんによるMacアプリのSandbox化の考え

Peter Ammon, former AppKit engineer at Apple, in a comment in a Hacker News thread regarding a report positing that the ability of Mac apps — even sandboxed ones — to capture screenshots of the entire screen is a security problem : IMO the app sandbox was a grievous strategic mistake for the Mac. Cocoa-based Mac apps are rapidly being eaten by web apps and Electron pseudo-desktop apps.

The Threat to the Mac: The Growing Popularity of Non-Native Apps – Daring Fireball

NativeとNon-Native

 AmmonさんはCocoaベースのMacアプリ(ネイティブアプリ)が急速にWebやElectronアプリに飲み込まれている現状に対し、Macアプリが生き残るためにはパフォーマンスやシステムへの統合、開発経験、機能などが必要だが、Sandboxはこれら全てに影響を与え、この記事のようにWebアプリよりセキュリティ面でも劣っていると指摘しており、その価値に見合った利益がなく個人的な意見としてはAppleはSandboxを廃止すべきだとコメントしており、

Q.From a developer stand, why advantages do I get from making a native Mac app compared to a web app or an Electron app?Web apps in the browser are OS-Agonstic and Electron apps can be easily made cross-platform.

A.The answer is quality. As a Mac user I always prefer a native Mac app to some cross-platform app, even one with nominally more features.
More specifically:

  1. Superior performance. Native apps are just faster. They launch faster. They use an order of magnitude less memory. Multithreading via GCD is much much nicer than Web Workers. Large files are better supported. You can have very large tables. etc.
  2. They properly implement Mac UI idioms. By comparison even the nicest Electron-like app (VSCode) violates many longstanding expectations: it doesn’t properly highlight the menu bar when typing a key equivalent, menu items don’t disable properly, the text highlight color is wrong, text selection anchors incorrectly, no column selection, text drag and drop is badly broken, undo doesn’t know what it’s undoing, undo coalesces incorrectly, hell even arrow keys sometimes go the wrong way. It’s an island app doing its own thing.

The theory of the Mac is to establish a set of UI conventions. When you launched a new app, you would already know how to use most of it, because it was a Mac app. It looks and behaves like other apps, so you feel at home already. And as a developer, you get the right behavior now and in the future, for free.
But if every developer builds a cross-platform app with a custom framework and appearance and behavior and UI, then the OS loses its role in defining the platform conventions. In that event, what’s the point in having more than one OS?

Hacker Newsより

加えて「WebやElectronアプリはクロスプラットフォームに対応できるが、ネイティブアプリがWeb/Electronアプリと比較して優れている点はなんですか?」という質問に対し、MacのネイティブアプリはWeb Workersなどと比較してパフォーマンスやメモリ効率、GCDによるマルチスレッド、新しいアプリを初めて起動しても何がどこにあるかが分かる統一されたUIなどが優れているとフォローしており、Daring FireballのJohn GruberさんはAppleはSandboxが前提としてデザインされたiOSではアプリのSandbox化に成功しているが、Macではその前提がないとして、非ネイティブアプリを開発する開発者の数と、それを問題としないユーザーの数がMacの脅威になるかもしれないとコメントしています。

The real problems facing the Mac are the number of developers creating non-native “Mac” apps and the number of users who don’t have a problem with them.

The Threat to the Mac: The Growing Popularity of Non-Native Apps – Daring Fireball

コメント

  1. 匿名 より:

    MacアプリのSandbox化は確かに要らなかった。もしくはもっと別のやり方があったと思う。

タイトルとURLをコピーしました