상세 컨텐츠

본문 제목

무차별 대입 공격 (Brute Force Attack) - 방어 프로그램

Server/Windows Server

by 클리엘 클리엘 2020. 7. 31. 14:54

본문

원격 데스크톱의 경우 원격 포트는 3389, MS-SQL Server의 경우 1433입니다. 그런데 서버를 외부에서 접속 가능하도록 두면 위 2개 포트에 대해서 엄청난 대입 공격이 들어옴을 알 수 있습니다.

 

포트번호를 바꾸면 일시적으로는 공격 빈도가 줄지만 원격제어의 경우 금방 공격이 되살아나서 의미가 없고, IP를 차단하는 경우 그렇게 할 수 없는 환경에 있으면 상당히 곤란할 것입니다.

 

이를 어떻게 해결할 수 있을까 고민하다가 방화벽 InBound에 자동으로 공격자 IP를 등록해 주는 스크립트가 있음을 발견했지만 뜻대로 작동하지 않고, 해당 스크립트를 자유롭게 수정할 수 있을 만큼 스크립트를 이해하지 못해서 아예 방화벽 자동 등록 프로그램을 만들어 보았습니다.

 

소스를 Git에 공개했습니다. 소스와 프로그램은 아래에서 받을 수 있습니다.

 

https://github.com/hoon37/Ban_REMOTE_MSSQL

 

hoon37/Ban_REMOTE_MSSQL

Windows Server. Contribute to hoon37/Ban_REMOTE_MSSQL development by creating an account on GitHub.

github.com

파일을 내려받고 압축을 적당한 위치에 풀어줍니다.

 

먼저 ini파일을 봐주세요.

설정은 간단합니다. REMOTE는 원격제어로 들어오는 공격을 차단할 것인지, MSSQL은 MSSQL포트로 들어오는 공격을 차단할 것인지를 설정합니다.

 

FailedCount는 몇 번째 접속 시도에서 차단할 것인지를 설정합니다. 이 값이 3이면 3번 실패했을 때 해당 IP를 InBound에 차단으로 등록합니다.

whitelist는 예외로 처리할 IP를 , 단위로 지정합니다. 예를 들어 ip=192.168.0.1,192.168.0.2와 같이 말이죠. 그러면 해당 IP는 접속 실패 여부와 관련 없이 방화벽에 등록하지 않습니다.

 

Ban_REMOTE_MSSQL은 공격의 판단을 EventLog에서 판단합니다. 따라서 스케쥴링 프로그램을 통해 해당 공격 이벤트가 발생했을 때 다음과 같이 프로그램이 동작하도록 등록해 주세요.

 

스케쥴링 등록은 Import Task를 통해서 아래 XML 파일을 등록해 주면 됩니다. 단, 프로그램이 C:\BAN 폴더에 있다고 가정합니다. 그러면 REMOTE접속 실패나 MSSQL접속 실패 시 스케쥴링에 의해 프로그램이 동작하면서 Log을 읽고 해당 IP를 방화벽에 등록하게 됩니다.

 

http://cliel.com/data/XML.zip

 

닷홈 | 페이지를 표시할 수 없습니다.

도메인 25% 할인쿠폰 제공 최대 할인가! 13,500원 닷홈 도메인 연결시 무제한 웹호스팅 무료제공

guide-page.dothome.co.kr

정상적으로 프로그램이 동작한다면 아래와 같이 ***REMOTE_BAN*** 방화벽 규칙이 생성되고 해당 규칙에 공격자 IP들을 등록해 접속을 차단합니다.

 

※ 해당 프로그램 사용으로 인한 부작용에 대해서는 책임지지 않습니다.

※ ini에서 FailedCount는 정확성을 보장하지 않습니다. FailCount를 3으로 하면 "3번 실패시 작동한다."가 아니라 "3번 이상 실패 시 작동한다"쯤으로 해석하면 될 것 같습니다. LOG를 읽고 프로그램이 동작하는 시점에 공격이 들어올 수 있는 등 여러 가지 제반 사항이 발생하기 때문입니다.

※ Ban_REMOTE_MSSQL은 어디까지나 발생하는 EventLog를 기반으로 합니다. 실패에 대한 EventLog가 많이 쌓이면 그만큼 처리하는데 시간이 오래 걸릴 수 있으며 반대로 EventLog가 수시로 삭제되면 원하는 방향으로 프로그램이 동작하지 않을 수 있기 때문에 적절한 관리가 필요합니다.

 ini 설정처리는 https://github.com/Enichan/Ini 여기에서 가져왔습니다.

관련글 더보기

댓글 영역