マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

Webアプリケーション脆弱性対策のポイント

主なモノ

SQLインジェクション対策の実装方針

XSS対策の実装方針

CSRF(XSRF)対策の実装方針

その他、一般的な脆弱性

ネットワークの暗号化(HTTPSやSSL-VPN)

  • 基本的に、電文の内容をガードする。
  • Sessionにデータを格納すれば、電文には乗らないが、
    下記セッション ハイジャックで、漏洩する危険はある。

インジェクションに注意

他システム、エンドユーザからの入力データは信用しない。

  • エンドユーザ入力は、必ずチェックしてから利用する。
  • これは、各種を防ぐ、基本的な防護策である。
  • ASP.NETでは、以下の方法でインジェクション系の攻撃をチェックできる。

クライアント スクリプト インジェクション

  • 別名、クロスサイト スクリプティング(XSS)
  • ASP.NETで検証される(デフォルトの設定で検証は有効)。
  • 詳細:XSS対策の実装方針

SQLインジェクション

OSコマンド インジェクション

チェックが必要な部位は、アプリケーションでチェックする必要がある。

バッファ オーバー フロー

.NETでは発生しないが、アンマネージド・モジュールに入力データを渡す場合は注意。

セッション ハイジャックの防止

特にSession Cookieを盗み、ユーザのSession情報を盗み出す方法。

ネットワークの暗号化(HTTPSやSSL-VPN)

  • ネットワークのパケット キャプチャを行い、Session Cookieを盗む事ができる。
  • このため、ネットワークの暗号化(HTTPSやSSL-VPN)が必要になる。

XSS対策を行う

  • ネットワークの暗号化(HTTPSやSSL-VPN)をしていても、
    クロスサイト スクリプティング(XSS)で、Session Cookie、認証チケットなどが漏洩する。
  • 詳細:XSS対策の実装方針

データの格納場所、暗号化・改ざん防止

クライアントに見せられないデータ、改ざんの危険性があるデータは、

データの格納場所

サーバ側のSessionなどに持たせクライアントから見えないようにする。

暗号化・改ざん防止ロジック

または、ネットワークの暗号化(HTTPSやSSL-VPN)とは別に、ロジックにより個別に暗号化・改ざん防止する。

この際、

設計面

多重防御に基づいた設計

全体のセキュリティ バランスをとった、多重防御に基づいた設計

  • 部分的にセキュリティを高めても、費用対効果が高いとはいえない。
  • 複数の手段を組み合わせて実施したほうが、セキュリティ強度は高めやすい。
  • 従って、要求されるセキュリティ強度をバランスよく実現する。

最小特権の原則に従って設計

  • 予め、定められた以上のことができないようにアプリケーションを設計する。
  • ロックダウンの原則を受け入れ、必要なサーバ機能だけを利用可能にする。
  • ASP.NETの実行ユーザ アカウント、DBへのログイン アカウントも、適切な権限になるようにする。

運用面

セキュリティ アップデートの適用

  • セキュリティ アップデートは必ず適用すること。
  • テスト環境でテストした後、タイムリーにアップデートを実施する。
    • セキュリティ アップデートをタイムリーに適用することが重要。
    • このため、製品修正情報の収集 ~ テスト環境などの整備が必要となる。

参考

プロダクト


Tags: :テスト, :ツール類


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-11-11 (水) 11:00:22 (71d)