웹마스터 팁

### 리눅스 커널(kernel)에 심각한 보안 결함 발견 ###

2.4.23을 제외한 모든 리눅스 커널(2.4.22 포함)에 심각한 보안 결함이
발견되어 일반유저가 root 권한을 획득할 수 있는 취약성이 발견되었습니다.
이 취약성을 통해 얼마전 debian project 관련 서버가 해킹을 당하였는데,
이는 일반유저인 한 개발자의 id 로 로그인 후 상위 권한(uid 0 ) 을 획득하였다고 합니다.
이 공격코드에 대해 자세히 알려지지는 않았지만 알려진 바로는
대략 다음과 같습니다.

* 본 취약성은 do_brk() 함수에서 발생하는데, 이 함수는 프로세스의 메모리
  heap 을 관리하는 역할을 하며 만약 "ulimit -d" 로 일반유저의 data segment size 를
  제한할 경우 임시 방편이 될 수 있는 것으로 알려져 있습니다.
  그러나, 다른 몇 가지 방식으로도 공격이 가능하므로 근본적으로는
  2.4.23 으로 업그레이드 할 것을 권장합니다.
* 이미 underground 에서는 공격코드가 일부 공유되었다고 합니다.
   따라서 public 으로 공개되는 것은 시간문제일 것입니다.
* intel 기반의 H/W 인 경우만 본 취약성에 영향을 받으며
   Sun H/W 는 영향을 받지 않는다고 알려져 있습니다.
* Grsecurity 등을 설치하였을 경우에도 영향을 받는다고 알려져 있습니다.
* 커널의 취약성이므로 본 취약성은 배포판에 관계없습니다.  

본 취약성에 대해서는 아래의 URL 을 참고하시기 바랍니다.

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0961
http://rhn.redhat.com/errata/RHSA-2003-392.html
http://www.zdnet.com.au/newstech/security/story/0,2000048600,20281486,00.htm
http://www.securitytracker.com/alerts/2003/Dec/1008343.html



### bind 8.x 의 negative cache poisoning 취약성 발견 ###

bind 8.x 버전에서 악의적인 공격자가 DNS 서버에 negative cache poisoning 이
가능함으로써 특정 도메인에 대한 잘못된 Cache 정보를 전달하여 DoS 공격을
수행할 수 있습니다.
이에 대해 bind 8.3.x 사용자는 8.3.7 로, bind 8.4.x 사용자는 8.4.3 으로
업그레이드하실 것을 권장합니다.

예) named 버전정보 확인방법.
# named -v
BIND 9.2.1

[참고] cache poisoning 공격에 대응하기 위해

(1) cache poisoning 공격이 쉬운 것은 아니지만 그렇다고 불가능한 것은 아닙니다.
실제로 bind 4.x 는 말할 것도 없고 bind 8.x 버전에서는 negative 뿐만 아니라
positive cache poisoning 공격도 가능하며 공격툴도 공개되어 있습니다.
(2) bind 8.x 가 bind 9.x에 비해 cache poisoning 에 취약하다고 할 수 있는 근거는
cache poisoning 공격의 원리를 이해하면 알 수 있습니다.
cache poisoning 을 위해서는 source ip / source port /transaction id 만 위조하면
되는데,  앞의 두개는 쉽게 위조 가능하며 transaction id 도 16비트(1-65535까지)이므로
bind 8.x 의 경우 순차적으로 변화하는 특성을 이용하면 쉽게 추측가능하다는 것입니다.
bind 9.x 의 경우 애초부터 보안을 고려하여 design 되었고, 또한 transaction id 가
random 하게 변화하므로, cache poisoning 이 매우 어렵습니다.
또한 bind 의 대안으로 개발중인 djbdns 의 경우  transaction id 뿐만 아니라
source port 도 random 하게 변화하므로 cache poisoning 이 가장 어려운 것으로 알려져 있습니다.
그러나 몇가지 표준을 따르지 않는 문제가 있으므로 bind 9.x 로 사용하실 것을 권장합니다.
(3) cahce poisoning 은 원리상 recursion(순환질의)이 허용된 서버에서만
공격할 수 있습니다. 따라서 recursion 을 허용할 필요가 없다면
ip 대역을 엄격하게 제한하실 것을 권장합니다. 아래의 경우 recursion 을 허용할 ip로
100.100.100.100 및 192.168.1.0/24 대역으로 제한한 예입니다.

options {
        allow-recursion {100.100.100.100; 192.168.1.0/24; };
};

IP 대신 TSIG(Transaction SIGnatures)를 이용하여 인증할 수도 있습니다.  

아예, recursion 을  허용할 필요가 없다면 아래와 같이 차단하는 것이 좋습니다.

options {
        allow-recursion {none;};
};

또는,  
options {
         recursion no;
};

본 취약성에 대해서는 아래의 URL을 참고하시기 바랍니다.

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0914
http://www.kb.cert.org/vuls/id/734644

기타 관련뉴스 http://news.kbench.com/?no=23033&priority=1&category=61
제목 글쓴이 날짜
apache_2.0.47 + php-4.3.3 + mysql-4.0.16 + zb41pl4 의 windows xp 설치 [3] 기산 2003.10.28
.htaccess .htpasswd 파일 등을 윈도우에서 만들어서 리눅스에 올려보자. [4] &zeo 2003.10.28
포트 스캐닝 감시 및 OS 정보 숨기기 [3] 좋은진호 2003.10.30
Linux 에서 Mysql 설치법 [4] 화니 2003.10.31
윈도우에 세팅한 서버에 설치된 phpmyadmin 에 인증걸기 [3] 피카추삼겹살 2003.11.05
[C급]Internet Explorer 다중 취약점 ATpple.com 2003.11.12
[C급]Buffer Overrun in the Workstation 취약성 통한 코드 실행 ATpple.com 2003.11.12
[C급]FrontPage Server Extensions 취약점으로 인한 임의코드 실행문제 ATpple.com 2003.11.12
리눅스 커널(kernel)에 심각한 보안 결함 발견 [1] 아치 2003.12.04
APM서버설치-XAMPP v1.2 [14] The Darkness 2003.12.05
iis에서 로그인창 뜨는 문제 해결방법 제시 [3] 함재식 2003.12.12
윈도우 2003에서의 APM+phpMyAdmin+MMCache설치법.. [1] 김수용 2003.12.13
MySQL 퍼포먼스를 top명령어처럼 모니터링 mytop 좋은진호 2003.12.14
유저 자동 셋팅 스크립트 Ver 2.0 [3] 김병철 2003.12.15
VirtualHost 안될때 [1] 이성헌 2003.12.16
Apache 2.X 버전의 한글문제와 새로운 방식의 APM 셋팅 [8] 최종우 2003.12.17
랜카드 상태 확인 및 연결 속도 변경 mii-tool 좋은진호 2003.12.19
apache 1.3.x-2.0.48 의 원격 유저 검색 취약점을 이용한 exploit [2] DearMai 2003.12.27
redhat 9.0에서의 qmail 설치 문서 비츠로 2004.01.04
리눅스 서버 설치 및 관리에 따른 초보경험담을 게시판에 담아... [1] eversun 2004.01.05