Mariana Trench

AndroidとJavaのアプリケーションの脆弱性を確認できる静的コードスキャナです。
Facebookがオープンソースでリリースしました。
これは、もともとFacebookが自社の社内で利用していたPythonで書かれたツールで、これまで社内のセキュリティバグの50%以上をこのツールで発見してきた実績があるということです。

Mariana Trenchは、その入力に、ソースコードを必要としません。
dalvikバイトコードを入力すれば、チェックができます。
ちなみにdalvikというのは、Androidのアプリケーションの実行環境であるDalvik VM(Virtual
Machine、バーチャルマシン、仮想マシン)のことであり、dalvikバイトコードとはその環境でそのまま動作する実行形式のものです。
WindowsでいうところのPE形式のファイル(要はexeみたいなもの)のようなものです。

このツールは、dalvikバイトコードを読み取ることで、情報が流れだそうとしているような動きを検出することができます。
たとえば、ユーザーパスワードがファイルに記録される可能性があるような機構があると、それを検出することができます。

Mariana Trenchは、GitHubや専用サイトで公開されています。
Mariana Trenchは魔法のツールではなく、その検出ルールを自分で定義する必要があります。
しかし、公式サイトでチュートリアルも一緒に公開されていますので、簡単ではないと思いますが取り組み始めることはできそうです。

ブログでも書かれていますが、サーバー側のコードはWebアプリの入れ替えでほぼ瞬時に更新できますが、Androidアプリケーションのセキュリティバグを軽減するには、各ユーザーが所有するデバイス上のアプリケーションをタイムリーに更新する必要があります。
これはなかなか容易ではありません。
タイムリーかどうか以前に、そもそもすべてのユーザがアプリを更新してくれることは期待できないと考えるべきでしょう。
そう考えると、アプリを世の中に出す前に、できる限り問題が少ない状態にしておくべきということになります。

利用者の立場でのセキュリティを維持する運用の重要性はだんだんに意識されるようになってきていると思います。
開発者の立場でのセキュリティを維持する取り組みについても、まだできることがありそうです。

参考記事(外部リンク):Open-sourcing Mariana Trench: Analyzing Android and Java
app security in depth

engineering.fb.com/2021/09/29/security/mariana-trench/

参考記事(外部リンク):facebook / mariana-trench
github.com/facebook/mariana-trench/