LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

ラックピープル | 

OWASP Top10 Mobile Risks 2016のリリース候補について

みなさん、OWASPをご存知でしょうか。

OWASP(Open Web Application Security Project)とは・・・*2


Webをはじめとするソフトウェアのセキュリティ環境の現状、またセキュアなソフトウェア開発を促進する技術・プロセスに関する情報共有と普及啓発を目的としたプロフェッショナルの集まる、オープンソース・ソフトウェアコミュニティです。


Webアプリのセキュリティに携わっている方はご存じの方が多いかと思いますが、日本では2011年にOWASP Japanが発足しています。

OWASP Top10

OWASPにおける最も有名なものとして、「OWASP Top10」があります。これは、Webアプリケーションにおいて最もクリティカルとされる10種類のセキュリティリスクをまとめたものです。OWASP Top10は、アプリケーションセキュリティリスクの重要性の意識を高めることを目標に、2003年に初めてリリースされ、2004年、2007年、2010年、2013年に更新されています。このプロジェクトには、世界中の様々なセキュリティの専門家がメンバーとして含まれています。
OWASP Top10はWebアプリケーションセキュリティに関するものですが、この関連プロジェクトの一つにOWASP Mobile Securityというモバイルセキュリティに関するプロジェクトがあります。このプロジェクトの目標は、モバイルセキュリティリスクを分類し、それらの影響や悪用の可能性を減らすための開発コントロールを提供することです。今回は、OWASP Mobile Securityプロジェクトの成果物の一つであるOWASP Top10 Mobile Risksの2016年版(リリース候補)について紹介します。なお、OWASP Top10 Mobile Risks 2016はリリース候補のため、確定版が発表されたときに変更される可能性があります。

OWASP Top10 Mobile Risks 2016のリリース候補は下記の通りです。*1

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(関係のない機能)

以下、それぞれのカテゴリに関する説明です。

Improper Platform Usage(不適切なプラットフォームの利用)

本カテゴリは、プラットフォーム機能の誤用や、プラットフォームセキュリティ制御の不使用を対象としています。
これには、Androidインテント(アプリケーション間通信を行うための手段)、プラットフォームのアクセス許可、TouchID(指紋認証センサー)の誤用、キーチェーン(パスワード管理システム)、またはモバイルOSの一部であるその他のセキュリティ制御が含まれます。

Insecure Data Storage(安全でないデータ保存)

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

OWASP Top10 Mobile Risks 2014のM2では、以下に格納されているデータが安全でない場合が多いと考えられています。*3 もちろん、以下に格納されているデータ以外も安全であるかどうかを確認する必要があります。

  • SQLiteデータベース
  • ログファイル
  • Plistファイル
  • XMLデータストアまたはマニフェストファイル
  • バイナリデータストア
  • Cookieストア
  • SDカード
  • 同期されたクラウド

OWASP Top10 Mobile Risks 2014のM4では、意図しないデータ漏えいには開発者が一般的に知らない以下における脆弱性が含まれていると記載されています。*4 こちらに関しても、以下に記載されていない脆弱性が原因となる可能性もあります。

  • OS
  • フレームワーク
  • コンパイラ環境
  • 新しいハードウェア

特にモバイル開発では以下のような内部プロセスについて、文書化されていない(もしくは十分に文書化されていない)ことが多いと記載されています。

  • OSがデータ、イメージ、キープレス、ロギング、バッファをキャッシュする方法
  • 開発フレームワークがデータ、イメージ、キープレス、ロギング、バッファをキャッシュする方法
  • データ広告、分析、ソーシャル、イネーブルメントフレームワークがデータ、イメージ、キープレス、ロギング、バッファをキャッシュする方法や総量

Insecure Communication(安全でない通信)

本カテゴリは、脆弱なハンドシェイク、不適切なSSLバージョン、脆弱なネゴシエーション、機密情報を含む平文通信などを対象としています。

Insecure Authentication(安全でない認証)

本カテゴリは、エンドユーザの認証やセッション管理の不備を対象としています。なお、本カテゴリには下記が含まれます。

  • 必要なときにユーザを特定できない
  • 必要なときにユーザの同一性を維持できない
  • セッション管理の不備

Insufficient Cryptography(不十分な暗号化)

コードは機密情報に暗号を適用しますが、暗号手法によっては不十分なことがあります。M3(Insecure Communication:安全でない通信)には、TLSやSSLに関連するあらゆるものが含まれています。また、もし暗号化すべきときにアプリが暗号を使用しない場合はM2(Insecure Data Storage:安全でないデータ保存)に含まれます。
本カテゴリは、暗号化が試行されたにもかかわらず、正しく実行されなかった問題を対象としています。なお、『正しく実行されなかった』とは下記のようなものを指しています。*5

  • 脆弱な暗号アルゴリズムの使用
  • 十分な長さではない暗号鍵長の使用
  • 間違った種類の暗号の使用(たとえば、公開鍵暗号方式が適切な場合にもかかわらず秘密鍵暗号方式を使用するなど)
  • 以下のような良く知られている暗号解読攻撃の脆弱性の存在
    ○選択平文攻撃
    ○既知の平文攻撃
    ○脆弱な暗号鍵の使用(たとえば、予測可能なランダム性が存在するなど)

