220 likes | 229 Views
Learn how to set up and use Bro for network monitoring. This guide provides instructions for installation, configuration, and troubleshooting along with helpful scripts by Seunghwan.
E N D
Bro 기본 사용법 • Broctl로 Bro를 시작할 수 있음 • Log 들은 /usr/local/bro/logs에 쌓이며, current/ 폴더에서 최종적으로 확인 가능
설치 환경설정 주의사항 • /usr/local/bro/etc에서 설정파일 변경 가능- broccoli.cfg : broccoli 시스템 환경설정 (피어 , 포트번호등)- broctl.cfg : broctl시스템 환경설정- network.cfg : 로컬 네트워크 환경설정- node.cfg : broctl node 설정 • 수정 후 sudobroctl deploy
설치 환경설정 주의사항 • Ubuntu 16.04 기본 인터페이스 이름 ens33 • The bro 기본 값 eth0 이기 때문에 오류 발생 • node.cfg수정
설치 환경설정 주의사항 • Error: error occurred while trying to send mail: send-mail: SENDMAIL-NOTFOUND not found • broctl.cfg에서 SendMail = /usr/sbin/sendmain추가
로그 파일 확인 • weird.log, http.log • 이외에도 conn.log(해당 인터페이스로 통하는 모든 연결), notice.org(흥미롭거나 이상하거나 나쁜 패킷들)
bro script • 기본경로/usr/local/bro/share/bro • .bro 확장자 • site 디렉토리만 수정을 권장 • base : bro 가 자동적으로 모든 스크립트를 로드하며bro의 다양한 기능들이 내장, 추가적인 performance cost 소모없이 사용 가능 • policy : 상황에 따라 cost 가 발생할 수 있는 기능들로 사용자의 선택 하에 Load 되는 스크립트 • site/local.bro를 메인으로 스크립트들이 실행 됨
local.bro • bro 전체에서 load 할 스크립트 관리 • 몇 가지 policy 들이 기본으로 활성화 되어있음. • Script option 재정의
bro script 구조 • 해당 경로의 스크립트들을 import • 디렉토리를 load 할 경우 __load__.bro를 기준으로 load • 모듈이름 정의
bro script 구조 • Notice::Type 을 지정하여 외부에서 import 가능 • TeamCymruMalwareHashRegistry::Match
Notice Framework • “notice”란 이상하거나 악성일 가능성이 있는 것들 • 모든 Notice 관련 함수들을 관리
Bro Notice Index • 기본으로 설정되어있는 Notice 들을 검색할 수 있음 • 정의한 소스코드의 위치, 간단한 설명, redefine 가능 옵션 등
Notice Framework • Notice Framework 로 사용할 수 있는 함수들이 설명되어있음.
bro script 구조 • &redef옵션들은 외부에서 redefine 가능
Script Option 재정의 • base/frameworks/notice/main.bro • site/local.bro
bro script 구조 • bro 의 함수 선언
bro script 구조 • 이벤트 핸들러 • 스크립트의 주요 동작 부분
bro script tutorial • http://try.bro.org/#/trybro
커맨드라인에서 바로 실행 • bro –i [인터페이스 이름] [스크립트 이름] • 해당 스크립트만 적용할 수 있어 디버깅에 유용
패킷덤프에 스크립트 적용 • sudo bro –r [패킷덤프 이름] [스크립트 이름] • 이미 덤프된 패킷에 스크립트를 적용해 볼 수 있음