본문 바로가기
MySQL

[MySQL] 취약점 & 보안 관련 참고용

by Matae0712 2024. 2. 22.

 

 

[ 환경설정 파일 접근 권한 ]
무단 사용자가 MySQL Configuration File 을 수정하는 것을 방지하여 DB 서버의 안전성을 높일 수 있습니다.

- 초기화 파일(my.cnf, my.ini)의 접근 권한을 초기화 파일에 대한 보호를 위하여 600 또는, 640으로 설정해야합니다.

- MySQL Configuration File  디폴트 위치: /etc/my.cnf or <각 홈디렉터리>/my.cnf
chmod 600 . /my.cnf

 

- AWS 같은 경우에는 RDS 파라미터 옵션 권한을 필요 사용자에게만 부여해야합니다.

[ DB 사용자 호스트 제한 ]
서버 접근 IP 분리 , % 를 사용하게 되면 어느 IP 에서도 접근 가능한 계정이 발급되어 보안에 취약합니다.

- mysql.user 테이블과 mysql.db 테이블을 조회하여 host가 "%"인 필드 삭제하고 접속 IP주소를 지정하여 등록
mysql> delete from user where host=‘%’; 
mysql> delete from db where host=‘%’;


[ DB 사용시 불필요한 계정 삭제 ]
퇴직자 계정 또는 불필요한 테스트 계정은 비인가자의 악의적인 의도로 DB 접근이 가능할 수 있어 위험성이 존재합니다.
mysql> DELETE FROM user WHERE user='삭제할 계정' ;


[ 타사용자에 권한 부여 옵션 사용 제한 ]
with garnt option 을 받은 사용자는 권한 부여가 가능하기 때문에 불필요한 권한 부여 옵션이 부여된 사용자계정은 권한을 제거하고, DB 담당자 계정에만 권한 부여 옵션을 줘야 합니다.
SELECT user,grant_priv FROM mysql.user; --계정이 나오는 경우 취약
REVOKE 권한종류 ON 대상 FROM 계정; --권한 회수