4月 23

Apache Struts 2のClassLoader を外部から操作される脆弱性(CVE-2014-0094)(S2-020)を利用した攻撃検証レポート

【概要】
前回は検証では攻撃者が制御を誘導することが可能であることを確認しました。今回は実際の攻撃を想定し「webshell」が設置できることを確認します。webshellはブラウザからコマンドを入力し、その結果を表示するようなウェブアプリケーションです。

【影響を受ける可能性があるシステム】

– Apache Struts 2.0.0 –  2.3.16

【対策案】
Apache Software Foundationから本脆弱性を修正されたバージョン「Apache Struts 2.3.16.1」がリリースされております。当該脆弱性が修正された修正プログラムを適用していただくことを推奨いたします。

なお、上記の「Apache Struts 2.3.16.1」では、回避策(Workaround)として記述のあるとおりに初期設定が変更になっております。そのため、緊急のバージョンアップが難しい場合は回避策を実施いただくことを推奨いたします。

【参考サイト】
CVE-2014-0094

Apache Struts 2 Documentation S2-020

Apache Struts2 の脆弱性対策について(CVE-2014-0094)(S2-020)

【検証イメージ】

S2-020-webshell

【検証ターゲットシステム】

Debian 6.0.7 上のApache Tomcat 8.0.3、Apache Struts 2.3.14を利用したWebアプリケーション

【検証概要】
脆弱性の存在するターゲットシステムへ、細工したHTTPリクエストを送信し、webshellプログラムをダウンロードさせ、ダウンロードさせたwebshellから任意のコマンドを実行し情報を取得するというものです。

これにより、リモートからターゲットシステムの操作が可能となります。

【検証結果】
はじめに、攻撃者がwebshellを置いたサーバにアクセスしてみます。設置するwebshellが置いてあります。

S2-020_p1

また、ターゲットシステム上にwebshellが存在しないことを確認します。

S2-020_p2

続いて、ターゲットシステムにwebshellをダウンロードさせるリクエストを送ります。すると、ターゲットシステム上にwebshellがダウンロードされます。

S2-020_p3

さらにターゲットシステムで任意のコマンドを実行してみます。「id」「pwd」「cat /etc/passwd」を実行しています。

S2-020_p4

S2-020_p5

S2-020_p6

このように、前回と異なり、webshellを一度設置するといつでも操作が可能となります。

【考察】
脆弱性への根本的な対策としては、バージョンアップを行うこととなります。
しかし、バージョンアップを行う前に攻撃されてしまうことも考えられるため、今回の例において攻撃された際に被害を最小化するためにはどのようなことを行っておけばよいかを考えてみました。

項目としては以下の4つです。

  1. アプリケーションサーバの実行ユーザの権限を最小化する
  2. 不要なソフトウェアをインストールしない
  3. アプリケーションサーバからの外部への通信を制限する
  4. サーバ上のファイルの改ざんや追加を検知する

 

1. アプリケーションサーバの実行ユーザの権限を最小化する について。

今回の検証ターゲットはアプリケーションサーバ(Tomcat)の実行権限をtomcatユーザとしています。
言い換えると、管理者(root)のみが実行できるコマンドや、操作できるファイルについては攻撃者が実行、読み取りをすることができません。つまり、攻撃に成功した場合でもこの脆弱性単体では全権を奪取されることはないとないと言えます。(Tomcatを動作させている権限が管理者ユーザである場合は、この限りではありません。)
この実行ユーザの権限に関して、脆弱性の利用方法の特徴を捉え、それに応じた厳密な権限の制御を行うことで有効な対策を行えると考えれます。
今回の脆弱性を利用した攻撃は、公開ディレクトリにファイルを生成する必要があります。つまり、攻撃に利用するためのファイルを生成させないよう、Webの公開ディレクトリにはtomcatユーザで書き込みを行わせないということが運用上可能であれば、これは有効な対策の1つだと考えられます。

2. 不要なソフトウェアをインストールしない について。

今回の検証では、webshellをダウンロードする際、wgetコマンドを呼び出しています。wgetは外部からファイルをダウンロードする際に便利で、よく利用されるコマンドの1つです。しかし、これは同時に、攻撃者にとっても便利なツールであることを意味しています。まずは、これらのツールがサーバ上で利用する必要があるのか否かという点から考える必要があります。
必要な場合は、最低限のユーザにのみ利用を許可するという運用が望ましいと考えられます。
今回の場合に当てはめると、管理者ユーザにはwgetの利用を許可するが、tomcatユーザには利用を許可しないといったことが有効な対策の1つであると考えられます。

