| 취약점ID |
22167 |
| 위험도 |
40 |
| 포트 |
80, ... |
| 프로토콜 |
TCP |
| 분류 |
WWW |
| 상세설명 |
해당 Oracle9iAS 어플리케이션 서버에는 디폴트 설정인 SOAP 컴포넌트가 Enable 되어 있다. Oracle9iAS 어플리케이션 서버는 웹을 통한 데이터베이스 서비스 관리를 위해 SOAP 프로토콜을 지원한다. 이 SOAP(Simple Object Access Protocol)은 분산 환경에서 XML을 통해 종단간 데이터를 교환하기 위해 구현된 간단한 프로토콜이다. Oracle9iAS 1.0.2.2 버전의 경우, "typical" 설치 치 SOAP 컴포넌트들이 자동으로 설치되며 실행(Enable)된다. 또한, 원격으로 다른 SOAP service 와 provider 를 조작할 수 있는 "urn:soap-service-manager", "urn:soap-provider-manager" 서비스도 디폴트로 실행(Enable)된다. 하지만, 이러한 두 서비스는 어떠한 인증절차 없이도 임의의 사용자에 의해서 생성/해제(deploy/undeploy)될 수 있으며, 더욱이 SOAP 설정(SOAP configuration)에는 임의의 사용자가 SOAP 서비스로서 Java 클래스들을 사용(deploy)할 수 있는 Java provider를 제공한다. 즉, 디폴트 SOAP 설정(configuration)은 임의의 사용자가 디폴트 SOAP URL /soap/servlet/soaprouter에 대한 액세스를 통해 SOAP 서비스로서 이미 생성되어 있는 Java 클래스들을 사용하도록 허용한다. 결론적으로, 이 취약점을 이용하여 원격지 공격자들은 아무런 인증 절차없이도 SOAP 서비스를 임의로 생성(deploy)할 수 있으며 SOAP 서비스를 통해 서버 상에서 임의의 Java 코드를 실행할 수도 있다. 만약, 디폴트 SOAP URL 이 방화벽(firewall) 외부에서도 액세스(access)가 가능하다면 위험성은 더욱 크다. 그러나, 사용자 임의의 Java 클래스를 통해 구현된 SOAP 서비스를 추가하는 것은 파일 시스템에 대한 쓰기 권한이 주어질 때만 가능하다.
* 참고 사이트: http://online.securityfocus.com/bid/4289 http://technet.oracle.com/deploy/security/pdf/ias_soap_alert.pdf
* 영향을 받는 플랫폼: Oracle9IAS 어플리케이션 서버 1.0.2.2 |
| 해결책 |
SOAP 사용이 불필요한 경우, 사용을 제한해야 한다.
1. [oracle home directory]/Apache/Jserv/etc/jserv.conf 파일을 연다. 2. 파일 안에서 다음 4 줄을 삭제하거나 주석처리 한다. ApJServGroup group2 1 1 $ORACLE_HOME/Apache/Jserv/etc/jservSoap.properties ApJServMount /soap/servlet ajpv12://localhost:8200/soap ApJServMount /dms2 ajpv12://localhost:8200/soap ApJServGroupMount /soap/servlet balance://group2/soap
위의 $ORACLE_HOME, 8200 은 각각 홈 디렉토리와 사용 포트를 의미하며 시스템 설정에 따라 다를 수 있다.
-- 또는 --
SOAP 서비스에 대한 deploy/undeploy 권한을 제한해야 한다.
1. [oracle home directory]/soap/werbapps/soap/WEB-INF/config/soapConfig.xml 파일을 연다. 2. 파일 안에 다음과 같이 라인을 추가하거나 변경한다. <osc:option name="autoDeploy" value="false" /> |
| 관련 URL |
CVE-2001-1371 (CVE) |
| 관련 URL |
(SecurityFocus) |
| 관련 URL |
(ISS) |
|