NSAで情報保証理事会のTechnical DirectorであるNeal Ziring氏は、開発者の役割は、変わってきており、アプリケーション防御の第一線になってきた、と言った。氏は、先週の AppSec DC 2010 カンファレンス で基調講演を行った。彼は、また最近のオペレーティングシステムやプラットフォームのセキュリティ実装は、アタッカーがスタックからwebアプリケーションを攻撃するのを助けている、と語った。
アプリケーションがアタッカーの主要な目標になってきている。アプリケーションは、実際に、数が多く、多様であり、アタッカーにより広範囲の攻撃面を提供しているからである。また、アプリケーションは、よりネットワークやクラウド コンピュータ環境に移行してきているので、アタッカーが情報を入手しやすくなってきている。
アプリケーションの保証面は、ソフトウェア開発ライフサイクル(SDLC) プロセスに組込まれるべきで、その中には、後のほうのフェーズである製品アップグレードとか、ソフトウェア製品の安全な破棄計画への収束措置も含んでいる。彼が議論したのは、アプリケーション保証の立場から、開発者は、プロセスの各フェーズで何をすべきか、ということである。
- 要件: アプリケーションに適用される主要な法律、規制、プライバシーに関する制約を理解することは、重要である。
- 設計: アプリケーションは、セキュリティ メトリクスの可視化と管理ができるように設計されるべきである。
- コーディング: 暗号法のようなセキュリティ面の実装を自分で書いてはいけない。その代わりの、入手できるOS,プラットフォーム、そしてライブラリのサービスを使うこと。
- テスト:開発者は、ユニットテストのフェーズからセキュリティ テストをやるべきである。また、セキュリティ機能に対するストレステストは、アプリケーションが負荷のかかっている時に稼動しても、セキュアであることを保証する。
- 配置: アプリケーションの配置手段には、セキュリティ実装を含まなければならない。
- 運用:可視性のサポートとアプリケーションを継続的に監視することを容易にするために、インテリジェントに監査する。
氏は、アプリケーション保証の4つの側面について話した。回復性、可視性、統制、そして、管理である。
回復性: これは、アプリケーションの設計に焦点を当てていて、例えば、攻撃を受けている時は、優雅に振る舞い、そして、いかなるセキュリティ問題を修正する場合でも余りに長い間、アプリケーションが止まってはいけない。
可視性: アプリケーションを含んでITスタックのすべての部分を可視化できる必要がある。可視性は、アプリケーションが攻撃を受けいている時には、非常に重要である。可視性は、オペレーティングシステムのセキュリティ ポスチャを含んだ全体のセキュリティ ポスチャをカバーすべきである。 Security Content Automation Protocol (SCAP) は、この側面を管理するのに良いツールである。また可視性が重要な理由は、アプリケーション レベルのコードだけがどれだけ 入力検証エラー や SQLインジェクションがあったかを知っているからである。このことは、セキュリティの脆弱性を修正するのに非常に重要である。
統制: 統制は、いかなる組織においても重大であり、更なるアクセス制御と監視を必要とする。開発者は、アプリケーションのコードの中に統制上のルールをハードコードすべきではない。そうではなく、セキュリティ統制ポリシーは、ルールファイルに保存されるか、集中型の「ポリシー サービス」に任せるべきである
管理: アプリケーションは、重要なデータにアクセスして、直接やりとりするので、保証領域におけるアプリケーション管理は、非常に重要である。
氏は、また新たなアプリケーション セキュリティの挑戦領域として、モバイル アプリケーション(デバイス上ばかりでなく、モバイル デバイスにアプリケーションを供給するバックエンドのインフラ上のものも)、クラウド コンピューティング、Web 2.0、そして組込みのwebサービスと特に政府部門におけるTrusted Computing があると述べた。