Struts脆弱性問題のセミナー開催、Springへの移行サービスの一環で

2017年5月23日(火)
高橋 正和

StrutsからSpringへの移行サービスなどを提供している株式会社スタイルズは、4月24日、セミナーイベント「深刻化するStruts脆弱性にどう対処するか?」を開催した。JavaのWebアプリケーションフレームワーク「Struts」の、リモートから任意のコードを実行可能な脆弱性により、いくつかの重要なサイトで情報漏洩が流出したことを受けてのものだ。

イベントにはセキュリテイ専門家でHASHコンサルティング株式会社代表の徳丸浩氏が登壇して、Strutsの脆弱性の事件やその他のWeb脆弱性への対応について解説した。また、スタイルズはStrutsからの移行サービスについて詳しく紹介した。

基本施策、パッチ適用容易性、多層防御で守る

徳丸氏はまず、一連の事件のうち影響が大きいGMOペイメントゲートウェイの事件を取り上げた。同社の公式発表やメディアの報道内容から、対応内容を見て、「全体としてはスピーディに、きわめてプロフェッショナルな対応がなされた。にもかかわらずやられてしまったところに深刻さがある」と徳丸氏はコメントした。

HASHコンサルティング株式会社 徳丸浩氏
HASHコンサルティング株式会社 徳丸浩氏
GMOペイメントゲートウェイの対応
GMOペイメントゲートウェイの対応

続いて、架空のサイトのStruts脆弱性を突く様子をデモした。リクエストヘッダーに細工してまずpwdなどの比較的無害なコマンドを実行。そのうえで、Webシェルを設置し、取引ログを表示してみせた。なお、このデモは資生堂子会社のイプサの例を元にしたという。

徳丸氏は、同じことはデータベースの場合も同様で、時間さえあれば取り出せると説明した。そして、時間をかけさせることは重要であり、そのためにパーミッションやSELinuxでプログラムの書き込みを禁止することは意味があると語った。

Strutsの動いているサーバーにpwdを実行させる
Strutsの動いているサーバーにpwdを実行させる
Webシェルを設置して取引ログを表示
Webシェルを設置して取引ログを表示

氏はそのほか、CMSのJoomla!の脆弱性が狙われた藤沢市関連サイトの事件や、Movable Typeのプラグインの脆弱性が狙われた日本テレビの事件を解説し、それぞれデモで再現してみせた。

これらを受けて、徳丸氏は対策について語った。まず最近の傾向として、脆弱性の猶予期間がますます短くなっていると氏は解説した。ソフトウェアのリリース元でも、脆弱性が発覚したときに、セキュリティフィックスのみのアップデートを用意して更新しやすくしているという。ただしそれも日頃から最新版に追従していないとイザというときにアップデートできないことや、プラグインをたくさん入れているとバージョンアップしづらくなることから、徳丸氏は自身の造語として「パッチ適用容易性」の重要性を訴えた。

パッチ適用容易性の重要性
パッチ適用容易性の重要性

そして徳丸氏は、脆弱性への対策の心得を解説した。根本対策としては、早期の脆弱性情報収集、早期の対処判断、切り戻し手段を確保してバージョンアップすることが挙げられた。また、保険的対策としては、JavaやPHPはできるだけ新しいものを導入しておくことや、WAF(Web Application Firewall)の導入、SELinuxの活用などが挙げられた。

最後に徳丸氏はまとめとして、「まずは基本の施策を」「パッチ適用容易性の確保、たとえばStrutsを避ける」「追加の防御施策で多層防御を」の3点をくり返した。

根本対策
根本対策
保険的対策
保険的対策

Springへの移行サービスを紹介

スタイルズのStrutsからの移行サービスについては、同社の鈴木健夫氏が紹介した。

鈴木氏はまず、Struts 1について触れた。MVCフレームワークとして2005年ごろには広く普及したが、最終リリース2008年で、2013年4月にサポートが終了した。サポート終了後に発見された脆弱性も複数ある。

その対策としては、自前またはパッチサービスから独自にパッチを当てる方法や、派生フレームワークを利用する方法などがあるが、「でも、サポートが終了したフレームワークを使い続けるのはどうなの?」として鈴木氏はほかのフレームワークへの移行を勧めた。

株式会社スタイルズ 鈴木健夫氏
株式会社スタイルズ 鈴木健夫氏
Struts 1で動いているサービスをどうするか
Struts 1で動いているサービスをどうするか

移行先としてはまず、Struts 2、Java EE、Springの3つの選択肢が示された。このうち、Struts 2はStruts 1との互換性がないうえ脆弱性に不安があること、Java EEはモデルもカバー範囲も違って移行しにくいことがネガティブ要因として挙げられた。

そして、Springは、Strutsと同じAction Base MVCで、JavaEEよりリリースの頻度が高く、広く普及していて実績も情報も多く、開発元がPivotalなので安心ということで「スタイルズとしてはSpringへの載せ替えを推奨している」と鈴木氏は語った。

移行先としてのSpringの長所
移行先としての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か月の工期で実現したという。

移行事例1
移行事例1
移行事例2
移行事例2

フリーランスのライター&編集者。IT系の書籍編集、雑誌編集、Web媒体記者などを経てフリーに。現在、「クラウドWatch」などのWeb媒体や雑誌などに幅広く執筆している。なお、同姓同名の方も多いのでご注意。

連載バックナンバー

仮想化/コンテナイベント

KubeCon報告からKubernetes対応版Dockerまで、Docker Meetup Tokyo #20開催

2018/1/30
コンテナーに関する勉強会「Docker Meetup Tokyo #20」が、2017年12月14日に開催された。11月に開催された「Docker Meetup Tokyo #19」に続く回となった。
仮想化/コンテナ

Red Hatが示したOpenShiftの将来とは

2018/1/24
Red Hatが推進するコンテナープラットフォームであるOpenShiftの1dayカンファレンスが開催された。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています