アプリケーションの脆弱性とは?
アプリケーションの脆弱性とは、アプリケーションの設計またはコードのいずれかに存在する弱点や欠陥を指します。この欠陥は、攻撃者がアプリケーションにアクセスしたり、そのセキュリティを侵害したりするために悪用される可能性があります。
アプリケーションの脆弱性はどのようにして発生するのでしょうか?
アプリケーションの脆弱性は、さまざまな理由で発生します。アプリケーションの脆弱性の最も一般的な原因は次のとおりです:
パッチ未適用のソフトウェア:多くの場合、組織は既知のソフトウェアまたはハードウェアの脆弱性に対するパッチ適用(修正)を怠ります。組織は、リソースの制約により、脆弱性へのパッチ適用に時間がかかりすぎたり、そもそも優先しなかったりすることがあります。サードパーティのベンダーからソフトウェアまたはハードウェアを購入している組織も、ベンダーがリリースしたパッチ(既知の修正)の実装に時間がかかりすぎたり、実装しなかったりすることがあります。脆弱性に適時にパッチを適用しないと、アプリケーションやシステムへの容易なアクセスポイントが残されることになり、悪意のある攻撃者が不正アクセスしたり、データを盗んだり、オペレーションを侵害したりする可能性があります。
不十分なセキュリティ対策: 不十分なセキュリティ対策、ツール、リソースは、アプリケーションの脆弱性の一般的な原因です。リソースの観点では、セキュリティの専門家が少なすぎる組織や、脆弱性を効果的に特定して軽減できない訓練不足のスタッフがいる組織では、未特定または未修正の脆弱性が残るリスクが生じます。不十分なツールやアプリケーションセキュリティ(AppSec)のテスト手法も、組織のセキュリティプログラムにギャップを生じさせる可能性があります。リソースやツールを導入している企業であっても、セキュリティの脆弱性とリスクを効果的に最小限に抑えるには、堅牢なセキュリティプログラム(計画、ポリシー、責任、戦略)が依然として必要です。
コーディングエラー。ソフトウェア開発ライフサイクル(SDLC)では、意図しないミスがしばしば発生します。開発者がミスをしたり、気付かないうちに悪用されやすい形でソフトウェアを構築したりすることがあります。十分なテストを行わずにサードパーティ製コードやオープンソースコードを使用すると、アプリケーションに脆弱性が持ち込まれる可能性もあります。ソフトウェア開発ライフサイクル全体を通じてAppSec のツールやプラクティスを導入しない組織では、安全でないソフトウェアを見逃してしまうリスクがあります。コードの記述中にスキャンする AppSec ツールと、文化としてセキュリティを重視する考え方は、このリスクを最小限に抑えるのに役立ちます。
アプリケーションの脆弱性の例トップ10
アプリケーションの脆弱性にはさまざまな種類があります。セキュリティチームが、十分に対処されていない場合に最も広く見られ、最も懸念されるものを優先できるようにするため、OWASP、別名ソフトウェアセキュリティの向上を目標とする非営利団体である OWASP が設立されました。OWASP は、組織が検討すべき上位10件の脆弱性とその軽減方法を説明するために、OWASP トップ10 と呼ばれるリストを作成しました。
OWASP トップ10リストに含まれるものは次のとおりです:
アクセス制御の不備:アクセスコントロールは、ユーザーが本来許可されている範囲を越えて操作できないよう、ポリシーを強制する仕組みです。不備があると、通常、権限のない情報の開示、改ざん、またはすべてのデータの破壊、あるいはユーザーの権限を超えた業務機能の実行につながります。
暗号化の失敗: データを保護することを目的とした暗号化プロセスがまったく使用されていない、正しく実装されていない、または脆弱なアルゴリズムや設定に依存している場合、機密情報の露出や侵害につながります。
インジェクション:悪意のあるデータがアプリケーションに挿入され、その動作を変更したり、不正アクセスを取得したりすることです。
安全でない設計:設計およびアーキテクチャ上の欠陥に関連するリスク。解決するには、脅威モデリング、セキュアな設計パターン、およびリファレンスアーキテクチャを使用する必要があります。
セキュリティの設定ミス:システムまたはアプリケーションにおける不適切または最適でない設定であり、脆弱性につながる可能性があるものです。
脆弱で古いコンポーネント: システム内の既存の古いコンポーネントにおける脆弱性。使用しているすべてのコンポーネントのバージョン(クライアント側とサーバー側の両方)がわからない場合(これには、直接使用するコンポーネントだけでなく、ネストされた依存関係も含まれます)、リスクにさらされることになります。ソフトウェアに脆弱性がある、サポートされていない、または古くなっている場合は、それを特定して修正する必要があります。
識別および認証の失敗:アプリケーションのセキュリティにおける脆弱性であり、ユーザーを識別して検証する方法に関連しています。これらの失敗は、不正アクセス、データ侵害などにつながる可能性があります。
ソフトウェアとデータの整合性の失敗:これらの失敗は、組織がデータの整合性を検証せずに、ソフトウェアの更新、重要なデータ、CI/CD パイプラインに関連する前提を置く場合に発生します。
セキュリティのログ記録とモニタリングの不備:システムがセキュリティ関連のイベントを適切にログ記録および監視できず、脅威の特定と対応に十分なデータを提供できない場合。
サーバーサイドリクエストフォージェリ(SSRF): SSRF の欠陥は、Web アプリケーションがユーザーから提供された URL を検証せずにリモートリソースを取得するたびに発生します。ファイアウォール、VPN、またはその他の種類のネットワークアクセス制御リスト(ACL)によって保護されている場合でも、攻撃者はアプリケーションが細工されたリクエストを予期しない宛先に送信するよう強制できます。
アプリケーションの脆弱性による影響とは?
悪意のある攻撃者がアプリケーションの脆弱性の悪用に成功すると、その影響は甚大になる可能性があります;金銭的損失から評判の低下、法的影響に至るまで、堅牢なセキュリティ・プログラムを導入することが重要です。
アプリケーションの脆弱性にパッチを適用しないことによる重大な結果には、次のようなものがあります:
サービス拒否攻撃: 悪意のある攻撃者によって、アプリケーションの機能が実質的に「停止」されたり妨害されたりして、ユーザーがサービス拒否攻撃の状態に陥る可能性があります(アプリケーションがユーザーに対して利用できなくなります)。
データセキュリティ侵害:アプリケーションの脆弱性が悪用されると、悪意のある攻撃者が機密情報にアクセスし、それを盗んだり侵害したりするデータセキュリティ侵害が発生する可能性があります。
システム障害:攻撃者は多くの場合、システムをクラッシュさせて動作不能にし、その結果、ビジネス・オペレーションに影響を及ぼす可能性があります。
マルウェア: 攻撃者がシステムまたはアプリケーションにアクセスすると、システムに悪意のあるソフトウェアを注入する可能性があります。これにより、アプリケーションとビジネス全体に一連の悪影響が及ぶ可能性があります。
アプリケーションの脆弱性を防ぐためのベストプラクティスは何ですか?
組織内のアプリケーションの脆弱性を防止し修復するための即効性のある解決策はありません。最適なアプローチは、次を実装することです;
さまざまな種類の脆弱性に対処するための AppSec テストおよびツールの完全なスイートと、多層的なセキュリティへのアプローチです。Basic セキュリティ ツールの検討事項には、以下を含める必要があります。
SAST(静的アプリケーション・セキュリティ・テスト): 開発中にアプリケーションのソースコードを分析し、脆弱性とコンプライアンスの問題を特定します。
DAST(動的アプリケーションセキュリティテスト):実行中のアプリケーションに対する攻撃をシミュレートして、脆弱性を特定します。ランタイムの問題(システムの実行中に発生する問題)を特定します。
IAST(Interactive Application Security Testing): SAST と DAST の手法を組み合わせて、アプリケーションのセキュリティをリアルタイムで分析します。
RASP(ランタイム アプリケーション Self-Protection): ランタイム時にアプリケーションをモニタリングし、攻撃から保護します。
SCA(ソフトウェア構成分析): アプリケーションの依存関係をスキャンし、サードパーティ・ライブラリの脆弱性を検出します。これにより、アプリケーションにベンダーまたはオープンソース・リポジトリ由来の安全でないコードが含まれているかどうか、およびライセンス上の問題があるかどうかを把握できます。
CNAPP(クラウドネイティブ・アプリケーション保護プラットフォーム): クラウド環境で実行されるアプリケーションにセキュリティを提供します。
Web Application Security Testing(WAST):特に Web アプリケーションのセキュリティに重点を置いています。
モバイル・アプリケーション・セキュリティ・テスト(MAST): モバイルアプリケーションのセキュリティに重点を置いています。
データベースセキュリティスキャン:データベースシステムの脆弱性と設定ミスを特定します。
Web アプリケーション・ファイアウォール(WAF): 悪意のあるトラフィックから Web アプリケーションを保護します。
Cloud Security Posture Management(CSPM): 組織がクラウド・セキュリティ体制を評価し、改善するのに役立ちます。
セキュリティ・アズ・カルチャーの考え方:全員がセキュリティに責任を持つべきです。安全でないコードをリリースしないようにする開発者から、必要なあらゆるセキュリティ対策を講じる Dev チームやセキュリティチームまで。
DevSecOps 戦略を採用する:つまり、DevSecOps では、開発ライフサイクル全体を通じてセキュリティテストとセキュリティ活動を移行し、早い段階から頻繁にテストを行うこと、すなわちソフトウェア開発の最初から最後までセキュリティを考慮事項とする「セキュリティのシフトレフト」を意味します。ツールも自動化され、摩擦なく既存のワークフローに適合し、多くの手動調整や管理を必要としないようにする必要があります。
継続的な反復と改善:組織は、改善すべき領域を特定するために、脆弱性評価またはセキュリティ・プログラム全体の評価を実施するよう取り組む必要があります。
Fastly のソリューションが役立つ理由
OWASP トップ10の脅威から Web アプリケーションを安全に保つための万能な解決策は1つではありません。コード、インフラストラクチャの設定、および使用するサードパーティコンポーネントにおいて、セキュリティが考慮されていることを確認する必要があります。
とはいえ、Web アプリケーションファイアウォールを使用すると、Web アプリのセキュリティ保護に伴う手間を大幅に軽減できます。OWASPによるWAFの定義
XSS や SQL インジェクションのような攻撃を軽減する一般的なユースケースを示しています。
では、このような場合に WAF は具体的にどのように役立つのでしょうか?適切に設定された WAF は、悪意がある可能性のあるリクエストを検出してブロックできます。ただし、デフォルトの検出と、次のようなソリューションにおけるカスタマイズ可能な機能を組み合わせて使用することで、
Fastly の Next-Gen WAF と、当社の Edge Cloud Platform の機能を活用することで、OWASP トップ10に対する強力なカバレッジを実現できます。
OWASPの脅威をFastlyで解決する方法について、より詳細なガイダンスと実例は、ホワイトペーパーをご覧ください。




