Null Routing (Blackhole Routing)이란

  • 특정 IP 또는 특정 대역에서 과도한 스캐닝이나 공격시도가 감지된다면 해당 IP 또는 대역을 차단할 수 있는데, 이때마다 일일이 access list를 지우고 다시 설정하는 작업은 번거로운 일임
  • access list보다 CPU 부하가 적으면서도 손쉽게 필터링이 가능한 Null Routing을 사용
  • 특정 목적지IP 또는 IP대역에 대해 특정한 인터페이스로 라우팅 테이블을 강제로 지정 → 특정패킷이 라우터 내부로 들어올 수는 있지만 나갈 수는 없도록 하는 것으로 내부적으로 패킷을 필터링하는 것이 아니라 패킷을 Null 0 인터페이스로 포워딩하는 개념
  • blackhole filtering이라고도 함 → Null이라는 가상의 interface로 보내는것을 blackhole로 보내는 것과 비슷
  • 특정한 IP또는 IP대역에 대해서 null이라는 가상의 interface로 보냄
  • Null Interface는 특정주소를 목적지로 하는 트래픽을 차단(혹은 폐기)하기 위해서 사용
  • Null Interface는 ACL 과는 달리 라우터의 CPU 소모율(CPU 부하)이 낮기 때문에 효과적으로 라우터의 부하를 줄이는 방법
  • Null Interface는 Routing Loop를 방지하는데 도움을 줌


Null Routing 사용 이유

  • ACL보다 Router에 부하가 덜하고, 설정이 편리하단 점에선 ACL보단 편리함
  • Null Routing은 Dest IP나 IP대역에 대해서 막는건 쉽지만, 기능적으로 제한적임
  • Null Routing과 달리 ACL은 패킷에대해 포트나 Source IP, Dest IP에 대해 유연하게 제어가 가능
  • 네트워크대역에 대해 심각하게 IP스캔을 하거나 스팸을 뿌리는 IP가 보일 경우 Null Routing으로 차단 필요
  • 공격자는 대부분 차단된 것을 확인 후에는 더 이상의 시도를 하지 않게 되고 때때로 자동화된 스캔 프로그램을 실행해 두었는지 차단되고 있음에도 불구하고 계속시도를 하는 경우도 있음 → 공격한 패킷은 Null0으로 이동하기에 CPU 부하 X
  • Null Routing이란 소스 IP에 대한 라우팅이 아니라 목적지 IP에 대한 라우팅이므로 공격자의 IP를 Null0으로 설정하였을 경우 공격자의 요청(소스:공격자, 목적지:내부서버)은 라우터를 통과하여 서버까지 전달되지만 서버에서의 응답(소스:내부서버, 목적지:공격자)이 blackhole처럼 Null0로 보내어져 사라지게 함 → 패킷 부하 X
  • Null Routing 참고 사항
    • 공격자의 소스 IP를 차단하려면 access list를 사용해야함
    • Null Routing은 포트까지 제어할 수 있는 L4가 아니라 IP나 IP대역을 차단하는 L3
    • Null Routing은 특정한 포트를 차단할 수는 없음으로, 특정 포트를 차단하기 위해서는 extended access list 사용 필요


Null Routing 사용 형식

  • static routing을 이용하여 특정한 목적지 IP 또는 대역을 Null0라는(유닉스의 /dev/null과 유사) 가상의 쓰레기(garbage) 인터페이스에 강제적으로 보냄으로써 트래픽을 차단하는 방식
  • 라우터에서는 패킷이 필터링 될 때마다 해당 패킷의 소스 IP로 icmp unreachable messages를 발송 → 서비스 거부 공격이 이루어지고 있을 경우 필터링 되는 패킷으로 인하여 라우터에서 많은 icmp 패킷이 유발 (라우터에 과부하를 유발)
  • Null0 인터페이스에서 반응하지 않도록 no ip unreachables 설정 → 포트스캔이나 IP스캔의 결과를 지연시키거나 보이지 않도록 하는 효과
  • Null Routing 사용 형식
    interface Null0
    no ip unreachables
    !
    ip route <dest to drop> <mask> Null0

  • sender.com에서 receiver.com으로 telnet 접속을 시도
    1. 라우터 내부에는 receiver.com이라는 서버가 없거나 다운되어 연결할 수 없기 때문에 라우터에서 대신 icmp로 응답
    2. "no ip unreachables” 설정 후에는 라우터에서 반응 X
    3. ip unreachables를 반드시 사용하여야 할 특별한 이유가 있다면 “ip icmp rate-limit unreachable”을 이용하여 응답하는 비율을 제한
      sender.com.31504 > receiver.com.23: S
      router > sender.com:icmp: host receiver.com unreachables

  • Null Routing을 이용하여 231.1.1.1 IP를 차단

    1. static routing이므로 mask 적용 시 access list에서 사용하는 wildcard mask를 쓰지 않도록 주의 필요

      interface Null0
      no ip unreachables
      !
      ip route 231.1.1.1 255.255.255.255 Null0
    2. wildcard mask를 사용하여 231.1.1.0/24 대역을 차단

      Router(config)#ip route 231.1.1.0 255.255.255.0 Null0
    3. 설정한 내용을 해제하려면 설정내용 앞에 no가 필요



패킷트레이스 Null Routing 사용 예시

  • Null Routing 명령어 구조
    router(config)# ip route [dest ip | network] [subnet mask] null0

  • Null Routing 설정하지 않고 203.235.222.3 -------> 192.168.10.1으로 ping 테스트 (정상)

  • Null Routing 설정 (203.235.222.0/24 대역 차단) → -------> 192.168.10.1으로 ping 테스트 (일정 시간 초과하면 차단)
    # 양식
    R1(config)# ip route 203.235.222.0 255.255.255.0 null0

참고 URL : https://www.linux.co.kr/bbs/board.php?bo_table=lecture&wr_id=2601
참고 URL : https://secdata.tistory.com/18


+ Recent posts