한국어

About_LINUX

리눅스 보안 2.4.22 커널

2003.12.04 15:26

jun 조회 수:3619

http://www.certcc.or.kr 메일링에서 받은 내용 입니다.
안녕하십니까? 오늘과내일의 홍석범입니다.


### 리눅스 커널(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




감사합니다.
번호 제목 글쓴이 날짜 조회 수
38 오라클 PL/SQL jun 2003.11.06 303121
37 오라클 데이터베이스관리자 jun 2003.11.06 22976
36 오라클 데이터베이스 튜링 jun 2003.11.06 4991
35 rm 명령으로 지울수 없는 파일 지우는 법 jun 2004.01.15 4944
34 cron 사용법 jun 2003.10.26 4364
33 압축파일다루기 jun 2004.01.19 3744
32 랜카드 수동 설정 jun 2004.01.15 3728
» 리눅스 보안 2.4.22 커널 jun 2003.12.04 3619
30 오라클 백업__회복 jun 2003.11.06 3540
29 웹편집기 소스 jun 2004.02.01 3519
28 리눅스 명령어...44개 jun 2003.11.06 3350
27 단축키 몇개 jun 2004.01.15 2928
26 iptables+dhcp를 이용한 내부인터넷 공유 jun 2004.01.15 2886
25 리눅스 공유 ipchange jun 2003.10.11 2737
24 오라클네트워크 시험문제. jun 2003.11.06 1931
23 리눅스 Apahce 2.0.35 + php 4.2. 설치 jun 2003.10.11 1485
22 리눅스용 범용 사운드카드 지원 "alsa driver 0.9.7a" jun 2003.10.13 1374
21 자동실행씨디만들기 jun 2003.10.11 1358
20 mysql 복구....방법 jun 2003.10.15 1349
19 날짜 설정하기 jun 2003.10.18 1235