ChiBUG 4th Party on June 30th, 2002


> Apache の話の他に, 昨日になって急に OpenSSH の話も聞こえてきました.
> ので, どんな話かまとめるくらいならできます.
> いちおうどちらも daemon 関係ということでテーマにも合ってるようだし.
  1. Apache chunked encoding vulnerability
  2. OpenSSH vulnerability
  3. 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 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 さんからのアナウンスが各種メイリングリストに流れる. 6月27日(木)に ISS Advisory 公開, OpenSSH 3.4 公開

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!

* 対策

* 参考情報

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 は必ずそのサーバを経由して受け取ることで, 対策個所を一点に集中させることができる

* 不明な点

* 対策

* 参考情報

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

Yozo TODA (yozo@v007.vaio.ne.jp)