Androidアプリの脆弱性の学習・点検ツール「AnCoLe(アンコール)」について

Androidアプリの脆弱性の学習・点検ツール「AnCoLe(アンコール)」は、Androidアプリの開発者を対象とした、脆弱性が作り込まれてしまう原因や対策について実習形式で学べるツールです。
利用者は本ツールを利用して、以下を行うことができます。
  • Androidアプリの脆弱性に関する学習(学習機能
    本ツールが提供するシナリオを通して、アプリ開発時に注意すべき脆弱性や問題の対策方法について学習できます。学習対象の一覧は下記の通りです。

    学習対象の一覧
    No. 学習対象の脆弱性や問題
    ファイルのアクセス制限不備
    コンポーネントのアクセス制限不備
    暗黙的Intentの不適切な使用
    不適切なログ出力
    WebViewの不適切な使用
    SSL通信の実装不備
    不必要な権限の取得

    各シナリオには脆弱性を持つサンプルアプリと、その脆弱性を悪用する攻撃アプリのインストール可能なデータが含まれています。
    利用者は、サンプルアプリと攻撃アプリをAndroid端末やエミュレータ上で動作させることで、それぞれのアプリの脆弱性の対策前と対策後の挙動を体験できます。
    また、利用者はシナリオに従ってサンプルアプリを修正し、脆弱性の対策方法について学習できます。

  • プロジェクトに対する脆弱性の点検(点検機能
    自分が開発したアプリのプロジェクト(ソースコードや設定ファイル)に、学習対象の脆弱性や問題が作りこまれていないか簡易点検ができます。点検結果を基に脆弱性対策の学習をしたり、アプリのソースコードを呼び出して修正したりすることができます。
    また、修正したプロジェクトを再点検して問題が解決されたことを確認することもできます。

  • その他
    本ツールは、ツールを使用する上で最低限必要となる、Androidに関する基本的な知識と用語集を提供しています。
    Androidの特徴や、アプリの動作に関する知識に自信がない開発者は、これらの情報を参照してAndroidの概要を把握してから各学習内容に進んでください。
    • Androidアプリの基礎知識
      Android OS、およびAndroidアプリの特徴、アプリを開発する上での基本的な知識について説明しています。
    • 用語集
      Androidアプリの脆弱性を学習するために必要な用語について説明しています。
    • ヘルプ
      本ツールのヘルプについて説明しています。
    • 脆弱性体験のための事前準備
      脆弱性を体験するために必要な、環境構築の手順について説明しています。

学習機能

学習の流れ
学習は以下のような流れで行います。
  • 学習機能の起動
    まず、学習機能を起動します。起動方法については後述します。
  • 学習コンテンツの選択
    学習したいコンテンツを選択します。
  • 脆弱性の概要説明
    学習対象の脆弱性がどのようなものなのか、どのような被害につながるのか、について学習します。
  • サンプルコードの解説
    どのような実装が脆弱性につながるのか、ソースコードを見ながら学習します。
  • 脆弱性体験
    脆弱性を持っているサンプルアプリをビルドして実行し、攻撃アプリを使って攻撃します。
    実際にアプリを動作させて、脆弱性のあるアプリがどのような被害に遭うのかを体験します。
  • サンプルアプリの脆弱性説明
    サンプルアプリのソースコードを確認し、脆弱性の原因について理解します。
  • 脆弱性対策方法の説明
    脆弱性の対策方法について学習し、実際にサンプルアプリのソースコードを修正します。
  • 脆弱性対策の体験
    修正されたサンプルアプリを実行し、攻撃アプリを使って攻撃します。
    対策されたことによって、攻撃が成立しないことを確認します。
学習機能の起動方法
  • 学習機能の起動
    学習機能はEclipseツールバーのアイコン、またはWindowメニューから起動できます。

    ツールバーからの起動:


    メニューからの起動:


学習機能が起動すると、画面左側のペインに「学習コンテンツ選択画面」が表示されます。ここから、学習したいコンテンツを選択してください。
学習が完了したら、コンテンツにチェックを入れて学習済みであること記録しておきましょう。

学習コンテンツ選択画面

点検機能

点検の流れ
プロジェクトに対する点検は以下のような流れで行います。
  • 点検機能の起動
    まず、点検機能を起動します。起動方法については後述します。
  • 点検対象プロジェクトの選択
    点検したいプロジェクトを選択します。自身が開発したアプリのプロジェクトや学習シナリオに含まれるサンプルアプリのプロジェクト等が点検できます。
  • 点検結果の確認
    プロジェクトを選択すると点検が実行され、結果が表示されます。
    表示された結果を確認しながら、必要に応じて学習コンテンツを参照し、指摘された問題について理解します。
  • アプリの修正
    点検結果には修正すべきソースファイル名と、問題が検出された箇所の情報が表示されます。また、ここからソースコードを呼び出せるようになっています。
    問題が検出されたソースコードを開き、問題を修正します。
  • 再点検
    修正されたプロジェクトを再度点検し、問題が解決されていることを確認します。
点検機能の起動方法
  • 点検機能の起動
    点検機能はEclipseツールバーのアイコン、またはWindowメニューから起動できます。

    ツールバーからの起動:


    メニューからの起動:


  • プロジェクトの選択
    点検機能が起動すると、点検対象のプロジェクトを選択する画面が表示されます。
    プロジェクト選択画面



プロジェクトが選択されると自動的に点検が行われ、結果が表示されます。
点検結果一覧表示画面


参考文献

このソフトウェアに掲載されている内容の一部は、以下の文書を参考にしています。