| 자바 취약점 악용하는 악성코드 샌드박스 우회 주의! | 2012.09.09 |
샌드박스 우회 위해 2가지 방법 사용...오라클 보안패치 설치 필수! [보안뉴스 김태형] 안랩시큐리티대응센터(이하 ASEC)에서는 최근에 발견된 자바 취약점을 악용하는 악성코드 제작자들은 샌드박스를 우회하기 위해 2가지 방법을 사용하고 있다고 밝혔다. ASEC는 지난 8월 29일 ‘오라클 자바 JRE 7 제로 데이 취약점 악용 악성코드 유포’를 통해 자바(Java) JRE에서 알려지지 않은 제로데이(Zero-Day, 0-Day) 취약점이 발견됐으며 이를 악용한 악성코드가 유포됐다고 공개했다. 해당 CVE-2012-4681 자바 취약점 외에도 다른 CVE-2012-0507 자바 취약점 역시 다수의 악성코드 유포에 사용되고 있다. 일반적으로 자바의 경우 JVM을 이용한 샌드박스(SandBox) 개념의 보안기능을 운영체제에 제공하고 있다. 악의적인 코드의 경우 JVM에서 시큐리티 매니저(Security Manager)를 기준으로 차단하게 된다는 것. 예를 들어 파일을 디스크에 쓰거나 실행하는 경우에 정책에 허용되지 않은 경우에는 해당 명령은 허용되지 않는다. 그러나 최근에 발견된 자바 취약점을 악용하는 악성코드 제작자들은 샌드박스를 우회하기 위해 2가지 방법을 사용하고 있다. 1. 샌드박스 자체 무력화 - CVE-2012-0507 취약점
역직렬화를 하게 되면 메모리에 악의적인 코드가 쓰일 수 있기 때문에 시큐리티 매니저에서 해당 객체에 대해서 접근에 대한 체크가 필요하지만 체크하지 않아 문제가 발생하게 된다는 것. 2. 샌드박스 내부의 정책 우회를 위하여 시큐리티 매니저를 setSecurityManger(Null)로 우회 - CVE-2011-3544와 CVE-2012-4681 취약점 샌드박스에서 시큐리티 매니저는 정책으로서 접근제어를 수행하게 된다. 하지만 시큐리티 매니저가 무력화될 경우 접근제어를 수행하지 않기 때문에 악의적인 코드 실행이 가능해진다. 자바는 JVM에서 명령을 수행하기 위해서는 시큐리티 매니저가 함수내에서 빈번하게 호출되며 자바 애플릿 역시 예외가 아니다. JVM이 포함되어 있는 웹 브라우저가 애플릿이 포함된 웹 사이트 접속시 JVM으로 애플릿을 다운 받아 실행하게 된다. 이 과정에서 로컬에서 실행하기 위해서는 디스크에 파일을 쓰고 실행해야 하는데 시큐리티 매니저를 우회해야 악성코드를 감염시킬 수 있게 된다.
그리고 “시큐리티 매니저를 해제하기 위해서는 ‘setSecurityManager’ 함수를 이용하여 시큐리티 매니져를 해제해야 한다. 하지만 JRM에서 ‘setSecurityManger(NULL)’을 호출하게 되면 에러와 함께 함수 호출에 대해 실행을 허가 하지 않지만 toString Method를 이용하게 되면 해당 함수를 호출할 수 있는 취약점”이라고 설명했다. 이와 비슷한 원리로 작동하는 취약점이 CVE-2012-4681으로 해당 취약점은 sun.awt.SunToolkit을 이용하여 파일시스템에 대한 모든 권한을 부여함으로서 시큐리티 매니저를 비활성화하도록 해야 한다는 것. 현재 앞서 설명한 자바 취약점들 모두 다수의 악성코드에서 악용되고 있음으로 오라클에서 제공하는 보안 패치를 설치해야만 다른 보안 위협들로보터 시스템을 보호할 수 있다고 ASEC측은 강조했다. [김태형 기자(boan@boannews.com)] <저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지> |
|
|
|