70 likes | 246 Views
Struts1.x の脆弱性( CVE-2014-0114 ) に対する SDE の対処: wrap タイプ (パッチのご提供). 日本電気株式会社 2014 年 6 月 17 日. 対処 内容の 概要. SDE が独自に Struts を拡張している「 BeanUtils を操作しているクラス」にチェック処理を追加し、問題のあるパラメータを排除します。 ※ 監視 のために排除時 にエラーログ を 出力 します 。. ブラウザ. StrutsV1.x. リクエスト. リクエスト. abc =123 class.ClassLoader.xxx = yyy.
E N D
Struts1.xの脆弱性(CVE-2014-0114)に対するSDEの対処:wrapタイプ(パッチのご提供)Struts1.xの脆弱性(CVE-2014-0114)に対するSDEの対処:wrapタイプ(パッチのご提供) 日本電気株式会社 2014年6月17日
対処内容の概要 • SDEが独自にStrutsを拡張している「BeanUtilsを操作しているクラス」にチェック処理を追加し、問題のあるパラメータを排除します。 ※監視のために排除時にエラーログを出力します。 ブラウザ StrutsV1.x リクエスト リクエスト abc=123class.ClassLoader.xxx=yyy abc=123class.ClassLoader.xxx=yyy BeanUtils呼び出し処理 通常のリクエスト「abc=123」 以外に 「class.ClassLoader.xxx=yyy」 を付加して送信 パラメータ排除 setAbc(“123”) getClass().getClassLoader().setXxx(“yyy”) populate() BeanUtilsBean.populate setAbc(“123”) エラーログを出力 Formクラス リクエストパラメータ名に「class」あるいは「Class」が含まれていた場合はBeanUtils処理対象外とする Public void setAbc(String abc){ this.abc = abc; }
適用要件および注意事項 • 本対処を適用した場合、リクエストパラメータの属性名(一部を含む)に対して下記の正規表現に該当する文字列は使用できなくなります。該当する場合は属性名の見直しをお願いします。 • チェック対象となる文字列例を下記に記載いたします。 • チェック対象外の文字列 • classic • FirstClass • チェック対象の文字列 • .Class.
適用手順:開発環境への適用 ① 下記の情報を添えてSDE問い合わせ窓口(info@sdent.jp.nec.com)へパッチ提供を要求する ・お客様名 ・プロジェクト名 ・ご利用のSDEのバージョン(リビジョンまで Verx.x.x) ・適用済みのSDE製品パッチのパッチID ・標準のSDEに対するテーラリング状況(RPQの適用など) • 提供されたパッチインストーラを起動し、インストールする
適用手順:実行環境への適用 • 本手順は、すでに実行環境にて動作しているアプリケーションに対して本パッチを直接適用する場合になります。パッチについては、P4の①の手順と同様にSDE問い合わせ窓口より入手ください。 • WARファイル中にあるSDE提供Jarファイルを置換し、WARファイルを再度APサーバーにデプロイしてください。 APサーバ WARファイル ├ xxx.jsp └ WEB-INF ├ web.xml ├ *.xml ├ class │ └ *.class ├ lib │ ├ orteus-struts.jar │ └ *.jar └ tags └ *.tld WARファイルをデプロイ WARファイル中のJarファイルを置換
テスト実施手順 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.」