3. アプリケーションサーバからの外部への通信を制限する について。

今回の検証では同一セグメントからファイルをダウンロードさせていますが、実際の攻撃ではインターネット上からwebshellをダウンロードさせることになります。その際、アプリケーションサーバから直接外部に接続するアクセス先を制限していればwebshellのダウンロードは実施できないと考えられます。たとえば、パッケージや修正プログラムのダウンロード先や、サービス提供に必要なアクセス先のみにアウトバウンド通信を制限しておくといったことが有効な対策の1つであると考えられます。

4. サーバ上のファイルの改ざんや追加を検知する について

今回の検証では、いったんターゲットシステム上に任意のコードを実行するためにファイルを保存する必要があります。「アプリケーションサーバの実行ユーザの権限を最小化する」でふれたように、公開ディレクトリの書き込みを行わない設定にしていれば任意のコードを実行させることはできません。しかし、アプリケーションサ ーバのログファイルは書き込み権限があるため、ログの改ざん余計なファイルを作成されることは考えられます。
このような場合に有効だと考えられるのが、ファイルの改ざんが追加を検知することです。コストが高い大がかりなものから、cron機能を利用した簡単な仕組みまでいろいろな方法が考えられます。

以上は、ほんの一例であり、他にも対策はあると考えられます。また、これさえ実施しておけば完璧!というわけではありません。しかしながら、今回のような攻撃が成功しにくくなったり被害が抑えられる効果はあると考えます。

また、今回あげたような対策は「やって当たり前」と考える方もいるかもしれません。一方で、まったく実施されていないシステムもまだまだあると考えられます。一つの脆弱性をきっかけに現在運用しているシステムについて、最新のバージョンへのアップデート以外にもどのような対策が可能か今一度検討されてみるのはいかがでしょうか。

reported by oda, ntsuji

Category: exploit | Apache Struts 2のClassLoader を外部から操作される脆弱性(CVE-2014-0094)(S2-020)を利用した攻撃検証レポート はコメントを受け付けていません。
4月 21

Apache Struts 2のClassLoader を外部から操作される脆弱性(CVE-2014-0094)(S2-020)に関する検証レポート

【概要】
Apache Struts 2に、ClassLoader を外部から操作される脆弱性(CVE-2014-0094)(S2-020)が発見されました。
この脆弱性は、細工したHTTPリクエストを送信することで外部からClassLoaderの属性を変更することが可能となります。
攻撃者は、細工したHTTPリクエストを送信することでClassLoaderの属性を変更します。属性を変更されることによりウェブアプリケーションサーバを実行しているユーザの権限で任意のファイルを改ざんすることやJavaコードを実行される危険性があります。

本レポート作成(2014年4月19日)時点において、Apache Software Foundationから脆弱性に対応したバージョンがリリースされております。しかし、攻撃方法が公開され、その方法は、容易に実行可能であり脆弱性を利用された場合の影響が大きいことから本レポートを公開いたしました。

【影響を受ける可能性があるシステム】
– Apache Struts 2.0.0 –  2.3.16

【対策案】
Apache Software Foundationから本脆弱性を修正されたバージョン「Apache Struts 2.3.16.1」がリリースされております。当該脆弱性が修正された修正プログラムを適用していただくことを推奨いたします。

なお、上記の「Apache Struts 2.3.16.1」では、回避策(Workaround)として記述のあるとおりに初期設定が変更になっております。そのため、緊急のバージョンアップが難しい場合は回避策を実施いただくことを推奨いたします。

2014年4月23日追記:

三井物産セキュアディレクション社から2.3.16.1に対して修正が不十分であり、脆弱性が存在しているとの指摘があります。また、ビットフォレスト社の「WAF Tech Blog 」でも、これまでの対策を含めて対策方法について指摘がなされています。アップデートだけでは対策が不十分な恐れがあります。

【参考サイト】
CVE-2014-0094

Apache Struts 2 Documentation S2-020

Apache Struts2 の脆弱性対策について(CVE-2014-0094)(S2-020)

2014年4月23日追記:

Apache Struts2(2.3.16、S2-020の修正版)に対するゼロディを弊社エンジニアが発見いたしました。

例えば、Strutsを避ける

【検証イメージ】

