「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>テスト]] * 目次 [#n63d920f] #contents *概要 [#nf5d22d3] 脆弱性対策のポイント *主なモノ [#jb87aa89] **[[SQLインジェクション対策の実装方針]] [#q3067e97] **[[XSS対策の実装方針]] [#x3c5804e] **[[CSRF(XSRF)対策の実装方針]] [#z96a6a63] *その他、一般的な脆弱性 [#xce1a751] **ネットワークの暗号化(HTTPSやSSL-VPN) [#v5a384d0] -基本的に、電文の内容をガードする。 -Sessionにデータを格納すれば、電文には乗らないが、~ 下記[[セッション ハイジャック>#xc05b080]]で、漏洩する危険はある。 **インジェクションに注意 [#z161e17b] 他システム、エンドユーザからの入力データは信用しない。 -エンドユーザ入力は、必ずチェックしてから利用する。 -これは、各種を防ぐ、基本的な防護策である。 -ASP.NETでは、以下の方法でインジェクション系の攻撃をチェックできる。 ***クライアント スクリプト インジェクション [#e1c04b7d] -別名、クロスサイト スクリプティング(XSS) -ASP.NETで検証される(デフォルトの設定で検証は有効)。 -詳細:[[XSS対策の実装方針]] ***SQLインジェクション [#nc754092] -パラメタライズド・クエリで検証される。 -詳細:[[SQLインジェクション対策の実装方針]] ***OSコマンド インジェクション [#q8105ec3] チェックが必要な部位は、アプリケーションでチェックする必要がある。 ***バッファ オーバー フロー [#cb565149] .NETでは発生しないが、アンマネージド・モジュールに入力データを渡す場合は注意。 **セッション ハイジャックの防止 [#xc05b080] 特にSession Cookieを盗み、ユーザのSession情報を盗み出す方法。 ***ネットワークの暗号化(HTTPSやSSL-VPN) [#q0b38462] -ネットワークのパケット キャプチャを行い、Session Cookieを盗む事ができる。 -このため、ネットワークの暗号化(HTTPSやSSL-VPN)が必要になる。 ***XSS対策を行う [#h1f50f9d] -ネットワークの暗号化(HTTPSやSSL-VPN)をしていても、~ クロスサイト スクリプティング(XSS)で、Session Cookie、認証チケットなどが漏洩する。 -詳細:[[XSS対策の実装方針]] **データの格納場所、暗号化・改竄防止 [#tf6e738e] クライアントに見せられないデータ、改竄の危険性があるデータは、 ***データの格納場所 [#kcf58d7d] サーバ側のSessionなどに持たせクライアントから見えないようにする。 ***暗号化・改竄防止ロジック [#t8378800] または、ネットワークの暗号化(HTTPSやSSL-VPN)とは別に、ロジックにより個別に暗号化・改竄防止する。 この際、 -暗号化や、改竄防止のロジックには、コードやアプリケーション設計の秘匿性を要求しない。 -暗号化や、改竄防止のロジックが露呈してもクラッキングされないようにするために、~ [[一般に流布し安全性が実践的に保証されている暗号化ロジックを利用する。>.NETの署名・暗号化アルゴリズム]] **設計面 [#r6a67eea] ***多重防御に基づいた設計 [#u6e09d90] 全体のセキュリティ バランスをとった、多重防御に基づいた設計 -部分的にセキュリティを高めても、費用対効果が高いとはいえない。 -複数の手段を組み合わせて実施したほうが、セキュリティ強度は高めやすい。 -従って、要求されるセキュリティ強度をバランスよく実現する。 ***最小特権の原則に従って設計 [#v6918259] -予め、定められた以上のことができないようにアプリケーションを設計する。 -ロックダウンの原則を受け入れ、必要なサーバ機能だけを利用可能にする。 -ASP.NETの実行ユーザ アカウント、DBへのログイン アカウントも、適切な権限になるようにする。 **運用面 [#fb7dcd92] ***セキュリティ アップデートの適用 [#l9a3c505] -セキュリティ アップデートは必ず適用すること。 -テスト環境でテストした後、タイムリーにアップデートを実施する。 --セキュリティ アップデートをタイムリーに適用することが重要。 --このため、製品修正情報の収集 ~ テスト環境などの整備が必要となる。 *プロダクト [#l903888c] ** [#v309895b] **参考 [#c651ea54] -脆弱性検査ツール - Wikipedia~ https://ja.wikipedia.org/wiki/脆弱性検査ツール -脆弱性診断・脆弱性検査ツール5選~ ソフトウェアテスト・第三者検証ならウェブレッジ~ https://webrage.jp/techblog/security_tool/ ***Qiita [#scd3776a] -OSS or Freeのセキュリティ診断ツール~ https://qiita.com/quickguard/items/f0721ecb026799506dbd -脆弱性検査ツールまとめ~ https://qiita.com/ihorie/items/4f200b786ca48909267d *その他 [#x0143427] **[[Azure上でのテスト]] [#q5a1fb1e] ---- Tags: [[:テスト]], [[:ツール類]]