サポートベクターマシン(SVM)を使用して、Androidプラットフォーム用の悪意のあるアプリケーションを検出できるアプリケーションを開発しようとしています。「logcat」および「strace」ツールから多くのシステム情報を取得できますが、実際の悪意のあるアプリケーションを検出する方法がわかりません。これらのツールを使用してデバイスの通常の動作の使用を確立/記録する方法を知っている人はいますか?つまり、デバイスから情報を取得し、動作パターンを設定します。
よろしくお願いします
しかし、本当に試してみたい場合は、「一連のシステム コールを使用した侵入検知」から始めてください。S. Hofmeyr、S. Forrest、および A. Somayaji Journal of Computer Security Vol. 6, pp.151-180 (1998)
これが可能かしら...
アプリケーションの動作が正常であるかどうかをどのように評価しますか?特定のアプリが行うすべてのことを記録し(そもそもrootアクセスがなくても可能であれば!)、そのアプリの「通常の動作」の「プロファイル」として保存する「学習フェーズ」を計画していますか?
たとえば、ホーム画面のアイコンを整理するツールなど、アプリケーションの動作を記録するとします。ここで、このアプリケーションがお気に入りの連絡先の1つに直接電話をかける機能も提供しているとすると、連絡先にアクセスして電話をかけるための許可が必要になります。この機能がほとんど使用されていない場合は、このアプリの「学習」期間中にこの機能を記録せず、電話をかけようとするとアプリを悪意のあるものとして評価することはおそらくありません。
また、「通常の動作」をまだ決定していないためにアプリを検出できない「学習フェーズ」中にアプリが悪意のある動作を示した場合はどうなりますか?
アプリをインストールする前に、アプリを評価するために「通常の動作」をどこかに保存する必要があり、アプリが奇妙な動作を開始したり、不要なアクションを実行したりするようです。しかし、繰り返しになりますが、あるユーザーに求められていることは、別のユーザーにとっては完全に正常である可能性があります...
私は人々が思いつくどんな素晴らしい解決策にも興味があります、しかし私はこれが難しいものになると思います...
通常の呼び出しをプロファイリングするのではなく、最初に Android で一連の悪意のある呼び出しを使用するとどうなるでしょうか。
また、教師なし分類を使用している場合、分類するデータの種類がわからないことに注意してください
Windows API の場合、通常、人々は一連のアクションを決定するためにシーケンスを調べます。Android プラットフォームについても、それに関する論文や研究を見つけることができます。