【Webサーバーへの攻撃】Struts2の脆弱性を狙った攻撃情報
最終更新日: 2017/04/06 10:46am
こんにちは。経理の小高です。
3月末に1週間ほどお休みをいただき、遊びに行ってまいりました。(弊社の決算は9月ですので、3月の経理は通常月を同じです)
3月の初旬にApache Struts2(アパッチ・ストラッツ・ツー)の脆弱性が報告されました。詳細は以下のIPA(情報処理推進機構)の情報を参考いただくとして、この脆弱性をつかれると、サーバー上で任意のコードが実行される、つまり、実質的にサーバーが乗っ取られてしまうという重大なものです。
IPA:更新:Apache Struts2 の脆弱性対策について(CVE-2017-5638)(S2-045)(S2-046)
脆弱性というのは、プログラム上の欠陥のことで、プログラマが未熟であったり、テストが不十分だったりということが原因です。
ウェブの世界は「全部プログラム」ですので、こういった欠陥が必ず潜んでいて、脆弱性へどう対応するかということがセキュリティ上の大きなポイントとなります。
さて、なぜ、この脆弱性が大きく取り上げられたかといいますと、Apache Strutsというソフトウェアが超有名なソフトウェアで、多くの大企業の基幹システムやECサイト、ポータルサイトなどで利用されているためです。
私も以前勤めていた会社で大がかりなECサイトをこのソフトウェアベースで制作したことがあります。(当時はバージョン1でした)
このソフトウェアを使う場合、開発言語はJavaです。幸いなことに、弊社では現在Javaでの開発を行っておりませんし、Javaで制作されたソフトウェアを保有しておりません。(したがって、今回の脆弱性の被害は発生しません)
IPAのサイトへの掲載が3/8になっていますが、弊社の保有するサーバーのうちの6台にこの脆弱性を狙ったと見られる攻撃がありました。通常、こういった攻撃がありますと、サーバーのファイヤウォールで攻撃元からのアクセスを遮断してしまうのですが、たまたま、私のお休みと重なってしまったということもあって、攻撃の経過を取得することができました。弊社はこの攻撃によって被害を受けませんでしたが、攻撃者(攻撃者の保有するコンピュータか、攻撃者に乗っ取られたコンピュータ)はいつ何時他ほ攻撃を仕掛けてくるかもしれませんので、現在、これらの攻撃元はファイアウォールでブロックしています。
最初にお見せするのが、攻撃者の数の推移です。これは攻撃をうけたサーバーごとに日別のIPアドレスリストを作成してそのアドレスを合算して件数としています。したがって、同一日にもIPアドレスの重複が(最大6回)ありえます。
2017/3/22まではほとんどありませんでしたが、3/23、24に突然攻撃が増えて1週間程度で収束しています。
不思議な感じがしますね。以下のようにApache Struts2を使っているかどうか探るようなアクセスが多数ありました。
[Thu Mar 23 15:08:23 2017] [error] [client 88.99.173.179] File does not exist: /var/www/html/Struts2XMLHelloWorld
HelloWorldというのは、プログラマがテストで作成するプログラム名としてよく知られています。たとえば、Webサーバーを設定して、それが動くかどうか確認するために、Hello Worldと表示するプログラムを配備することがよくあります。こういったプログラムは、テスト後に消去するべきですが、不用心なプログラマや管理者はプログラムを残したままにしてしまう可能性があります。こういった場合、上のアクセスで運悪く「攻撃者にHello Worldと表示」してしまうわけです。
弊社のサーバーはこれらに回答することがありませんので、それで攻撃数が減衰したのかもしれません。
これらの攻撃元を国別に集約してさらに驚いてしまいました。これが下の図です。なんと(上のグラフの攻撃者は)46ヵ国からやってきていました。
攻撃を受けたサーバーの半数以上はAmazon Web Servicesを使って構築したサーバーで、原則的に偽装パケットを通しません。
考えられるシナリオをいくつかあります。
・攻撃者が自分の攻撃ネットワーク(ボットネットといって、管理の悪いサーバーなどを乗っ取って攻撃に加担させます)を使って、世界中から攻撃をしかけた。
・世界中でこの期間だけ攻撃がまん延した。
後者はあまり説得力がなさそうです。
3/8から2週間でこれだけ世界中から攻撃者が狙ってくるのが、Webの世界の現実です。情報収集を怠らず、きっちり管理しないとと身が引き締まります。
←「【事例】有名ではないサイトへの攻撃」前の記事へ 次の記事へ「【プログラミング】Apache Strutsについて想うこと」→