Struts/Struts2/Seasar2からSpringへの移行サービス

レガシーJAVAを最適なコストでリニューアルStruts/Struts2/Seasar2から
Springへの移行サービス

Struts/Struts2/Seasar2を
Springへコンバート

自動変換ツールによる移行コストの削減

スタイルズでは、Struts/Struts2およびSeasar2からSpringMVCの
自動変換ツールをご提供し、移行コストの削減を図っています。

このツールはコードを解析して、Struts/Struts2/Seasar2仕様のタグを、Spring/JSTL(Java Server Pages Standard Tag Library)のタグに自動変換します。このツールをご利用いただくことで機械的な移行作業コストを大幅に削減することが可能です。

また、変換ツール実施後は、変換不可能な部分の手動によるコード修正、書き直し、テストの実施をいたします。

Struts/Struts2/Seasar2からSpringへの
移行事例一覧

Struts/Struts2/Seasar2から
Springへ
移行するサービスの流れ

STEP01弊社ツールを利用した
自動移行

1.ヒアリング( 動作環境、規模、システム内容等に関するもの)
2.機密保持契約(NDA)締結(ソースコードを受領するため)
3.ソースコード(プログラムソース・Warファイル)受領
4.自動コンバートツールの適用とチューニング

STEP02手動による移行

1.自動コンバート対象外ソースコードの解析
2.自動コンバート対象外ソースコードの手作業による修正・画面疎通テスト
※ステップ1・2はソースコードレベルでのサービス提供となるため仕様把握は行わない想定です。

+オプション

仕様を把握したテスト

・単体テスト・結合テスト・システムテスト
※弊社の「テスト支援サービス」を併用し、単体テスト以降のテスト工程を実施致します。

スタイルズの変換ツールを活用した
移行サービス
3つのメリット

01自動化でコスト削減

JSP・アクション・フォームといった比較的共通性のある部分の移行は自社開発の変換ツールにより自動的に行います。

これにより、開発工数を削減し、納期・コストの縮小につなげます。

02要件定義が不要

通常の移行作業では、システムの要件定義から始めるため、時間も工数も多くなりがちですが、現状のシステムをそのまま変換することで、変更の必要がない部分について無駄な要件定義をする必要がなくなります。

03実績あるノウハウを活用

SpringMVCはSpring開発当初からあるコンポーネントで、現在も活発に開発が行われています。さらに移行実績があるスタイルズのノウハウを活用することで、迅速かつ移行後そのまま動くWebアプリケーションに仕上げます。

スタイルズでは、変換ツールの適用だけではなく
多くを占める変換不可能な部分に対して
手動によるコード修正・書き直し・テストも実施しております

スタイルズの変換ツールを活用した移行サービス
無料で概算見積書を作成いたします

3つの自動移行で費用を大幅削減!

3つの自動移行で費用を大幅削減!

・Action/Form/JSP/その他 のファイル数とステップ数
・DB や Web Application Server などの変更を予定しているか?
・現行と移植先のプロダクト及びバージョンは?
・ビジネスロジック部分に Spring 等のフレームワークを利用しているか?
・ビジネスロジック部分に Struts 依存はあるか?
・O/R マッパーに iBatis/Hibernate 等のフレームワークを利用しているか?
・入力チェックに Validation XML を使用しているか?
・Form に Java で独自実装した validate メソッドがあるか?
・JavaScript はどの程度使用しているか?
・html:javascript タグの利用があるか?
・JSP に Struts 依存の Java コードが直接記載されていたりするか?

今までの移植案件と比較して
概算御見積を作成いたします
まずはお気軽にご相談ください

Struts/Struts2/Seasar2から
移行すべきフレームワークは?

一般的に、Struts1からの移行先としては、通常、SpringかJAVA EEが候補とされていますが、スタイルズでは、

開発効率・Spring Bootなどの最新技術への取り組み、Pivotalによるサポートの安定感、利用できる環境の多さなど、さまざまな観点でSpringMVCを推奨しています。

Struts 1からの移行先として、ApacheではStruts 2を勧めていますが、以下の点から他のフレームワークに比べてStruts 2を採用するメリットが少ないと思われます。

  • Struts 1とStruts 2の間にソースコードの互換性はないこと
  • Struts 2にも重大な脆弱性が何度か発見されていること

