허니팟 로그에서 정책에 사용할 문장 추출하기 (grep,uniq,sort 사용)

사진 1 : 시험 기간 동안 쌓인 허니팟 로그

수리카타(Suricata)나 grep으로 수동 차단을 하기 위해 비정상적인 경로로 접근하는 봇들을 수집하기 위해서 허니팟을 만들어 두었고 시험 기간 동안 많은 양의 로그가 쌓였다.

xx.xx.xx.xx – – [29/Nov/2025:16:00:22 +0900] “GET /wp-content/plugins/hellopress/wp_filemanager.php HTTP/1.1” 404 78081 “-” “-“

위 처럼 수 많은 로그가 쌓였을 경우에는 grep,uniq,sort 를 이용하여 정책 구성에 필요한 문자열만 추출 할 수 있다.

우선 grep을 이용하여 의심되는 IP가 발견 되면 해당 IP 로그만 추출한다

cat access.log | grep 123.123.123.123 > honenypot.txt

사진 1 처럼 비정상적인 페이지만 들어가거나 실제로 존재 하지 않는 페이지에 연속해서 접속에 시도하는 경우 대부분은 취약점을 찾으러 다니는 중국,러시아 봇이다

grep -o ‘GET /[^ ]*\.php’ honeypot.txt | cut -d’ ‘ -f2 | sort -u

설명
grep -o : 매칭된 부분만 출력
‘GET /[^ ]*.php’: 정규표현식 패턴
GET → HTTP 메소드
/ → 경로 시작 부분 부터
[^ ]* → 공백이 아닌 모든 문자 0개 이상
.php → .php로 끝나는 곳 까지
즉, GET 시작한 다음 / 으로 시작하는 거 부터 .php로 끝나는 거 추출하는 인자 값이다.


cut -d’ ‘ -f2 | sort -u
앞선 명령에서 GET /wp-content/plugins/hellopress/wp_filemanager.php 이렇게 2개의 단어로 나왔을 때 후자만 출력하게 해주고 중복 정리 후 정렬하는 명령어다

결과
/.well-known/acme-challenge/about.php
/000.php
/031.php
…. (중략)

이렇게 나온 값들을 본인이 가진 방화벽이나 IPS에 맞게 규칙을 짜서 자동 차단하도록 셋팅하면 된다!