오라클DB "5시간이면 해킹"

일반입력 :2012/09/22 16:50    수정: 2012/09/23 09:22

손경호 기자

데이터베이스(DB) 시장점유율 1위인 오라클이 명성에 또 한번 흠이 가게됐다. 오라클DB 버전11g에서 사용자 이름과 DB의 이름만 알면 일반PC에서 5시간만에 비밀번호를 알아낼 수 있는 것으로 나타났기 때문이다.

20일(현지시간) 카스퍼스키랩 보안뉴스사이트인 쓰렛포스트는 보안기업 앱섹(AppSec) 소속 에스테반 마르티네즈 파요 보안연구원이 아르헨티나에서 열린 보안컨퍼런스 에 참석해 이같은 해킹 방법을 시연했다고 보도했다.

이 자리에서 그는 불과 5시간만에 정상적인 PC에서 해킹을 통해 쉽게 비밀번호를 획득한 뒤 사용자 데이터 접근권한을 확보했다. 이날 마르티네즈 파요는 보안 블로그인 다크리딩에 공격자들은 그저 DB에 접근할 수 있는 사용자이름과 DB이름만 알면 매우 쉽게 해킹할 수 있다고 밝혔다.

그는 오라클의 비밀번호 인증 시스템 중 암호화 알고리즘에 대한 취약점을 발견했다. 이를 이용하면 사용자와 서버 사이에서 마치 사용자 혹은 서버인 양 활동하는 중간자 공격(Man-in-the middle attack)처럼 복잡하게 다수의 사용자들을 속일 필요가 없다고 말했다.

해킹에 사용된 취약점은 사용자가 로그인을 시도할 때 인증 프로토콜이 세션키 값을 보호하는 방법에서 발견됐다.

사용자 인증과정에서 클라이언트가 DB서버에 접속하기 위해서는 세션키 값을 서버에 보낸다. 그러면 서버는 여기에 솔트값을 붙여 클라이언트에 전송한다. 문제는 공격자들이 세션키 값과 솔트값을 확보하고 있으면 브루트포스어택(무차별 대입 공격)을 통해 비밀번호를 알아 낼 수 있다는 점이다.

마르티네즈 파요는 일단 세션키 값을 알게 되면 로그인이 여러 번 실패할 때도 서버에 기록이 남지 않기 때문에 초당 수백만번씩 무작위 비밀번호 조합을 대입하면 그 중 실제 비밀번호를 알아 낼 수 있다고 밝혔다. 일반적으로 비밀번호 오류가 일정 횟수 이상 발생하면 일정시간 접속을 차단하는 등의 조치가 취해지는데 이미 확보한 세션키 값을 반복사용해 여러번 입력했다는 사실을 알 수 없게 했다는 설명이다.

이같은 취약점은 오라클DB 버전12에서는 적용되지 않는다. 그러나 버전11.1과 11.2에서는 여전히 취약점이 수정되지 않고 있다. 이 연구원은 오라클이 11.1의 프로토콜에서 발생하는 버그를 고칠 계획이 없는 것처럼 보인다고 지적했다.

오라클DB에서 취약점이 처음으로 발견된 것은 아니다. 지난 1월 오라클은 78개의 소프트웨어 버그를 발견하고 대규모 패치를 단행했다. 이는 해커들이 오라클DB를 원격으로 조정할 수 있도록 했다.

관련기사

지난달에는 오라클의 최신 자바7 업데이트에서 해커들이 임의코드를 실행할 수 있게 하는 보안취약점이 발견돼 문제가 되기도 했다.

마르티네즈 파요는 이에 대한 대책으로 버전11.1에서 프로토콜을 사용불가로 만들고, 이전 버전인 10g를 구동할 경우에는 이 같은 문제가 발생하지 않는다고 말했다.