MSSQL 데이터베이스에 악성코드가 감염됐다면? 증상부터 해결까지!
MSSQL을 사용하다 보면 알 수 없는 오류가 발생하거나 서버 성능이 급격히 저하되는 경우가 있습니다. 혹시 데이터베이스(DB)에 악성코드가 감염된 것은 아닐까요?
💡 MSSQL도 해킹과 악성코드 감염에서 자유롭지 않습니다. 특히, 보안 설정이 제대로 되어 있지 않거나, 외부에서 접근이 가능한 경우 공격 대상이 될 수 있습니다.
이 글에서는 MSSQL 악성코드 감염의 징후, 원인, 해결 방법을 초보자도 쉽게 이해할 수 있도록 설명해 드리겠습니다.
1. MSSQL이 악성코드에 감염됐을 때 나타나는 증상
만약 아래와 같은 증상이 나타난다면 악성코드 감염을 의심해볼 수 있습니다.
🔍 성능 저하 및 이상 징후
✅ CPU 사용률이 갑자기 치솟고 서버가 느려짐
✅ MSSQL 서비스가 자꾸 중단되거나 강제 종료됨
✅ 데이터베이스 연결이 자주 끊어짐
🔍 이상한 SQL 실행 기록 발견
✅ 보낸 적 없는 SQL 쿼리가 실행됨
✅ xp_cmdshell, sp_OACreate 같은 위험한 명령어가 실행됨
✅ 특정 계정이 갑자기 관리자 권한을 가지게 됨
🔹 실제로 악성코드가 실행되고 있는지 확인하는 방법
아래 SQL을 실행해 보세요. 최근 실행된 쿼리 목록이 나옵니다.
SELECT top 50 q.text, s.session_id, s.login_name, s.status
FROM sys.dm_exec_requests r
JOIN sys.dm_exec_sessions s ON r.session_id = s.session_id
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) q
ORDER BY r.start_time DESC;
이상한 SQL 명령어가 있다면, 악성코드일 가능성이 높습니다.
2. MSSQL에 악성코드가 감염된 원인은?
🚨 MSSQL 악성코드는 SQL Injection(인젝션), 취약한 계정 설정, 외부 접근 허용 등으로 감염될 수 있습니다.
❌ 1) SQL Injection(인젝션) 공격
공격자가 웹사이트 입력창에 DROP TABLE 같은 명령어를 삽입하면, MSSQL이 이를 실행해 데이터가 삭제되거나 변조될 수 있습니다.
❌ 2) 취약한 계정 설정
✅ 'sa' 계정을 기본 비밀번호로 설정
✅ 불필요한 계정이 관리자 권한을 가지고 있음
👉 보안이 허술한 계정은 해커의 주요 공격 대상이 됩니다!
❌ 3) MSSQL에 외부 접속이 열려 있음
✅ 방화벽 설정 없이 1433 포트를 열어둠
✅ VPN 없이 원격으로 MSSQL에 접근 가능
🔹 외부에서 접속 가능한 상태라면, 누구든지 해킹을 시도할 수 있습니다. 반드시 방화벽을 설정하거나 IP를 제한해야 합니다.
3. MSSQL 악성코드 제거하는 방법
🚨 지금부터 악성코드를 제거하는 방법을 차근차근 알려드리겠습니다.
✅ 1) 외부 접속 차단 (긴급 조치)
만약 악성코드가 의심된다면, MSSQL 서비스 중지 & 방화벽 설정이 필수입니다.
Windows에서는 명령 프롬프트(CMD)에서 다음 명령어를 입력하세요.
이렇게 하면 MSSQL 서버가 즉시 중단됩니다.
또한, 방화벽 설정을 통해 1433 포트를 차단하는 것이 좋습니다.
✅ 2) 의심스러운 계정 확인 & 차단
MSSQL에 새롭게 추가된 계정이 있는지 확인하세요.
SELECT name, create_date
FROM sys.sql_logins
ORDER BY create_date DESC;
만약 모르는 계정이 있다면? 즉시 비활성화하세요!
ALTER LOGIN [의심되는 계정명] DISABLE;
✅ 3) 악성 SQL 프로세스 종료
악성코드가 실행 중이라면, 해당 프로세스를 강제 종료해야 합니다.
SELECT *
FROM sys.dm_exec_requests
WHERE session_id > 50;
이 명령어로 현재 실행 중인 SQL 프로세스를 확인한 후, 의심스러운 프로세스를 종료하세요.
KILL [Session_ID];
✅ 4) 악성코드가 심어놓은 저장 프로시저 제거
악성코드가 저장 프로시저(Stored Procedure)에 숨어 있을 수도 있습니다.
SELECT *
FROM sys.sql_modules
WHERE definition
LIKE '%xp_cmdshell%' OR definition LIKE '%sp_OACreate%';
만약 위험한 명령어(xp_cmdshell, sp_OACreate)가 포함된 프로시저가 있다면 삭제하세요.
DROP PROCEDURE [의심되는 프로시저명];
4. 악성코드 예방 방법 (필수 보안 설정)
✔ MSSQL 방화벽 설정 및 외부 접속 차단
✔ 관리자 계정(sa) 비활성화 & 강력한 비밀번호 설정
✔ SQL Injection 방어: 입력값 필터링
✔ 로그 모니터링 시스템 구축 (WAF, SIEM 등)
✔ 주기적인 보안 패치 적용 & MSSQL 업데이트
💡 보안이 취약하면 언제든지 다시 감염될 수 있습니다.
따라서 지속적인 모니터링과 예방 조치가 필수입니다.
📌 마무리하며
MSSQL 데이터베이스는 보안 설정이 미흡하면 쉽게 공격받을 수 있습니다.
👉 만약 서버가 느려지거나, 의심스러운 SQL 실행 기록이 있다면 즉시 점검하세요.
지금까지 MSSQL 악성코드 감염의 증상, 원인, 해결 방법을 초보자도 쉽게 따라 할 수 있도록 정리해 보았습니다.
💬 혹시 추가로 궁금한 점이 있나요? 댓글로 남겨주시면 답변해드리겠습니다! 😊
🚀 더 많은 IT 보안 팁이 필요하다면?
'IT > DB' 카테고리의 다른 글
SQL 인젝션이란? 초보자도 이해하는 데이터베이스 해킹 기법과 방어 방법 (0) | 2025.02.27 |
---|---|
[MySQL] SELECT INSERT INTO 구분 (0) | 2023.05.18 |
Mysql 사용자 추가 및 제거, DB 생성 부터 권한 부여까지 (2) | 2023.05.11 |
MySQL 문자열 합치기 - CONCAT, CONCAT-WS (0) | 2020.04.20 |
MS SQL Express 트리거 DB 메일 보내기 (0) | 2019.08.16 |
댓글