アカウント名:
パスワード:
Microsoftの.Net Framework(ASP.Net)は脆弱性あってもここまで大規模に被害が報告されることが少ないよね?
ただ単に採用例が少ないのか、サーバとはいえ半ば強制的にパッチをあてる仕組みが優秀なのか、GUIぽちぽちクリックするだけでアップデートが完了するのが優秀なのか。
どれでしょう?
脆弱性の一覧を調べてみました。
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はかなり脆弱性が多い印象。
Strutsはパラメータからリフレクション(とかファクトリ)で実行コードを呼び出す方法を多用してるけど、そこが特に深刻な脆弱性につながりやすい。機能のカスタマイズ性を高めるためにやってるのはわかるけど、脇が甘すぎる。せめて、パラメータベースで実行されるコードをホワイトリストで管理する仕組みを全面的に取り入れるべきだった。
.NET Framework自体にはそれなりに脆弱性を直すパッチは来てるよ。ただ、ASP.NETでWebアプリ公開していて即死レベルの攻撃をされる脆弱性はなかなか無い。Struts 2と同じレイヤのフレームワークで言うとASP.NET MVCがあるけど、こちらも即死レベルの問題は全然無くて、今までWindows Updateで更新入ったのもたぶん片手で数えられるレベル。まぁ単純にStruts 2作ってる連中がクソ&クソってだけじゃないかね。
あと.Netじゃなくて.NETな。
まあJava自体、言語仕様的に目的のコードが長く冗長に成りやすい=メンテナンス性悪化とバグ隠れやすい面あるから。
というのを除いても、Strutsの修正コードはちょっとねwそして過去の積み重ねもあるからもうムリw
.NETはそういう後々ヤバそうなモノを、言語仕様も見直して根元を断ちに行きますね。
.Netに限らず、ここまで酷いフレームワークはあまり無いような気がします。
公共工事案件で大企業のどこかが採用してしまったのが、これだけ大規模化した理由かと思われます。
攻撃手法が広まる前に情報を掴んでるかどうか、の違いかなあ。もっと言えば、開発元への攻撃方法のタレこみが金になるかどうか。
何の目的で.Netを引き合いにだしたのか知らんが、.Netは少なくともこんなに酷い代物じゃないからだろWindowで使用されまくってるものだから脆弱性が発覚した場合の影響はstrutsの比じゃないのだし
Strutsとその作者が特別にクソでファイナルアンサー
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]
PHPとかその他の動的言語を使うのって全ソースファイルを毎回evalしているも同然なわけでちょっと正気を疑いたくなるんですけど、どういうことなんでしょうね。
Struts2はまさにその動的言語的なことをやりたくて頑張っちゃったらご覧の有様ということですね
マスカッツの脆弱性を突きたいでござるの巻
動的言語がセキュリティを意識していないとか、インタプリタの時代で認識が止まってるのかな
こないだのwordpressの脆弱性とかみていると、それも疑わしい
Struts2はただの動的言語で作られたアプリでなく、外部入力パラメータとか色々な変数をマトモに検証しないでevalしまくってるセキュリティ的にタコい動的言語アプリと同レベルだからですよ。
マネージャー側は、まさにPHPを使わせたくないからJavaをチョイスしているのに、フレームワーク側でそれを破られるのは痛いわな。。
つまり、Java使いのセンスが悪いってことですね
そういうことにしてしまうお前のセンスはもっと悪いけどな
要するにJava使いのセンスが無かったってことですな
とどのつまり、Java使いのセンスが悪いって事やね
android...
OSフレームワークの話なら、.NET Frameworkに相当するところのJavaの脆弱性も持ち出さないといけませんよね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
最初のバージョンは常に打ち捨てられる。
.Net Framework (スコア:0)
Microsoftの.Net Framework(ASP.Net)は脆弱性あっても
ここまで大規模に被害が報告されることが少ないよね?
ただ単に採用例が少ないのか、
サーバとはいえ半ば強制的にパッチをあてる仕組みが優秀なのか、
GUIぽちぽちクリックするだけでアップデートが完了するのが優秀なのか。
どれでしょう?
Re:.Net Framework (スコア:5, 参考になる)
脆弱性の一覧を調べてみました。
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:.Net Framework (スコア:1)
Strutsはパラメータからリフレクション(とかファクトリ)で実行コードを呼び出す方法を多用してるけど、そこが特に深刻な脆弱性につながりやすい。
機能のカスタマイズ性を高めるためにやってるのはわかるけど、脇が甘すぎる。せめて、パラメータベースで実行されるコードをホワイトリストで管理する仕組みを全面的に取り入れるべきだった。
Re:.Net Framework (スコア:3, 興味深い)
.NET Framework自体にはそれなりに脆弱性を直すパッチは来てるよ。
ただ、ASP.NETでWebアプリ公開していて即死レベルの攻撃をされる脆弱性はなかなか無い。
Struts 2と同じレイヤのフレームワークで言うとASP.NET MVCがあるけど、
こちらも即死レベルの問題は全然無くて、今までWindows Updateで更新入ったのもたぶん片手で数えられるレベル。
まぁ単純にStruts 2作ってる連中がクソ&クソってだけじゃないかね。
あと.Netじゃなくて.NETな。
Re: (スコア:0)
まあJava自体、言語仕様的に目的のコードが長く冗長に成りやすい=メンテナンス性悪化とバグ隠れやすい面あるから。
というのを除いても、Strutsの修正コードはちょっとねw
そして過去の積み重ねもあるからもうムリw
.NETはそういう後々ヤバそうなモノを、言語仕様も見直して根元を断ちに行きますね。
Re: (スコア:0)
.Netに限らず、ここまで酷いフレームワークはあまり無いような気がします。
公共工事案件で大企業のどこかが採用してしまったのが、これだけ大規模化した理由かと思われます。
Re: (スコア:0)
攻撃手法が広まる前に情報を掴んでるかどうか、の違いかなあ。
もっと言えば、開発元への攻撃方法のタレこみが金になるかどうか。
Re: (スコア:0)
何の目的で.Netを引き合いにだしたのか知らんが、.Netは少なくともこんなに酷い代物じゃないからだろ
Windowで使用されまくってるものだから脆弱性が発覚した場合の影響はstrutsの比じゃないのだし
Re: (スコア:0)
Strutsとその作者が特別にクソでファイナルアンサー
Re:.Net Framework (スコア:5, 興味深い)
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)
Struts2はまさにその動的言語的なことをやりたくて頑張っちゃったらご覧の有様ということですね
Re: (スコア:0)
マスカッツの脆弱性を突きたいでござるの巻
Re: (スコア:0)
動的言語がセキュリティを意識していないとか、
インタプリタの時代で認識が止まってるのかな
Re: (スコア:0)
こないだのwordpressの脆弱性とかみていると、それも疑わしい
Re: (スコア:0)
Struts2はただの動的言語で作られたアプリでなく、外部入力パラメータとか色々な変数をマトモに検証しないでevalしまくってるセキュリティ的にタコい動的言語アプリと同レベルだからですよ。
Re: (スコア:0)
マネージャー側は、まさにPHPを使わせたくないからJavaをチョイスしているのに、
フレームワーク側でそれを破られるのは痛いわな。。
Re: (スコア:0, 荒らし)
つまり、Java使いのセンスが悪いってことですね
Re: (スコア:0)
そういうことにしてしまうお前のセンスはもっと悪いけどな
Re: (スコア:0, 荒らし)
要するにJava使いのセンスが無かったってことですな
Re: (スコア:0)
とどのつまり、Java使いのセンスが悪いって事やね
Re: (スコア:0)
android...
Re: (スコア:0)
OSフレームワークの話なら、.NET Frameworkに相当するところのJavaの脆弱性も持ち出さないといけませんよね。