コンポーネントを適切に設定する
学習の目的
この単元を完了すると、次のことができるようになります。
- コンポーネントを適切に設定することの重要性を説明する。
- セキュリティの設定ミスによる潜在的な影響を最小化する上でのアプリケーションセキュリティエンジニアの役割について説明する。
コンポーネントを適切に設定する
検証、サニタイズ、コードのテストとレビューに加えて、アプリケーションセキュリティエンジニアは、セキュリティの設定ミスから保護することによって SDLC のセキュリティを確保します。セキュリティの設定ミスには、オペレーティングシステム、コーディングフレームワーク、ライブラリ、アプリケーションの安全な設定、パッチ適用、アップグレードの失敗などが挙げられます。
たとえば、安全でないデフォルト設定でオペレーティングシステムをリリースしたり、クラウドストレージバケットを一般に公開したままにしたり、エラーメッセージを適切に設定しなかったりすると、機密性の高いシステム情報が攻撃者にさらされることになります。
そうなると、攻撃者がシステムのデータや機能に不正にアクセスしてしまいます。攻撃者は広範なセキュリティ問題であるセキュリティの設定ミスを容易に悪用することができます。攻撃者は多くの場合、パッチが適用されていないセキュリティ上の欠陥やデフォルトのアカウントのログイン情報を把握しており、それを使用して企業やその顧客のデータに不正にアクセスできます。
セキュリティの設定ミスから保護する
新しいスマートフォンを購入したばかりの顧客を想像してみてください。初めてスマートフォンの電源を入れると、顧客はすべてが適切に設定されていることを確認するために設定をいろいろと操作します。スマートフォンにログオンする際に使用する個人用の PIN やフィンガープリントを設定するかもしれません。また、最新のアプリケーションを使用するために新しいソフトウェアをダウンロードして更新したり、あまり使用しないデフォルトのアプリケーションを削除したり、スマートフォンの言語、時間設定、背景を変更したりすることもあります。
顧客が自分の好みに合わせて携帯電話をあれこれ設定するのと同じように、アプリケーションセキュリティエンジニアは開発チームと連携して、アプリケーションコンポーネントの設定を微調整し、適切かつ安全に機能するようにします。
エンジニアはデフォルトのアカウントとパスワードを消去します。また、開発チームや運用チームと連携し、アプリケーションで使用されるソフトウェアが最新で、適切にパッチが適用されていることを確認します。さらに、機密データが誤って一般に表示されないように、クラウドサービスの権限が適切に設定されているかどうかを確認します。ポート、サービス、ページなどの不要な機能についても、無効またはアンインストールします。これは、攻撃者がアプリケーションへのアクセス権を取得するために、こういった開放部を使用する可能性があるためです。
このようにすることで、アプリケーションセキュリティエンジニアは次を確実に実現します。
- 組織が協調的で反復可能なアプリケーションセキュリティ設定プロセスを使用する。
- 開発チームが同一の開発環境、品質保証 (QA) 環境、本番環境を使用し、開発者がアプリケーションを開発してテストする環境とアプリケーションをリリースする環境間の整合性を維持する。
- 人為的なミスを減らし、開発プロセスのスピードと効率を向上させるために、設定の検証とテストを自動化する。
設定管理のテストに関する詳細は、追加情報が豊富に掲載されている OWASP のリソースを参照してください。
まとめ
設定の標準化とセキュリティ確保によってアプリケーションスタックの強化をサポートするための手法を説明しました。次は、アプリケーションセキュリティエンジニアにとってもう 1 つの重要な考慮事項である、アプリケーションの認証とアクセスの保護について、詳しく学習しましょう。