影響範囲が広がるApacheStruts2の脆弱性 15
ストーリー by hylom
注意喚起再び 部門より
注意喚起再び 部門より
3月9日、Webアプリケーションフレームワーク「Apache Struts」の脆弱性を狙った攻撃に対する注意喚起が出ていたが(過去記事)、この脆弱性を狙った攻撃や実際の被害が多数報告されている。
すでに特許情報プラットフォーム(過去記事)や都税支払いサイトおよび住宅金融支援機構(過去記事)、日本郵便(Security NEXT記事)などで問題の脆弱性を付いた攻撃が行われて情報流出が発生したことが報じられているが、これ以外にもニッポン放送の音声サービス「Radital」や(ニッポン放送の発表)や沖縄電力(発表PDF)などでも攻撃が確認されている。
当初は「Content-Type」ヘッダを利用して攻撃ができるという話だったが、これ以外の「Content-Disposition」や「Content-Length」といったヘッダを利用した攻撃も可能であることも判明している(Securty NEXT)。また、今回の脆弱性の対応としてパーサーを変更するというものが提案されていたが、この対応を行った場合でも攻撃が可能であることが確認されており、確実な対策としては脆弱性を修正したバージョンにアップデートするしかないようだ(INTERNET Watch)。
.Net Framework (スコア:0)
Microsoftの.Net Framework(ASP.Net)は脆弱性あっても
ここまで大規模に被害が報告されることが少ないよね?
ただ単に採用例が少ないのか、
サーバとはいえ半ば強制的にパッチをあてる仕組みが優秀なのか、
GUIぽちぽちクリックするだけでアップデートが完了するのが優秀なのか。
どれでしょう?
Re:.Net Framework (スコア:1)
脆弱性の一覧を調べてみました。
struts (1系、2系含む)
https://www.cvedetails.com/vulnerability-list/vendor_id-45/product_id-... [cvedetails.com]
2005/11/22より12年で57件、最高スコアが10.0 (最高値)
ASP.NET (1.1~)
https://www.cvedetails.com/vulnerability-list/vendor_id-26/product_id-... [cvedetails.com]
2003/09/22より15年で10件、最高スコアが7.8、任意コード実行なし
他はSpringが7件、CakePHPが5件。
上記は言語ランタイムの件数を含めていないし、それぞれのコードの規模にもよるんだろうけど、
strutsはかなり脆弱性が多い印象。
Re: (スコア:0)
Java使いのセンスが悪いだけでしょう
Re:.Net Framework (スコア:4, 興味深い)
Java使いのセンスが悪いだけでしょう
Javaのセンスが悪い…のではなくStruts2の基盤の一つであるOGNLが全ての原因なんですよね。
OGNLとは(ざっくり言うと)文字列をJavaの式として評価できるライブラリです(構文とかは違うけどもやれることは同じ)
いわば他言語で言うところのevalにあたるもので、便利な一方で慎重に使わないとセキュリティリスクに直結する非常に危険な代物です。
そんなevalに相当する恐ろしいものがStruts2では設定ファイルを始め(今回問題になった)ログのフォーマットや動的なHTML(JSP)生成に使われたりと広範囲に利用されています。
このようにStruts2にはOGNLを基盤に使うという根本的にセキュリティリスクのある設計になっているため今後も同種の脆弱性は出続けるでしょう。
最善の策はStruts2の利用を止めることですね。
https://www.scutum.jp/information/waf_tech_blog/2014/04/waf-blog-036.html [scutum.jp]
たとえば、Struts 2を避ける (スコア:0)
PHPとかその他の動的言語を使うのって全ソースファイルを毎回evalしているも同然なわけでちょっと正気を疑いたくなるんですけど、どういうことなんでしょうね。
Re: (スコア:0)
つまり、Java使いのセンスが悪いってことですね
Re: (スコア:0)
.Netに限らず、ここまで酷いフレームワークはあまり無いような気がします。
公共工事案件で大企業のどこかが採用してしまったのが、これだけ大規模化した理由かと思われます。
Re: (スコア:0)
攻撃手法が広まる前に情報を掴んでるかどうか、の違いかなあ。
もっと言えば、開発元への攻撃方法のタレこみが金になるかどうか。
なにいってんのこいつ (スコア:0)
WebフレームワークとOSフレームワーク同列に並べて論じるとか意味不明。
どっとねっとふれーむわーくって言いたいだけの低農家
Re: (スコア:0)
OSフレームワークの話なら、.NET Frameworkに相当するところのJavaの脆弱性も持ち出さないといけませんよね。
Re: (スコア:0)
.NET Framework自体にはそれなりに脆弱性を直すパッチは来てるよ。
ただ、ASP.NETでWebアプリ公開していて即死レベルの攻撃をされる脆弱性はなかなか無い。
Struts 2と同じレイヤのフレームワークで言うとASP.NET MVCがあるけど、
こちらも即死レベルの問題は全然無くて、今までWindows Updateで更新入ったのもたぶん片手で数えられるレベル。
まぁ単純にStruts 2作ってる連中がクソ&クソってだけじゃないかね。
あと.Netじゃなくて.NETな。
最初のスコアが低かったのも (スコア:0)
JVNで最初に出た時も10でなく7台だったと思うし?
それでクリティカルだと気が付かず後手に回ってしまったって所も少しはあるんじゃないかな?
今でも
https://jvn.jp/vu/JVNVU93610402/index.html [jvn.jp]
こっちだと7のままで
http://jvndb.jvn.jp/ja/contents/2017/JVNDB-2017-001621.html [jvndb.jvn.jp]
こっちはちょっと前にに格上げされた
Re: (スコア:0)
そもそもJVNでの公開日(3/9)にはすでに手遅れだったんだよなあ。
フレームワークのVUPって (スコア:0)
一般的に瑕疵対応?有償対応?
当然瑕疵期間なんて終了済みだろうけど。
ああ保守対応か
最初の対処方法がまずかったのかも? (スコア:0)
最初に告知された対処方法の中に、バージョンアップしなくても対策できるようなことが書かれていたようで
それでこの脆弱性が残ってしまい(最初の対策方法では対処できてなかった)
その影響でここまで問題が大きくなった可能性がありますね。
ITpro Struts2脆弱性対策、実は無意味だった!JPCERTが指摘
http://itpro.nikkeibp.co.jp/atcl/news/17/032100876/?itp_side_ranking [nikkeibp.co.jp]
> Apache Struts2の開発を支援するApache Software Foundationが当初公開した対策の一つが無効だったとしている。