日本のアプリケーションセキュリティー措置
概要
今回は日本のアプリケーションの特徴と、セキュリティ措置について確認するため、APKファイルを改ざんしたりhookingを通じてモバイル安全性を確認するいくつかのテストを行います。
1。アプリの具現方法
日本のアプリケーションの特徴を調べるために、日本のショッピングアプリケーションを一例として分析してみます。オンラインショッピングアプリは大体ウェブビューで具現されています。
2。root化の有無を確認
日本のアプリケーションの特徴および問題点
金融関係のアプリケーションを除き、日本の一般的なアプリケーションはアンドロイドのroot化が出来ているかを確認していない場合があります。しかし、root化の有無を確認するのはアプリケーションセキュリティに対する大事な問題です。
インストールして実行してみると、アプリケーションはroot化の有無を確認していませんでした。これについて個人的には、root化の有無を確認しないとハッカーがアプリを改ざんしたり、システム権限を利用してシステムを操作する場合があります。なので、rootingの有無を確認することをお勧めします。
SUコマンドを検証、プロセスリスト探知、rooting関連アプリの有無を確認さればroot化の有無が簡単に確認できます。
[図1] rootingされたデバイスで実行されたアプリケーション
3。難読化
難読化は、文字通り読みにくくするという意味です。
難読化はデコンパイルしたソースコードを変更して解りにくくし、解析を困難にしてサイバー攻撃から守ります。
JEBツールを使ってAPKをデコンパイルしてみました。
[図2] 難読化が出来ていないソースコード
4。アプリの改ざん検証
アプリケーションの改ざん検証が行われているかを確認する方法は、アプリケーションをrepackagingしてみるか、smaliコードを変更してみるかの二つの方法があります。私はアプリケーションをrepackagingする方法を使てみました。
[図3] jarsignerを使ってresign
repackagingの後resigningして偽造されたアプリを実行して見ると
[図4] 強制終了されたアプリケーション
上記図を見ると、改ざんを検証していることがわかります。
改ざんを検証しているところを、fridaを使ってhookingしてみました。
fridaはPythonベースのライブラリの動的解析ツールです。
このツールは、JavaScriptを用いてScriptingが可能であり、マルチプラットフォームで動作します。(インストール方法は pip install frida-tools)
そして、hash値の検証を通し、アプリケーションの改ざん有無を確認していることがわかりました。
下記のコードを使ってhookingしました。
[図5] コード
hookingした後、アプリケーションを実行して見ると次の図のようにアプリが正常に起動していることが確認できました。
[図6] 通常に動作している画面