『 Mobile Application Penetration Testing 』 を読みました。
セキュリティ系の話でこのようにまとまったものはなかなかないので、周辺の知見を集めるという意味も込めて。あとはペネトレーションテストに焦点を当てた書籍自体をあまり見ないので、純粋にその方面への興味からも。
この書籍は、言うなら現状のiOS/Androidに対して実装するなにがしかのソフトウェアに対して、どのようなセキュリティリスクが存在するか、をいろいろとまとめているものです。また、実際に攻撃可能なサンプルも用意しており、それらを試すことも可能です。
The key challenges for mobile app
モバイルアプリのセキュリティという話において、以下のように大まかに重要な領域を分けて話をしていました。
- Network Layer
- Hardware Layer
- Operating system Layer
- Application Layer
この書籍は、これらに対してちゃんと脅威モデルを作成し、それらへのリスク判断や対処を行うための参考になるように作られていました。区分整理や実演など含めて多くに取り掛かっています。
methodology for Mobile applications
ペネトレーションテストなどの取り組みは、Discovery、Analysis、Exploitation、Reportingの4つな手順から形作られます。OSSやプラットフォーム理解、サーバとクライアントのことを考えながら重要な情報を探し出す。リバースエンジニアリングだったり、ネットワークの状態といったことや静的ツールといったものを使い解析を進めます。そこから実行やレポートへ落とし込むことになります。このような一連の流れをベースに、実際にどのような点を考慮すべきか、というところに焦点を当てて作業を進めることになります。
mobile top 10 risk
OWASPは、2013年にモバイルアプリのtop 10のリスクをあげました。
- Weak Server Side Controls
- Insecure Data Storage
- Insufficient Transport Layer Protection
- Unintended Data Leakage
- Poor Authorization and Authentication
- Broken Cryptography
- Client Side Injection
- Security Decisions via Untrusted Inputs
- Improper Session Handling
- Lack of Binary Protections
これらに対して、実際はどうか?というような調査もされているそうです。2015年のものに関しては以下がその例だそうです。
Click to access OWASP_Mobile_Top_Ten_2015_-_Final_Synthesis.pdf
AndroidとiOSのシステムアーキテクチャ
セキュリティを話すのであれば、OSのアーキテクチャやセキュリティ設計なんかは必須事項です。そのため、この書籍でもそれらの話は比較的ちゃんとされていました。どのようなframeworkが絡んでいるのかや、システムのライフサイクルなどへの言及です。
それらを踏まえて、実際にどのようなセキュリティリスクがあり、さらには それらの攻撃方法がどのような結果となるのかを例となるツールを添えて 体験する形で提供しています。有名どころや特定のチェックに特化したツールなども、網羅的に書かれています。
その例で良かったのは、脅威モデルを作りながら説明を添えていたところでしょうか。例えば、STRIDEやPASTA、Trikeなどです。
開発者へのセキュリティマップ
最後にはチートシートではないですが、いわゆるテストの観点図だったりマインドマップという形で開発者に気をつけてほしいことをまとめていました。これらはよく整理されていて、私も会社の中でリストとして落とし込んで何か取り入れることができるかなど含めて考えてみたいと思いました。
社内Wikiに書き写していこう。
締め
セキュリティの話は、非機能の中でも大事だけれど専門性が深く必要な領域です。常に全力投球はできないのですが、こういうまとまった情報を得ることができるときにざっと情報を得て、施策に転化できるものはいろいろ挑戦していきたいものですね。
またこれは時折眺めていこう。
1 Comment