月: 2008年4月

多数のIISがクラックされる

日本ではサウンドハウスがSQLインジェクションによりクレジットカード情報を盗まれた事が記憶に新しいですが、F-Secureによると51万ページ以上のWebページがSQLインジェクションによりクラックされ、ドライブバイ攻撃に利用さているとしています。

IISサイトにはSQLインジェクションに脆弱なサイトが多いと言われていました。
Googleのリサーチでもアダルトサイト以外の一般サイトの方がマルウェアを含む確率が高いとしているのであまり驚くべき数字ではありません。

SQLインジェクションはJavaScirpt/HTMLインジェクションなどと異なり、簡単に防ぐ事が可能な脆弱性です…
# WAFでと言う意味ではなく、プログラムレベルで
# 完全に防げる脆弱性です。

Webサーバは攻撃対象にされる事が多く、昨年秋から数万台のLinux Webサーバがカーネルレベルルートキットに感染しマルウェア配布に利用されていた事例も記憶に新しいです。

有名サイト(ZD Net Asiaなど)に対して検索フォームとSEOと組み合わせた攻撃も記憶に新しいです。

攻撃の自動化もかなり進んでいるので「自分のサイトは大丈夫」と思っていられる状況ではなくなりつつあります。

私のemailアドレスからのメールに注意してください

私のメールアドレスを利用したSPAMメールが大量に送信されているようです。ここ数日大量のFailureメールを受信しています。内容を見れば一目瞭然だと思いますが、ご注意ください。

# あまり洗練されたプログラムではないようです。MLの購読、購読解除
# アドレスにも送っているようで確認、エラーメールが沢山来ています。

Python 2.5.3にリモートコード実行の可能性がある脆弱性

最近CVEのコピー&ペーストが続いていますがこのブログに書いていた予想通りの展開なのでまたコピーです。

コアとはいえあまり重要ではない箇所の脆弱性ですが、Python 2.5.3にリモートコード実行の可能性がある脆弱性がレポートされています。

CVE-2008-1679

Overview

Multiple integer overflows in imageop.c in Python before 2.5.3 allow context-dependent attackers to cause a denial of service (crash) and possibly execute arbitrary code via crafted images that trigger heap-based buffer overflows. NOTE: this issue is due to an incomplete fix for CVE-2007-4965.

Impact

CVSS Severity (version 2.0):
CVSS v2 Base score: 6.8 (Medium) (AV:N/AC:M/Au:N/C:P/I:P/A:P) (legend)
Impact Subscore: 6.4
Exploitability Subscore: 8.6

Access Vector: Network exploitable , Victim must voluntarily interact with attack mechanism
Access Complexity: Medium
Authentication: Not required to exploit
Impact Type: Provides unauthorized access, Allows partial confidentiality, integrity, and availability violation , Allows unauthorized disclosure of information , Allows disruption of service

直したつもりが直っていないのはよくある事です。直したはずだったCVE-2007-4965は以下の通りです。

CVE-2007-4965

Overview

Multiple integer overflows in the imageop module in Python 2.5.1 and earlier allow context-dependent attackers to cause a denial of service (application crash) and possibly obtain sensitive information (memory contents) via crafted arguments to (1) the tovideo method, and unspecified other vectors related to (2) imageop.c, (3) rbgimgmodule.c, and other files, which trigger heap-based buffer overflows.

関連:
Python 2.5.2以下に任意コード実行の脆弱性
GoogleのPython採用と脆弱性情報の関係

Python 2.5.2以下に任意コード実行の脆弱性

CVE登録されているので私がコピー&ペーストするまでもないですが、予想通りにPythonの脆弱性が出てきました。

CVE-2008-1887

Overview

Python 2.5.2 and earlier allows context-dependent attackers to execute arbitrary code via multiple vectors that cause a negative size value to provided to the PyString_FromStringAndSize function, which allocates less memory than expected when assert() is disabled and triggers a buffer overflow.

Impact