【検証ターゲットシステム】
Debian 6.0.7 上のApache Tomcat 8.0.3、Apache Struts 2.3.14を利用したWebアプリケーション

【検証概要】
脆弱性の存在するターゲットPCへ、細工したHTTPリクエストを送信し、任意のサーバの任意のポートにコネクトバックさせるプログラムをJavaコードから実行し、その結果、シェルを奪取するというものです。

これにより、リモートからターゲットPCの操作が可能となります。

【検証結果】
下図は、攻撃後の誘導先のコンピュータ(Windows 7)の画面です。赤線で囲まれている部分は、誘導先のコンピュータのホスト情報です。一方、黄線で囲まれている部分は、ターゲットPC(Linux)において、コマンドを実行した結果が表示されています。これにより、ターゲットPCの制御を奪うことに成功しました。

reported by oda, ntsuji

Category: exploit | Apache Struts 2のClassLoader を外部から操作される脆弱性(CVE-2014-0094)(S2-020)に関する検証レポート はコメントを受け付けていません。
4月 17

Internet Explorerの脆弱性により、任意のコードが実行される脆弱性(CVE-2014-0322)に関する検証レポート

【概要】
Microsoft Internet Explorerに、リモートより任意のコードが実行される脆弱性(CVE-2014-0322)が発見されました。この脆弱性は、日本国内でも悪用された事例があります。
この脆弱性は、CMarkupコンポーネントの処理に不備が存在しており、解放済みメモリ使用の問題が発生することです。これにより、攻撃者は任意のコードをメモリへ上書きし、実行させることが可能となります。

攻撃者は、細工されたWebサイトを利用者に訪問させることにより、リモートからInternet Explorerを実行する利用者のユーザ権限で任意のコードを実行できる危険性があります。攻撃者は、ブラウザ経由で細工されたWebサイトにユーザを誘導することや、細工されたWebサイトへのリンクを添付した電子メールを送信し、攻撃対象ユーザにファイルを開かせることで、ログオンしているユーザと同じ権限を奪取される危険性があります。

本レポート作成(2014年4月17日)時点において、Microsoft社より2014年3月12日に脆弱性の修正プログラムがリリースされております。しかしながら、攻撃を成立させるためのコードが容易に入手可能であり、かつ脆弱性に対する攻撃が容易であること、また攻撃を受けた際にシステムへの影響が大きいことから、今回、この脆弱性(CVE-2014-0322)の再現性について検証を行いました。

【影響を受ける可能性があるシステム】
■Internet Explorer 9
– Windows Vista Service Pack 2
– Windows Vista x64 Edition Service Pack 2
– Windows Server 2008 for 32-bit Systems Service Pack 2
– Windows Server 2008 for x64-based Systems Service Pack 2
– Windows 7 for 32-bit Systems Service Pack 1
– Windows 7 for x64-based Systems Service Pack 1
– Windows Server 2008 R2 for x64-based Systems Service Pack 1

■Internet Explorer 10
– Windows 7 for 32-bit Systems Service Pack 1
– Windows 7 for x64-based Systems Service Pack 1
– Windows Server 2008 R2 for x64-based Systems Service Pack 1
– Windows 8 for 32-bit Systems
– Windows 8 for 64-bit Systems
– Windows Server 2012
– Windows RT

【対策案】
Microsoft社より、この脆弱性を修正するプログラム(MS14-012)がリリースされています。
当該脆弱性が修正された修正プログラムを適用していただくことを推奨いたします。

【参考サイト】
CVE-2014-0322

マイクロソフト セキュリティ情報 MS14-012 – 緊急
Internet Explorer 用の累積的なセキュリティ更新プログラム

「はとバス」「ヤマレコ」のサイト改ざん、IEへのゼロデイ攻撃を仕込まれていた可能性

【検証イメージ】
P06_connectback

【検証ターゲットシステム】
Windows 7 SP1+Internet Explorer 10

【検証概要】
脆弱性の存在するターゲットPCより、攻撃者が作成した細工された応答を返すサーバにアクセスすることで脆弱性を利用した攻撃を行い、任意のサーバの任意のポートにコネクトバックさせ、結果、シェルを奪取するというものです。
これにより、リモートからターゲットPCの操作が可能となります。

【検証結果】
下図は、攻撃後の誘導先のコンピュータ(MacOS X)の画面です。黄線で囲まれている部分は、誘導先のコンピュータのホスト情報です。一方、赤線で囲まれている部分は、ターゲットPC(Windows 7)において、コマンドを実行した結果が表示されています。
これにより、ターゲットPCの制御を奪うことに成功しました。

