インフラエンジニアは人間じゃない

インターネットの闇、炎上ネタ、迷惑メールや詐欺、あらゆる危険な情報を扱うブログです。

MENU

Apache Struts について調べたこと

<対象>

 ・Apache Struts 2系

    (Apache Struts 1系は現在影響不明)

 

脆弱性の詳細>

 ・Jakarta Multi Parser の ファイルアップロード処理に脆弱性あり

    →不正なHTTPリクエストが送信されると、リモートで任意のコードが実行される

 

Jakarta Multi Parser とは ・・・ Apache Struts2系に標準で組み込まれているパーサ

 

 ・パーサ とは ・・・ 構文解析

 

<対策>

Apache Struts2のVerUP

・パーサの変更

サーブレットフィルターの実装

 

 ・サーブレットフィルター とは ・・・ 不正な要求を破棄する

 

<確認方法>

 ・Web-inf/lib ディレクトリ配下のStruts2-core-2.x.x.x

 ・パッケージ製品等の場合、ファイルが見つからない場合があるためベンダーへ問い合わせする

 

 ・Jakarta Multpart Parser とは・・・ multipart/form-data形式のリクエストを処理するパーサ

 

 ・multipart/form-data とは ・・・ クライアントがフォームからファイルをアップロードする時、ファイルの情報(ファイルの種類、ヘッダの情報)をサーバ側に知らせる。サーバはファイルの情報を得ることでファイルを扱える。

 

VMwareが乗っ取られる?!Apache Strutsの脆弱性がvCenterServerにあることが判明

おはようございます、ねるです。

仕事が出来る振りをしていたら、

キャパ以上の仕事が来て死んでしまいそうなインフラエンジニアです。

 

今回はVMware 仮想環境の管理者が大変なことになるよって話です。

以前、以下の記事で紹介した通り、

ApacheStrutsには重大な脆弱性があります。

 

nell17world.hatenablog.com

 

その脆弱性VMwareのvCenterServerにもあることが判明してしまいました。

大悲報爆死低まりマウンテンですねこれは。

 

対象のバージョンは6.0と6.5です。

6.5はUpdateを適用すれば脆弱性は解消されます。

ただし、6.0はまだパッチが出ていません。出る時期も未定です。

これに指をくわえて待っていると、その間にVMwareの環境が乗っ取られてしまうかもしれません。

 

ですが皆さん、安心して下さい。

ワークアラウンドがありますよ!

 

今回Apache Struts脆弱性を持った機能がパフォーマンスチャートの機能なのです。

なので例のごとく、そのサービスを停止すればよいのです。

 

vCenterServer Apache Struts脆弱性への対応手順は以下の通りです。

  ①vCenterServerへリモートでログイン。

  ②コマンドプロンプトを開く。

  ③下記のコマンドでパフォーマンスチャートのサービスを止める。

     sc stop vmware-perfcharts

  ④下記のコマンドで再起動時に自動で起動しないようにする。

    sc config vmware-perfcharts start=demand

 

パフォーマンスチャートは見れなくなりますが、DBにデータは貯められているので、PowerCLIなどを使ってパフォーマンスを確認する事は出来ます。

もっとも、セキュリティリスクへの対応と比べたらパフォーマンスチャートなんてどうでもいいですけどね。

 

可及的に速やかに脆弱を潰していきましょう!!!

意外と知らないWindowsのbatファイルで指定した秒数待つ方法

おはようございます、ねるです。

突然ですが、インフラエンジニアでもプログラミングに近いことは出来ないといけないのはご存知ですか?

 

C言語Javaのプログラムは組めるに越した事はないですが、組めなくてもいいです。

ただし、インフラであるOSの標準プログラミング言語(?)であるbatやshellは組めないと業務が出来ないと言っても過言ではありません。

 

ということで、

今回はWindowsのbatファイルで指定した時間だけ待ってから、次の処理を実行したい!という時に役立つ知識を紹介します。

 

と言ってはみたものの、皆さんが知らないマイナーなコマンドを使うわけではありません。

インフラエンジニアなら絶対知ってるPingコマンドをbatに書くだけです。

 

<構文>

ping localhost -n [待ちたい秒数]

 

<例:10秒待ちたい場合>

ping localhost -n 10

 

これだけでは雑なので、解説をします。

pingコマンドは1秒に1回、疎通確認をします。

そしてpingコマンドの宛先をlocalhost、つまりは自分自身にすることで、必ずコマンドを成功させます。

-nはオプションの引数でpingを実行する回数を指定できます。

 

指定したpingを打つ回数 = 待つ秒数

 

となるので、batの中で指定した秒数を待つことが出来るのです!

タイムアウトなどのエラー処理にはとても使いやすいと思いますので、是非使ってみて下さい!