モバイルアプリケーションセキュリティエンジニアリングの概要を知る
学習の目的
この単元を完了すると、次のことができるようになります。
- アプリケーション開発とアプリケーションセキュリティの違いを説明する。
- アプリケーション開発者が直面するセキュリティ課題を明らかにする。
- モバイル AppSec エンジニアに関連する主要なスキルを挙げる。
アプリケーション開発とアプリケーションセキュリティの比較
すべてのモバイルアプリケーション (アプリ) 開発者がモバイルアプリケーションセキュリティ (AppSec) エンジニアであるとは限らず、その逆も同様です。開発者に AppSec エンジニアとしての経歴があっても (その逆でも)、ロールへの期待事項は異なります。アプリケーション開発者の典型的な責任として、更新と起こり得るセキュリティ脅威を考慮したコーディング、設計、管理、トラブルシューティング、監視と、アプリケーションに関するエンドユーザーサポートの提供などがあります。
一方、モバイル AppSec エンジニアはソフトウェア開発ライフサイクル (SDLC) の作成および開発フェーズでセキュリティコントロールと設計要件を設定します。アプリケーションの脅威モデリングとリスク評価の実施もサポートします。さまざまなツールを使用してモバイルアプリケーションをテストし、アプリケーションが公開される前にセキュリティ問題が解決されていることを確認します。また、リリース後のモバイルアプリケーションを監視し、新規または未検出のセキュリティの脆弱性を特定して解決します。
AppSec のジレンマ
開発プロセスでは多くの場合、アプリケーションの迅速な製品化や新機能の作成に重点が置かれ、セキュリティは必ずしも重視されません。さらに、モバイルアプリケーションの保護に特化した予算は限られている場合があります。多くの組織では、セキュリティの脆弱性、意図しない使用法、隠し機能がないかモバイルアプリケーションのコードをスキャンまたはテストすることはありません。
もう 1 つの課題は、使用している基礎のプラットフォームを意識していない開発者がいることです。モバイルアプリケーションを適切に保護するには、モバイルアプリケーション開発者が、モバイルアプリケーションのリソースを提供する基礎のメカニズムのすべてとその制限を認識する必要があります。
さらにモバイルアプリケーション保護の障害となるのか、アプリケーションで要求される権限の範囲が広すぎる点と、ユーザーがそれを疑問に思わない点です。たとえば、スマートフォンの天気アプリケーションにカメラやマイクへのアクセスは本当に必要でしょうか? 用途は何でしょうか? アプリケーションへの過度な権限付与で攻撃面が広がります。アプリケーションが目的には関連のない情報を集めるほど、機密かもしれないデータをユーザーが不必要に共有する可能性が高くなります。
モバイルアプリケーションを本番環境にリリースした後も、作業は終わりません。日々、新しい脆弱性が見つかり、最も信頼できるソフトウェアライブラリでさえセキュリティ更新が必要です。新しいセキュリティ問題をすばやく特定して解決するには、常に意識を高め、ユーザーとの意思疎通を図る必要があります。よい点は、今日、AppSec に関する知識がある開発者は求人市場で有利なことです。
モバイル AppSec の主要なスキル
モバイルアプリケーション開発とセキュリティの業界は、モバイルデバイスがコミュニケーションと仕事の中心になるのに伴い成長を続けています。モバイルデバイスとモバイルアプリケーションのサイバーレジリエンスの重要性が増したため、経験のあるモバイル AppSec エンジニアへの需要が高まっています。
セキュアなモバイルアプリケーションを開発するには、SDLC 全体を通して一連の活動を適用します。たとえば、連携してアプリケーションを概念化し、セキュリティバイデザインを実現することや、枠にとらわれない考え方で脅威を予測することなど、数多くあります。技術的知識があり、将来、IT 業界での成功を目指している人は、モバイル AppSec のスキルを磨くことが最良の選択肢かもしれません。
ソフトウェアを使用してタスクを自動化する場合は、セキュリティのバグと不具合を特定し、コードレビューを実行すれば、このロールで卓越することができるでしょう。モバイル AppSec エンジニアは、モバイルアプリケーション開発者がセキュアなモバイルアプリケーションをゼロから設計するのをサポートすると共に、エキスパートとしてセキュリティ評価とコードレビューを実施します。デプロイされたモバイルアプリケーションを保護するためのセキュリティツールと技法も実装します。特定の資格がなければモバイル AppSec になれないということはありませんが、技術的な経歴があれば有利です。
教育
コンピューターサイエンスの学位や何らかの技術トレーニングを受けていると、このキャリアパスでは有利です。
経験
一般的なプログラミング経験とソフトウェアまたは Web 開発経験があると役立ちます。基本とカスタムの両方のビジネス要件に対応した、カスタムメイドの Android および iOS アプリケーションのエンジニアリングに熟達している必要があります。カスタムアプリケーションを IT 企業のアプリケーションストアで公開して配布できるように、規制基準およびガイドラインを理解する必要があります。
認定資格
この分野では認定資格を取得することをお勧めします。セキュアソフトウェアライフサイクル、セキュアソフトウェアプログラミング、Web アプリケーション防御などに対応した認定資格を取得すると、スキルアップして最初の一歩を踏み出すことができます。モバイル AppSec エンジニア向けに次のような一般的な認定資格があります。
認定資格 |
説明 |
---|---|
Certified Secure Software Lifecycle Professional (認定セキュアソフトウェアライフサイクルプロフェッショナル) (CSSLP)
|
セキュリティ手法を SDLC の各フェーズに取り入れるための専門知識がソフトウェアプロフェッショナルにあることを証明します。 |
GIAC Secure Software Programmer (セキュアソフトウェアプログラマー) (GSSP-.NET)
|
セキュアなコードを記述し、既存のコードの欠陥を認識するための知識、スキル、能力が実践者にあることを証明します。 |
GIAC Web Application Defender (Web アプリケーションディフェンダー) (GWEB)
|
多くのセキュリティ問題につながる一般的な Web アプリケーションエラーへの対応に必要なセキュリティの知識が十分あることを証明します。 |
GIAC Mobile Device Security Analyst (モバイルデバイスセキュリティアナリスト) (GMOB)
|
モバイルデバイスのセキュリティを効果的に評価し、モバイルアプリケーションの不具合を評価して特定し、モバイルデバイスの侵入テスト (ペンテスト) を実施するためのスキルを身に付けます。 |
Secure Software Practitioner (セキュアソフトウェアプラクティショナー) (SSP)
|
よりセキュアなソフトウェアコードを記述し、脆弱性を減らし、組織のソフトウェア製品の全体的なセキュリティ対応を強化するために必要なスキルを身に付けます。 |
知識
モバイル AppSec エンジニアとして働くには複数のスキルセットが必要です。Android または iOS プラットフォームでの開発スキルと、静的および動的モバイル AppSec 分析の概念についての知識が必要です。プロトコルとネットワーク分析について理解しておくこともお勧めします。
さらに、OAuth や公開鍵インフラストラクチャ (PKI) など、認証方式や暗号化方式の経験が必要です。Open Web Application Security Project (オープン Web アプリケーションセキュリティプロジェクト) (OWASP) Mobile Top 10 (モバイルトップ 10) と脅威モデリングに関する知識も必要です。プログラミング言語スキル、コンピューターに関する専門知識、バックエンドコンピューティング、ユーザーインターフェース (UI) 設計、モバイルクロスプラットフォーム開発、製品管理などのトピックに習熟しておくことも重要です。さらに、積極的に新しいプログラミングの知識を求め、アジャイル方式の経験を積み、分析スキルを身に付ける必要があります。
ビジネススキル
モバイル AppSec エンジニアとして成功するには、ビジネススキルを活かして顧客のビジョンや求められている機能をセキュアに提供する最良の方法を理解することが非常に重要です。製品管理に加え、設計、執筆、コミュニケーションのスキル、細部にわたる注意力がこのロールには不可欠です。
習得度チェック
では、これまでに学んだ内容を復習しておきましょう。この習得度チェックは簡単な自己診断テストで、採点されるものではありません。左側の説明を右側の対応する用語にドラッグしてください。全アイテムを結び付けたら、[送信] をクリックして習得度をチェックします。最初からやり直すには [リセット] をクリックします。
順調です!
まとめ
このモジュールでは、モバイル AppSec 環境の概要を理解しました。モバイル AppSec の必要性について学習しました。モバイル AppSec エンジニアの責任、スキル、認定資格についても理解しました。次のモジュール「Mobile Application Security Implementation (モバイルアプリケーションセキュリティの実装)」では、モバイル AppSec を実装し、モバイルアプリケーションをテストする方法を学習します。サイバーセキュリティの各ロールについて学び、セキュリティのプロフェッショナルの話を聞く場合は、Trailhead のサイバーセキュリティの学習ハブを参照してください。
リソース
-
Trailhead: サイバーレジリエンスプログラムの開発
-
外部サイト: OAuth: OAuth 2.0
-
外部サイト: Federal Trade Commission: App Developers: Start with Security (連邦取引委員会: アプリケーション開発者: セキュリティ入門)
-
外部サイト: Indeed: Mobile App Developer Skills (モバイルアプリケーション開発者のスキル)
-
外部サイト: LinkedIn: Top 5 Skills Required for a Mobile Application Developer (モバイルアプリケーション開発者に必要なスキル トップ 5)