티스토리 뷰

웹사이트 해킹이 가능한 MySQL의 새로운 제로데이 취약점 발견

세계적인 데이터베이스 관리 소프트웨어인 MySQL에서 심각한 제로데이 취약점이 발견 되었습니다. 이로인해 MySQL을 사용하는 기관 및 기업의 보안에 비상이 걸렸습니다. 아직 보안패치가 완료되지 않은 취약점이기에 보안관리와  점검이 필요한 상황 이라고 합니다.




MySQL은 무엇인가요?


MySQL은 시계적인 IT기업인 오라클(Oracle)이 관리하고, 배포하고 있는 오픈소스의 관계형 데이터베이스 관리 시스템

(RDBMS)입니다. 관련 분야 에서는 그야말로 글로벌 제품이며, 많은 사용량과, 시장 점유율 역시 현기준으로 80%가 넘을

만큼 어마어마한 독보적인 데이터베이스 관리 소프트웨어 입니다.


최초 MySQL AB사에 의해서 개발되었고, 썬마이크로시스템즈에 10억달러에 인수 되어 잘 알려진 5.1버전이 출시 되었습니다.

이후, 썬마이크로시스템즈가 오라클에 임수되면서, MySQL역시 함께 인수 되었습니다. 현재는 5.7버전 까지 출시 되었습니다.

MySQL은 두 가지 라이센스를 따르는데, 하나는  MySQL을 사용시 GNU /GLP(오픈소스 라이센스)를 만족 시키는 경우 무료로 사용 할 수 있는 것이고(주로 개인), 다른 하나는 기업이나 기관에서 상업적으로 사용할 시에는(GPL을 만족 시키지 못하는 응용 프로그램을 배포할 경우)상업용 라이센스를 따로 비용을 지불해야 하는것 입니다.




    



★ GNU/GLP : 일반 공중 사용 허가서, GPL은 컴퓨터 프로그램을 이용하는 사람에게 자유 소프트웨어의 권한을 누리며 카피레프트를 사용함으로써

 그러한 자유가 보전되고, 이전 작업 내용을 수정하거나 다른 내용을 추가하는 것도 허용된다고 합니다. 자유소프트웨어 재단(FSF)에서 만든 

 자유 소프트웨어 라이센스




 MySQL이 이렇게 많이 쓰이는 이유가 뭐죠?



MySQL은 그 점유율과 사용량을 미루어 보아도 그 특장점이 뛰어납니다. 먼저 매우 빠르고 견고한 데이터베이스 관리 시스템인건 명실상부한 사실이고, 데이터를 효율적으로  저장,검색,정렬,탐색을 할 수 있습니다. 또한 MySQL서버는 많은 사람들이

동시에 동일한 데이터에 접근할 수 있도록 관리하는 빠른 접근 방법을 지원하고 있습니다.(허용된 사용자 안에서)


게다가 윈도우, 리눅스, 유닉스 운영체제 등에서 모두 사용할 수 있고, 표준 SQL 언어 지원은 물론 다양한 언어들을 사용할 수 있는 프로그래밍 인터페이스를 제공할 수 있습니다.


무엇보다 가장 큰 장점이라 생각이 드는것은 어디서든 인터넷을 통한 접근이 가능해 연결성이 높고, 접근제어와 SSL을 통한 

암호화 연결을 지원하는 등 보안성도 훌륭합니다. 이런 장점 덕분에 MySQL은 홈페이지, 인터넷쇼핑몰 등 보편적인 웹 개발에

널리 쓰이고, 대형 사이트인 페이스북, 트위터, 유투브 등 에서도 사용하고 있습니다.




 발견된 취약점은 무엇이죠?



발견된 취약점은 공격자가 데이터베이스를 온전히 제어 할 수 있도록 허용하는 심각한 제로데이 취약점 2가지 입니다.

보안전문가인 다위드 골룬스키(Dawid Golunski)가 발견한 취약점 2개의 이름은 CVE-2016-6662, CVE-2016-6663으로 

MySQL 버전과 MariaDB와 PerconaDB에까지 영향을 미친다고 합니다.  MariaDB와 PerconaDB는 해당 취약점을 수정했지만, 

 오라클은 아직 수정하지 않은 상태라고 합니다.




취약점-1-CVE-2016-6662


 CVE-2016-6662는 원격 혹은 로컬의 공격자로 MySQL 설정파일(my.cnf)를 조작하여 기본설정의 MySQL서버에 영향을 주며, DB가 재부팅 되는 순간부터 적용된다고 합니다.또한 인증된 MySQL DB접근 및 SQL 인젝션 등을 통해서도 해당 취약점이 악용 될 수 있습니다. 공격자가 성곡적으로 해당 취약점을 악용한다면, 루트권한을 탈취하여 임의의 코드를 발동 시킬 수 있고, 이로 인해 DB를 완전히 장악 할 수 있다고 합니다.



취약점-1-CVE-2016-6663


CVE-2016-6663에 대한 취약점은 자세히 공개되지는 않았다고 하나, 여러가지 정황으로 볼때 앞서 설명한 CVE-2016-6662의 익스플로잇을 원격으로 훨씬 쉽게 할 수 있는 취약점으로(동일하게 루트 권한 획득 가능) .CVE-2016-6662의 취약점을 더욱 쉽게 악용할 수 있도록 해주는 취약점 이라고 추측하고 있습니다.





 취약점이 발견된 버전



모든 버전의 MySQL (5.7.15, 5.6.33, 5.5.52 버전 포함)

모든 버전의 MariaDB, PerconaDB 

                MariaDB, PerconaDB는 이미 취약점 수정 패치가 완료된 상태라고 합니다.




대비해야 할 수 있는 일들은 무엇이 있나요?


MariaDB, PerconaDB 는 취약점 패치가 완료된 상황이라고 하지만, 오라클은 그렇지 못하는 시점에서 MySQL사용자들은 가만히 있어야만하는가?? 그렇지는 않다고 합니다. 보안뉴스와 정보보안 전문가들은  대비책을 제시했는데


① 보안 패치가 공개되기 전까지 MySQL 환경설정 파일이 MySQL 사용자들에게 노출되지 않도록 확실한 조치를 취해야 한다고 합니다.

② 해커들의 익스플로잇 시도를 방해하기 위해 사용하지 않는 환경설정 파일의 더미(가짜) 파일을 생성해 놓는 것이다. 이와 관련 해당 취약점을 공개한 골룬스키는 “루트에 사용하지 않는 가짜 cnf 파일을 만들어 놓는 것도 좋은 방법”이라고 설명했습니다.


③ DB사용자 권한제한으로 원격 사용자에게 SUPER혹은 FILE 권한을 주지 않도록 설정 하는것 이라고 합니다.

(다만 CVE-2016-6663은 FILE권한이 없어도 사용이 가능하다는 슬픈현실..ㅠ)





MySQL의 제로데이 취약점이 해결되지 않은 시점에서 하루빨리 취약점 패치가 이루어져 

MySQL을 사용하는 기업이나, 개인에게 보안피해가 없었으면 하는 바람입니다.



=====================================================================================


참고

http://thehackernews.com/2016/09/hack-mysql-database.html

http://www.boannews.com/media/view.asp?idx=51803&skind=O

http://blog.alyac.co.kr/799

https://www.percona.com/blog/2016/09/12/database-affected-cve-2016-6662/