Fox on Security

セキュリティリサーチャー(インシデントアナリスト)で、セキュリティコンサルタントのキタきつねの独り言。専門はPCI DSS。

川崎市が求められる”DCA”

川崎市が運営する球場予約システムへの不正アクセスにより、紙運用に戻ったという記事が出ていました。

www.itmedia.co.jp

 

 従来、野球場の利用予約は、市の公共施設利用予約システム「ふれあいネット」で受け付けていた。ふれあいネットは、利用者の登録番号とパスワードを使ってログインして利用する。

 だが、野球場を主に使っている利用者のアカウントが、第三者からの不正ログイン試行を受けてロックされるケースが多発したため、市はふれあいネットでの受け付けを休止。登録番号や住所、氏名などを記入して申し込む「野球場予約フォーム」を作り、利用申し込みを受け付けていた。

 しかし、野球場予約フォームでも、10月利用分だけで約15万件と大量の申し込みがあり、調査したところ、同一IPアドレスから複数の登録番号を使い、24時間で約2万件が申し込まれていたことがなど判明した。

 大量の申し込みが続くと、市のサイトで行っているパブリックコメントや市民アンケートの運用に支障が生じる恐れがあるため、野球場予約フォームによる受け付けも中止し、紙の申込書による申し込みに変更した。

(IT Media記事より引用)

 

キタきつねの所感

普通の不正アクセス(パスワードリスト攻撃)かと思い、川崎市の当該ページを見てみた所、紙の申請書をなくす為に導入された予約システムである事がわかります。

魚拓サイトで調べてみると2008年5月には、今のトップ画面とは少し違いますが、この予約システムが立ち上がっていた様です。

f:id:foxcafelate:20200928101706p:plain

 

 

このサイトを調べていて気になったのが、URL構成です。「・・・・Action.do」の部分から、Apache Struts1を利用していた事が推測されます。

※「.do」はStruts1の標準的な拡張子です。(Struts1以外でこの拡張子を使うメジャーなソフトは無いと思います)

f:id:foxcafelate:20200928051054p:plain

 

まず一番の問題が、Apache Struts1は2013年4月5日にサポートが終了しており、セキュリティの問題や重大なバグがあった場合にも基本的に開発者のサポートはありません。

 

後継となるApache Struts2は、例えばIPAなどが脆弱性情報を掲載していますが、Apache Struts1については、Apache Struts2に重大な脆弱性が出た際に例えば以下の様に注意喚起をしています。

なお、「Apache Struts 1」は既に2013年4月5日を以ってサポートが終了しています。
一般的にサポートが終了した製品は脆弱性が判明した場合でも脆弱性対策の修正対応は実施されず、影響等の情報も公開されません。
サポート終了している「Apache Struts 1」をご利用の場合は利用を停止し、早急に移行をご検討ください

IPA発表-2018/8/24

 

脆弱性が仮に出たとしてもStruts1では注意喚起が出されませんので、侵害を受けた事に気づかなくなる可能性があります。Apache Struts1を継続サポートするサードパーティと契約する、攻撃緩和としての効果が期待できるWAF等で多層的に守られている環境でなければ、Struts1を利用する事についてはリスクが高いと思います。

 

今回の侵害を受けた川崎市の対応は、セキュリティの視点で見ると「?」と思う部分がいくつも出てきます。

 ①「ふれあいネット」(Apache Struts1)でのWeb野球場予約受付

 ②第三者の不正ログイン試行

 ③「野球場予約フォーム」(Web受付)に切り替え

 ④10月利用分だけで約15万件の大量の不正申し込み

  ※同一IPから複数の登録番号を使い1日で2万件の申し込み

 ⑤紙の申請用紙での受付に切り替え

 

まず①のApache Struts1を引っ張り過ぎている点です。前述の通り2013年のサポート終了から7年以上経過しています。

※WindowsOSの、XPのサポート切れが2014年と考えると、その危険性が分かるかも知れません(同じ比較対象ではありませんが・・・)

 

③については、②を受けての事ですので対策内容としては妥当に見えますが、②の詳細原因を分析せずに③に移行している気がしてなりません。その推測理由は、③への移行時に既に漏えいしている可能性がある登録番号が申請のマッチング(照合)キーとなっている様に思えるからです。

 従来、野球場の利用予約は、市の公共施設利用予約システム「ふれあいネット」で受け付けていた。ふれあいネットは、利用者の登録番号とパスワードを使ってログインして利用する。

 だが、野球場を主に使っている利用者のアカウントが、第三者からの不正ログイン試行を受けてロックされるケースが多発したため、市はふれあいネットでの受け付けを休止。登録番号や住所、氏名などを記入して申し込む「野球場予約フォーム」を作り、利用申し込みを受け付けていた。

(IT Media記事より引用)

 

攻撃者の意図が、野球場を真剣に当てたい申込者としての立場だったのか、単に業務妨害を考えたものであったのかは推測の域を出ませんが、Apache Struts1、あるいは登録番号自体の脆弱性(例えばSEQであった等)を突かれたとしたら、今回の様なインシデントが発生したとしても不思議ではありません。

 

現状のふれあいネットでは、ログイン試行に際してパスワード変更の注意が出されますが、パスワードだけでなく登録番号も流出したと考えれば、予約フォームに対する攻撃(④)をもっと警戒しても良かったのかと思います。

f:id:foxcafelate:20200928051019p:plain

 

Struts1の脆弱性によっては、パスワードファイルを窃取できる可能性についても以前から指摘されており、こうした点への対策が不十分であった可能性もあるかも知れません。

www.lac.co.jp

 

余談・・・いやむしろこちらが本題かも知れません。

久しぶりにStruts1のサイトを検索してみましたが、ここでは書きませんが、まだ名の知れた企業が結構引っかかります

大手企業は、緩和策を含めた多層防御を当然取っていると思いますが、Struts2でも重大インシデントが過去に発生した事を考えると、Struts1からの移行計画(Plan)だけで止まる事なく実施(Do)を急ぎ、侵害の兆しを検知する監視体制(Check)や、侵害があった際に当該IPをブロックする等の(Action)を、川崎市を含めたStruts1利用ユーザーは今一度考えるべきかと思います。

 

 

本日もご来訪ありがとうございました。

Thank you for your visit. Let me know your thoughts in the comments.

 

PDCAサイクルのイラスト 

更新履歴

  • 2020年9月28日 AM(予約投稿)