CVSS Severity (version 2.0):
CVSS v2 Base score: 7.5 (High) (AV:N/AC:L/Au:N/C:P/I:P/A:P) (legend)
Impact Subscore: 6.4
Exploitability Subscore: 10.0

Access Vector: Network exploitable
Access Complexity: Low
Authentication: Not required to exploit
Impact Type: Provides unauthorized access, Allows partial confidentiality, integrity, and availability violation , Allows unauthorized disclosure of information , Allows disruption of service

こういう脆弱性にはSELinuxが役立ちます。
未知の脆弱性に対してはSELinuxなどが無いと守るのは難しいです。

SELinuxの効用はわざわざ書くほど事ではない、と思っていましたがMACにより未知の脆弱性に対する防御がある程度できる事を正しく理解されていない場合もあるようです。

SELlinuxなどを導入していれば任意コード実行が試みられても、auditログに記録されログ監視システムなどで攻撃を直ぐに検出できる可能性が高くなります。

サーバを守る側は多くのプログラムを安全に保つ事が要求されますが、サーバを攻撃する側はたった一つの致命的脆弱性か攻撃パスを見つければ良いだけです。サッカーのPK戦のゴールキーパーのように守る側の方が圧倒的に不利なゲームです。この不利なゲームを効果的に戦うにはSELinuxなどのフェイルセーフな仕組みが必要不可欠です。

ゴールに全面(任意コマンド実行攻撃の目標全て)に蓋をするくらいの効果はありませんが、ゴール面積の7割くらいに障害物を置くイメージに近いと思います。守りやすさは比べ物にならないです。

Ruby 1.9.0以下のWEBrickにディレクトリ遷移攻撃脆弱性

WEBrick+Windowsでサービスしているところはあまり無いと思いますがファイルを不正に読み取られる可能性があります。

CVE-2008-1891

Overview

Directory traversal vulnerability in WEBrick in Ruby 1.9.0 and earlier, when using NTFS or FAT filesystems, allows remote attackers to read arbitrary CGI files via a trailing (1) + (plus), (2) %2b (encoded plus), (3) . (dot), (4) %2e (encoded dot), or (5) %20 (encoded space) character in the URI, possibly related to the WEBrick::HTTPServlet::FileHandler and WEBrick::HTTPServer.new functionality and the :DocumentRoot option.

Impact

CVSS Severity (version 2.0):
CVSS v2 Base score: 5.0 (Medium) (AV:N/AC:L/Au:N/C:P/I:N/A:N) (legend)
Impact Subscore: 2.9
Exploitability Subscore: 10.0

Access Vector: Network exploitable
Access Complexity: Low
Authentication: Not required to exploit
Impact Type: Allows unauthorized disclosure of information

スペック上は最大2GBのMacBookに4GBのメモリを搭載

追記:OSからも4GB見えていますが、実際に使えるのは2007年前期のMacBookだと3GBまでです。チップセットの制約(945GMチップセットの制約)でアドレス空間が4GBに制限され、I/Oなどに必要なメモリ領域として上位の1GBが割り当てられているからです。4GB物理メモリが載るならアドレス空間は8GBとか16GBにしてほしかった。

去年前半発売のMacBook

MB063J/A MacBook 2.16GHz Core 2 Duo

を使っています。購入と同時にスペック上最大の2GBにして使っていました。しかし、2GBだとParallelsやVmware Fusionを使うと遅くてぎりぎり我慢できる程度でした。メインノートでOSXからWindows Vistaを使うことも頻繁です。4GBにするためだけに新しいMacBookにしようかと本気で考えていたほどでした。

もっと読む

Apple Software Updateが「新しいアプリケーション」の「アップデート」方法を修正

http://www.macrumors.com/2008/04/18/apple-modifies-software-update-for-windows/

に新しいApple Software Updateのスクリーンショットが載っています。インストールもしていないのに、脆弱性が多く発見されている「Safari」(Webブラウザ)を勝手にインストールしてしまう、と非常に評判が悪かったのですがやっと修正したようです。

