GrapheneOS開発者インタビュー抄訳

一時間半に及ぶ長いもので、字幕つけるかどうかわかりませんが、とりあえず重要な点のみの要約です。

かなりの部分は、AOSP(Android OpenSource Project)のセキュリティバグ修正等の貢献、Googleの動きについて話してますが、そこは省略してます。

Pixelのみサポートの理由

Pixelは、ハードウェア的なキングであると、Googleはみなしており、唯一の競争相手はiPhoneのみです。いくつかの点では勝っています。我々がPixelを使う理由は、Android全体を見回して突出しているからです。

そして、代替OSに対するファームウェアレベルの適切なサポートを持ちます。つまり、Google以外の独自のOSの起動を許しながら、スマフォの提供するすべてのセキュリティ機能を維持します。つまり、検証ブートです。

また、ファームウェアレベルのMACアドレスランダム化を持ち、Wifiプライバシー機能もです。

訳注:MACアドレスのランダム化

デフォルトは、per-connection randomized MAC。

いったん切断して再接続すると、MACアドレスが変更されている。

さらに、Titan Mチップがあります。これはハードウェア的な強固なセキュリティ機能です。たとえ、カバーを開けてTitan Mチップを物理的にはずしても、中身を取り出せません。可能性としては、モバイルで入手できるベストのセキュリティ構成要素です。

そしてまた、Insider Attack Resistance機能があります。悪意の従業員や、Googleが裁判所命令を受けたとしても不可能です。

検証ブートが重要な理由

検証ブートはいかなるAndroid OSでもベースラインです。Pixelはこの機能を(他の)OSに対して維持するんです。攻撃者が物理的にあなたのスマフォを入手してOSを変更するかもしれない、という人もいますが、確かにそれもあります。これは脅威の一つに過ぎません。

もう一つの大きな脅威としては、永続性です。例えば、あなたのスマフォに秘密のマルウェアを(OSに)インストールするとします。これを再起動を超えて永続させるのは難しいのです。OSはリードオンリーで、完全にブートローダーに検証されるからです。

あるいは、攻撃者がOSを以前の脆弱性のあるバージョンに戻し、その脆弱性を使って攻撃しようとしても、ブートローダーはそれを許さないのです。

そして、ブートローダをアンロックあるいはロックすると、データは消えてしまいます。

プロファイル機能の拡張

GrapheneOSは、元々のAndroidセキュリティ機能を拡張しています。

Androidには複数プロファイル機能が長らくありましたが、これを拡張しており、すべてのプロファイルについて、「セッション終了」ボタンがあります。この意味としては、ボタンを押せば、そのプロファイルが完全にRAMから削除されるということです(プロファイル自体が消されるのではなく)。それぞれのプロファイルはそれ自身のウィーバースロットを持ち、この意味としては、それ自体の暗号化キーを持つということです。各プロファイルのそれぞれのパスコードを持てます。

そして、通常のAndroidでは4つまでのプロファイル(間違いであれば言ってください)ですが、これを16にしてます。非常にフレキシブルです。誰もが使うわけではないでしょうけれども。

ですから、一つのプロファイルには、Play Serviceに依存するアプリのみを閉じ込めたり、もう一つにプロファイルは(重要な)ID専用としたり、もう一つは現実的なSNS用とし、もう一つはネット上でのエイリアス(別の名前、匿名)としたりですね。これは、スマフォ上で行うことを「区分化」するために有用かと思います。

Wifiタイムアウト

例えば、私はWifiタイムアウト機能をONにしてます。例えば、スタバのWifiに接続し、立ち去った後で何分かすると、自動的にWifiをOFFにします。これにより、Attack Surface Reducationができ、Wifiによるリモートコード実行の危険を劇的に減らせます。(訳注:実際にどういう仕組みなのか不明)

これはほとんどの人が考慮するようなものでは無いですが。

自動リブートタイマー

例えば、画面アンロック無しで4時間経過したとします。その間スマフォを使わなかったのです。その後で自動リブートします。この意味としては、リブートの後ではメモリ上のすべてのデータは消えるわけです。つまり、リブートの後では、すべてのデータはTitan Mによって保護されたものになるわけです。

訳注:設定>セキュリティ

例えばあなたが抗議者で、警察があなたのスマフォを取り上げたとします。抗議中にはスマフォを使いませんでしたから、時間切れになり、自動で再起動します。

