Struts1.xの脆弱性(CVE-2014-0114) に対するSDEの対処:wrapタイプ (パッチのご提供) 日本電気株式会社 2014年6月17日 対処内容の概要 ▐ SDEが独自にStrutsを拡張している「BeanUtilsを操作しているクラ ス」にチェック処理を追加し、問題のあるパラメータを排除します。 ※監視のために排除時にエラーログを出力します。 ブラウザ StrutsV1.x リクエスト リクエスト abc=123 class.ClassLoader.xxx=yyy 通常のリクエスト「abc=123」 以外に 「class.ClassLoader.xxx=yyy」 を付加して送信 abc=123 class.ClassLoader.xxx=yyy BeanUtils呼び出し処理 パラメータ排除 setAbc(“123”) getClass().getClassLoader().setXxx(“yyy”) populate() エラーログを出力 リクエストパラメータ名に「class」あるいは 「Class」が含まれていた場合はBeanUtils 処理対象外とする Page 2 © NEC Corporation 2014 BeanUtilsBean.populate Formクラス Public void setAbc(String abc){ this.abc = abc; } setAbc(“123”) 適用要件および注意事項 ▐ 本対処を適用した場合、リクエストパラメータの属性名(一部を含む)に対 して下記の正規表現に該当する文字列は使用できなくなります。該当する 場合は属性名の見直しをお願いします。 Grepツールの仕様 チェック用正規表現 \W(英数字および”_”以外)をサポート (^|\W)[cC]lass\W \Wを未サポート (.*\.|^|.*|\[('|"))(c|C)lass(\.|('|")]|\[).* ▐ チェック対象となる文字列例を下記に記載いたします。 チェック対象外の文字列 • classic • FirstClass チェック対象の文字列 • .Class. Page 3 © NEC Corporation 2014 適用手順:開発環境への適用 ① 下記の情報を添えてSDE問い合わせ窓口([email protected])へ パッチ提供を要求する ・お客様名 ・プロジェクト名 ・ご利用のSDEのバージョン(リビジョンまで Ver x.x.x) ・適用済みのSDE製品パッチのパッチID ・標準のSDEに対するテーラリング状況(RPQの適用など) ② 提供されたパッチインストーラを起動し、インストールする Page 4 © NEC Corporation 2014 適用手順:実行環境への適用 ▐ 本手順は、すでに実行環境にて動作しているアプリケーションに対して本パッチを直接 適用する場合になります。パッチについては、P4の①の手順と同様にSDE問い合わせ 窓口より入手ください。 ▐ WARファイル中にあるSDE提供Jarファイルを置換し、WARファイルを再度APサーバーに デプロイしてください。 WARファイル ├ xxx.jsp WARファイルをデプロイ └ WEB-INF ├ web.xml ├ *.xml ├ class │ └ *.class WARファイル中のJarファイルを置換 ├ lib │ ├ orteus-struts.jar │ └ *.jar └ tags └ *.tld Page 5 © NEC Corporation 2014 APサーバ テスト実施手順 GETメソッドの場合 ▐ 正常動作する画面のURLに「?class.ClassLoader.xxx=yyy」を付加して実行 例:正常に動作するURL「http://localhost/Sample/TestAction.do」の場合 「http://localhost/Sample/TestAction.do?class.ClassLoader.xxx=yyy」をブラウ ザで表示 ▐ 上記URLを実行した場合に正常に画面が表示され、ログファイルに以下の文字 列が出力されるかを確認 「Invalid request parameter detected, key:class.ClassLoader.xxx, value:yyy .」 POSTメソッドの場合 ▐ 正常動作する画面に以下のhidden項目を追加 <input type=“hidden” name=“class.ClassLoader.xxx” value=“yyy”> ▐ 上記画面を実行した場合に正常に画面が表示され、ログファイルに以下の文字 列が出力されるかを確認 「Invalid request parameter detected, key:class.ClassLoader.xxx, value:yyy .」 Page 6 © NEC Corporation 2014
© Copyright 2024 ExpyDoc