English
◀◁ 뒤로
취약점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)