
UpdatedJul 28, 2026
tabi — Updated!
BGP IP 프리픽스 하이재킹 이벤트를 탐지하고 분류하기 위한 프레임워크로, MRT 덤프 파일을 처리하며 여러 입력 파서와 자동화된 충돌 분석을 지원합니다.
고급 예제
이 예제는 BGP 컬렉터에서 관찰된 모든 가능한 BGP 하이재킹을 탐지하기 위해 tabi 모듈을 사용하는 방법을 보여줍니다.
요구 사항
경고: 이 예제를 실행하기 전에 컴퓨터에 최소 2GB의 여유 메모리가 있는지 확인하십시오.
설치 절차는 주요 README에 설명되어 있습니다.
MRT 파서
이 예제는 mabo 및 bgpreader와 호환됩니다.
하이재킹 탐지
python detect_hijacks.py -c rrc01 -i mabo \
--rpki-roa-file roa.csv \
--irr-ro-file routes.csv \
--irr-mnt-file maintainers.csv \
--irr-org-file organisations.csv \
../../{bview,updates}.*.gz
이 예제 스크립트는 tabi 모듈이 탐지한 비정상 이벤트를 출력합니다. 추가로 다음 방법을 사용하여 대부분 합법적일 가능성이 높은 충돌을 걸러내려고 시도합니다:
- 충돌하는 announce가 ROA에 포함되어 있는 경우
- 충돌하는 announce가 route object에 포함되어 있는 경우
- 두 충돌 AS 간에 관리적 관계가 있는 경우
- 하이재커의
AS_PATH가 하이재킹된 ASN을 포함하는 경우
이러한 휴리스틱은 tabi.annotate 모듈에 문서화되어 있습니다.
결과 해석
업데이트 예제
이 예제에서 AS55441에서 시작된 2403:8600:ea89::/48 경로를 업데이트하는 announce는 원래 AS131317으로 향하던 트래픽이 리디렉션될 가능성이 높음을 나타냅니다. 이는 원래 경로에는 유효한 route object와 ROA가 있지만 최신 경로 업데이트에는 없기 때문에 의심스럽습니다.
{
"timestamp" : 1451609472,
"collector" : "rrc01",
"peer_ip" : "2001:7f8:4::7992:1",
"peer_as" : 31122,
"announce" : {
"prefix" : "2403:8600:ea89::/48",
"asn" : 55441,
"as_path" : "31122 6939 6453 4755 45820 55441",
"type" : "U"
},
"conflict_with" : {
"prefix" : "2403:8600:ea89::/48",
"asn" : 131317,
"valid" : [
"apnic",
"roa"
]
},
"type" : "ABNORMAL"
}
- timestamp: announce가 수신된 시각(UTC 타임스탬프)
- collector: announce를 수신한 BGP 컬렉터
- peer_ip & peer_as: announce를 수신한 BGP 피어
- announce: announce에 대한 정보
- type: announce가 BGP 업데이트에서 수신된 경우
U, BGP 전체 뷰(full view)에서 수신된 경우F
- type: announce가 BGP 업데이트에서 수신된 경우
- conflict_with: announce와 충돌하는 RIB 항목에 대한 정보
- valid:
prefix및asn쌍에 대한 route objects 또는 ROA
- valid:
철회(Withdraw) 예제
이 예제에서 AS5570의 경로 23.192.176.0/20을 철회하는 announce는 트래픽이 덜 구체적인 프리픽스 23.192.0.0/11에 대한 경로를 announce하는 AS35889 쪽으로 리디렉션될 가능성이 높음을 나타냅니다.
{
"timestamp" : 1451609643,
"collector" : "rrc01",
"peer_ip" : "195.66.224.138",
"peer_as" : 2914,
"withdraw" : {
"asn" : 55740,
"prefix" : "23.192.176.0/20",
"type" : "W"
},
"conflict_with" : {
"prefix" : "23.192.0.0/11",
"asn" : 35994
},
"type" : "ABNORMAL"
}
- timestamp: announce가 수신된 시각(UTC 타임스탬프)
- collector: announce를 수신한 BGP 컬렉터
- peer_ip & peer_as: announce를 수신한 BGP 피어
- withdraw: 철회에 대한 정보
- conflict_with: announce와 충돌하는 RIB 항목에 대한 정보