1. 概要
Apache Software Foundation (ASF) がスポンサーとなっているオープン ソース プロジェクトは Struts です。このプロジェクトはジャカルタ プロジェクトの分岐点として開始され、その後 ASF のトップレベル プロジェクトに昇格しました。 Java Servlet/JSP技術を利用し、Java EE WebアプリケーションのModel-View-Controller[MVC]設計パターンに基づいたアプリケーションフレームワーク[Web Framework]を実装した、MVCクラシック設計パターンの代表的な製品です。
Java EE Web アプリケーション開発の初期には、サーブレット テクノロジの使用に加えて、JavaServer Pages (JSP) のソース コードに HTML と Java コードを組み合わせて開発するのが一般的でした。これら 2 つの方法は、パフォーマンス コードとビジネス ロジック コードを混在させる場合に避けられず、初期の開発とその後のメンテナンスに大きな複雑さをもたらします。上記の制約と制限を取り除き、ビジネス ロジック コードをプレゼンテーション層から明確に分離するために、Craig McClanahan は 2000 年に MVC 設計パターンを採用して Struts を開発しました。このフレームワーク製品は、かつては最も広範で人気のある JAVA WEB アプリケーション フレームワークとみなされていました。
Struts2 は、MVC デザイン パターンに基づく Web アプリケーション フレームワークです。本質的にはサーブレットと同等です。MVC デザイン パターンでは、Struts2は、モデルとビューの間のデータ対話を確立するコントローラーとして機能します。 Struts 2 は Struts の次世代製品であり、Struts 1 と WebWork のテクノロジーを統合した新しい Struts 2 フレームワークです。
Struts2 フレームワークの人気に伴い、開発に Struts2 フレームワークを使用する企業部門が増えています。近年、高リスクの脆弱性が何度も暴露されています。多くの政府機関のサイト、銀行、大手インターネット企業、その他の部門が攻撃を受けています。 2016年12月に京東12Gのユーザーデータが流出、ユーザー名、パスワード、電子メール、QQ番号、電話番号、IDカードなどのデータが数千万件に達した。原因は2013年に遡る。 Struts 2 のセキュリティ脆弱性。当時、国内のほぼすべてのインターネット企業と多数の銀行や政府機関が影響を受け、多数のデータ漏えいが発生しており、struts2 に脆弱性が発生するたびに、主要なインターネット脆弱性プラットフォームにも次のような複数のフィードバックが寄せられました。
#Struts2 のコード実行の問題は、Google セキュリティ チームの Meder Kydyraliev がパラメータ インターセプタが次のようなものである可能性があることを発見した 2010 年に遡ります。特殊文字に unicde エンコードを使用することで回避される 「#」のフィルタリングによりコード実行の問題が発生する 公式の脆弱性番号は S2-003、
struts2 の脆弱性履歴を振り返ると、公式の脆弱性番号は S2-003 ではないことがわかりました。まず、開発者にセキュリティに対する意識が低く、基本的なセキュリティ対策は名ばかりでした。第二に、公式の修復措置は強度に欠けており、問題の根本原因を真に解決することなく、単なる場当たり的なものに過ぎないと感じています。さらに、公式のオープン精神は本当に衝撃的で、脆弱性の PoC を公式 Web サイトに直接掲載したことで、多くの人が脆弱性の悪用をさらに検討する機会を与えたことも、問題が深刻化する理由の 1 つです。もっと深刻な。
比較的大きな影響があり、広く悪用されている Struts2 の脆弱性:
CVE-2010-1870XWork ParameterInterceptors バイパスにより OGNLstatement の実行が可能
CVE-2012-0392struts2 DevMod リモート コマンド実行の脆弱性
CVE-2011-3923Struts
CVE-2013-1966Struts2
CVE-2013-2251Struts2
Struts2
Struts2
CNVD-2016-02506、CVE-2016-3081、影響を受けるバージョン Struts 2.3.20 - StrutsStruts 2.3.28 (2.3) .20.3 および 2.3.24.3 を除く)
CVE 番号: CVE-2016-4438 Struts (S2-037) リモート コード実行の脆弱性、影響を受けるバージョン: Struts 2.3.20 - Struts Struts 2.3.28.1
CVE-2017-5638 影響を受けるバージョン: Struts 2.3.5 – Struts 2.3.31
Struts 2.5 – Struts 2.5.10
その他の詳細については、struts2 を参照してください。公式 Web サイトの脆弱性履歴:
https://cwiki.apache.org/confluence/display/WW/Security Bulletins
脆弱性が多発している Struts2 フレームワークを考慮し、州内の Struts フレームワークの配布状況に関する調査と統計を実施し、各都市のサイトのフィンガープリンティングを行うことで、Struts フレームワークの使用状況をマッピングしました。
特定のテーブル データ:
##シリアル番号 | 業種 | 数量 | 割合 |
政府機関 | 447 | 28.29% | |
教育機関 | 155 | 9.80% | |
金融業 | 110 | 6.96% | |
保険業界 | 28 | 1.77% | |
証券業界 | 14 | 0.88% | |
エネルギー業界 | 8 | 0.50% | |
運輸業 | 93 | 5.88% | #8 |
114 | 7.21% | 9 | |
398 | 25.18% | 10 | |
213 | 13.48 % |
#脆弱性の数 | ||
---|---|---|
3 | 2 | |
2 | ##3 | 金融業界 |
4 | インターネット企業 | |
5 | その他 | |
検出の過程で、多くの Web サイトに Stuts2 以前の古い脆弱性がまだ修復されていないことが判明し、Stuts2 の脆弱性のうち、Web サイトの登録ユーザーがハッカー攻撃にさらされることになりました。 |
以上がStruts2フレームワークサイトのリスク分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。