企業のWebアプリケーション開発における基盤フレームワークの1つとして長い間利用されている「Struts」。今なお、Strutsをベースとしたアプリケーションは稼働し続けていますが、当初のStruts(Struts1)は開発が止まり、2013年4月にはサポートが終了しました。脆弱性への正式対応はなく、セキュリティ面では非常に危険な状態が続いています。

さらに、Struts2は任意のコードを実行できる脆弱性(S2-045、CVE-2017-5638)が見つかり、クレジットカード情報や個人情報の流出など、非常に深刻な被害が発生しています。

そのため、可能な限り迅速に、Struts系フレームワークの根本的な対策を行なうことが急務と言えます。

Seasar2とは

Seasar2はStrutsを利用したWebサイト同様に、2000年代後半から、会員100万人以上のWebサイトや、数十人月のプロジェクトを含む多くの業務システムでの採用実績があるフレームワークで、現在も多くのシステムで利用が続けられています。

しかしながらSeasar2プロジェクトが提供するプロダクトの多くは 2016年9月26日 をもってサポート切れ(End of Life)となっています。

これは、Struts同様に脆弱性への対応があった場合にも、プログラムの更新はされずに、自身で対応をしなくてはいけないということになります。

Strutsの脆弱性の歴史と急務の課題

Struts1の脆弱性

10年以上前、Webシステム開発のデファクト・スタンダードは、Struts1でした。2013年4月にEOL(サポート切れ)を迎えましたが、多くのシステムがそのまま利用され続けているのが現状です。サポート切れ後には、大きな話題となった「ClassLoader を操作可能な脆弱性」等、多くのセキュリティ上の弱点が指摘されてきました。

2014年4月に発表されたApache StrutsのClassLoader を操作される脆弱性

[脆弱性情報]
脆弱性識別番号:CVE-2014-0114

[悪用された際の影響]
・Webサーバー内の情報を盗み取られる
・特定ファイルを操作される
・Webアプリを一時的に使用不可状態にされる
・操作されるファイルにJavaコードが含まれる場合、任意のコードが実行される

IPA発表 Apache Struts 1 にもClassLoader を操作される脆弱性(CVE-2014-0114)が存在

https://www.ipa.go.jp/security/ciadr/vul/20140417-struts.html

株式会社ラック サイバー・グリッド研究所の発表(2014年05月01日)

https://www.lac.co.jp/security/alert/2014/04/24_alert_01.html

Apache Struts 2 に存在するとされた、リモートの第三者による任意のコード実行を許す脆弱性(CVE-2014-0094)と同様の問題がApache Struts 1 においても存在していることを確認しました。

この問題には、4月30日付けで、共通脆弱性識別子CVE-2014-0114が割り当てられました。

現在は、Struts 2 がサポートされていますが、2008年10月4日に最終版が公開され、2013年4月5日でサポート終了となった、Struts 1 においても、同様の脆弱性が存在します。しかし、Struts 1 はサポート終了しており、当該プロジェクトからは公式なアナウンスは出ておらず、今後正規の更新プログラムの提供もされないものと考えられます。

一方、Struts 1 が稼働しているWebサイトは、官公庁や公益法人、銀行などを含め国内に数多く存在しており、提供ベンダーからの個別サポートなど個々で特別な対応を行ってない限り攻撃に関して脆弱な状態のままと推測されます。

Struts2の脆弱性

Struts2は、2014年以降、何度も脆弱性の問題が発見され、2017年に入っては、「任意のコードを実行できる脆弱性(S2-045、CVE-2017-5638)」が見つかり、クレジットカード情報や個人情報の流出など、非常に深刻な被害が発生しています。

[2016年04月18日]Apache Struts における任意のコードを実行される脆弱性(JVNDB-2016-002075)

[2017年03月09日] Apache Struts 2 の脆弱性 (S2-045) に関する注意喚起<<< JPCERT/CC Alert 2017-03-09>>>

Struts系フレームワークは、過去に多くの脆弱性の指摘を受けている歴史からいって、今後も問題が発生する可能性が大きいことも指摘されており、以下の理由から被害が甚大化する可能性もあります。

  • 過去に多くのRCEを提供してきた実績があり、完全に攻撃者が目を付ける侵入経路となっている
  • (WordPress等と比較して)大型で重要なWebシステムで使われているケースが多い
  • 日本国内においてはやや慎重なベンダーがシステムを運用しているケースが多く、バージョンアップが素早く行われない

そのため、Struts系フレームワークを採用している企業にとっては、可能な限り迅速に、根本的な対策を行なうことが急務と言えます。