OWASP Mobile Top 10

セキュリティ事業部

OWASP Mobile Top 10

 

OWASP Mobile Top 10 は、モバイルアプリケーションを開発する際に注意しておくべきセキュリティについて列挙したものです。 OWASP Top 10 と同様、最も一般的かつ最も重要な弱点の影響とその対策の方向性について、開発者等に理解を深めてもらうことを目的としています。OWASP Mobile Top 10 2016 は2017年2月にリリースされました。以下の項目がモバイルアプリケーションを開発する際に気を付けておくべきこととしてリストアップされています。

 

2016年に公開されたOWASP Mobile Top 10

M1 : Improper Platform Usage(プラットフォームの不適切な利用)
M2 : Insecure Data Storage(安全でないデータストレージ)
M3 : Insecure Communication(安全でない通信)
M4 : Insecure Authentication(安全でない認証)
M5 : Insufficient Cryptography(不十分な暗号化)
M6 : Insecure Authorization(安全でない認可制御)
M7 : Client Code Quality(クライアントコードの品質)
M8 : Code Tampering(コード改ざん)
M9 : Reverse Engineering(リバースエンジニアリング)
M10 : Extraneous Functionality(余計な機能)

OWASP Mobile Top 10詳細

M1 : Improper Platform Usage(プラットフォームの不適切な利用)
プラットフォーム機能の誤用や、プラットフォームセキュリティコントロールの不使用が対象です。Androidインテント、プラットフォームのアクセス許可、TouchIDの誤用、キーチェーン、モバイルOSの一部である他のセキュリティコントロールが含まれます。モバイルアプリケーションには、本リスクを有してしまう幾つかの状況があります。

M2 : Insecure Data Storage(安全でないデータストレージ)
OWASP Mobile Top10 2014のM2(Insecure Data Storage:安全でないデータストレージ)とM4(Unintended Data Leakage:意図しないデータ漏えい)を組み合わせた新たなカテゴリです。

M3 : Insecure Communication(安全でない通信)
脆弱なハンドシェイク、不適切なSSLバージョン、脆弱なネゴシエーション、機密情報の平文通信などが対象です。

M4 : Insecure Authentication(安全でない認証)
エンドユーザの認証やセッション管理の不備が対象です。以下のようなものがあります。
– ユーザを特定できない
– ユーザの同一性を維持できない
– セッション管理の不備

M5 : Insufficient Cryptography(不十分な暗号化)
機密情報資産を暗号化するプログラムには、暗号処理が不十分な場合があります。TLSやSSLに関連するあらゆるものは、M3(Insecure Communication:安全でない通信)に含まれるという点に注意してください。また、暗号化すべき時にアプリが暗号を使用しない場合は、M2(Insecure Data Storage:安全でないデータストレージ)に含まれます。本カテゴリは、暗号化が実行されたにもかかわらず、正しく行われていないという問題が対象です。

M6 : Insecure Authorization(安全でない認可制御)
認可制御の不備(例えば、クライアント側での認可決定や強制ブラウジングなど)が対象です。これは、認証の問題(例えば、デバイス登録やユーザ識別)とは異なるものです。もし、認証が必要な状況でアプリがユーザを全く認証していない場合は (例えば、認証され許可されたアクセスが必要であるにもかかわらず、一部のリソースやサービスに匿名アクセスが許可されているなど)、認証の不備(M4)であり、本カテゴリには含まれません。

M7 : Client Code Quality(クライアントコードの品質)
以前は下位の「Security Decisions Via Untrusted Inputs:信頼できない入力値によるセキュリティ権限の判定」でした。本カテゴリは、モバイルクライアントのコードレベルの実装の問題が対象です。サーバサイドのコーディングミスとは異なるものです。本カテゴリは、バッファオーバーフローやフォーマットストリングの脆弱性や、他の様々なコードレベルのミスといったモバイルデバイス上で実行されるコードを書き換えることで解決できることが対象です。

M8 : Code Tampering(コード改ざん)
バイナリ更新、ローカルリソースの改ざん、メソッドフッキング、メソッドスウィズリング、動的メモリ改ざんについて記載します。 アプリケーションがモバイルデバイスに一旦配信されると、コードとデータといったリソースは端末に常駐することになります。攻撃者は、そのコードを直接改ざんしたり、メモリ内容を動的に改ざんしたり、アプリケーションが使用するシステムAPIを変更や置換したり、アプリケーションのデータやリソースを改ざんしたりすることが可能です。これにより攻撃者は、個人的利益もしくは金銭的利益のために、ソフトウェアが本来意図している使用方法を直接覆すことができるようになります。

M9 : Reverse Engineering(リバースエンジニアリング)
ソースコードやライブラリ、アルゴリズム、その他資材を特定しようとする、バイナリ解析について記載します。IDA Pro、Hopper、otool、その他のバイナリ検査ツールのようなソフトウェアを使用することで、攻撃者はアプリケーションの内部構造を把握することができます。これにより、バックエンドサーバや暗号化用の定数や暗号、知的財産に関する情報が晒されるだけでなく、アプリケーションに存在する新たな脆弱性も悪用される恐れがあります。

M10 : Extraneous Functionality(余計な機能)
開発者は、本番環境にリリースするつもりではない隠されたバックドア機能や内部開発用のセキュリティコントロールを本番用に含めてしまうことがあります。例えば、開発者がうっかりハイブリッドアプリケーションのコメントにパスワードを記載してしまったり、テストで無効化した二要素認証をそのままにしてしまったりする恐れがあります。

 

参照HP:OWASP Mobile Top 10