메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

C 언어 함수들의 취약성

한빛미디어

|

2002-09-05

|

by HANBIT

10,983

저자: 노엘 데이비스(Noel Davis), 역 서성용

최신 유닉스와 오픈 소스 보안 권고와 관련된 정보를 제공하는 보안 경고 칼럼에 오신 여러분을 환영하는 바이다.

이번 칼럼에서는 calloc(), 썬의 One/iPlanet 웹 서버, dietlibc, OpenAFS, Kerberos 5 관리 시스템, PNG 라이브러리에서의 버퍼 오버플로우에 대해 살펴볼 것이다. 이 외에도 FreeBSD의 Berkeley Fast File System, CVS, iSCSI, 레드햇 Secure Web Server, tinyproxy, IRIX named의 문제점들도 함께 살펴볼 것이다. calloc()

C언어 라이브러리 함수인 calloc()의 구현은 몇몇 C 라이브러리의 일부분으로 제공되는데, 특정 환경에서 악용될 수 있는 버퍼 오버플로우 문제점이 있다. 취약한 것으로 보고된 라이브러리들은 다음과 같은 것들이 있다. glibcglibc2의 다양한 버전들, GNU C++ 컴파일러, 마이크로소프트 비주얼 C++ 4.0, 마이크로소프트 비주얼 C++ 6.0, GNU GNAT 3.14b, dietlibc 0.18.

이 버퍼 오버플로우 문제는 glibc의 CVS 리포지터리에 있는 버전에서는 해결된 것으로 보고되었다. 사용자들은 해당 업체로부터 업데이트를 기다리자.

썬 ONE/iPlanet 웹 서버

썬 ONE/iPlanet 웹 서버는 ‘Chunked Encoding’을 처리하는 부분에서 버퍼 오버플로우에 취약한 것으로 보고되었다. 이 버퍼 오버플로우는 원격 공격자가 루트 권한으로 임의의 코드를 실행하는데 악용될 수 있다.

사용자들은 가능한 한 빨리 패치에 대해 썬에 문의해보아야 한다.

FreeBSD Berkeley Fast File System (FFS)

파일 시스템에서 임의의 지역을 접근하는 공격자는 FreeBSD가 Berkeley Fast File System에서 파일 크기를 계산하는 방법에서 발생하는 오류를 사용할 가능성이 농후하다. 특히 이 오류는 파일 크기가 너무 커서 FreeBSD 가 처리할 수 없는 거대한 파일을 생성하는데 악용될 수 있다.

사용자들은 가능한 빨리 해당 패치를 시스템에 적용해야 한다. 16k 블럭을 이용하는 파일 시스템에서 사용할 수 있는 해결방법은 RLIMIT_FSIZE의 값을 63MB 이하로 설정하는 것으로 /etc/login.conf와 기본 클래스를 변경함으로써 가능하다. 하지만 이렇게 해준다고 해도 모든 공격으로부터 시스템을 완벽하게 보호할 수는 없다. 왜냐하면 기본값을 설정하기 위해 이 파일을 이용하지 않는 도구를 사용하여 로그인 할 수 있기 때문이다.
Essential System Administration, 3rd Edtion


cvsd

CVS 대몬인 cvsd는 로컬에서 악용할 수 있는 off-by-one 버그에 취약하다.

해당되는 사용자들은 업체에서 발표하는 업데이트에 주의를 기울이는 것이 좋겠다. 칼데라(Caldera)는 OpenLinux Server 3.1과 3.1.1, OpenLinux Workstation 3.1과 3.11 버전에 대한 업데이트 패키지를 발표했다.

iSCSI

iSCSI 는 IP 네트워크를통해 SCSI 접근을 허용하는 프로토콜을 말한다. 이 프로그램의 리눅스 버전(Linux-iSCSI)은 환경설정 정보를 어떠한 설치판의 경우에 아무나 읽을 수 있는(world-readable) 파일에 저장한다. 이것은 민감한 정보를 노출시킬 잠재적 가능성이 있다. 레드햇 리눅스 림보 베타가 아무나 읽을 수 있는 설정파일의 상태로 출시된 것으로 보고되었다.

/etc/iscsi.conf 파일의 퍼미션은 루트만 읽거나 쓸 수 있도록 제한되어야 한다. 레드햇은 다음 번 릴리즈를 할 때에는 설정 파일의 퍼미션을 수정하여 배포할 것이라고 발표했다.

