본문 바로가기

MSSQL 데이터베이스에 악성코드가 감염됐다면? 증상부터 해결까지!

액트 2025. 2. 27.
반응형

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)에서 다음 명령어를 입력하세요.

net stop MSSQLSERVER

이렇게 하면 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 보안 팁이 필요하다면?

반응형

댓글