
프로젝트 방향성 수정함
- 우리가 만들 거: 상용 WAF와 연결 가능한 모듈
- WAF는 실시간 탐지 → 모듈은 사후 특정 세션ID가 봇이었는지 아닌지 탐지 후 룰 생성(룰 템플릿 기준: IP/User-Agent/특정 경로 탐색 패턴/앞 3개 다 종합적으로 고려하는 동적 지문) → WAF에 새로운 룰 제안 → 이후 유사한 세션이 탐지되면 실시간 차단
- 구성
- 로그 수집기: (예) modsec_audit.log를 tail로 모듈로 전송 → 실시간 파싱 후 DB에 세션 ID 단위로 레코드 생성해서 저장
- AI 분석기: 로그 DB 받아서 세션 단위 분석
- 룰 자동 생성기: 감지된 봇 정보 기반 룰 템플릿 생성기
- (optional) 관리자용 CLI 인터페이스: 모듈이 제안하는 룰 검토 및 적용 가능하도록
- 좋은 점
- 실시간성이 중요한 WAF와 분리되어 비동기 처리하는 모듈이라 WAF 성능에 영향을 최소한으로 줄 수 있음
- 모듈형 설계라서 이식성 높음
- ModSecurity나 AWS WAF 같은 상용 WAF와 연동 가능성 있을지도?!
- AI 도입에 유리함: 모델 교체, 재학습, 튜닝 다 WAF 손 안 대고 가능함
- 나쁜 점
- 봇이 일 다 보고 떠난 후에 탐지함
- WAF마다 로그 포맷이 달라서 로그 파서 잘 만들어야 함
교수님 면담(내가 한 건 아님)
일단 웹방화벽 로그와 저런 whole HTTP 요청과는 매우 다르다고 하신 모양.
맞긴해! 저 논문도 HTTP 요청 데이터 기반으로 한 거고 웹방화벽의 웹자도 안 나오긴 했어!
웹방화벽에 붙일 수 있는 모듈 형태로 개발하는 건 굿이라고 하셨다고...
앞부분 구체화가 더 필요한 듯 하다
그래서 오픈소스인 ModSecurity를 사용해보고 로그가 어떤 식으로 남는지 확인해보기로 함 (내일까지)
이런 식으로 남는다
--6b253045-A--
[18/Aug/2009:08:25:15 +0100] SopXW38EAAE9YbLQ 192.168.3.1 2387 192.168.3.111 8080
--6b253045-B--
POST /index.html?a=test HTTP/1.1
Host: 192.168.3.111:8080
User-Agent: Mozilla/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://192.168.3.111:8080/index.html?a=test
Content-Type: application/x-www-form-urlencoded
Content-Length: 6
--6b253045-C--
b=test
--6b253045-F--
HTTP/1.1 200 OK
Last-Modified: Tue, 18 Aug 2009 07:17:44 GMT
ETag: "6eccf-99-4716550995f20"
Accept-Ranges: bytes
Content-Length: 159
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
--6b253045-E--
<html><body><h1>It works!</h1></body></html>
<form action="index.html?a=test" method="POST">
<textarea name="b">test</textarea>
<input type=submit>
</form>
--6b253045-H--
Stopwatch: 1250580315933960 1902 (551* 580 978)
Response-Body-Transformed: Dechunked
Producer: ModSecurity for Apache/2.5.9 (http://www.modsecurity.org/).
Server: Apache/2.2.11 (Unix) DAV/2
--6b253045-K--
SecAction "phase:2,auditlog,log,pass,msg:'Matching test'"
--6b253045-Z--
그리고 이건 우리가 메인으로 참고할 논문에서 써먹은 데이터셋:
- - [01/Nov/2019:10:43:18 +0000] "GET / HTTP/1.0" 200 2045 "-" - "-"
- - [01/Nov/2019:10:47:35 +0000] "GET / HTTP/1.1" 200 1172 "-" 97hf7ciplt2k54f5j6109nekn0 "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0"
- - [01/Nov/2019:10:47:35 +0000] "GET /css/main.css HTTP/1.1" 200 735 "http://160.40.52.164/" 97hf7ciplt2k54f5j6109nekn0 "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0"
흠
만약 진짜 모듈 형태로 개발한다면 관리자용 CLI 인터페이스로 관리자한테
"웹방화벽 로깅을 전부 기록하기로 설정해라" 라고 시키면 되지 않을까?
지금 전체 프로세스 생각해야하는데 자꾸 아스키 로고 뭘로 뽑지 같은 생각이나 하고 있음
그래서 딴짓하면서 만들어본 로고 후보
1. 3D-ASCII
___ ___ ___ ________ ___ __ ___ ___ ________ ________ ________ ___ __ ___ _______
|\ \ |\ \|\ \|\ ____\|\ \|\ \ |\ \ / /| |\ ____\|\ __ \|\ __ \|\ \|\ \ |\ \|\ ___ \
\ \ \ \ \ \\\ \ \ \___|\ \ \/ /|_ \ \ \/ / / \ \ \___|\ \ \|\ \ \ \|\ \ \ \/ /|\ \ \ \ __/|
\ \ \ \ \ \\\ \ \ \ \ \ ___ \ \ \ / / \ \ \ \ \ \\\ \ \ \\\ \ \ ___ \ \ \ \ \_|/__
\ \ \____\ \ \\\ \ \ \____\ \ \\ \ \ \/ / / \ \ \____\ \ \\\ \ \ \\\ \ \ \\ \ \ \ \ \ \_|\ \
\ \_______\ \_______\ \_______\ \__\\ \__\__/ / / \ \_______\ \_______\ \_______\ \__\\ \__\ \__\ \_______\
\|_______|\|_______|\|_______|\|__| \|__|\___/ / \|_______|\|_______|\|_______|\|__| \|__|\|__|\|_______|
\|___|/
2. Big money
/$$ /$$ /$$$$$$ /$$ /$$
| $$ | $$ /$$__ $$ | $$ |__/
| $$ /$$ /$$ /$$$$$$$| $$ /$$ /$$ /$$ | $$ \__/ /$$$$$$ /$$$$$$ | $$ /$$ /$$ /$$$$$$
| $$ | $$ | $$ /$$_____/| $$ /$$/| $$ | $$ | $$ /$$__ $$ /$$__ $$| $$ /$$/| $$ /$$__ $$
| $$ | $$ | $$| $$ | $$$$$$/ | $$ | $$ | $$ | $$ \ $$| $$ \ $$| $$$$$$/ | $$| $$$$$$$$
| $$ | $$ | $$| $$ | $$_ $$ | $$ | $$ | $$ $$| $$ | $$| $$ | $$| $$_ $$ | $$| $$_____/
| $$$$$$$$| $$$$$$/| $$$$$$$| $$ \ $$| $$$$$$$ | $$$$$$/| $$$$$$/| $$$$$$/| $$ \ $$| $$| $$$$$$$
|________/ \______/ \_______/|__/ \__/ \____ $$ \______/ \______/ \______/ |__/ \__/|__/ \_______/
/$$ | $$
| $$$$$$/
\______/
wow
so cute !
아 비기너 도와주고 받기로 한 기프티콘 까먹기 전에 받아야되는데 방금도 거의 까먹음
'𝐄𝐰𝐡𝐚 > 𝐄-𝐂𝐎𝐏𝐒' 카테고리의 다른 글
| AWS GuardDuty IAM finding 타입 23개 정리 (1) | 2025.10.03 |
|---|---|
| [LLM 정리] 1. Transformer Models (4) | 2025.07.24 |
| 번역 (0) | 2025.05.20 |
| 🍀5월 2주차 TWIL (0) | 2025.05.20 |
| 🍀 5월 1주차 TWIL (0) | 2025.05.12 |