데이터베이스 해킹
데이터베이스 해킹은 주로 데이터베이스가 웹 서버와 연동된 상태에서 발생
대표적인 데이터베이스 해킹 형태
1. 웹 서비스와 데이터베이스 연동 과정에서 통신을 조작해 정보를 유출
2. 데이터베이스 통신 포트가 외부에 노출되어 접근 가능한 경우 무차별 대입 공격
데이터베이스 사고 분석
1. 웹 로그를 분석
2. ModSecurity와 같은 보안 모듈에서 탐지된 로그를 통해 확인
데이터베이스 보안
데이터베이스의 접근 통제, 통신 보안, 가용성, 암호화등 다양한 요소에 보안이 필요
데이터베이스 초기 설정
1. MariaDB를 바탕으로 데이터베이스 보안 설정에 대해 실습해봄
2. MariaDB를 설치 후 정상 실행되는지 확인
3. Maria DB에서 제공하는 초기 보안 설정을 통해 보안 설정을 해야함
4. 익명 사용자 제거와 원격 root 접속 권한을 차단
5. 테이스베이서를 제거하고 초기 보안 설정 적용을 완료
데이터베이스 네트워크 방화벽 설정
1. MariaDB와 Mysql은 주로 TCP 3306번 포트로 네트워크 통신을 함
외부 사용자가 데이터에 접근 할 수 있도록 방화벽 정책 수정
2. 네트워크 보안을 강화하기 위해 특정 IP 대역에서만 TCP 3306번 포트로 통신하도록 방화벽 정책 수정
데이터베이스 사용자 접근 권한 설정
1. MariaDB 관리 콘솔에 접속 후 mysql.user 테이블 정보 확인
2. 데이터베이스 보안을 위해선 사용자의 접근 권한을 최소화 해야함.
데이터베이스 사용자의 접근 권한을 임의로 설정하여 보안 실습
3. 변경 한 값을 저장하고 권한을 다시 조회하여 확인
데이터베이스 장애를 대비한 이중화
1. 하나의 데이터베이스가 해킹을 당해 기능을 상실한 경우를 대비하여 예비서버 필요
2. 가상머신에서 실습을 진행하기 위해 기존 서버를 종료후 서버를 복제
3. 사설 IP 충돌을 대비해 slave 서버를 192.168.100.12로 변경
4. 데이터베이스 이중화 사용을 위해 메인 서버 MariaDB의 기본 환경 설정 파일의 수정 필요
5. 예비 서버 데이터베이스가 메인 서버 데이터베이스에 접근할 수 있도록 메인 서버의 데이터베이스 IP 설정이 필요
50-server.cnf 파일에서 bind-address의 IP를 변경
6. 설정값을 변경하기 위해 서비스 재시작 후 MariaDB 관리 콘솔에 접속
7. 복제할 데이터베이스 생성 후 예비 서버에서 데이터베이스 복제에 사용할 데이터베이스 사용자 생성
8. 메인서버와 예비서버 데이터 동기화 과정에서 무결성이 유지되도록 설정 후 메인 서버 설정이 잘 되었는지 확인
9. 데이터는 무결성이 중요하기에, 복제 기능을 사용할 때 메인 서버 데이터를 덤프 후 예비 서버에 복사 반영 과정 필요
덤프를 위해 데이터베이스 콘솔 종료 후 메인서버 내용 및 설정을 backup.sql 파일로 저장
* 덤프: 현재 DB에서 저장하고 있는 데이터를 백업하거나 복사하기 위해 SQL 문 형태로 추출하는 기능
10. 다운받은 데이터베이스 파일을 예비 서버에 옮기려면 서버 간 파일을 주고 받을 때 보안 프로토콜인 SSH를 이용한 SCP 프로토콜을 활용하여 파일을 전송. 이를 위해 예비 서버에 ssh 서버 설치
11. 메인 서버에서 백업해놓은 데이터베이스 덤프파일(backup.sql)을 예비 서버에 전송
(그전에 예비서버 방화벽 정책에서 ssh 포트 번호를 열어두어야 전송 가능함)
12. 데이터베이스 관리 콘솔에 접속해 잠금을 해제하면 메인서버 설정 완료
13. 예비 서버를 연결 후 MariaDB 환경 설정 파일인 /etc/mysql/my.cnf를 열고 아래 값 입력
14. 메인서버 데이터베이스 값을 반영 위해 SQL에 데이터 값 반영 후 재시작 하고 MariaDB 콘솔 접근
15. 예비 서버가 메인 서버의 데이터 복제 위해 아래와 같이 Master 서버 접속 정보 등록
CHANGE MASTER TO MASTER_HOST = '192.168.100.11' . MASTER_USER='slave' ,
MASTER_PASSWORD='slave1!' , MASTER_LOG_FILE='[파일이름]' , MASTER_LOG_POS=[로그위치];
16. Slave 역할을 실행 후 잘 구성되었느지 확인 필요. 아래의 그림처럼 출력되면 데이터베이스 복제 준비 완료
17. 메인서버와 예비서버의 데이터 복제 확인을 위해 메인 서버 replica_db 테이블에서 데이터 생성 후 예비서버에서 확인
18. 복제 완료!
'Security' 카테고리의 다른 글
Security_FTP 해킹 (0) | 2025.01.23 |
---|---|
Security_원격 접속 해킹 (0) | 2025.01.23 |
Security_웹 서버(리눅스) 보안 구축 (0) | 2025.01.08 |
Security_웹 서버 취약점 및 해킹 분석 (1) | 2025.01.08 |
Security_PAM 활용 사용자 계정 보안 (0) | 2025.01.07 |