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
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

<TITLE>400 Bad Request</TITLE>
<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>
<ADDRESS>Apache/1.3.24 Server at Port 80</ADDRESS>


Connection closed by foreign host.
vaio707:yozo {102} 

* Apache の問題とは?

(クライアントから受け取った) chunked encoding データを解釈する部分に 問題があった(サイズが負の値になっているとマズい)。

ISS の advisory では条件式部分に対する簡単なパッチを提示していた.

Apache の httpd プロジェクトでは chunked encoding データの解釈部分に対するパッチ.

ISS と Apache のチーム間でケンカしてる?

* 対策

* 参考情報

Apache Security Advisory (UPDATE)
CA-2002-17: Apache Web Server Chunk Handling Vulnerability
Apache Web サーバにおける chunk データ処理の脆弱性
Apache Web サーバプログラムの脆弱性に関する注意喚起
FreeBSD-SN-02:04 security issues in ports
Recent Changes and NetBSD News Latest Apache Packages Fix Security Issue (19 Jun)
OpenBSD 3.1 errata 005: SECURITY FIX: June 19, 2002

* exploit code があるの?

apache-scalp.c や apache-nosejob.c など. や BugTraq メイリングリストのアーカイブから見つけましょう

§ OpenSSH vulnerability

* 経緯

6月26日(水)に Theo さんからのアナウンスが各種メイリングリストに流れる. 6月27日(木)に ISS Advisory 公開, OpenSSH 3.4 公開

OpenBSD のトップページの文句も変更された!!
-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)
CA-2002-18: OpenSSH Vulnerabilities in Challenge Response
OpenSSH サーバプログラムの脆弱性に関する注意喚起
FreeBSD Security Advisory
NetBSD Security Advisory SA-2002-005
OpenSSH protocol version 2 challenge-response authentication vulnerability
OpenBSD 3.1 errata 006: SECURITY FIX: June 24, 2002
psst... (lsh に関する情報はここから)

§ 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
Internet Software Consortium - BIND
CA-2002-19: Buffer Overflow in Multiple DNS Resolver Libraries
DNS resolver の脆弱性に関する注意喚起
NetBSD Security Advisory SA-2002-006
OpenBSD 3.1 errata 007: SECURITY FIX: June 25, 2002

Yozo TODA (