P06_cve-2014-0322

reported by y.izumita, ntsuji

Category: exploit | Internet Explorerの脆弱性により、任意のコードが実行される脆弱性(CVE-2014-0322)に関する検証レポート はコメントを受け付けていません。
4月 10

Microsoft Word および Office Web Apps のrtfファイル処理の不備により、 任意のコードが実行される脆弱性(CVE-2014-1761)に関する検証レポート

 

【概要】
Microsoft Word および Office Web Apps に、rtfファイルの処理の不備により、リモートより任意のコードが実行される脆弱性(CVE-2014-1761)が発見されました。
この脆弱性は、Microsoft Wordが特別に細工されたrtfファイルを処理する際に、メモリ内の値を正しく処理しないために発生します。

*rtf(Rich Text Format):
文書ファイル形式のひとつで、文字の色や大きさ、レイアウトが保存され、比較的簡易なワープロソフトのデータとして定義されている。

攻撃者がこの脆弱性を利用した場合、実行時のユーザ権限にて任意のコードが実行可能です。
システムメモリが破損する可能性もあり、ユーザが管理者権限であれば、システムの完全な掌握が可能となります。

攻撃者は、細工したrtfファイルが含まれるWebサイトに、攻撃対象ユーザーを誘導し、rtfファイルを開かせたり、細工したrtfファイルを添付した電子メールを送信し、攻撃対象ユーザにファイルを開かせるか、プレビュー表示させることにより、この脆弱性を利用した攻撃が可能となります。
また、Microsoft Wordは、Outlook 2007、Outlook 2010、Outlook 2013の初期設定において、電子メールビューアとなっているため、注意が必要です。

今回、Microsoft Word および Office Web Apps のrtfファイル処理の不備により、任意のコードが実行される脆弱性(CVE-2014-1761)の再現性について検証を行いました。

【影響を受ける可能性があるシステム】
– Microsoft Office 2003 Service Pack 3
– Microsoft Office 2007 Service Pack 3
– Microsoft Office 2010 Service Pack 1 (32 ビット版)
– Microsoft Office 2010 Service Pack 2 (32 ビット版)
– Microsoft Office 2010 Service Pack 1 (64 ビット版)
– Microsoft Office 2010 Service Pack 2 (64 ビット版)
– Microsoft Office 2013 (32 ビット版)
– Microsoft Office 2013 Service Pack 1 (32 ビット版)
– Microsoft Office 2013 (64 ビット版)
– Microsoft Office 2013 Service Pack 1 (64 ビット版)
– Microsoft Office 2013 RT
– Microsoft Office 2013 RT Service Pack 1
– Microsoft Office for Mac 2011
– Microsoft Word Viewer
– Microsoft Office 互換機能パック Service Pack 3
– Microsoft SharePoint Server 2010 Service Pack 1
– Microsoft SharePoint Server 2010 Service Pack 2
– Microsoft SharePoint Server 2013
– Microsoft SharePoint Server 2013 Service Pack 1
– Microsoft Office Web Apps 2010 Service Pack 1
– Microsoft Office Web Apps 2010 Service Pack 2
– Microsoft Office Web Apps 2013
– Microsoft Office Web Apps 2013 Service Pack 1

【対策案】
Microsoft社より、この脆弱性を修正するプログラム(MS14-017)がリリースされています。
当該脆弱性が修正された修正プログラムを適用していただくことを推奨いたします。

また、修正プログラムを適用しない場合の回避策として、以下の方法が提供されています。
・Fix itを適用する
・EMETをインストールする
・rtfファイル開封の無効化設定をする

【参考サイト】
マイクロソフト セキュリティ情報 MS14-017 – 緊急 : Microsoft Word および Office Web Apps の脆弱性により、リモートでコードが実行される (2949660)
CVE-2014-1761
JVNDB-2014-001794 – JVN iPedia – 脆弱性対策情報データベース
セキュリティ アドバイザリ 2953095「Microsoft Word の脆弱性により、リモートでコードが実行される」を公開 – 日本のセキュリティチーム – Site Home – TechNet Blogs

【検証イメージ】
画像元

 

 

 

 

 

 

【検証ターゲットシステム】
Windows 7 SP1 英語版
Office Professional Plus 2010 英語版 SP2

