Information Security

데이터베이스(MY-SQL) 취약점 본문

§IT/정보보안기사-애플리케이션

데이터베이스(MY-SQL) 취약점

Motie_FireWall 2020. 4. 23. 03:00

1) 개요

- MY-SQL은 글로버 IT 업체인 오라클에서 관리/배포하고 있는 오픈소스 관계형 데이터베이스 관리시스템(DBMS)으로 이 분야에서 가장 많은 시장 점유율을 차지하고 있다.

 

2) 취약점 점검

- 디폴트 관리자(root) 패스워드 및 계정명을 변경한다.

*flush privileges 명령은 사용자 정보의 추가, 변경, 삭제 등을 수행했을 때 변경사항을 즉시 반영하기 위해 사용한다.

- MY-SQL 설치 시 서버에 자동으로 생성되는 mysql 계정의 로그인을 차단한다.

*/etc/passwd 파일을 점검하여 mysql계정의 로그인 쉘이 /bin/bash와 같이 정상적인 쉘로 설정되어 있다면 로그인이 가능하므로 /bin/false 또는 /sbin/nologin으로 변경하여 로그인이 불가능하도록 한다.

 

3) 원격에서 My-SQL 서버로의 접속을 차단한다.

- My-SQL 디폴트 서비스 포트인 3306/tcp 포트를 차단하여 로컬에 설치된 어플리케이션에 의해서만 접근 가능하도록 한다.

- 설정파일인 my.cnf의 [mysqld] 항목에 skip-networking을 추가한 후 재기동하면 네트워킹 기능을 비활성화하기 때문에 서비스 포트를 오픈하지 않는다.

 

4) 데이터베이스의 사용자별 접속/권한 설정 확인

- user 테이블에 있는 host 컬럼은 해당 사용자가 데이터베이스에 접근할 수 있는 호스트를 지정하는 컬럼이다. 

user 테이블의 host 컬럼을 조회하여 데이터베이스 계정의 접속 허용 호스트를 점검한다.

host 컬럼의 컬럼 데이터의 의미를 살펴보자.

> localhost : 로컬 로스트에서 접근가능

> % : 와일드 카드 문자로 모든 원격 호스트에서 접근 가능함을 의미

> 특정 IP : 특정 IP에서만 접근이 가능

> XXX.XXX.XXX.% : 특정 IP 대역에서만 접근이 가능

- 일반사용자에게 FIle권한, Process권한, Shutdown 권한이 주어질 경우 해커의 시스템 침입 대상이 될 수 있다. 

*주요접근권한 

> File_priv : 파일에 데이터를 읽고 쓸 수 있는 권한

> Process_priv : My-SQL 서버 프로세스/스레드 정보를 보거나 중지시킬 수 있는 권한으로 해당 사용자가 "show processlist" 명령 실행을 통해 실행 중인 쿼리를 모니터링 할 수 있게되어 비밀번호와 같은 중요 정보가 노출될 수 있다.

> shutdown_priv : "mysqladmin shutdown" 명령을 이용하여 My-SQL 서버를 종료시킬 수 있는 권한

 

5) My-SQL 버전 확인 및 보안패치 적용여부 점검

 

6) My-SQL 데이터 디렉터리 보호여부 점검

- My-SQL 데이터 디렉터리의 위치를 my.cnf 파일을 참조하여 확인한 뒤, 해당 디렉터리의 접근권한을 750으로 설정하여 mysql 계정 및 그룹 사용자에 대해서만 적절히 접근할 수 있도록 설정해준다.

 

 

 

 

 

 

 

 

 

'§IT > 정보보안기사-애플리케이션' 카테고리의 다른 글

HTTP 주요 상태 코드  (0) 2020.05.26
파일 삽입 (File Inclusion) 취약점  (0) 2020.04.23
개발보안관리  (0) 2020.04.23
Web Proxy  (0) 2020.04.23
Comments