ゼファーネットのロゴ

App Store と Google Play の不正な 2FA アプリに注意してください – ハッキングされないでください!

日付:

おかげ トミー・ミスク および タラル・ハジ・バクリ of @mysk_co この記事の背後にある推進力と情報については。 この XNUMX 人は、自分たちを「XNUMX つの大陸にいる XNUMX 人の iOS 開発者と時折のセキュリティ研究者」と表現しています。 言い換えれば、サイバーセキュリティは彼らのコアビジネスではありませんが、彼らは私たちがすべてのプログラマーに望んでいることを行っています: アプリケーションやオペレーティングシステムのセキュリティ機能を当然のことと考えているのではなく、それらの機能が実際にどのように機能するかを独自に監視しています.他人の間違いや思い込みにつまずくのを避けるためです。
上の注目の画像は、彼らのつぶやきの XNUMX つに基づいており、下に完全に表示されます。

最近Twitter 発表の SMS ベースの 2 要素認証 (XNUMXFA) が十分に安全であるとは考えていません。

皮肉なことに、先週説明したように、この変更が最も重要だと思われるのは、まさに「最上位層」の Twitter ユーザーです。つまり、Twitter Blue バッジにお金を払ってより多くのリーチを獲得し、もっと長いツイートを送って…

…しかし、これらの有料ユーザーは、引き続きテキスト メッセージ (SMS) を使用して 2FA コードを受け取ることができます。

それ以外の人は、今後 2 週間以内 (2023 年 03 月 17 日金曜日まで) に別の種類の XNUMXFA システムに切り替える必要があります。

つまり、ワンタイム コードの秘密の「シード」シーケンスを生成するアプリを使用するか、Yubikey などのハードウェア トークンを使用して、身元を証明する暗号化部分を実行することを意味します。

ハードウェアキーまたはアプリベースのコード?

ハードウェア セキュリティ キーの価格はそれぞれ約 100 ドル (Yubikey の指紋に基づく生体認証保護付きデバイスのおおよその価格です)、またはタッチでアクティブ化できる安全性の低いキーを使用する場合は 50 ドルです。誰の指でも。

したがって、すでにハードウェア セキュリティ トークンに投資したことがある人は、意図的に投資したものであり、家に放置するために購入したわけではないと思います。

したがって、これらのユーザーは、SMS ベースまたはアプリベースの 2FA からすでに切り替えていることになります。

しかし、それ以外の人は、次の XNUMX つの陣営のいずれかに該当すると推測されます。

  • 2FAをまったく使わない人は、 ログイン時に不必要な手間がかかると考えているためです。
  • SMSベースの2FAをオンにした人は、 シンプルで使いやすく、どの携帯電話でも動作するからです。
  • アプリベースの2FAに行った人は、 彼らは自分の電話番号を渡すのをためらっていた、またはテキストメッセージの 2FA から移行することをすでに決めていたからです。

2 番目の陣営にいる場合は、XNUMXFA をあきらめて Twitter アカウントで失効させるのではなく、代わりにこれらの XNUMX 桁のコードを生成するアプリに切り替えることを願っています.

そして、あなたが最初の陣営にいる場合は、Twitter の変更に関する宣伝と議論 (本当にセキュリティ上の理由で行われたのか、それとも単純に非常に多くの SMS を送信することでお金を節約するために行われたのか?) が、必要な推進力になることを願っています。自分で 2FA を採用します。

アプリベースの 2FA を行うには?

iPhone を使用している場合、iOS に組み込まれているパスワード マネージャーは、必要な数の Web サイトに対して 2FA コードを生成できるため、追加のソフトウェアをインストールする必要はありません。

Android では、当然のことながら、Google は独自の認証アプリを提供しています。 、Google Play から入手できます。

Google のアドオン アプリは、Apple のアドオン アプリと同様に、必要なワンタイム ログイン コード シーケンスを生成します。 設定 > パスワード iOS のユーティリティ。

しかし、少なくとも何人か、そしておそらく多くの人が、完全に理にかなった自問自答をしたと仮定します。 「Apple (または Google) のバスケットにすべてのサイバーセキュリティの卵を入れる必要がないので、他にどのような認証アプリがありますか?」

多くの評判の良い企業 (ちなみに、両方のソフォスを含む) iOS および Android) は、お使いのオペレーティング システムとは異なるベンダーの 2FA アプリを使用したいとお考えの場合に、フリル、料金、または広告なしで、必要なことを正確に実行する、無料で信頼できる認証ユーティリティを提供します。

実際、次のように検索するだけで、広範囲で魅力的なオーセンティケーターを見つけることができます。 認証システムアプリ Google Play または App Store で。

選択のために台無しに

問題は、Apple と Google の公式の「ウォールド ガーデン」に受け入れられることで、すべてのアプリの品質が保証されていると思われる、おそらく計り知れないほどの数のそのようなアプリがあることです。

