MySQL 사용 사이트 해킹 주의

MySQL 파일 유출 취약점

널리 사용되고 있는 데이터베이스 프로그램 MySQL에 아무 파일이나 외부로 전송할 수 있는 결함이 있다. MySQL 시스템은 서버와 클라이언트로 구성되는데, 서버는 클라이언트에 사실상 어떤 파일이든 전송하도록 요청할 수 있다.

이 점을 이용해 해커는 악의적인 MySQL 서버를 만들어 놓고, 표적이 된 MySQL 클라이언트의 접속을 유도하기만 하면, 표적 시스템의 암호 등 중요 정보를 탈취할 수 있다. 악의적인 MySQL 서버를 만드는 코드는 이미 수 년 전부터 공개돼 있다.

이런 위험성은 MySQL 개발자도 알고 있으며, 신뢰할 수 없는 서버에 연결하지 않도록 권고하고 있다.

Adminer와 함께라면 더욱 위험

그러나 MySQL 클라이언트 관리자가 알지 못하게, 해커가 자신의 MySQL 서버에 연결할 수 있는 쉬운 방법이 알려졌다. 데이터베이스 관리 유틸리티인 Adminer를 사용하는 사이트가 표적이다.

Adminer는 기본 설정대로 그냥 설치하면 루트 디렉토리에 설치된다. 예를 들어, 내가 myshop.com이라는 쇼핑몰을 운영한다고 하자. Adminer를 그냥 설치하면 myshop.com/adminer-4.6.2.php가 설치 위치가 된다.


브라우저 주소창에 위 주소를 입력하면 그림과 같은 로그인 페이지가 나타난다. 악성 서버를 만들어 둔 해커는 자신의 서버와 로그인 정보를 입력하기만 하면 된다. 그러면 MySQL 시스템의 취약점으로 인해, 내 쇼핑몰의 모든 정보를 털어갈 수 있다.

MageCart 악성코드에 이용돼

근래 금융이나 전자상거래 사이트를 노리는 MageCart 악성코드가 기승이다. 메이지카트는 사용자가 입력하는 정보를 가로채는 악성코드로, 취약한 사이트를 해킹해 설치한다. Willem이라는 보안 연구자는 메이지카트 설치를 위한 해킹에 MySQL의 이런 취약점이 이용된 경우를 많이 발견했다.

관리자 페이지에 강력한 암호 설정해야

현재 이 문제에 대해 MySQL 개발자는 알고는 있지만 패치에 대한 언급은 없고, Adminer는 그저 이용됐을 뿐 딱히 문제는 없다. 결국 사이트 운영자 스스로가 조심해야 한다.

신뢰할 수 없는 MySQL 서버에 연결하지 않도록 주의하고, 예에서 본 로그인 페이지 같은 관리자용 페이지에 외부 접속을 차단하고, 강력한 암호를 설정해서 아무나 접근할 수 없도록 해야 한다.


관련 자료

참고 자료
  1. MySQL Design Flaw Allows Malicious Servers to Steal Files from Clients
  2. Adminer leaks passwords; Magecart hackers rejoice
  3. MySQL client allows MySQL server to request any local file 

댓글

이 블로그의 인기 게시물

엑셀 필터 상태에서 복사와 잘라내기

가정에서도 망 분리를 해보자

잉크젯 프린터 전원은 항상 켜 놓아야 좋다