ChiBUG 4th Party on June 30th, 2002
> Apache の話の他に, 昨日になって急に OpenSSH の話も聞こえてきました.
> ので, どんな話かまとめるくらいならできます.
> いちおうどちらも daemon 関係ということでテーマにも合ってるようだし.
- Apache chunked encoding vulnerability
- OpenSSH vulnerability
- DNS resolver vulnerability
§ Apache chunked encoding vulnerability
* chunked encoding とは?
RFC2616: 3.6.1 Chunked Transfer Coding を参照.
> The chunked encoding modifies the body of a message in order to
> transfer it as a series of chunks, each with its own size indicator,
> followed by an OPTIONAL trailer containing entity-header fields. This
> allows dynamically produced content to be transferred along with the
> information necessary for the recipient to verify that it has
> received the full message.
* サーバからの出力に chunked encoding が使われている例
vaio707:yozo {101} telnet localhost 80
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1
HTTP/1.1 400 Bad Request
Date: Sun, 30 Jun 2002 01:56:31 GMT
Server: Apache/1.3.24 (Unix) mod_ssl/2.8.8 OpenSSL/0.9.7-beta1
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
169
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>400 Bad Request</TITLE>
</HEAD><BODY>
<H1>Bad Request</H1>
Your browser sent a request that this server could not understand.<P>
client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /<P>
<HR>
<ADDRESS>Apache/1.3.24 Server at 127.0.0.1 Port 80</ADDRESS>
</BODY></HTML>
0
Connection closed by foreign host.
vaio707:yozo {102}
* Apache の問題とは?
(クライアントから受け取った) chunked encoding データを解釈する部分に
問題があった(サイズが負の値になっているとマズい)。
ISS の advisory では条件式部分に対する簡単なパッチを提示していた.
Apache の httpd プロジェクトでは
chunked encoding データの解釈部分に対するパッチ.
ISS と Apache のチーム間でケンカしてる?
* 対策
- Apache を更新する
- 1.3.26 あるいは 2.0.39 以降をソースからインストール
- パッチ適用
- 「httpd.conf に downgrade-1.0 を追加」は使えるか?
- Apache 以外のものに逃げる
- Web をやめる
* 参考情報
- Apache Security Advisory (UPDATE)
-
http://httpd.apache.org/info/security_bulletin_20020620.txt
- CA-2002-17: Apache Web Server Chunk Handling Vulnerability
-
http://www.cert.org/advisories/CA-2002-17.html
- Apache Web サーバにおける chunk データ処理の脆弱性
-
http://www.ipa.go.jp/security/ciadr/20020619apache.html
- CAN-2002-0392
-
http://cvs.mitre.org/cgi-bin/cvename.cgi?name=CAN-2002-0392
- Apache Web サーバプログラムの脆弱性に関する注意喚起
-
http://www.jpcert.or.jp/at/2002/at020003.txt
- FreeBSD-SN-02:04 security issues in ports
-
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SN-02:04.asc
- NetBSD
-
Recent Changes and NetBSD News Latest Apache Packages Fix Security Issue (19 Jun)
http://www.netbsd.org/Changes/#apache-pkg
- OpenBSD 3.1 errata 005: SECURITY FIX: June 19, 2002
-
http://www.openbsd.org/errata.html#httpd
* exploit code があるの?
apache-scalp.c や apache-nosejob.c など.
http://packetstorm.linuxsecurity.com/ や
BugTraq メイリングリストのアーカイブから見つけましょう
§ OpenSSH vulnerability
* 経緯
6月26日(水)に Theo さんからのアナウンスが各種メイリングリストに流れる.
- OpenSSH 3.3 までのバージョンに remote hole あり
- ISS とともに調査・対応中
- 来週(7月)には ISS からも情報公開されるぞ
- OpenSSH 3.3 の Privilege Separation 機能を使うと
問題の影響を小さくできるのでそれを使え
- portable version 3.3p1 には privilege Separation 機能を使えない
OS も報告されているので, 金曜日に 3.3.1 を出すぞ
- 月曜日には 3.4 を出すぞ
6月27日(木)に ISS Advisory 公開, OpenSSH 3.4 公開
- ISS が exploit code 開発の情報を得た, らしい
- Apache のときと違って今度は ISS と Open{BSD,SSH} チームが協調
- challenge-and-response 認証で response をテキトーにいじるとマズイらしい
OpenBSD のトップページの文句も変更された!!
-
http://www.openbsd.org/cgi-bin/cvsweb/www/index.html.diff?r1=1.379&r2=1.380
-
-Five years without a remote hole in the default install!
+One remote hole in the default install, in nearly 6 years!
* 対策
- OpenSSH 3.4{,p} に更新
- パッチを適用して更新
- sshd.config にて設定
- ChallengeResponseAuthentication no
- PAMAuthenticationViaKbdInt no
- SSH の他の実装に逃げる (lsh とか)
- SSH はやめる(SSL とか IPsec とか?)
* 参考情報
- Revised OpenSSH Security Advisory (adv.iss)
-
http://www.openssh.com/txt/preauth.adv
- CA-2002-18: OpenSSH Vulnerabilities in Challenge Response
-
http://www.cert.org/advisories/CA-2002-18.html
- OpenSSH サーバプログラムの脆弱性に関する注意喚起
-
http://www.jpcert.or.jp/at/2002/at020004.txt
- FreeBSD Security Advisory
-
...
- NetBSD Security Advisory SA-2002-005
-
OpenSSH protocol version 2 challenge-response authentication vulnerability
ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2002-005.txt.asc
- OpenBSD 3.1 errata 006: SECURITY FIX: June 24, 2002
-
http://www.openbsd.org/errata.html#sshd
- psst... (lsh に関する情報はここから)
-
http://www.net.lut.ac.uk/psst/
§ DNS resolver vulnerability
PINE CERT から advisory 公開(6月1日)
BSD(BIND) の resolver コードでは response パケットへの
データの詰め込みかたを考慮していなかった
OpenBSD では
受け取った response パケットを入れた構造体を
頭のアドレスと構造体のサイズで管理
==>
受け取った response パケットを入れた構造体を
頭のアドレスと終りのアドレスで管理
という修正を行なった
(例) src/lib/libc/net/gethostnamadr.c の変更から
static void
-map_v4v6_hostent(hp, bpp, lenp)
+map_v4v6_hostent(hp, bpp, ep)
struct hostent *hp;
char **bpp;
- int *lenp;
+ char *ep;
ISC.ORG からも新バージョン 4.9.9, 8.3.3 公開
(OpenBSD と同様のパッチらしい)
caching サーバを立てて利用し, パケットフィルタリングを行ない,
DNS サーバからの response は必ずそのサーバを経由して受け取ることで,
対策個所を一点に集中させることができる
* 不明な点
- BSD/OS や Mac OS X は?
- GNU glibc も影響あるかも?
- GNU adns は関係なし?
* 対策
- 4.9.9, 8.3.3, 9.2.1 以降に更新して resolver ルーチンを置き換え
- システムにパッチを適用して更新
- DNS を使わないようにする
* 参考情報
- Pine Internet Security Advisory: PINE-CERT-20020601
-
http://www.pine.nl/advisories/pine-cert-20020601.asc
- Internet Software Consortium - BIND
-
http://www.isc.org/products/BIND/
- CA-2002-19: Buffer Overflow in Multiple DNS Resolver Libraries
-
http://www.cert.org/advisories/CA-2002-19.html
- DNS resolver の脆弱性に関する注意喚起
-
http://www.jpcert.or.jp/at/2002/at020005.txt
- FreeBSD-SA-02:28.resolv.asc
-
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:28.resolv.asc
- NetBSD Security Advisory SA-2002-006
-
ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2002-006.txt.asc
- OpenBSD 3.1 errata 007: SECURITY FIX: June 25, 2002
-
http://www.openbsd.org/errata.html#resolver