アプリケーションセキュリティは1つのテクノロジーではなく、サイバー攻撃、データ侵害、またはその他の脅威による脅威を予防し、修正できるよう、組織のソフトウェアに追加する一式のベストプラクティス、機能、および/または特徴になります。
組織は、さまざまな種類のアプリケーションセキュリティプログラム、サービス、およびデバイスを利用できます。ファイアウォール、アンチウイルスシステム、そしてデータ暗号化などは、不正ユーザーによる侵入を阻止するための一部の例にすぎません。組織が特定の機密データセットを保護したい場合、こうしたリソース向けに固有のアプリケーションセキュリティポリシーを設定できます。
アプリケーションセキュリティはさまざまな段階で行われますが、ベストプラクティスの設定は主にアプリケーション開発段階で行われます。ただし、組織は開発後も異なるツールやサービスを活用できます。総合的に見て、組織が利用できるセキュリティツールは数百に上り、それぞれが固有の目的を果たします。こうしたツールには、コーディング変更の堅牢化、コーディングに対する脅威の監視、そしてデータ暗号化の確立を果たすものがあります。当然のことながら、組織は異なるアプリケーションの種類に応じて特殊なツールを選択できます。
アプリケーションセキュリティのメリット
- 社内および第三者ソースによるリスクを低減する。
- セキュリティ侵害などで組織がニュースの一面を飾ることのないよう、ブランドイメージを守る。
- 顧客のデータをセキュアに保ち、顧客の信頼を高める。
- 機密データを漏洩から守る。
- 重要な投資家や貸し手の信頼を高める。
組織にアプリケーションセキュリティが必要な理由とは?
組織は、総合的に見たデータセキュリティの重要性を理解しています。しかし、サイバー攻撃に後れを取らずに、一歩先を進む形でアプリケーションセキュリティポリシーをしっかりと定義できている組織はごく僅かです。現に、Veracodeのソフトウェアセキュリティ状況レポートでは、テストした全てのアプリケーション (約85,000) の83%に最低でも1つはセキュリティの欠陥があったことが明らかになっています。Veracodeが見つけたセキュリティの欠陥は1,000万件に上るため、ほとんどのアプリケーションが大量のセキュリティギャップを抱えていたことが分かります。
セキュリティの欠陥が存在するだけでも厄介な上、組織がこうしたギャップを悪用したセキュリティ侵害を予防するだけのツールを完備できていない現状はさらに悩ましい問題となっています。アプリケーションセキュリティが問題なく機能するには、脆弱性を特定して、問題が顕在化する前に速やかに修正できなくてはいけません。
しかし、ITマネージャーには、この2つの主要な任務以外にもやるべきことがあります。もちろん、セキュリティギャップの特定と修正はアプリケーションセキュリティプロセスの肝心なポイントですが、サイバー犯罪者がより洗練された攻撃手段を考案していく中、組織は最新のセキュリティツールを使って、一歩、そして理想的には数歩、常に先を進み続ける必要があります。脅威の検出はより困難になり、組織に多くの被害をもたらすようになっているため、旧式のセキュリティ戦略で対応している余裕はありません。
アプリケーションセキュリティツールの種類を把握する
昨今、組織は複数の選択肢からアプリケーションセキュリティ製品を選ぶことができますが、そのほとんどは次の2つのカテゴリーのどれかに該当します。1つ目は、アプリケーションセキュリティの状態を分析することを目的とした、既存のセキュリティテストツールであり、充分な基盤を持つ産業となっています。2つ目は、セキュリティ「シールド」ツール。これは、アプリケーションの防御と堅牢化によって、セキュリティ侵害の実行を困難にします。
セキュリティテスト製品のテーマには、さらに複数のカテゴリーが存在します。まず、静的アプリケーションセキュリティテストでは、アプリケーション開発プロセスで特定のコードポイントを監視することで、開発者が開発プロセス中に無意識にセキュリティギャップを作成することのないようにします。
次に、動的アプリケーションセキュリティテストでは、コード実行中のセキュリティギャップを検出します。この方法では、本番環境システムに対する攻撃を模倣することで、より複雑な戦略による攻撃からの防御手段を開発者とエンジニアに与えます。静的および動的テストはどちらも魅力的なため、両者のメリットを組み合わせた、3つ目の選択肢となるインタラクティブアプリケーションセキュリティテストの誕生は当然だと言えます。
最後に、モバイルアプリケーションセキュリティテストは、その名の通りモバイル環境におけるセキュリティギャップを検出します。この方法は、攻撃者がモバイルOSを利用して、システムおよび内部で実行中のアプリケーションを侵害する方法を調査します。
次に、アプリケーション「シールド」に進みましょう。すでに述べた通り、このカテゴリー内のツールはアプリケーションを攻撃から「シールド=防御」することを目的としています。理想的に思えるかもしれませんが、特にテストツールと比較した場合、この慣行はさほど一般化していません。 以下に、このツール一群の中にある主なサブカテゴリーをご紹介します。
まず、ランタイムアプリケーション自己保護 (RASP)は、テストとシールド戦略を組み合わせたものです。こうしたツールは、デスクトップおよびモバイル環境の双方でアプリケーション行動を監視します。RASPサービスは、頻繁なアラートによってアプリケーションセキュリティの最新状態を開発者に届けるほか、システム全体が不正アクセスを受けた場合にアプリケーションを終了することもできます。
コード/アプリケーション難読化ソフトウェアと暗号化/改ざん対策ソフトウェアという2つのカテゴリーは、サイバー犯罪者によるアプリケーションのソースコードへの不正アクセス予防という、基本的に同じ目的を果たします。
最後に、脅威検出ツールは、アプリケーション実行環境を分析します。このツールのカテゴリーは実行環境の状態を評価して、潜在的な脅威を検出し、モバイル端末固有の「フィンガープリント」を通じて不正アクセスが行われていないか確認することもできます。
アプリケーションセキュリティを有効にする方法
最も優れた堅牢なアプリケーションセキュリティを実現するには、間違いなくコードから始める必要があります。セキュリティバイデザインとも呼ばれるこのアプローチは、正しく理解することが極めて重要です。多くのケースにおいて、アプリケーションの脆弱性とは、設計上の欠陥を多数抱えている、不正アクセスされたアーキテクチャーから始まります。アプリケーションセキュリティは、開発プロセスの段階、つまりはコードに組み込まなくてはならないのです。
セキュリティバイデザインアプローチでは、アプリケーションが真っ新な、しっかりと保護された状態で開発開始されます。ただし、この方法以外にも、組織が戦略を微調整していく中で留意すべきアプリケーションセキュリティのベストプラクティスは複数存在します。
- パブリックまたはオンプレミスのクラウドアーキテクチャーであっても、安全ではないものとして扱う。この考え方をデフォルトに設定することで、クラウドが十分に安全であるという思い込みから生まれる気のゆるみと安心感を排除できます。
- アプリケーションの各コンポーネントに対して、また開発プロセスの各フェーズにおいて、セキュリティ対策を適用します。必ず、固有の各コンポーネントに対して適切な措置を含めておきましょう。
- インストールおよび構成プロセスの自動化は、重要ではあるものの時間のかかる戦略です。こうしたプロセスをすでに完了している場合でも、次世代型アプリケーション向けに再度行う必要があります。
- セキュリティ対策を確立させるだけでは十分ではありません。必ず、テストと再テストを頻繁に繰り返し、適切に動作していることを確認してください。仮にセキュリティ侵害が起きても、異常を検出して、障害を修正できたことをありがたく思うはずです。
- 時間のかかるセキュリティタスクをSaaSオファリングの活用でオフロードして、より高価値なプロジェクトに再び注意を向けられるようにしましょう。SaaSは比較的コストが低めであるほか、製品構成にあたって専属のITチームを必要としません。