タグ: iMessageの操作

iMessageの操作

  • BlastDoor または iMessage が iOS 14 でハッキングへの多くの扉を閉じる方法

    私たちはこれを何度も繰り返してきました。オペレーティング システムのアップデートで最も重要なことは、新しい機能や絵文字をすべて追加することではなく、セキュリティです。何も大きなニュースを提供していないように見える新しいアップデートには、常にセキュリティ パッチが伴い、機器を侵害する可能性のあるセキュリティ ホールを悪用する可能性や選択肢を遮断します。

    大きな問題は、これらの概念を理解するための適切な文化や教育が存在しないことです。騙されてはいけないのですが、これらの概念自体は非常に複雑であるためです。これ以上は省きますが、最新の iOS 14.4 アップデートでは、Apple が「積極的に悪用された可能性がある」と明言した3 つのかなり深刻なセキュリティ バグが解決されました。私たちの同意や知識なしにスマートフォンやタブレットを制御できる問題。

    セキュリティに関して学ぶべき最初の教訓は、Apple がリリースするシステムの最新バージョンに (可能な場合は) 更新することです (これは Windows、Linux、Android などの他のシステムにも当てはまります)。

    アップデートの重要性を例証するために、 Google Project Zeroの調査 (現在のすべてのシステムとデバイスのセキュリティ問題を見つけるために積極的に活動するセキュリティ チーム) の結果をお話しします。この調査により、Apple がシステムのセキュリティを大幅に改善したことが判明しました。 iMessage は、直接エラー (デバイスへの介入を必要としないゼロクリック エラー) の最も活発な発生源の 1 つです。これを行うために、彼らは BlastDoor と呼ばれる新しいコンポーネントを作成しました。これにより、 iMessage が iOS 14 より前に示した重要なセキュリティ問題の多くが解決されます

    ただし、私が記事で通常何を行っているかはすでにご存知のとおり、これまでの概念を明確にし、説明するすべての内容をよりよく理解できるように、もちろん私自身の知識を追加します。そして、最初に理解すべきことは、なぜセキュリティ上の欠陥が存在するのかということです。それは正確には何ですか?私たちは、その複雑さの中で可能な限り最も単純な方法でこれに光を当てようとします。

    オペレーティングシステムはプログラムです

    これは非常に明白なことのように思えますが、時々私たちはそれについての視点を失うことがあります。デバイス上でアプリを実行する場合、それは別のプログラムの上で実行されるプログラムにすぎません。オペレーティング システムの最上位にあるメイン プログラムは、カーネルです。これはシステムの動作の調整を担当するものであり、したがって、攻撃者が制御したい客観的な要素です。

    カーネル レベルでコードを制御および実行すると、何が起こっているかをユーザーが知ることなく、デバイス上のあらゆるものを制御し、自由に変更できます。

    システム ファイル システムにアクセスできるだけでなく、サービスや周辺機器をアクティブにすることもできます。 GPS、カメラ、マイクなど…電話やメッセージング アプリなどの制御サービスにアクセスできます…簡単に言うと、デバイスをゾンビに変え、ユーザーが何をしているのかを知らなくても、それを使って何でもできるようにします。終わり

    このため、カーネルには攻撃を防ぐ保護機能が備わっています。しかし、ゼロの瞬間から 1 つの概念を明確にしておく必要があります。それは、世界中のソフトウェアを保護する 100% 確実な方法は存在しないということです。どれだけ多くのドアが配置されていても、常に他のドアが見つかる可能性があり、100% 安全なソフトウェアを実現することは不可能です。したがって、私たちができる最善のことは、悪意のあるプログラムがカーネルを制御するために侵入する可能性がある場所で発見された穴を塞ぐために更新することです。

    iPhone マトリックスコードエクスプロイト

    では、なぜ 100% 安全なシステムが存在しないのでしょうか?なぜなら、すべてのソフトウェアは間違いを犯す人間によって作られているからです。全て。そして、オペレーティング システムは、他のプログラムを実行するプログラムの層であり、ライブラリ (つまり、より多くのプログラム) を実行し、そのライブラリが他のプログラムを実行することになります… どうでしょうか?より多くのプログラム。そして、すべてを機能させるために、これらの層は(セキュリティ対策を講じて)相互に通信する必要があります。しかし、それらのいずれかにエラーがあり、誰かがそれを発見すると、問題が発生します

    すべてのシステム コアと、優れたパフォーマンスを必要とする多くの低レベル コンポーネントは C でプログラムされています。YC は優れた言語で、高速で多用途ですが、非常に安全ではありません。

    基本的な問題は C 言語です。言語としての定義では、パフォーマンスを優先するためにセキュリティは考慮されておらず、開発者の手に委ねられていました。このように、C は、指定されたサイズで宣言されたデータ ストアに、配置されるデータよりも多くのデータが配置されるかどうかなど、重要なことを制御しません。あるいは、あるタイプであると言われていたデータが、最終的にはそのタイプであり、別のタイプではないということが制御されません。あるいは、情報があると言われている場所が、実際には情報があるか、あるいは単に空であるということ。これは、基本的な例をいくつか挙げただけです。これらのチェックは、「プログラマが正しく実行し、そのような間違いを犯さない」という前提に任されています

    その原因は何でしょうか?実行エラー。人的エラーによる障害が制御されていないコードに到達すると、実行エラーが引き起こされ、攻撃者はエラーが発生した場所、その時点でメモリ内にどのようなデータがあったのかに関する情報を取得し、さらにはそれを悪用することが可能になります。そのエラーによりシステムが「脆弱な」状態に陥り、下位層 (カーネルに向かって) を横断し、そのレベルで任意の悪意のあるコードを実行します。つまり、そこにあるべきものではなく、「何か悪いこと」をすることが目的のコードです。

    実行エラー

    そして、この構造全体がシステムに深く根ざしているため、それを解決するには、すべてを最初から作り直す必要がありますが、これは今日では考えられません。さらに、すべてを最初から実行しようとすると、人的ミスによるセキュリティ エラーが発生し続ける現在の状態に戻る可能性があります。コード内のエラーは、そのエラーを引き起こす特定の条件を自発的に作成するまでは、いかなる方法でも検出できません。そして、それが何であるか、またはそれを引き起こす方法がわからない場合、それを見つけることは非常に困難です。

    BlastDoor、データパーサー

    この時点で、 Apple が iOS 14 に搭載した新しいコンポーネントである BlastDoor について話すことができます。これは、明らかにセキュリティ システムであるため、Apple はいかなる形でも宣伝していません。

    iMessage がメッセージング プラットフォームとして持つ最も興味深い機能の 1 つは、リッチ コンテンツを表示する機能です。 Web サイトを共有する場合、その Web サイトの前の画像でボックスを形成し、タイトルを入力して、そのコンテンツをプレビュー モードで表示するエレガントな方法を作成できます。 YouTube ビデオを共有すると、その場で視聴できるミニ YouTube プレーヤーを作成できます。他のメッセージング アプリと同様に、単純なリンクやコンテンツをリッチ コンテンツに変換するため、そのリンクの背後にあるものがわかります。

    問題は、この優れた機能が歴史的に無数のセキュリティ上の問題を抱えてきたことです。ページへのリンクを共有すると、システムはデータを解析します。データを分析し、興味のあるものをキャプチャし、私たちが目にするエレガントな視覚表現に変換します。しかし、このプロセスでは、HTML 解釈エンジンをアクティブにして、ページのメタ情報をダウンロードし、その注目の画像、抜粋、ページ自体のタイトルを復元する必要があります。そのためには、ページ自体をダウンロードし、次のようなデータを想定する必要があります。タイトルや画像などは私が期待している場所です…しかし、私が何か他のものを期待している場所に誰かがこっそり入ってはいけないものを入れたらどうなるでしょうか?システムを騙すことができます。

    iPhoneハック

    として?データを確認するのを忘れたと想像してください。画像のように見えますが、実際は悪意のあるコードです。そして、開発者としての私は、特定の種類の画像の場合、画像のメタ情報とその正しい形式を確認することを忘れていました。そうすれば、誰かがその脆弱性 (ある情報が私たちが期待するものであり、他のものではないという検証の欠如) を利用して、そうでないものをこっそり持ち込む可能性があります。また、画像を処理するプログラムに、形式を検証しない別のエラーが発生したり、ある種のコードの実行を許可したりする可能性があるため、そのコードを別のコードに変更することができます。そして、半分閉まったドアを次々と利用して、カーネルレベルでシステムを制御するまで、こっそりと「下層」層に侵入します。システムを侵害するため。

    それだけではなく、メッセージ自体は処理される前のデータのセットであり、コード内でエラーを引き起こし、データに変換される合計データに含まれる情報を解釈するプロセスをクラッシュさせようとするものが存在する可能性があります。メッセージ (ペイロード)。そして、クラッシュは、セキュリティに違反し、レイヤを下げてセキュリティを侵害する特定の場所にコードを配置できる制御されたプロセスをこっそり探して作成する機会です。

    ブラストドア

    このため、Apple は BlastDoor と呼ばれる新しいプログラムを作成しました。これも Swift でプログラムされています。そしてなぜSwiftなのか? Swift は主に C で開発された言語ですが、C が持つ最も一般的なエラーを制御し、開発された言語のエラーを言語として修正するためです。 Swift では、データが指定した内容以外のものになることは不可能です。 Swift にはサイズがないため、データが持つと述べた以上の情報を保持することはありません。 Swift では空のデータは許可されません。 Swift には、プロセスの挿入を可能にする動的実行エンジンがありません。実際、コードはコンパイルされ、難読化された静的コードであるため (メソッドやコンポーネントのシンボルや名前がコードに表示されない)、コードのリバース エンジニアリングは、攻撃者がコードの動作を理解するために非常に複雑なプロセスになります。

    Swift の構造内にはセキュリティを優先した制御が多数あるため、攻撃者が回避する必要がある層が 1 つ増えています。そしてかなり硬い層。繰り返しますが、100% 安全なものはありませんが、通過しなければならない層が強化され、層が増えるほど、システムを侵害することが難しくなります。

    そして、この新しい BlastDoor モジュールは何をするのでしょうか?これはメッセージング アプリ内に統合された API であり、メッセージ自体を安全に解析し、メッセージに含まれるリンクや共有コンテンツを安全に解析します。コードであると疑われるコンテンツや、コードであるべきだがそうではないコンテンツを事前に排除する一連のチェックが行われます。

    デバイスが新しいメッセージを受信すると、それはペイロードとして届きます。 BlastDoor はそのペイロードをチェックして、何もおかしなものが来ていないことを確認し、含まれている各データを安全にデコードします。その後、メッセージが処理されて送信され、内容がデコードされると、再度 BlastDoor に送信されます。 Swift でコンテンツを閲覧する明確な例を示すために、画像がどのように読み込まれるかについて説明しましょう。このロードはオプションのデータに対して行われます。つまり、イメージ型コンストラクターに渡す生データを使用して、イメージを構築できるかどうかを確認します。できれば画像を渡してください。そうでない場合は、制御されたエラーを返し、データを拒否するため、発生すべきでないことが発生すべきでない場所に行われるのを防ぎます。また、データの破損によるプロセスのクラッシュ (エラーを引き起こしたり脆弱性を検索する非常に一般的な方法) を防ぎます。

    iMessage iOS 14

    Apple はまた、メッセージを処理するプログラムがハングした場合 (これは起こらないはずですが、主に攻撃によって引き起こされる可能性があります)、プロセスを再起動できない一時停止がシステム内に生成されるなど、いくつかの重要な修正も加えています。しばらくすると、ますます長くなります。このように、ブルート フォース攻撃が試みられたり、攻撃ケースをテストするためにプロセスをハングさせようとしたりすると、対応に時間がかかるようになります。これは継続的な攻撃を防ぐものではありませんが、プロセスが非常に遅くて退屈になるため、攻撃者はロックされたドアを開けることを諦める可能性があります。

    セキュリティ、沈黙の監視員

    セキュリティは、どのようなソフトウェアにおいても不可欠です。なぜなら、今日私たちがポケットに入れたり、インターネットに常時接続している家庭内のあらゆるデバイスから抽出できる情報量には、多額の価値があるからです。私たちは自分は何者でもない、失うものは何もないと思っているかもしれません。しかし、私たちは間違っていました。私たちは、(たとえば)家族や友人の予定を含むチェーン内のリンクです。それには、写真、使用履歴、閲覧履歴、好み…私たちが誰であるか、何をしているか、何が好きか、何が嫌いか、どこで働いているか、どのような生活を送っているか、どこで過ごしているかを伝えるデータが含まれています。子供が勉強したら(もし子供がいたら)、ペットがいたら…

    私たちのデバイスには、私たちを顧客として望んでいる企業や私たちを騙そうとしている人々の標的となる、さまざまな結論が導き出されるデータがロードされています。

    もしかしたら、それは大したことではないと考えて、デバイスを更新しないかもしれません。しかし、あなたの iPhone や iPad に脆弱性があり、カレンダーが盗まれている可能性があります (一見無害に見えるかもしれません)。そして、あなたの議題には年上の両親がいます。そして、彼らは騙そうと電話をかけてきたり、フィッシングメールを送って銀行口座の詳細を聞き出してお金を騙し取ったりします(これは私たちが思っている以上に毎日起こっていることです)。そして、私たちがそう思ったからです、彼らは私から何を奪うつもりですか?

    私たちには責任があります。企業に関係することは履行されており、私たちが可能な限り安全であることを保証するために、企業には非常に専門的な作業チームがいます。インターネットの使用は車に乗るのと似ています。自動車事故を絶対に起こさないと考えることは不可能です。車に乗るときはいつでも、事故に遭う可能性が常にあります。自分のせい、あるいは他人のせい。 1年以上前、私は車を持たずに取り残された。渋滞で正しく停止していたところ、娘の泣き声に気を取られた女性が私の後ろの数台の車に突っ込み、ドミノ倒しになったために私に触られ、私は車を持たずに取り残されたからだ。車。そして、私に何も起こらなかったことに感謝します。インターネットも同じです。これにアクセスして閲覧することは、すでに騙される、攻撃を受ける、セキュリティが侵害されるなどのリスクを伴います…

    ご覧のとおり、企業は私たちの安全を日々高めるために取り組んでおり、私たちも自分の役割を果たし、システムを更新する必要があります。私たちが最初に恩恵を受けることになります

    BlastDoor または iMessage が iOS 14 でハッキングへの多くの扉を閉じる方法・関連動画