snort.logs.xxxxxxx를 사용하여 경고 파일 DATA를 찾는 Snort

snort.logs.xxxxxxx를 사용하여 경고 파일 DATA를 찾는 Snort

저는 보안 팀에서 /var/log/snort 폴더 아래에 pcap 파일을 제공하도록 요청하는 작업을 진행 중입니다. 그들은 경고 파일에서 소스 IPADDRESS를 선택했으며 해당 소스 IP 주소에 대한 pcap 파일(예: snort.log.xxxxxxx)에 대한 추가 분석을 수행해야 합니다.

경고 파일과 snort.log.xxxxx 파일은 동일한 폴더에 있습니다. 분석을 위해 정확한 snort.log.xxxxx 파일을 제공하는 방법은 무엇입니까? 이를 수행하려면 몇 가지 명령이나 기술을 알려주십시오. 나는 snort가 로그를 덤프하는 Linux 시스템(Centos 7)을 처리하고 있는 이 분야를 처음 접했습니다.

답변1

당신이 말했듯이, 기본적으로 Snort는 두 가지 방법으로 기록합니다:

  1. alert파일 - 텍스트 형식의 경고 메타데이터를 포함합니다.
  2. snort.log.##########- 경고를 발생시킨 패킷의 PCAP

내가 이 작업을 수행하는 방법은 다음과 같습니다(기본 Linux bash 명령만 사용).

단일 경고 접근 방식

경고 항목을 찾으려면 다음을 수행하십시오.

파일 을 검색하세요 alert. 를 사용하여 IP 주소 또는 경고 이름으로 검색할 수 있습니다 grep.

grep "PATTERN" /var/log/snort/alert

일반적인 로그 항목 줄은 다음과 같습니다.

01/04-03:28:11.959559  [**] [1:1000001:1] Signature_Name [**] [Classification: Attempted User Privilege Gain] [Priority: 1] {TCP} 192.168.1.1:80 -> 192.168.1.128:39590

해당 PCAP 파일을 찾으려면:

그런 다음 어떤 파일이 작성되었는지 알아내기 위해 긴 디렉터리 목록( ls -l)에서 수정된 시간을 보거나 타임스탬프를 변환할 수 있습니다(연도를 추가하고 날짜와 시간 사이에 공백을 넣는 것을 잊지 마십시오). ) 다음 명령을 사용하여 에포크 시간으로 변환합니다.

date "+%s" -d "01/04/2018 03:28:11.959559"

산출:

1515054491

그런 다음 snort.log.1515054491. 여기에는 PCAP 데이터가 포함되어야 합니다.

하나의 IP 주소에 대해 여러 개의 로그가 필요한 경우

이것이 큰 망치 접근 방식입니다. 단일 IP 주소에만 관련된 두 파일의 항목을 원하는 경우 다음을 수행합니다.

경고 파일 항목

IP 주소를 Grep한 다음 별도의 파일에 출력을 씁니다.

grep "192.168.1.1" /var/log/snort > /tmp/alerts_192.168.1.1.txt

IP 주소가 나타나는 줄만 필터링하고 보안 팀에 제공할 수 있는 새 파일로 리디렉션하면 됩니다.

PCAP 파일

snort 로그 디렉터리가 매우 클 수 있고 대규모 파일 그룹을 반복하면 시스템에 부담을 줄 수 있으므로 이 작업을 수행할 때 주의를 기울일 것입니다(특히 트래픽 볼륨이 매우 높은 센서인 경우). 찾고 있는 데이터에 대한 대략적인 기간 동안 파일 마스크를 사용하는 것이 좋습니다. 이 기간은 에포크 형식이어야 한다는 점에 유의하세요.

팀이 지금부터 한 시간 전(3600초)까지의 모든 것을 원한다고 가정해 보겠습니다. Epoch 타임스탬프는 1515054491입니다. 여기서 3600을 빼면 1515050891이 됩니다.

1515050891 - Start
1515054491 - End
151505???? - File mask (close enough)

그런 다음 for 루프를 만들어 모든 파일을 반복하고 tcpdump 명령을 실행하여 문제의 IP 주소만 필터링합니다.

tcpdump -r infile -w outfile "BPF"

옵션:

  • -r은 파일에서 읽기 위한 것입니다(인터페이스에서 라이브 캡처를 시작하는 것과 반대).
  • -w는 파일에 출력을 쓰기 위한 것입니다.
  • "BPF" - Berkley 패킷 필터(이 경우 해당 IP가 있는 패킷을 지정하는 것은 "호스트 192.168.1.1"입니다.)

이제 for 루프는 다음과 같습니다.

cd /var/log/snort
for file in snort.log.151505????
do
    tcpdump -r $file -w /tmp/$file "host 192.168.1.1"
done

이제 폴더에 모든 경고 파일의 복사본이 있어야 /tmp하지만 해당 특정 IP 주소와 관련된 데이터만 포함되어야 합니다. 설치한 경우 mergecap다음을 사용하여 이 모든 항목을 단일 PCAP 파일로 결합하는 것이 좋습니다.

mergecap -w /tmp/snort_log_192.168.1.1.pcap /tmp/snort.log.*

다음 위치에 두 개의 파일이 있다는 것을 알아야 합니다 /tmp.

  • /tmp/alerts_192.168.1.1.txt
  • /tmp/snort_log_192.168.1.1.pcap

그런 다음 해당 파일을 보안 팀에 제공하세요.

관련 정보