Snort를 사용하여 FTP 무차별 대입 공격 방지

Snort를 사용하여 FTP 무차별 대입 공격 방지

저는 Snort에 익숙해지려고 노력하고 있으므로 3개의 VM을 설정했습니다. Snort를 설치한 XAMPP와 Ubuntu가 설치된 Windows 머신인 Kali.

나는 Afpacket 인라인 모드에서 Snort를 실행하고 있다고 생각합니다. Snort가 시작될 때마다 "인라인 작업 활성화 - IDS 모드에서 실행"이라는 메시지가 표시됩니다.

Windows 시스템에는 사용자 이름이 "John"이고 비밀번호가 123456인 FTP 서버가 있습니다. Kali에서 Ncrack을 이용해 서버를 공격했는데 약 2분만에 비밀번호를 알아낼 수 있었습니다. 나는 공격을 차단하고 실제 사용자(로그인하려는 호스트)와 공격자를 구별할 수 있도록 노력하고 있습니다. 내 계획은 다음과 같은 규칙을 만드는 것입니다. "서버가 1초 내에 5회 이상의 로그인 시도를 받으면 패킷/시도를 삭제합니다."

많이 검색했는데 이번 주에 많은 시간을 보냈는데 올바른 규칙을 찾을 수 없습니다.

추천 메뉴가 무엇인가요? 어떤 규칙을 시도해야 합니까? 내가 뭐 잘못 했어요? 감사해요

내가 지금까지 시도한 것 :

Alert tcp any any -> $HOME_NET 21 (msg: "수신되는 FTP 연결"; 플래그:S; sid:10000010;) #alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg: "수신되는 SSH 연결"; GID:1 ; sid:10000012; rev:001;) #drop tcp $HOME_NET 21 -> $EXTERNAL_NET any (msg:"FTP 로그인 오류"; 내용:"530 로그인"; nocase; 흐름:from_server,build; 클래스 유형:잘못됨 -알 수 없음 ; 임계값: 둘 다 입력, 추적 기준: 5, 초 sid: 491 ;)

#alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg: "가능한 FTP 무차별 공격"; 메타데이터: 서비스 ftp-data; 세션:바이너리; sid:10000011; rev:001;)

#drop tcp $HOME_NET 21 -> $EXTERNAL_NET any (msg:"FTP 무차별 대입 공격 시도"; 내용:"530 잘못된 로그인 또는 비밀번호!"; nocase; 흐름: 상태 비저장; 임계값: 둘 다 유형, 추적 by_dst, 개수 3 , 두 번째 1; sid: 10000012;

#drop tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"FTP 수신 연결"; 플래그:S; 임계값: 둘 다 입력, 추적 by_src, 개수 3, 초 1; sid:100000011; rev:1;)

#drop tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"프로토콜-FTP 사용자 오버플로 시도"; 흐름:to_server,builded; content:"USER",nocase; isdataat:100,relative; pcre:"/^USER( ?!\n)\s[^\n]{100}/smi"; 메타데이터: 정책 max-Detect-ips 삭제, 규칙 세트 커뮤니티; 참조: bugtraq,1>

#drop tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"Protocol-FTP PASS 오버플로 시도";flow:to_server,builded; content:"PASS",nocase; isdataat:100,relative; pcre:"/^PASS( ?!\n)\s[^\n]{100}/smi"; 메타데이터: 정책 max-Detect-ips 삭제, 규칙 세트 커뮤니티 참조: bugtraq,1>

#drop tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg: "Protocol-FTP ProFTPD 사용자 이름 sql 주입 시도"; 흐름: to_server, 설정; 콘텐츠: "|25 27|", fast_pattern, nocase; 콘텐츠: "USER "; pcre:"/USER\s*[^\x0d]+\x25\x27/smi"; 메타데이터: 정책 max-Detect-ips drop; 참조:> #drop tcp $HOME_NET 21 -> $EXTERNAL_NET any ( msg: " FTP 로그인 실패"; 콘텐츠: "530 로그인"; nocase; 흐름:from_server,builded; 임계값: 모두 유형, 추적 by_dst, 개수 10,초 15; sid:10000011; ) #drop tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg: "FTP 로그인 성공"; 내용: "PASS"; nocase; 오프셋: 0; 깊이: 4; 내용: "|0a|"; 범위: 3; 프로세스: from_client, 설정됨; 임계값: 둘 다 입력, 추적 by_dst , 카운트 10, 초 sid: 10000012;

tcp $HOME_NET any -> $EXTERNAL_NET any (msg: "BLEEDING-EDGE-SCAN 잠재적인 FTP 무차별 대입 시도"; flow:from_server,builded; content: "530 "; pcre: "/^530\s+(Login| User ) /smi"; 클래스 유형: 실패한 사용자; 임계값: 유형 임계값, 추적 기준_dst, 카운트 5, 초 30; sid: 2002383; rev: 3;)

#alert tcp $HOME_NET 21 -> $EXTERNAL_NET any (msg:"ET SCAN 잠재적인 FTP 무차별 대입 시도"; 흐름:from_server,builded; dsize:<100; 콘텐츠:"530 "; 깊이:4; pcre:"/ 530 \s+(Login|User|Failed|Not)/smi"; classtype:unsuccessful-user; 임계값: 동시 입력, by_dst 추적, 5초, 30초; 참조: url,doc.emergingthreats.net/2002383; 참조: URL , www.emergingthreats.net/cgi-bin/cvsweb.cgi/sigs/SCAN/SCAN_FTP_Brute_Force sid: 2002383;)

위의 대부분은 로그와 함께 제공되며 일부 덩어리가 있다고 생각하지만 실제로 원하는 것은 아닙니다.

관련 정보