実際、Naked Security の友人は @mysk_co 彼らは自分たちで認証アプリを探しに行き、見つけたものに驚いたりショックを受けたりしたと私たちに電子メールで伝えました.

@mysk_co の共同創設者である Tommy Mysk 氏は、メールの中で率直かつ簡潔に次のように述べています。

Twitter が 2FA の SMS メソッドを停止した後、いくつかの認証アプリを分析しました。 ほとんど同じように見える多くの詐欺アプリを見てきました。 それらはすべて、ユーザーをだまして年間 40 ドルで年間サブスクリプションを取得させます。 ほぼ同一のバイナリを持つ XNUMX つを見つけました。 また、スキャンしたすべての QR コードを開発者の Google アナリティクス アカウントに送信する XNUMX つのアプリも発見しました。

Tommy が投稿した一連のツイートで自問するように勧めているように、十分な情報を持っているユーザーでさえ、「認証システムアプリ」 実際、何としても避けるべきものかもしれませんか?

このカテゴリの偽アプリは、一般的に、毎年 20 ドルから 40 ドルの範囲でユーザーに支払わせようとしているようです。これは、何年も持続し、ほぼ確実に安全性が高い、評判の良いハードウェア 2FA トークンを購入するのにかかる費用とほぼ同じです。 :

たとえば、App Store で検索してみたところ、トップ ヒットは文盲に近い説明のアプリでした (このレベルのプロ意識の低さが、少なくとも一部の人々をすぐに嫌がらせてくれることを願っています)。有名な中国の携帯電話ブランドの名前を使用している会社。

アプリの品質が明らかに低いことを考えると (それでも App Store に登場したことは忘れないでください)、私たちが最初に考えたのは、あからさまな会社名の侵害を調べているということでした。

詐欺師と思われる者が、使用する権利がないと思われる名前で Apple コード署名証明書を取得できたことに驚きました。

会社名を XNUMX 回読まないと、XNUMX 文字が似たような文字に置き換えられていることに気がつきませんでした。これは、古き良き「タイポスクワッティング」、または弁護士が呼ぶものに対処していました。 過ぎ去る – 文字通りには一致しないが、一見して誤解を招くほど視覚的に類似している名前を故意に選択する。

Google Play で検索したところ、@mysk_co がすでにツイートしているアプリがトップ ヒットでした。このアプリは、使う必要のないお金を要求するだけでなく、 シーズ or 始まりの秘密 2FA 用に設定したアカウントの。

秘密の文字列を覚えておいてください 6QYW4P6K­WALGCUWM QRコード、およびTOTP番号で 660680 後でまた会うので、下の画像で見ることができます:

種子が秘密である理由

説明する。

ほとんどのアプリベースの 2FA コードは、TOTP と呼ばれる暗号化プロトコルに依存しています。 時間ベースのワンタイムパスワード、で指定 RFC 6238.

以下のサンプル Lua コードからわかるように、アルゴリズムは驚くほど単純です。

プロセス

A. 最初に base32 でエンコードされた文字列 (テキストまたは QR コード経由) として提供されたシード、または「開始シークレット」をバイト文字列に変換します [4 行目]。

B. 小数部分を無視して、現在の「Unix エポック時間」を秒単位で 30 で割ります。 Unix 時間は、1970-01-01T00:00:00Z [5] からの秒数です。

C. 事実上、1970 年に開始された 64 分カウンターであるこの数値を、8 ビット (6 バイト) のビッグエンディアンの符号なし整数としてメモリ バッファーに保存します [XNUMX]。

D. base8 でデコードされた開始シードをキーとして HMAC-SHA1 の 32 回の反復を使用して、7 バイトのバッファーをハッシュします [XNUMX]。

E. 160 ビットの HMAC-SHA1 ダイジェストの最後のバイト (20 のバイト 20) を抽出し、その下位 16 ビット (0 で割ったときの余り) を取得して、15 から 8 までの数値 X を取得します [XNUMX]。 .

F. ハッシュからバイト X+1、X+2、X+3、X+4 を抽出します。つまり、最初の 32 バイト (1..4) から最後の 16 つ前のバイト ( 19..13) [XNUMX].

G. 32 ビットのビッグエンディアンの符号なし整数に変換し、最上位ビットを 13 にします。これにより、後で符号付きまたは符号なしとして扱われるかどうかにかかわらず、問題なく機能します [XNUMX]。

H. その整数の最後の 6 桁の 17 進数を取り (XNUMX 万で割ったときの剰余を計算します)、先頭にゼロを付けて出力し、TOTP コードを取得します [XNUMX]。

言い換えれば、任意のアカウントの開始シード、または上記の @mysk_co のツイートでラベル付けされているシークレットは、文字通り、そのアカウントに必要なすべての TOTP コードを生成するための鍵です。

コードは使うもの、シードは確保するもの

