Application Pornoまたはモバイルアプリケーションで秘密を見つけてすべてを取り出す方法

ニュースフィードで、最近、Android Playmarketをダウンロードして解析し、数十万ものアプリケーションをワイヤードシークレットトークンとパスワード用に分析したという興味深い研究を発見しました。



彼らの仕事の結果がAndroid用の逆コンパイルされたコードの分析のみに関するという事実は、私の意図は1年前にAndroidだけでなくiOSアプリケーションのために行った研究について書くことであり、結果として全体のオンラインツールになりました、その意味が明らかになったときに最後に説明します。 以下に書かれた内容の一部は、 ZeroNightsカンファレンスおよびHackerマガジンのページで発表されました。 (資料はオンラインで公開されていないため、編集者はここでの公開を許可しました)。 行きましょう。



目標-店舗



モバイルアプリケーションの手動分析について多くのことが書かれ、検証方法が開発され、チェックリストがコンパイルされました。 ただし、これらのチェックのほとんどは、ユーザーのセキュリティに関係しています。データの保存方法、送信方法、アプリケーションの脆弱性を使用したアクセス方法です。



しかし、サーバー部分を攻撃してすべてのユーザーのデータを削除しようとすることが可能であれば、特定のユーザーのデバイスでアプリケーションがどのように機能するかを攻撃者が掘り下げる必要があるのはなぜですか? モバイルアプリケーションは、このアプリケーションのクラウドインフラストラクチャを直接攻撃するのにどのように役立ちますか? そして、数千、あるいはそれ以上の数万のアプリケーションを取得して分析し、ワイヤードトークン、認証キー、その他のシークレットなどの典型的なバグをチェックしてみませんか?



序論からのリンクはGooglePlayについて徹底的に書かれているため、おもしろいことに、私の話はApp Storeについて、またはiOSアプリケーションについてです。 別の大きな記事のトピックであるAppStoreからの自動ダウンロードの実装方法は、これはGoogle Playの「ロッキングチェア」よりも桁違いに時間のかかるタスクだと言います。 しかし、涙、血、スニファーとパイソンで、それにもかかわらず解決しました:)



iOSアプリケーションの配布の問題に対処する記事では、次のように書いています。







これらすべてのステートメントの背後には、アプリケーションの配布パッケージ(通常のZIPアーカイブ)で、コンパイルされたコードがデバイスを参照して暗号化されているという事実があります。 他のすべてのコンテンツはクリアテキストで存在します。



どこから始めますか?



最初に思い浮かぶのは、認証トークン、キーなどです。文字列とgrepツールです。 これは自動化には適していません。 愚かな文字列検索は、自動化がすべての意味を失う手動解析を必要とするような大量のゴミを作成します。



自動分析用の許容可能なシステムを作成するには、分布の構成を慎重に調べる必要があります。 〜15,000個のアプリケーションの配布をアンパックし、意図的なゴミ(写真、オーディオ、ビデオ、リソース)を破棄すると、1396タイプの224,061個のファイルが得られます。









* .mおよび* .h(ソース)-もちろん、これは興味深いですが、構成、より正確には、XML、PList、およびSQLiteコンテナーを忘れないでください。 この単純化を受け入れて、人気のあるTOP型の関心を構築します。 興味深いファイルの総数は94,452個で、元のファイルの42%です。









通常、通常と呼ばれるアプリケーションは、次のもので構成されます。







合計で、タスクは2つに要約されます。



  1. SQLite、XML、PListでさまざまな秘密を再帰的に見つける
  2. 「異常な」ごみ箱と秘密鍵を検索します




このトークンを秘密にしてください



どうやら、多くの開発者にとって、公開されたアプリケーションが公開されることは明らかではありません。 そのため、Twitterやその他の一般的なサービスのOauthトークンが定期的に見つかります。 適切なケースは、ユーザーの連絡先、写真、位置情報、およびdeviceIDを収集し、Amazonクラウドに保存するアプリケーションでした。そして、PListファイルの1つに配線されたトークンを使用します。 このトークンを使用すると、すべてのユーザーのデータを簡単に統合し、デバイスの動きをリアルタイムで監視できます。