dietlibc

dietlibclibc 라이브러리의 간단한 버전이다. 정수 오버플로우에 취약하기 때문에 공격자가 임의의 코드를 실행하는데 이를 사용할 수 있다. 만약 set user id root 애플리케이션이 이 라이브러리에 대항하여 링크되어 있을 경우, 이 버그를 성공적으로 악용하면 루트와 혼동을 일으키게 할 수 있다.

해당 사용자들은 가능한 빨리 수정된 버전으로 업그레이드해야 한다. 데비안(Debian)에는 dietlibc 버전 0.12-2.2 가 데비안 안정 우디(Debian stable woody)용으로 발표되었고 0.20-0cvs20020806 버전이 데비안 불안정(Debian unstable)용으로 발표되었다.

OpenAFS

OpenAFS 분산 파일 시스템은 정수 오버플로우에 기반한 공격에 취약하다. 원격 공격자는 서버에서 OpenAFS를 실행중인 사용자(보통 루트)의 권한으로 임의의 코드 실행을 악용할 수 있다. 정수 오버플로우 취약점은 volserver, vlserver, ptserver, buserver 대몬에 있다. 이 취약점이 있는 OpenASF 버전은 다음과 같다: 1.0.x, 1.1.x, 1.2.x(Open AFS 1.2.5버전까지 포함), 1.3.x(OpenAFS 1.3.2 버전까지 포함).

사용자들은 OpenASF 1.2.6이상의 버전으로 가능한 빨리 업그레이드하거나 OpenAFS의 안정(stable) 버전에 대한 패치를 적용해야 한다. OpenAFS 불안정(unstable) 버전에 대한 패치나 업데이트는 아직 발표되지 않았다.

Kerberos 5 관리 시스템

Kerberos 5 관리 시스템에서 사용하는 RPC 라이브러리는 정수 오버플로우에 취약하며 공격자가 서버에서 루트 접속을 시도하는데 이용될 수 있다. 이 오버플로우를 이용하기 전에 공격자가 서버에서 인증이 되어야 한다.

사용자들은 해당 업체에 업데이트 패키지가 있는지 알아보자. 데비안은 안정버전과 불안정 버전 모두에서 이 문제를 해결하여 새로운 패키지를 발표했다.

레드햇 Secure Web Server

레드햇(Red Hat)은 자사의 Secure Web Server 업데이트 패키지를 발표했다. 레드햇 Secure Web Server는 symbolic-link race condition에 취약한 MM 라이브러리 버전을 사용한다.

따라서 해당 사용자는 새로운 패키지로 업그레이드해야 한다.

tinyproxy

tinyproxy는 소규모 HTTP 프록시 서버이다. 원격 공격자가 프록시 서버를 실행하고 있는 사용자 권한을 사용해 서버에서 임의의 코드를 실행할 수 있는 버그가 있다.

사용자들은 가능한 한 빨리 수정된 버전으로 업그레이드 할 것을 권장한다. 문제를 해결하기 전까지는 tinyproxy를 사용하지 않는 방법도 고려해야 할 것이다.

IRIX named에서 BIND 취약성

SGI는 IRIX에 대한 새로운 BIND 패키지를 발표했다. SGI는 IRIX 6.5와 함께 BIND를 배포하지만 기본으로 설치되지는 않는다.

BIND를 시스템에 설치한 사용자들은 새로운 패키지로 업그레이드해야 한다. 이 패키지는 chroot jail에 버전 4.9.8 패치 레벨 1을 설치한다. 이 패키지 말고 다른 방법을 사용하고 싶다면 IRIX 6.5.18로 업그레이드해야 하는데 이 방법은 이용할 수 있을 경우에만 한정된다.

PNG 라이브러리

데비안은 ‘잠재적인 버퍼 오버플로우’를 수정하고 ‘안전 여백(safety margin)을 구현’을 하는 PNG 라이브러리를 위한 새로운 패키지를 발표하였다.

따라서 사용자들은 이 패키지로 업그레이드를 하는 것에 대해 고려해보아야 한다.
노엘 데이비스(Noel Davis)는 유닉스 시스템 관리자로 리눅스 사용 경험은 6년이 넘었으며 5년 여간 시스템 관리자로 일하고 있다.
TAG :
댓글 입력
자료실