Network Permission

GrapheneOSのネット権限をOFFにすると、アプリのネットアクセスを完全に遮断します。アプリベースのファイアウォールと言えます。全く漏洩はありません。漏洩しえないのです。

ただし、これは、アプリ同士のコニュニケーションを禁止するものではありません。もし、アプリ同士がそれに合意している場合ですね。例えば、Google Play Storeがすべてのアプリとのやりとりをするよう許可した場合、アプリはそこから通知を受けられるといったものです。

Google Play Storeについて

GrapheneOSは、Sandboxed Google Play Store機能を持ちます。この意味としては、完全なGoogle Playアプリをインストールでき、起動させることができることです。そのAPIのほとんどすべてが機能します。(しかし)それは、何の特権も得られず、通常のサンドボックス内で動くのです。他のアプリと同じ立場です。そして、ユーザは、それに対するすべての権限をコントロールできます。

これを実現した方法としては、GrapheneOSの中にSHIM(?)を入れたことです。この意味としては、例えば、電車の経路を変えることです。ですから、A駅からB駅に行くのではなく。。。Bが何らかの特権的統合だとしますが、そうではなく、いったんC駅に行ってからB駅に行かせるんです。あるいは、B駅に行かせるのではなく、D駅に行かせます。

そして、普通のアプリに特権的APIを使わせるのではなく、それを置き換えるか、あるいはダミーのデータを戻してやります。

例えば、ストックOS上のPlayサービスはスマフォのシリアル番号が得られますが、我々のしたこととしては、「このスマフォにシリアル番号は無い」と返答することです。ですから、シリアル番号を得られません。そういった単純なことです。

あるいは、ストックOS上のPlayサービスはIMEI(スマフォの固有番号)を得られますが、GrapheneOSでは、それはできません。システムとの深い統合はなく、特別な権限もないのです。単に通常のアプリサンドボックス内で動くだけです。

ですから、その権限はユーザが完全にコントロールできますし、IMEIを取得することも、システム深くを覗くこともできません。

インタビュアー:私はクレジットカードでPixelを買い、連中は私のIMEIを知ってるわけですが、それで私がGrapheneOSを動かした場合、連中は結びつけることができるでしょうか?

不可能です。GrapheneOSの動作中に、連中はIMEIを得ることはできませんから。Android 10以降は、全アプリがIMEIを取得できないようになってます。Sandboxed Google Playにより、Playサービスは通常のアプリであり、何の特別なアクセスもできないからです。

インタビュアー:すると、私の名前に結びつく、何のIDも得られないのですね?Googleだろうが、他のアプリだろうが、GrapheneOS上では。

そうです。

インタビュアー:私のスマフォは匿名とみなして良いわけですね?

ある意味はそうです。

携帯キャリアの危険性

ただし、携帯キャリアはスマフォのIMEIやIMSI(SIM固有番号)を取得できます。ですから、例えば、抗議デモへの参加の際には機内モードにすることです。そうすれば、あなたの参加はわかりません。

インタビュアー:(その際は)Wifiオンリーのデバイスとして使えますよね。

そうです。

インタビュアー:つまり、ここでは携帯キャリアのみが大きな脅威、大きな穴と言えるわけですね?

そうです。私の考えるところでは、携帯ネットワークは常に非安全です。これは、携帯ネットワークの本来的な性質だと思います。何かしらのクレイジーな開発が行われない限り、私の人生では(安全になるのを)見ることができないでしょう。

人々は本来的に携帯ネットワークの非安全性を受け入れねばならないんです。そして予見できる未来としては、常に非安全ということです。TCPであろうが、携帯ネットワークであろうが、常に信頼してはならないんです。

インタビュアー:機内モードが私にとってベストですね。

セキュリティアップデートの切れたデバイスをどうすべきか?

ユーザには心に留めてほしいのですが、数年間セキュリティアップデートの無いWindows XPパソコンは使わないことです。

しかし、スマフォについては、それほど重要ではないというのが、人々の合意になってますが、まさに同じことなんです。いったんメーカーがサポートをやめたら、セキュリティのフルサポートは無いんです。ファームウェアのセキュリティアップデートはメーカーに依存するかありません。

時間が経つにつれて、より多くの脆弱性が公になってくるんです。これを人々はわかってません。