Skip to main content

一般的なアプリケーションセキュリティの脅威を特定する

学習の目的

この単元を完了すると、次のことができるようになります。

  • アプリケーションとそのリスクを棚卸しして優先度付けする重要性を説明する。
  • アプリケーションセキュリティエンジニアが特定すべき主要なアカウントアクセス情報を挙げる。

アプリケーションとそのリスクについて学ぶ

過去数年、消費者と企業の両方でアプリケーションの使用は着実に増えており、今後も増え続けると予想されます。近年、アプリケーション開発は簡単になり、必要なリソースも少なくなっています。大規模な組織では、分散した開発者のチームが、ときには IT 部門やセキュリティ部門の知らない間に、新しいプログラミングコードを稼働させていることがあります。こうしたビジネスユニットがテクノロジーの購入判断も自分たちだけで下す場合、複数のテクノロジーソリューションに会社のデータが標準化や管理がほとんどない状態で保存されることになります。 

さらに、企業がソフトウェアプロジェクトに納期短縮を強く求めるため、開発者はアプリケーションとデータのセキュリティを犠牲にしかねないスピードでビジネス機能を提供しなければなりません。機能を迅速に提供する必要があるため、可能な場合は常にセキュリティスキャンを自動化するなど、自動プロセスの使用も推し進める必要があります。

この 2 つのトレンドにより、アプリケーションセキュリティエンジニアは、まず環境内のアプリケーションとそれがもたらすリスクを特定する必要があります。現物の商品を扱う企業が倉庫の在庫を棚卸しするように、アプリケーションセキュリティエンジニアはまず環境内のアプリケーションを棚卸しします。アプリケーションのリスクを特定するときの目標は、各アプリケーションによってもたらされる脅威、脆弱性、ビジネスへの影響を把握し、その情報に基づいて関連する保護に優先度を付けることです。Open Web Application Security Project (オープン Web アプリケーションセキュリティプロジェクト) (OWASP) では、アプリケーションセキュリティエンジニア向けに豊富な実践的情報を提供しています。これには、特定のビジネス環境にとって最も重大なセキュリティリスクを評価するリスク評価アプローチの詳細などが含まれます。  

倉庫でビジネスアセットの棚卸しをする人

セキュリティリスクを特定するには、関連する脅威、使用可能な方法、不正使用される可能性がある脆弱性、ビジネスに与える可能性がある影響について検討します。アプリケーションセキュリティエンジニアは、さまざまなリスクを認識し、防御策を実施します。リスクの一部は OWASP トップ 10 で説明されています。インジェクション、クロスサイトスクリプティング (XSS)、セキュリティの設定ミス、認証の失敗、アクセス制御の失敗、機密データの暴露、不十分なログと監視については次の単元で詳しく説明します。

アプリケーションアクセスを追跡する

アプリケーションと関連する脅威、脆弱性、リスク、影響を棚卸しすることで、すでに時間を取って脅威アクターとその狙いについて考えています。アプリケーションセキュリティエンジニアは、攻撃者がどうシステムにアクセスして機密情報を盗み出したり、損害を与えたりできるかについても考える必要があります。正規ユーザーやユーザー以外が利用できるエントリポイントは、攻撃者も不正利用できます。環境で行われるさまざまな種別のアプリケーションアクセスを特定して理解することがきわめて重要です。 

アプリケーションセキュリティエンジニアはアプリケーションアクセスについて次のように自問します。

  • このアプリケーションにアクセスするのは誰か? このアプリケーションの対象は顧客、ビジネスパートナー、従業員、サードパーティベンダーのどれか? こうしたユーザーのそれぞれに必要なアクセス種別は何か? こうしたユーザーに必要な権限や機能は何か? たとえば、アプリケーションは金融取引の実行に使用されるのか? 相互運用可能にして他のアプリケーションやブラウザーセッションへのアクセスを許可する必要があるか?
  • ユーザーはどこからこのアプリケーションにアクセスするか? これはモバイルアプリケーションか、それともデスクトップアプリケーションか? これは内部ユーザー (会社のイントラネット上の従業員など) のみが使用できるのか? 外部 (インターネットなど) からも使用可能か? 機密性の高いアプリケーションはネットワークのそれほど機密性の高くない領域とは分けられているか?
  • どの特権管理機能を使用できるか? システム管理者が実行できる機能はどれか? その機能はどう制御されるか? これらのアカウントはどう監視されるか?

この各点を考慮する際には、悪意のあるアクターはアプリケーション内のさまざまなパスを通過してビジネスに損害を与える可能性があることを念頭に置きます。アプリケーションセキュリティエンジニアは、このような可能性のあるエントリポイントとそれに続くパスを 1 つ 1 つ評価して、適切な保護を整備します。次のモジュールでは、ソフトウェア開発ライフサイクルのセキュリティ確保をはじめとする、アプリケーションの保護方法についてさらに詳しく学習します。 

まとめ

このモジュールでは、アプリケーションとは何か、アプリケーションセキュリティエンジニアに必要なスキル、アプリケーションセキュリティエンジニアが組織の環境に固有のアプリケーション、リスク、脆弱性、脅威を特定する方法について学習しました。一般的なアプリケーションセキュリティのシナリオについても確認しました。「Application Security Engineer Responsibilities (アプリケーションセキュリティエンジニアの責任)」モジュールでは、各シナリオと、それに対してアプリケーションセキュリティエンジニアがソフトウェア開発ライフサイクル (SDLC) に従ってどうアプリケーションを保護するかを詳しく学習します。サイバーセキュリティ関連情報の詳細に関心がある方は、Trailhead のサイバーセキュリティの学習ハブを参照してください。

リソース

無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる