web-dev-qa-db-ja.com

多層防御はWebアプリに何を伴いますか?

アプリレベルのセキュリティからサーバーの強化、人材育成までのさまざまなセキュリティレイヤーを意味していると思いますが、これらの各レイヤーとは何か、防御の各レベルに適したリソースは何ですか?

Webアプリにとって重要な順に、各レイヤーにラベルを付け、簡単に定義してから、1つ以上のリソースをリストして詳細を確認してください。

12
VirtuosiMedia

多層防御のパラダイムで最も重要な資産は人間の知性です。継続的で永続的な防御を担当するセキュリティに精通した人々を採用します。

ツールの変化、Webアプリフレームワークの変化、新しいエクスプロイトテクニックの発見–強力な人間チームを構築して防御するための前兆となるもの。

戦術に移りますが、まだ高いレベルです:

安全なコーディング(アプリ層)->チームが攻撃者に強いアプリケーションを開発できるようにする-> [〜#〜] owasp [〜#〜 ]

安全なインフラストラクチャ->チームが攻撃者に強いサーバーとサポート機器を配備できるようにする

http://cisecurity.org/ Center for Internet Security(CIS)は非営利企業であり、そのベンチマークおよびメトリック部門は、不十分な技術から生じるビジネスおよびeコマースの混乱のリスクを軽減するのに役立ちます。セキュリティ管理。この部門は、セキュリティの構成に関するコンセンサスのベストプラクティス標準と、情報セキュリティの状態を測定し、セキュリティ投資に関する合理的な意思決定を行うためのリソースを企業に提供します。

http://iase.disa.mil/stigs/checklist/ 国防情報システム局(DISA)

http://web.nvd.nist.gov/view/ncp/repository
http://csrc.nist.gov/fdcc/faq-common_security_configurations.html
NISTによって定義された国家チェックリストプログラム(NCP)SP 800-70 Rev. 1は、公的に利用可能なセキュリティチェックリスト(またはベンチマーク)の米国政府リポジトリであり、オペレーティングシステムとアプリケーションのセキュリティ構成の設定に関する詳細な低レベルのガイダンス。

対応可能なインシデントの検出と対応->チームが検出、封じ込め、対応、修正できるようにする

インシデント対応チェックリストのコレクション: http://www.knowyourenemy.eu/checklists.php

Richard Bejtlich 最近ブログに追加:

「インシデントレスポンスチームを構築するためのリソース最近、同僚からインシデントレスポンスチームを構築するためのリソースを求められました。いくつかのアイデアを提供すると約束しました[...]

CERT.org CSIRT Development サイトは、おそらく開始するのに最適な場所です。そこから、無料のドキュメント、CIRTの構築に関してSEIが提供するクラスへのリンクなどを見つけることができます。あなたはそのサイトを倒すことができないと思います!

FIRSTサイトのリソースはそれほど役に立たないと思いますが、メンバーシップに向けて取り組むプロセスは、新しいCIRTにとって素晴らしい練習になります。

TaoSecurityの私の書籍のページには、CIRTが役立つと思われる書籍がいくつかリストされています。」

簡潔にするために、おそらく上記で十分ですか?

6
Tate Hansen

「多層防御」が何を意味しないのかを理解することは間違いなくより重要だと思います。これは、「ファイアウォールや暗号化アルゴリズムなどの印象的なサウンドコントロールの長いリスト」を意味するものではありません。

多層防御はテクノロジーに中立な用語であり、システムが危険にさらされる前に、2つ以上の独立コントロールが失敗する必要があることを意味します。例えば。ベルトとブレースと紐でズボンを持ち上げる:-)

ここでの重要なポイントは「独立」です。すべてのコントロールに共通の失敗モードがある場合、または失う前にそのうちの1つだけが失敗する必要がある場合、「詳細な防御」はありません。たとえば、各階層に以前の階層からHTTP経由でアクセスでき、それらすべてに同じ脆弱性がある場合、攻撃者が同じ脆弱性を使用してすべてを所有できるため、ファイアウォール/ DMZ設定は事実上無関係になります。

7
frankodwyer

あなたがウェブアプリについて具体的に、つまりアプリケーションの観点から質問することから始めたので、私は主にそれに焦点を当てます。レイヤーを外側から内側の順に並べると、次のようになります。

  • 安全なプロトコル(SSL/TLS)
  • ファイアウォール
  • DMZ
  • WAF
  • IDS/IPS
  • 強化されたOS
  • 強化されたWebサーバー
  • フレームワークが強化されたマネージコード
  • 認証
  • ファイルアクセス制御(NTFS ACLなど)
  • URLアクセスコントロール(ASP.NETのWeb構成など)
  • アプリケーションアクセス制御
  • 入力検証
  • ストアドプロシージャ
  • dbパラメータバインディング(ADOコマンド/パラメータオブジェクト)またはORM
  • 強化されたDB
  • dBオブジェクトに対する厳密な権限
  • 出力エンコーディング
  • 等.

これらのほとんどは本質的に適用可能であり、ほとんどのネットワーク/ OSアイテムは本質的に建築的であることに注意してください...

4
AviD

あなたはかなり長い答えを求めているので、少し突き刺します。

ユーザーの観点からWebアプリにアプローチする場合、次のようなものがあります。

  • ネットワーク層(HTTPパケット/物理ワイヤー/ルーター/ISP)
    • ウィキペディアを見る
  • サーバーソフトウェア(別名IIS/httpd/etc)
    • サーバースタック(LAMP/.NETなど)によって異なります。
  • アプリケーションコード
    • アプリケーションの構成に依存
  • 私がこれからは触れません。
2
Zian Choy