WU-FTPD의 취약점
상태바
WU-FTPD의 취약점
  • 이석기 컨설턴트
  • 승인 2001.12.04 00:00
  • 댓글 0
이 기사를 공유합니다

A3 보안 컨설팅

제목 : Multiple Vulnerabilities in WU-FTPD
분류 : [Adv] A3 Security Advisory

■ 설명

대부분의 Linux에서 디폴트로 사용되고 있는 Washington University’s FTP daemon(WU-FTPD)에 취약점이 존재하는 것으로 밝혀졌다.

이 취약점은 원격의 공격자가 시스템의 어떠한 정보없이도 해당 시스템에 공격코드를 실행시키기 위해 FTP 서비스에 접속할 수 있다는 내용으로 이미 2001년 4월에 발표되었었다.

이 취약점을 이용하여 공격자가 FTP 데몬 권한(대부분 관리자권한)으로 공격코드를 실행시킬 수 있는데 이 취약점을 이용하기 위해서는 시스템에 어떠한 계정으로든(anonymous 계정을 포함) 접속에 성공해야만 한다.

이 취약점의 원리는 변형된 표현식에 대한 에러표시 과정에서 발생하는 glob() 함수의 heap 메모리의 변조를 이용하여 메모리내의 특정 내용을 덮어쓴다는 것이다.

glob() 함수는 사용자가 입력하는 파일이름을 해석해서 유효한 path 이름을 돌려주는 역할을 수행한다.

glob()함수는 asterisk (*) 나 ‘wildcard’ 문자같은 meta문자에 대해서도 해석하는데 ? [ ] { } ~’ 등 다른 종류의 meta문자를 해석하는 과정에서 heap 메모리 변조를 일으킬 수 있다.

WU-FTPD은 클라이언트로 부터 인바운드 접속을 처리하는 과정에서 RFC 931 인증을 수행할 수 있다.

RFC 931은 Authentication Server Protocol(인증서버프로토콜)을 정의하고 있으며 ‘auth’이나 ‘authd’ 이름으로 알려져 있다.(RFC 1413에서는 ‘ident’나 ‘identd’)

RFC 931 인증을 사용할때, WU-FTPD은 클라이언트로부터의 연결을 인증하는 과정에서 ident 정보를 요청할 수 있으며 클라이언트상에 구동중인 auth나 ident 서비스는 사용자 정보를 리턴하게되고 ident 응답정보를 바탕으로 인증여부를 결정한다.

WU-FTPD은 RFC 931 인증을 수행하고 디버그모드에서 실행되도록 구성되어 있으며, 이 때 syslog(3) 함수를 이용하여 접속정보를 로그화하는데 syslog(3)내에 입력값에 대한 포맷유효성을 수행하지 않으므로 클라이언트로 부터 수신한 identd응답의 적절한 입력유효성을 수행하지 못한다.

결과적으로 변형된 identd 응답에 대해 syslog(3)에 의해서 해석되는 과정에서 메모리내용이 변조될 수 있고 이를 이용하여 공격자는 WU_FTPD의 권한으로 공격코드를 실행시킬 수 있다.

이 취약점은 취약한 서버에 anonymous 접속사용자를 비롯해서 로그를 남길 수 있는 모든 사용자에 의해서 잠재적으로 취약하며 공격자는 ident 요청을 통제할 수 있어야 한다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.