Insecure Authorization(安全でない認可制御)

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

Client Code Quality(クライアントコードの品質)

本カテゴリは、OWASP Top10で今まであまり使用されていなかったカテゴリの1つである、「Security Decisions Via Untrusted Inputs:信頼できない入力によるセキュリティ決定」というものでした。
本カテゴリでは、モバイルクライアントにおけるコードレベルの実装におけるすべての問題を対象としています。これは、サーバサイドのコーディングミスとは異なるものです。
本カテゴリには、バッファオーバーフローやフォーマットストリングの脆弱性のような、モバイルデバイス上で実行されているいくつかのコードを書き換えることにより解決できる様々なコードレベルのミスが含まれています。

Code Tampering(コード改ざん)

本カテゴリは、バイナリパッチ、ローカルリソースの改ざん、メソッドフッキング(メソッド改ざん)、メソッドスウィズリング(動的メソッド改ざん)、動的メモリ改ざんを対象としています。
アプリケーションがモバイルデバイスに配信されると、コードとデータのリソースが端末に常駐することになります。攻撃者は、このコードを直接改ざんしたり、メモリ内容を動的に改ざんしたり、アプリケーションが使用するシステムAPIを改ざんまたは置き換えたり、アプリケーションのデータとリソースを改ざんすることが可能です。
これにより、攻撃者は個人的もしくは金銭的利益のためにソフトウェアが意図している使用を妨害するための直接的な方法を獲得することができます。

Reverse Engineering(リバースエンジニアリング)

本カテゴリは、ソースコード、ライブラリ、アルゴリズム、その他の資産を決定するための最終的なコアバイナリの分析を対象としています。
IDA Pro、Hopper、otool、その他のバイナリ検査ツールのようなソフトウェアによって、攻撃者はアプリケーションの内部構造を把握することが可能です。これによって、バックエンドサーバ、暗号の定数と暗号、知的財産に関する情報が明らかにされるだけではなく、アプリケーションに存在する他の初期の脆弱性を悪用するために使用される恐れがあります。

Extraneous Functionality(関係のない機能)

本カテゴリは、バックドア機能やその他の内部開発セキュリティコントロールを対象としています。これらは、開発者が本番環境にリリースするつもりではないバックドアなどを含めてしまうことが原因です。
例えば、開発者がうっかりハイブリッドアプリのコメントにパスワードを含めたり、テスト中に無効化した二要素認証を有効化せずにアプリを配信したりすることが含まれます。

以上、OWASP Top10 Mobile Risks 2016のリリース候補について書かせていただきました。

弊社では、スマートフォンアプリケーション向けの診断サービスを提供しています*6 。"サーバとの通信における脅威"、"アプリケーションの操作上における脅威"、"アプリケーション解析における脅威"という大きく3つに分けた項目で、スマートフォンアプリケーションのセキュリティ対策が適切であるかについて実機を用いて網羅的に診断します。スマートフォンアプリケーションをリリースする前のセキュリティ対策の確認にぜひご検討ください。

【参考】OWASP Top10 Mobile Risks 2014と2016

Top 10
Mobile Risks
OWASP Top10
Mobile Risks 2014*7
OWASP Top10
Mobile Risks 2016*1
M1 Weak Server Side Controls
脆弱なサーバ側の管理
Improper Platform Usage
不適切なプラットフォームの利用
M2 Insecure Data Storage
安全でないデータ保存
Insecure Data Storage
安全でないデータ保存
M3 Insufficient Transport Layer Protection
不十分なトランスポート層の保護
Insecure Communication
安全でない通信
M4 Unintended Data Leakage
意図しないデータ漏えい
Insecure Authentication
安全でない認証
M5 Poor Authorization and Authentication
脆弱な認可と認証
Insufficient Cryptography
不十分な暗号化
M6 Broken Cryptography
壊された暗号手法
Insecure Authorization
安全でない認可制御
M7 Client Side Injection
クライアントサイドインジェクション
Client Code Quality
クライアントコードの品質
M8 Security Decisions Via Untrusted Inputs
信頼できない入力によるセキュリティ決定
Code Tampering
コード改ざん
M9 Improper Session Handling
不適切なセッションハンドリング
Reverse Engineering
リバースエンジニアリング
M10 Lack of Binary Protections
バイナリ保護の不足
Extraneous Functionality
関係のない機能

この記事は役に立ちましたか?

はい いいえ