업데이트로 돌아가기
UpdatedJul 28, 2026

tabi — Updated!

BGP IP 프리픽스 하이재킹 이벤트를 탐지하고 분류하기 위한 프레임워크로, MRT 덤프 파일을 처리하며 여러 입력 파서와 자동화된 충돌 분석을 지원합니다.

공유

고급 예제

이 예제는 BGP 컬렉터에서 관찰된 모든 가능한 BGP 하이재킹을 탐지하기 위해 tabi 모듈을 사용하는 방법을 보여줍니다.

요구 사항

경고: 이 예제를 실행하기 전에 컴퓨터에 최소 2GB의 여유 메모리가 있는지 확인하십시오.

설치 절차는 주요 README에 설명되어 있습니다.

MRT 파서

이 예제는 mabobgpreader와 호환됩니다.

하이재킹 탐지

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 모듈이 탐지한 비정상 이벤트를 출력합니다. 추가로 다음 방법을 사용하여 대부분 합법적일 가능성이 높은 충돌을 걸러내려고 시도합니다:

  1. 충돌하는 announce가 ROA에 포함되어 있는 경우
  2. 충돌하는 announce가 route object에 포함되어 있는 경우
  3. 두 충돌 AS 간에 관리적 관계가 있는 경우
  4. 하이재커의 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
  • conflict_with: announce와 충돌하는 RIB 항목에 대한 정보
    • valid: prefixasn 쌍에 대한 route objects 또는 ROA

철회(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 항목에 대한 정보

카테고리