*2014/4/11追記:以下の環境にて、攻撃コードの実行が可能であること確認しました。
Windows7 SP1 日本語版
Office Professional Plus 2010 日本語版 SP2

【検証概要】
攻撃者は、自らが落成したrtfファイルをターゲットPCにて開かせます。ターゲットPCは意図せず、任意のサーバのポートにコネクトバックされ、攻撃者は、ターゲットPCのシェルを奪取するというものです。
これにより、リモートからターゲットPCの操作が可能となります。

【検証結果】
下図は、攻撃後の誘導先のコンピュータ(Linux)のターミナルの画面です。
赤線で囲まれている部分は、誘導先のコンピュータのホスト情報です。一方、黄線で囲まれている部分は、ターゲットPC(Windows7)において、コマンドを実行した結果が表示されています。
これにより、ターゲットPCの制御を奪うことに成功しました。

attack01_jp_final

reported by nao323, ntsuji

Category: exploit | Microsoft Word および Office Web Apps のrtfファイル処理の不備により、 任意のコードが実行される脆弱性(CVE-2014-1761)に関する検証レポート はコメントを受け付けていません。
4月 1

Windows XP を使い続けるために必要なモノ

m0728

Windows XP が2014年4月9日でサポートが終了しますね。

ボクのところにも知人から
「XPを使っているんだけど使い続けるには何に気をつければいい?」
という質問が寄せられています。

ということでWindows XPを使い続けるために必要なモノを考えてみました。
と言っても気をつけることって修正プログラムがリリースされなくなる以上
サポートが終了する前から気をつけていたこと以上に気をつけられることってないと思います。
アンチウイルスソフトのパターンを最新に保って、EMET(Enhanced Mitigation Experience Toolkit)をインストールするくらいです。

アンチウイルスソフトのパターンファイルを最新に保っても
100%検知してブロックすることは不可能というのは既に周知の事実ですよね。
先日こんなニュースもありました。

新型マルウェア、54%は対策ソフトで検知できず――NTTグループが分析

EMETをインストール(インストール可なのはSP3以降)したとしても機能としては
Windows 7以降にインストールするのとは歴然と差があります。
平たく言うと、XP + EMET と 新しいWindows OS + EMETとを比較するした場合、前者のほうが防御機能を回避できる余地が多分にあると言えます。
これから発見されるであろう脆弱性への攻撃を緩和することが満足にできないわけです。

Windows XPをこれからも今まで通り使い続けることは
ちょっと例えは悪いかもしれませんが
健康保険を持たずに生活することに近いと思います。

いくら病気にならないように健康的な生活を心がけても人間は病気になってしまいます。
健康保険がなければ気が遠くなるような金額を支払うことになる可能性もあります。
実費を支払うことにためらいを感じて、病院に行かず騙し騙し生活をしていたら
取り返しのつかない状態になり、最悪の場合死んでしまいます。

これをコンピュータで言うとマルウェア(ウイルス)に感染し、データが破壊されたり
盗み出されたりするということになります。

選択としては
サポートが切れる前、最悪、切れて間もなくにサポートが継続しているOS(Windows以外という選択肢もあるでしょう。パソコンを捨て、タブレットなどにするという選択肢もあると思います。)に乗り換えるための
手間とお金といったリソースを先にかける。
それを惜しんで、被害にあったときに前者の選択よりもリソースをかけるか。
の二択となります。
もちろん、後者の選択肢を選んだ場合は、どんなにお金や手間をかけても補えない可能性はあります。
例えで言った「死」が待っているかもしれません。

とはいえそういったことが必ず起きるとは言い切れません。
Windows XPを使い続けたからといって100%大変なことになるとは言い切れません。
だから、難しいんですね。大小様々な理由から乗り換えられない方は沢山いらっしゃることかと思います。

今、お金と手間をかけるか
何かあったときにお金と手間をかけるかです。
繰り返しになりますが後者は取り返しがつかない可能性付です。

Windows XPを使い続けるために必要なモノは
上記事実を踏まえた上での「覚悟」なのだと思います。

後悔先に立たずです。

P.S.
おまけにボクがXPから乗り換えた理由を書いておきます。
XPが動作しているコンピュータは基本的に遅いです。
もちろん、セキュリティ面のこともありますが、業務効率が極端に落ちます。
それに耐えられないと判断したからです。

Category: 未分類 | Windows XP を使い続けるために必要なモノ はコメントを受け付けていません。