오라클 데이터베이스 서버의 Remote Compromise
상태바
오라클 데이터베이스 서버의 Remote Compromise
  • 이석기 컨설턴트
  • 승인 2002.02.25 00:00
  • 댓글 0
이 기사를 공유합니다

A3 보안 컨설팅

제목 : Remote Compromise in Oracle 9i Database Server
분류 : [Adv] A3 Security Advisory

1. 설명

오라클 데이터베이스 서버를 운영하는 시스템내에 원격지의 공격자가 사용자ID 와 패스워드 없이 라이브러리 내의 임의의 함수를 실행시킬 수 있는 취약점이 존재한다.

오라클 데이터베이스의 많은 부분들이 PL/SQL 패키지에 의해 제공되어 지는데 PL/SQL는 SQL을 확장하여 Dynamic Link Library 또는 O/S 라이브러리의 함수를 호출할 수 있는 패키지로 구현되어져 있다.

공격자가 system() 함수를 호출하여 프로그램을 실행하고자 하면, 반드시 오라클 데이터베이스에 로그인 접속한 후 공격이 성공하기 이전에 CREATE LIBRARY에 대한 허가를 받아야 하는데 여기서 공격자가 합법적인 인증절차 없이 임의의 라이브 러리를 로딩할 수 있는 취약점이 발견된 것이다.

이 취약점을 이용하면 악의적인 공격자는 오라클 데이터베이스 서버 라이브러리 내에 탑재되어 있는 함수를 임의로 인증절차 없이 실행시킬 수 있다.

2. 결함기종

Oracle 9, 8 이 탑재되어 있는 모든 Operating System

3. 해결책

아직까지 이에 대한 해결패치는 나와 있지 않으나, 다음과 같은 방법으로 임시적인 해결이 가능하다.

1. Firewall을 사용한다.

어느 누구도 인터넷으로부터 1522번 listener 포트로의 접근은 불가능하다. Firewall은 인터넷 접속으로의 위험을 없앨 수 있다.

2. 오라클 데이터베이스의 PLSExtproc 기능이 필요 없다면 삭제해 둔다.

이 기능을 삭제하기 위해서는 tnsnames.ora 와 listener.ora내의 엔트리도 삭제하여야 한다. PLS External Procedure Service에는 아주 다양한 이름들이 오라클 버전과 시스템에 있다. 그 예로 icache_extproc, PLSExtproc, 또는 extproc 같은 것들이 있는데 그중 extproc(.exe)도 삭제하는 것이 좋다.

만약, 이 기능이 필요하면 listener에 접근할 수 있는 기계를 제한하면 된다. 이 기계는 단지 IP address에만 의존하기 때문에 믿을 수 있는 메커니즘이므로 도움이 된다. 이를 제한하는 프로세스를 “valid node checking” 이라 하며, 이는 $ORACLE_HOME\network\admin 디렉토리 sqlnet.ora file의 수정을 요구한다.

다음과 같은 entry 를 삽입하면 된다.

tcp.validnode_checking = YES
tcp.invited_nodes = (211.255.1.1, hostname)

211.255.1.1, hostname을 Access를 요구하는 호스트 IP와 이름을 대신해서 사용한다. 이 리스트에 없는 호스트도 listener에 TCP 접속을 할 수 있으나 listener는 바로 접속을 차단시킨다.


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