리눅스 분류
리눅스커널 2.6.x의 심각한 보안취약성 공개
작성자 정보
- 홍석범 작성
- 작성일
컨텐츠 정보
- 3,153 조회
- 0 추천
- 목록
본문
안녕하십니까? 홍석범니다.
지난 2006년 8월에 이어 또 다시 일반 유저가 root 권한 획득이 가능한
리눅스 커널의 심각한 보안취약성이 공개되었기에 급하게 메일을 드립니다.
아래의 내용을 확인하시어 패치 or 업그레이드 하시기 바랍니다.
취약성내용 : vmsplice system call 처리 취약성
취약 대상 : 커널 2.6.17~2.6.24.1까지.
커널의 취약성이므로 배포판에 관계없음
취약성 및 exploit 공개일자 : 2008년 2월 8일
영향 : 쉘권한을 가진 일반유저가 root 권한을 획득할 수 있음
공격코드 시연
[antihong @www antihong ]$ ./exploit
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7df9000 .. 0xb7e2b000
[+] root
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7df9000 .. 0xb7e2b000
[+] root
[root@www antihong]# id
uid=0(root) gid=0(root) groups=509(antihong)
uid=0(root) gid=0(root) groups=509(antihong)
방어방법 :
-. 이번 취약성은 특정 파일이나 디렉토리의 퍼미션을 변경함으로써 해결할 수 있는 방법이 없으며
커널 패치 or 업그레이드만이 해결방법입니다.
-. 2.6.24.2 이후 버전으로 설치하셔야 합니다.
-. 또는 기존 커널버전을 유지하여야 할 경우 /usr/src/linux/fs/splice.c 파일에서 아래의 빨강 부분을
추가한 후 재컴파일후 재부팅하여 적용하시면 됩니다.
error = -EFAULT;
if (unlikely(!base))
break;
if(!access_ok(VERIFY_READ, base, len)) {
error = -EFAULT;
break;
}
error = -EFAULT;
break;
}
/*
* Get this base offset and number of pages, then map
* in the user pages.
*/
off = (unsigned long) base & ~PAGE_MASK;
* Get this base offset and number of pages, then map
* in the user pages.
*/
off = (unsigned long) base & ~PAGE_MASK;
커널 패치후 exploit을 실행하면 다음과 같은 에러가 발생하며 작동하지 않습니다.
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7de5000 .. 0xb7e17000
[-] vmsplice: Bad address
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7de5000 .. 0xb7e17000
[-] vmsplice: Bad address
-. 특정 시스템에서는 exploit을 실행하면 segmentation fault가 나는 경우가 있는데,
이러한 경우 exploit를 여러번 시도하면 root 권한이 획득되거나 시스템이 crash되어
다운 되기도 하므로 주의하셔야 합니다.
-. 금번 exploit에 대한 미봉책으로서 anti-모듈을 로딩하여 사용하는 방법도 있지만,
메모리를 핸들링하는만큼 적용시에는 안정성 측면을 고려해 보셔야 합니다.
-. 본 취약성은 2.4.x 버전과 2.6.17이하 버전은 적용되지 않으나 이미 2006년에 공개된 취약성의 경우
2.6.17 이하 모든 버전에 해당하며 이미 exploit이 대중적으로 공개되어 있는만큼
2.6 사용자는 금번에 패치를 하여야 합니다.
-. RHEL등 rpm 커널의 경우 2008년 2월 8일 이후에 업데이트된 버전을 사용하시면 안전합니다.
감사합니다.
관련자료
-
이전
-
다음
댓글 0
등록된 댓글이 없습니다.