新しいApple Software Updateでは、インストール済みのアプリケーションのアップデートと新しいアプリケーションが明確に区別できるようになっている事が分かります。

ところで、QuickTimeも脆弱性の塊、と言えるソフトウェアです。全く使っていないユーザも多いと思われます。早くiTunesとQuickTimeの抱き合わせパッケージングも止めるべきだと思いますが、こちらは修正しない可能性が高いです。Safari強制インストールも問題ですが、QuickTimeの抱き合わせ問題も解消してほしいものです。

GoogleのPython採用と脆弱性情報の関係

GoogleがカスタムアプリケーションのホスティングにPythonを採用しました。これにより多くのセキュリティ研究者の研究対象がPythonに向けられ、PHPで報告されていたような問題がセキュリティ脆弱性して多数レポートされるようになるのではないか、と予想していました。

さっそくセキュリティ脆弱性が多く発見されるライブラリの一つであるzlibライブラリにお馴染みの脆弱性が報告されています。

CVE-2008-1721

Integer signedness error in the zlib extension module in Python 2.5.2 and earlier allows remote attackers to execute arbitrary code via a negative signed integer, which triggers insufficient memory allocation and a buffer overflow.

Impact

CVSS Severity (version 2.0):
CVSS v2 Base score: 7.5 (High) (AV:N/AC:L/Au:N/C:P/I:P/A:P) (legend)
Impact Subscore: 6.4
Exploitability Subscore: 10.0

負の整数が指定された場合が考慮されていないので攻略コードを埋め込まれた圧縮ファイルで任意コードが実行できるようです。よくあるタイプの脆弱性です。

しばらくは色々レポートされる事だと思います。

追記:
ところでこの脆弱性は未パッチです。
http://www.python.org/download/
の最新リリースは、現時点(4/14)でも、2/22日リリースされた2.5.2になっています。このページにはパッチへのリンクもありましたが、この脆弱性とは全く関係ないページが表示されていました。コメントにも書きましたが開発者がセキュリティに大きな注意を払っていない事を前提に対策を考える方が良いです。これは何もPythonやPHPに限った事ではありません。

参考
http://www.atmarkit.co.jp/news/200804/08/appengine.html

関連:

「例えば、PHPを避ける」ってなぁにその曖昧な書き方?

LAMPセキュリティを向上させる方法

LAMPのPをPHPからPerl/Python/Rubyに替えるだけではセキュリティは向上しない証拠

誤解を招く記事 – LAMPセキュリティを強化する4つの方法

追記:
予想通りの展開です。任意コード実行の脆弱性のCVEが公開されています。

Python 2.5.2以下に任意コード実行の脆弱性

Python 2.5.3にリモートコード実行の可能性がある脆弱性

スクリプトインジェクション対策の特集 – gihyo.jp

技術評論社でブログっぽい記事を書かせて頂いています。4月3日からスクリプトインジェクション対策で注意すべき項目が掲載されます。一般的なスクリプトインジェクション対策「バリデーションしエスケープする」ではなく、万が一スクリプトインジェクションに脆弱であった場合でも被害を最小限に留める対策、見落とされがちな対策を中心に解説しています。
# 一度に書いた記事なのでどう分割されるか私も分かりません。
# 物によっては2回に分割するかもしれないので20弱くらい
# だと思います。

http://gihyo.jp/dev/serial/01/php-security

から最新の一覧を参照できます。

ご意見やご希望などございましたらこのブログから送って頂いても、メールで送って頂いても歓迎致します。ご興味がある方はご覧ください。
もっと読む

PostgreSQL 8.3の全文検索機能(TSearch2)を日本語で利用する

PostgreSQL 8.3.0から、ユーザから提供されている追加機能(contrib)として利用できた全文検索機能(TSearch2)が本体に取り込まれました。

本体に取り込まれたため、PostgreSQL 8.3.0以降ではソースから構築する場合に

./configure
make
make install

と実行するだけで全文検索機能が利用できるようになりました。
もっと読む