「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>脆弱性対策のポイント]] * 目次 [#n63d920f] #contents *概要 [#nf5d22d3] Webアプリケーション脆弱性対策のポイント *主なモノ [#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] エンプラ向けの高価な有償ツールは、~ 各社使用するものが決まっていることが多いので、 ここでは廉価なOSSツールを中心に調査を行う。 **OWASP ZAP(Zed Attack Proxy) [#tabed45a] ***概要 [#f585f7da] -[[Paros>#k74a2e63]]をフォークした開発した動的(能動的)な、Webアプリケーション脆弱性診断ツール。 -OWASPコミュニティが運営する。 --OWASPコミュニティとは、下記に関する情報共有と普及啓発を目的とした~ プロフェッショナルの集まる、オープンソース・ソフトウェアコミュニティ ---ソフトウェアのセキュリティ環境の現状 ---セキュアなソフトウェア開発を促進する技術・プロセス --ZAP Projectは、OWASPコミュニティのフラッグシップ・プロジェクトでもある。 -2011年に[[Paros>#k74a2e63]]からのフォークがされており、~ リポジトリを見る限り、現在もアクティブな開発が行われている。 ***参考 [#v6fcc767] -OWASP ZAP~ https://github.com/zaproxy -OWASP ZAPで開発中にセキュリティ診断! (1/4):CodeZine(コードジン)~ https://codezine.jp/article/detail/9504 -OWASP ZAPではじめる2016年のウェブアプリケーションセキュリティ:新春特別企画|gihyo.jp … 技術評論社~ http://gihyo.jp/dev/column/newyear/2016/owasp -OWASP Top 10 - 2017 の紹介 | オブジェクトの広場~ http://www.ogis-ri.co.jp/otc/hiroba/technical/intro-owasp-top10-2017/ -脆弱性診断ツール OWASP ZAP vs 脆弱性だらけのWebアプリケーションEasyBuggy - Qiita~ https://qiita.com/tamura__246/items/9c70ddc1c03cf623cf8d -OWASP ZAPでWEBサイトの脆弱性を簡易チェックする方法まとめ | Lancork~ https://www.lancork.net/2013/08/find-vulnerability-owasp-zap/ **Paros [#k74a2e63] ***概要 [#t04b18a6] -???が開発した動的(能動的)な、Webアプリケーション脆弱性診断ツール。 -20XX年に初回リリースがされており、 --リポジトリを見る限り、開発はあまりアクティブではない。 --現在は[[OWASP ZAP>#tabed45a]]がフォークして開発を継続している。 ***参考 [#f40a964a] -Paros download | SourceForge.net~ https://sourceforge.net/projects/paros/ -Paros - 情報セキュリティWiki - セキュアなWebアプリケーション構築のために~ http://security.c-inf.com/index.php?Paros -Web脆弱性診断ツール Parosの使い方 - 備忘録~ http://d.hatena.ne.jp/isasaki/20111211 **skipfish [#v309895b] ***概要 [#mc978f81] -Googleが開発した動的(能動的)な、Webアプリケーション脆弱性診断ツール。 -2011年に初回リリースがされており、リポジトリを見る限り、開発は停止している。 ***参考 [#b33acaa3] -spinkham/skipfish:~ Web application security scanner created by lcamtuf for google - Unofficial Mirror~ https://github.com/spinkham/skipfish -Google Code Archive~ Long-term storage for Google Code Project Hosting.~ https://code.google.com/archive/p/skipfish/ -セキュリティチェックツールskipfish入門|apps-gcp.com~ G Suite(旧:Google Apps) やGoogle Cloud Platform サービスについて紹介します~ http://www.apps-gcp.com/skipfish-introduction/ -「skipfish」でWebアプリの脆弱性をチェックする | さくらのナレッジ~ https://knowledge.sakura.ad.jp/389/ -Skipfishの使い方 – Webアプリのセキュリティ脆弱性スキャナ~ http://www.yukun.info/blog/2012/12/skipfish-webapp-security-scanner.html -脆弱性診断ツールskipfishを使ってみて困ったこと | Skyarch Broadcasting~ https://www.skyarch.net/blog/?p=3976 **ratproxy [#f6deca09] ***概要 [#l90cc47b] -Googleが開発した静的(受動的)な、Webアプリケーション脆弱性診断ツール。 -2008年に初回リリースがされており、リポジトリを見る限り、開発は停止している。 ***参考 [#ra4784f7] -Google Code Archive~ Long-term storage for Google Code Project Hosting.~ https://code.google.com/archive/p/ratproxy/ -グーグル、ウェブ脆弱性検知ツール「RatProxy」をリリース - CNET Japan~ https://japan.cnet.com/article/20376601/ -Googleが作ったWebセキュリティ・ツール「ratproxy」~ 検出できるぜい弱性は42種類,SQLインジェクションは苦手:ITpro~ http://itpro.nikkeibp.co.jp/article/COLUMN/20080830/313782/ -ratproxyを使ってみたのでメモするでござる - のえら~ http://noterr0001.hateblo.jp/entry/20140417/1397724596 *参考 [#c651ea54] ---- Tags: [[:テスト]], [[:ツール類]]