Struts脆弱性問題のセミナー開催、Springへの移行サービスの一環で
StrutsからSpringへの移行サービスなどを提供している株式会社スタイルズは、4月24日、セミナーイベント「深刻化するStruts脆弱性にどう対処するか?」を開催した。JavaのWebアプリケーションフレームワーク「Struts」の、リモートから任意のコードを実行可能な脆弱性により、いくつかの重要なサイトで情報漏洩が流出したことを受けてのものだ。
イベントにはセキュリテイ専門家でHASHコンサルティング株式会社代表の徳丸浩氏が登壇して、Strutsの脆弱性の事件やその他のWeb脆弱性への対応について解説した。また、スタイルズはStrutsからの移行サービスについて詳しく紹介した。
基本施策、パッチ適用容易性、多層防御で守る
徳丸氏はまず、一連の事件のうち影響が大きいGMOペイメントゲートウェイの事件を取り上げた。同社の公式発表やメディアの報道内容から、対応内容を見て、「全体としてはスピーディに、きわめてプロフェッショナルな対応がなされた。にもかかわらずやられてしまったところに深刻さがある」と徳丸氏はコメントした。
続いて、架空のサイトのStruts脆弱性を突く様子をデモした。リクエストヘッダーに細工してまずpwdなどの比較的無害なコマンドを実行。そのうえで、Webシェルを設置し、取引ログを表示してみせた。なお、このデモは資生堂子会社のイプサの例を元にしたという。
徳丸氏は、同じことはデータベースの場合も同様で、時間さえあれば取り出せると説明した。そして、時間をかけさせることは重要であり、そのためにパーミッションやSELinuxでプログラムの書き込みを禁止することは意味があると語った。
氏はそのほか、CMSのJoomla!の脆弱性が狙われた藤沢市関連サイトの事件や、Movable Typeのプラグインの脆弱性が狙われた日本テレビの事件を解説し、それぞれデモで再現してみせた。
これらを受けて、徳丸氏は対策について語った。まず最近の傾向として、脆弱性の猶予期間がますます短くなっていると氏は解説した。ソフトウェアのリリース元でも、脆弱性が発覚したときに、セキュリティフィックスのみのアップデートを用意して更新しやすくしているという。ただしそれも日頃から最新版に追従していないとイザというときにアップデートできないことや、プラグインをたくさん入れているとバージョンアップしづらくなることから、徳丸氏は自身の造語として「パッチ適用容易性」の重要性を訴えた。
そして徳丸氏は、脆弱性への対策の心得を解説した。根本対策としては、早期の脆弱性情報収集、早期の対処判断、切り戻し手段を確保してバージョンアップすることが挙げられた。また、保険的対策としては、JavaやPHPはできるだけ新しいものを導入しておくことや、WAF(Web Application Firewall)の導入、SELinuxの活用などが挙げられた。
最後に徳丸氏はまとめとして、「まずは基本の施策を」「パッチ適用容易性の確保、たとえばStrutsを避ける」「追加の防御施策で多層防御を」の3点をくり返した。
Springへの移行サービスを紹介
スタイルズのStrutsからの移行サービスについては、同社の鈴木健夫氏が紹介した。
鈴木氏はまず、Struts 1について触れた。MVCフレームワークとして2005年ごろには広く普及したが、最終リリース2008年で、2013年4月にサポートが終了した。サポート終了後に発見された脆弱性も複数ある。
その対策としては、自前またはパッチサービスから独自にパッチを当てる方法や、派生フレームワークを利用する方法などがあるが、「でも、サポートが終了したフレームワークを使い続けるのはどうなの?」として鈴木氏はほかのフレームワークへの移行を勧めた。
移行先としてはまず、Struts 2、Java EE、Springの3つの選択肢が示された。このうち、Struts 2はStruts 1との互換性がないうえ脆弱性に不安があること、Java EEはモデルもカバー範囲も違って移行しにくいことがネガティブ要因として挙げられた。
そして、Springは、Strutsと同じAction Base MVCで、JavaEEよりリリースの頻度が高く、広く普及していて実績も情報も多く、開発元がPivotalなので安心ということで「スタイルズとしてはSpringへの載せ替えを推奨している」と鈴木氏は語った。
スタイルズの移行サービスについては、コンバータで自動変換してから手動で仕上げること、ソースコードレベルで変換して要件定義や設計工程はいらないこと、スタイルズが獲得したノウハウの活用の3つが特徴として挙げられた。これによって、開発工数を削減し、納期やコストを縮小するという。
サービスの事例として、まず、Struts 1.3に一部Spring 3とMyBatisが組み合わされていた環境を、Spring 4に移植したケースが紹介された。20人月の規模で、5か月の工期で実現したという。
2つめの事例としては、Struts 1.1~1.3とTorqueの環境をSpring 4に移植したケースが紹介された。特殊な構造だったのでコンバーターのチューニングもしたほか、データベースもOracleからPostgreSQLに移行したという。この事例では20人月の規模で、3か月の工期で実現したという。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- エンタープライズ向けJava標準化の歴史
- Java EEの動向と最新機能
- 「5G/ネットインフラ」「AI/データサイエンス」「働き方」など、今が旬の5テーマで11のセッションを開催―「GMO Developers Day 2020」レポート(後編)
- Web開発で利用可能な機能を比較する!
- フレームワークの利用
- Red Hatが提供するJBoss Enterprise Middlewareとは
- 拡がるOSSセキュリティ需要に向け、最新情報を発信する勉強会を開催!
- Nexawebの採用で金融機関向けパッケージのグレードアップと短期開発を実現:日本電子計算株式会社
- 開発ツールの変遷と、現在の課題
- ASP.NET MVCとWCFの魅力