ログイン時にこれらの奇妙に計算された XNUMX 桁のコードのみを入力し、シードを直接使用しない (または表示する必要さえない) 理由は XNUMX つあります。

  • どのコードからも、コードの生成に使用されたキーまでさかのぼって作業することはできません。 そのため、たとえ大量の TOTP コードを傍受しても、過去または将来のログオン コードへのリバース エンジニアリングには役立ちません。
  • 現在のコードから次のコードに順番に進むことはできません。 各コードはシードに基づいて個別に計算されるため、今日コードをインターセプトしても将来のログオンには役立ちません。 したがって、コードはワンタイム パスワードとして機能します。
  • シード自体を Web ページやパスワード フォームに入力する必要はありません。 そのため、最新の携帯電話では、安全なストレージ チップに XNUMX 回だけ保存できます ( 飛び地) デバイス上で、ロックされているかオフになっているときに携帯電話を盗む攻撃者がそれを抽出することはできません。

簡単に言えば、生成されたコードは XNUMX 回限りの使用であれば安全です。これは、シードをコードから逆方向にラングリングできないためです。

しかし、シードは永遠に秘密にされなければなりません。なぜなら、1970 年の初めから宇宙の可能性のある熱による死のずっと後まで (2)63 数秒後、または約 0.3 兆年後) は、シードからほぼ瞬時に生成できます。

もちろん、ログインしようとしている時間と一致するコードを提供したことを確認するために、ログインしているサービスにはシードのコピーが必要です。

だからあなたはする必要があります 相手側のサーバーを信頼する サービスが侵害された場合でも (または特に) シードを安全に保つために細心の注意を払う必要があります。

また、 最後に使用しているアプリケーションを信頼する あなたの種を明らかにしないでください。

それは意味する それらの種を表示しない 誰にでも(適切にコード化されたアプリは、シードを入力またはスキャンした後、シードを表示することさえありません。これは、シードを再度表示する必要がないためです)。 種を出さない 他のアプリに それらを書き出さない ファイルをログに記録したり、バックアップに追加したり、デバッグ出力に含めたり…

…そして非常に、非常に間違いなく ネットワーク経由でシードを送信しない.

実際、世界のどこかのサーバーにシードをアップロードするアプリは、すぐに使用を中止するほど無能であるか、サイバー犯罪マルウェアとして扱うほど信頼できないものです。

何をするか?

最近認証アプリを入手した場合、特に Twitter の最近の発表を受けて急いで入手した場合は、 あなたの選択を見直す あなたが今知っていることに照らして。

サブスクリプションの支払いを余儀なくされた場合。 アプリに広告が散らばっている場合。 アプリが実物大のマーケティングと熱烈なレビューを提供しているにもかかわらず、聞いたことのない会社からのものである場合。 または、単に考え直しているだけで、何かがおかしいと感じている場合…

…IT チームが既に承認しているメインストリーム アプリ、またはあなたが知っていて信頼できる技術者が保証できるメインストリーム アプリに切り替えることを検討してください。

前述のように、Apple には 2FA コード ジェネレーターが組み込まれています。 設定 > パスワード、Google 独自の Play ストアのアプリ。

あなたのお気に入りのセキュリティ ベンダーには、おそらくあなたも使用できる無料の広告なし、刺激のないコード ジェネレーター アプリがあります。 (ソフォスには スタンドアロンのオーセンティケータ iOS 用、および両方の無料の Sophos Intercept X for Mobile アプリのオーセンティケータ コンポーネント iOS および Android.)

所有している認証アプリがわからないために認証アプリを切り替えることにした場合は、必ず次のことを行ってください。 すべての 2FA シードをリセットする あなたが委託したすべてのアカウントに対して。

(実際、古いアプリにシードをエクスポートして新しいアプリに読み込むオプションがある場合、その機能を使用すべきではないことだけでなく、アプリを切り替えるという決定が適切であったこともわかります。一!)


自分自身のリスクを定量化する

他の誰かがすでに知っている (または把握できる) と思われる 2FA シードによってアカウントが保護されたままになるリスクは明らかです。

前に示した TOTP アルゴリズムを使用し、Tommy Mysk の「秘密の」文字列を [A] に入力することで、これを自分で証明できます。 ツイート 上と [B] 彼がスクリーンショットを撮った時刻。UTC より 7 時間早い 36 年 2023 月 02 日の中央ヨーロッパ時間午後 25 時 XNUMX 分 (ズールー時間Z 以下のタイムスタンプで)。

盗まれたシードは: 6QYW4P6KWALGCUWM ズールー時間: 2023-02-25T18:36:00Z つまり: Unix エポックの 1,677,350,160 秒

ご想像のとおり、また上記のツイートの画像と一致するように、コードは次の出力を生成します。

$ luax totp-mysk.lua Tommy Mysk のコード: 660680

有名なビデオゲームのミームは次のように表現しています。 彼の TOTP コードはすべて私たちのものです。


スポット画像

最新のインテリジェンス

スポット画像