Archives for: 2008年August
Fedoraプロジェクトがクラックされた原因 - RedHat系ユーザは早急に対応が必要
August 23rd, 2008追記:斜め読みで勘違いしていた部分を修正しました。RHのSSHのパッケージが全部更新されていたのでここに脆弱性があったと読んでいました。
8/22リリースされたエラータです。
Last week Red Hat detected an intrusion on certain of its computer systems and took immediate action. While the investigation into the intrusion is on-going, our initial focus was to review and test the distribution channel we use with our customers, Red Hat Network (RHN) and its associated security measures. Based on these efforts, we remain highly confident that our systems and processes prevented the intrusion from compromising RHN or the content distributed via RHN and accordingly believe that customers who keep their systems updated using Red Hat Network are not at risk.
http://rhn.redhat.com/errata/RHSA-2008-0855.html
先週Fedoraプロジェクトがクラックされ、SSHパッケージが改ざんたようです。改ざんされたパッケージはSSHパッケージのみようです。
早急に対策が必要です。直ぐに対応できない場合、とりあえずsshを止めてしまうのが良いです。
サインされたパッケージが改ざんされるのは最悪の自体です。こういう場合のリスクを低減させるにはポートノッキングを実装するとよいでしょう。
Webサーバが稼働しているなら、CGIを利用してWebによるポートノッキングを簡単に実装できます。
/etc/init.d/sshd start
sleep 30
/etc/init.d/sshd stop
を実行すれば良いだけです。ほとんど何も入っていないセキュアなWebサーバでもshellは入っているはずです。suidしなければならないので余計な事はあまり考えず、認証を使いたい場合はHTTP認証を使った方が良いと思います。
(30秒以内にログインしないとなりません。短すぎる場合は60秒でも良いでしょう。sshdが止まっても接続済みのセッションは継続して利用できます)
何らかの理由で誤ってsshdが動作したままにならないよう、cronでsshdを停止するようにしておくと良いです。
参考:
Infrastructure report, 2008-08-22 UTC 1200
https://www.redhat.com/archives/fedora-announce-list/2008-August/msg00012.html
OpenSSH blacklist script
http://www.redhat.com/security/data/openssh-blacklist.html
Red Hat (belatedly) confirms security breach
http://blogs.zdnet.com/security/?p=1784
CESA-2008:0855 Critical CentOS 5 i386 openssh Update
http://lists.centos.org/pipermail/centos-announce/2008-August/015194.html
CESA-2008:0855 Critical CentOS 5 x86_64 openssh Update
http://lists.centos.org/pipermail/centos-announce/2008-August/015193.html
Tomcatの管理者は大忙し?
August 22nd, 2008http://www.milw0rm.com/exploits/6229
などはまだいいですが
http://www.0x000000.com/?i=630
こういうのは、本当に使ってしまう輩がいそうで怖いです。
どうしても直ぐにバージョンアップできない場合、WAFは役に立ちます。今回の場合、
でも十分です。そう言えば、直ぐに使えるPoCを公開している
は簡易WAFも紹介していたサイトです。簡易WAFを使いましょう、と言いたいのかも知れません。
ホワイトリストとブラックリスト - Proactiveセキュリティ対策 vs. Reactiveセキュリティ対策
August 21st, 2008「プログラミングはホワイトリスティングが基本」にブラックリストもホワイトリストもどちらも同じ事を言っていて違いが分からない、とコメントを頂きました。
http://pfrb.blog114.fc2.com/blog-entry-5.html
ホワイトリストとブラックリストは単純な場合は分かりやすいコンセプトですが、ちょっと複雑になると分かりやすいようで境界が分かり辛いコンセプトです。
メールのホワイトリストとブラックリスト
メールを例にホワイトリストとブラックリストの違いと境界の分かり辛さを解説します。
プログラミングではホワイトリスティングが基本
August 20th, 2008「ホワイトリスト方式の優位は神話」と題するエントリに私のブログホワイトリストはどう作る? が引用されている事を教えていただきました。
誤解されないように書こうとすると、どうしても長文になります。暇な方だけお付き合いください。
PHPのSessionモジュールの脆弱性
August 20th, 2008たまたま目に止まったブログがあるので紹介します。
PHP:session_set_save_handlerリファレンスマニュアルのサンプルにパス・トラバーサル脆弱性
http://www.tokumaru.org/d/20080818.html#p01
[php]session_set_save_handlerのパストラバーサルで任意コマンドの実行が可能
http://www.tokumaru.org/d/20080819.html#p01
この危険性はStrict Sessionパッチが作られた頃にも議論されていました。このパッチを摘要するとセッションアダプション脆弱性も修正します。もし、互換性なので要件で厳格なSession管理ができない場合でもセッションIDに利用可能な文字は安全な文字のみに限定されるのでパストラバーサルなどの問題は発生しません。
話は横道にそれますが、セッションアダプションの問題については、PHP 4.4.9リリース前にPHP Security Response Teamと議論しました。リリースノートを見れば解りますが、残念ながら良い結果ではありませんでした。いくつかの脆弱性をレポートしましたが、その内の一部の脆弱性のみに対応しただけです。これについては時間が出来次第エントリを書きます。
話を戻しますが、セッションモジュールの問題は随分前(何年も前)に議論されており、開発者のスタンスとしては「ユーザ側の問題」「ファイルストレージがあるのに態々自分作って自分の足を打つようなユーザが問題」「RDBMSをストレージに使ってエスケープしないでSQLインジェクションされるのと同じ」といった結論になってしまったと記憶しています。
セッションアダプションの問題を解決すれば、パストラバーサルの問題もSQLインジェクション問題も解決するのですが...
セッションアダプション脆弱性はリスクが不当に低く評価され過ぎです。PHPを利用されている方全てにStrict Sessionパッチをお勧めします。
Pythonの脆弱性
August 8th, 2008Googleがクラウドコンピューティングの言語としてPythonを採用したのでセキュリティ研究家が脆弱性を調査し、今年はPythonの脆弱性が多く報告されるはず、とこのブログで予想しています。また新たな脆弱性が報告されているので書いておきます。
今回は整数オーバーフローが多いので、整数オーバーフローを中心に調査したのだと思われます。
Python 2.5.3以上でないと穴だらけと言えますが....
と言った状況のようです。
しかし、予想通りとはいえ数が多いですね。
CVE-2008-3144
Multiple integer overflows in the PyOS_vsnprintf function in Python/mysnprintf.c in Python 2.5.2 and earlier allow context-dependent attackers to cause a denial of service (memory corruption) or have unspecified other impact via crafted input to string formatting operations. NOTE: the handling of certain integer values is also affected by related integer underflows and an off-by-one error.
CVE-2008-3143
Multiple integer overflows in Python before 2.5.2 might allow context-dependent attackers to have an unknown impact via vectors related to (1) Include/pymem.h; (2) _csv.c, (3) _struct.c, (4) arraymodule.c, (5) audioop.c, (6) binascii.c, (7) cPickle.c, (8) cStringIO.c, (9) cjkcodecs/multibytecodec.c, (10) datetimemodule.c, (11) md5.c, (12) rgbimgmodule.c, and (13) stropmodule.c in Modules/; (14) bufferobject.c, (15) listobject.c, and (16) obmalloc.c in Objects/; (17) Parser/node.c; and (18) as...
CVE-2008-3142
Multiple buffer overflows in Python 2.5.2 and earlier on 32bit platforms allow context-dependent attackers to cause a denial of service (crash) or have unspecified other impact via a long string that leads to incorrect memory allocation during Unicode string processing, related to the unicode_resize function and the PyMem_RESIZE macro.
CVE-2008-2316
Integer overflow in _hashopenssl.c in the hashlib module in Python 2.5.2 and earlier might allow context-dependent attackers to defeat cryptographic digests, related to "partial hashlib hashing of data exceeding 4GB."
CVE-2008-2315
Multiple integer overflows in Python 2.5.2 and earlier allow context-dependent attackers to have an unknown impact via vectors related to the (1) stringobject, (2) unicodeobject, (3) bufferobject, (4) longobject, (5) tupleobject, (6) stropmodule, (7) gcmodule, and (8) mmapmodule modules.
未修正のPHP脆弱性を募集
August 6th, 2008PHP4のサポート終了に伴い、幾つかの未修正のセキュリティホールについてPHP Security Response Teamとやり取りしています。
ついでなので出来る限り多くの脆弱性が修正されるようにしたいと考えています。PHP4.4.8, PHP 5.2.6で未修正の脆弱性やセキュリティ上の問題をご存知の方は是非教えて下さい。
現時点はどの脆弱性をレポートしているのか書けませんが、もしPHP本体やモジュールで修正されていない脆弱性をご存知の方は教えて頂けると助かります。メールやこのブログのコメント、このブログのContactページ等からご連絡ください。
結果については後日このブログにて公開します。