何らかの理由で無視される重要な状況:プッシュ通知を柔軟に制御できるライブラリー(UrbanAirshipなど)。 マニュアルには、マスターシークレット(アプリケーションのサーバー部分がプッシュを送信する)をアプリケーションに保存できないことが明確に記載されています。 しかし、マスターシークレットはまだ見つかっています。 つまり、アプリケーションのすべてのユーザーに通知を送信できます。







TEST-DEV



テストおよび開発プロセスのさまざまなアーティファクト、つまり、デバッグインターフェイスへのリンク、バージョン管理システム、および開発環境へのリンクを無視しないでください。 この情報は、実際のユーザーのSQLデータベースダンプが含まれているため、サイバー犯罪者にとって非常に興味深い場合があります。 原則として、開発者はテスト環境のセキュリティを処理せず(たとえば、デフォルトのパスワードを残して)、実際のユーザーデータを使用してテストを改善します。 顕著な発見は、アプリケーションのすべてのユーザーにプッシュ通知を送信することができる(認証なしで)スクリプトでした。







タップして入力



ディストリビューションがテスト環境に関する情報とバージョン管理システムに関する情報に出くわすという事実が予想されます。 しかし、驚くべきことがいくつかあります。







これはここで何をしていますか?!



上記のコンテンツの発見は、原則として理解できますが、アプリケーションでは、たとえば開発者証明書を含むPKCSコンテナや、秘密鍵など、不可解なものを定期的に見つけることができます







または、ログイン、データベースのパスワードを含むPHPコードの断片。







...そして、私のお気に入りはOpenVPNの動作中のクライアント設定です。







また、「すべての等級と色」の暗号化されていない秘密鍵(c)







秘密以外は何ですか?



ライセンスの問題がいかに本質的に物議をかもしているにせよ、彼はここでも自分の場所を見つけました。 多くの開発者は、GPLに基づいてライセンスされているコードフレームワークをプログラムで使用しますが、これにはコードの開示が必要です。 また、GPLがApp Storeの有料アプリと無料アプリでどのように機能するかは、操作のためのパテントトロールスペースを作成できる問題です。



そのためのアプリはありますか?



合計すると、記述された「ジャム」が配置されている何千ものアプリケーションがありますが、開発者はそれについて何かを急いでいるわけではありません。 ここで問題は何ですか? githubには、アプリケーションセキュリティを監査するためのあらゆる種類のスーパーデザインがありますが、それらを使用するには、開発者が以下を必要とします。



  1. 時間とエネルギーを費やして、それがどのように機能するかを自分で考えてください。 つまり、彼らが支払わない追加作業
  2. インフラストラクチャを作成して維持します。
  3. 多数のアプリケーションがある場合、ポイント1とポイント2を担当する専任の専門家がフルタイムで必要です。




これは、規制当局によって「えら」に固執するブランドや金融機関を非常に心配している裕福な企業が安全な開発を行う余裕がある状況を作り出します。 そして、安全でないアプリケーションの数は増え続けています。



これらすべての要因に対する答えは、アプリケーションのセキュリティの基本的な分析を提供し、原則に従って開発されたツールであるHackAppの出現です。

  1. レポートは、開発者に技術的な詳細(リストやトレースなど)を「ロード」するべきではありませんが、何を修正する必要があるかを明確かつ明確に記載する必要があります。
  2. インフラストラクチャへの投資は必要ありません。 (つまり、クライアント側に割り当てられた容量)
  3. 自動相互作用のためのインターフェースを持ち、それをリリース前のアプリケーションテストのプロセスに統合して、開発への統合の観点から、さらに別のテストツールとすることができるようにする




HackAppには2つのバージョンがあります:basicとPro(有料サブスクリプション)ですが、これはまったく異なる話です。



All Articles