Huawei: Защита плоскости управления

в 11:36, , рубрики: huawei, информационная безопасность, Сетевое оборудование, Сетевые технологии, системное администрирование

В статье рассматриваются аспекты защиты плоскости управления маршрутизаторов Huawei NE Series. Примеры приведены для NE40e, с программным обеспечением: VRP V800R008. На других типах маршрутизаторов (например NE5k) и с другой версией ПО, конфигурация может несколько отличаться.

Для более детального изучения данного вопроса, могу порекомендовать дополнительно ознакомиться с RFC 6192 (Protecting the router Control Plane).

В VRP существует ряд способов автоматической диагностики и защиты плоскости управления маршрутизаторов. Однако учитывая скудность и непрозрачность документации, я рекомендую все-таки придерживаться традиционного метода защиты: создания белых списков на необходимые протоколы и службы и закрытия остального трафика.

Основная секция политики выглядит следующим образом:

cpu-defend policy 1
 process-sequence whitelist user-defined-flow blacklist
 cp-acl ip-pool enable
 whitelist disable
 blacklist acl 3900
 blacklist ipv6 acl 3950 
 application-apperceive disable
 ip urpf loose

process-sequence определяет последовательность работы политики: белый список (который в нашем случае выключен), user-defined-flow, чёрный список (правило 3900 для IPv4 и 3950 для IPv6).

Учитывая, что мы будем определять разрешённые протоколы сами, весь же остальной трафик будет фильтроваться чёрным списком – необходимости в application-apperceive анализе нет.

Механизм URPf (Unicast Reverse Path Forwarding) включаем на консервативном loose уровне.

Чёрные списки, для IPv4 и IPv6 выглядят следующим образом:

acl number 3900
 description --- ACL For IPv4 Discard ---
 rule 5 deny tcp
 rule 10 deny udp
 rule 15 deny ip
#
acl ipv6 number 3950
 description --- ACL For IPv6 Discard ---
 rule 5 deny tcp
 rule 10 deny udp
 rule 15 deny ipv6

Политику необходимо применить на каждом слоту:

slot 1
cpu-defend-policy 1
#
slot 2
cpu-defend-policy 1
…

«По умолчанию» включены следующие механизмы защиты:

udp-packet-defend enable
fragment-flood enable
abnormal-packet-defend enable
tcpsyn-flood enable
attack-source-trace enable

Все неиспользуемые протоколы и службы рекомендуется дополнительно закрыть в секции ma-defend. Данная опция может быть включена, как глобально, так и по слотам. Например:

system-view
 ma-defend global-policy
 protocol OSPF deny
 protocol RIP deny

или

system-view
ma-defend slot-policy 1
protocol … deny

Ниже описывается user-defined политика. Общие правила, собраны в таблице ниже. Значения по скоростиприоритету указаны, как пример и не претендуют на "истину в последней инстанции". Максимальное количество элементов в user-defined политике — 64.

Вид трафика Скорость Приоритет Номер правила
BGP 1 Mb/s High 3901
LDP 1 Mb/s High 3902
IS-IS Na Na Na
VRRP 1 Mb/s High 3904
BFD 1 Mb/s High 3905
MCAST 1 Mb/s High 3906
SSH 512 Kb/s Middle 3907
FTP 5 Mb/s Low 3908
DNS 512 Kb/s Low 3909
SNMP 1 Mb/s Middle 3910
TACACS+ 1 Mb/s Low 3911
NTP 512 Kb/s Low 3912
ICMP, trace, lsp-ping 512 Kb/s Low 3913

Далее рассмотрим ACL фильтры, для соответствующих протоколовслужб.

3901. Протокол BGP.
Правило, для фильтрации протокола BGP, может выглядеть либо в упрощённом виде:

acl number 3901
 rule permit tcp destination-port eq bgp
 rule permit tcp source-port eq bgp

либо же, для каждого пира отдельно:

acl ip-pool BGP-Peers
 ip address 10.1.1.1 0.0.0.0

acl number 3901
 rule permit tcp source-pool BGP-Peers 0 destination-port eq bgp
 rule permit tcp source-pool BGP-Peers 0 source-port eq bgp

3902. Протокол LDP.

 rule 5 permit tcp source-pool Lo0_P2P destination-port eq 646
 rule 10 permit tcp source-pool Lo0_P2P source-port eq 646
 rule 15 permit udp source-pool Lo0_P2P destination-port eq 646
 rule 20 permit udp source-pool Lo0_P2P source-port eq 646

3904. VRRP

acl ip-pool VRRP_Peers
 ip address 10.1.1.1 0.0.0.0

acl number 3904
 rule permit 112 source-pool VRRP_Peers 

3905. BFD

acl number 3343
 rule permit udp source-pool Lo0_P2P destination-port eq 3784
 rule permit udp source-pool Lo0_P2P source-port eq 3784

3906. All MCAST (IGMP, PIM, MSDP)

acl number 3906
 rule permit 103
 rule permit igmp
 rule permit udp destination-port eq 639
 rule permit udp source-port eq 639
 rule permit tcp destination-port eq 639
 rule permit tcp source-port eq 639

3907. SSH

acl number 3907
 description ### SSH access ###
 rule 5 permit tcp source-pool MGMT source-port eq 22
 rule 10 permit tcp source-pool MGMT destination-port eq 22
 rule 15 permit tcp source-pool MGMT destination-port eq 830

3908. FTP. FTP-data

acl port-pool ftp
 eq 20
 eq 21

acl number 3908
 rule 10 permit tcp source-pool MGMT source-port-pool ftp
 rule 15 permit tcp source-pool MGMT destination-port-pool ftp

3909. DNS

acl ip-pool DNS
 ip address 1.1.1.1 0.0.0.0
 ip address 8.8.8.8 0.0.0.0

acl number 3909
 rule 5 permit udp source-pool DNS source-port eq dns

3910. SNMP

acl number 3909
 rule 5 permit udp source-pool SNMP source-port eq snmp
 rule 10 permit udp source-pool SNMP destination-port eq snmp

3911. TACACS+

acl number 3911
 rule 5 permit tcp source-pool TACACS source-port eq tacacs
 rule 10 permit udp source-pool TACACS source-port eq tacacs-ds

3912. NTP

acl number 3911
 rule 5 permit udp source-pool NTP source-port eq ntp
 rule 10 permit udp source-pool NTP destination-port eq ntp

3913. ICMP

acl number 3342
 rule permit icmp icmp-type echo
 rule permit icmp icmp-type echo-reply
 rule permit icmp icmp-type ttl-exceeded
 rule permit icmp icmp-type port-unreachable
 rule permit icmp icmp-type Fragmentneed-DFset
 rule permit icmp
 rule permit udp destination-port range 33434 33678
 rule permit udp destination-port eq 3503

3951. BGP for IPv6

acl ipv6 number 3951
 rule 5 permit tcp destination-port eq bgp

3952. ICMPv6

acl ipv6 number 3952
 rule 30 permit icmpv6
 rule 35 permit udp destination-port range 33434 33678

Для применения листов, их нужно привязать к cpu-defend политике следующим образом:

cpu-defend policy 1
...
 user-defined-flow 1 acl 3901
 user-defined-flow 2 acl 3902
 user-defined-flow 4 acl 3904
 user-defined-flow 5 acl 3905
 user-defined-flow 6 acl 3906
 user-defined-flow 7 acl 3907
 user-defined-flow 8 acl 3908
 user-defined-flow 9 acl 3909
 user-defined-flow 10 acl 3910
 user-defined-flow 11 acl 3911
 user-defined-flow 12 acl 3912
 user-defined-flow 13 acl 3913
 user-defined-flow 51 ipv6 acl 3951
 user-defined-flow 52 ipv6 acl 3952
 car blacklist cir 0 cbs 0
 car user-defined-flow 1 cir 1000
 car user-defined-flow 2 cir 1000
 car user-defined-flow 4 cir 1000
 car user-defined-flow 5 cir 1000
 car user-defined-flow 6 cir 1000
 car user-defined-flow 7 cir 512
 car user-defined-flow 8 cir 5000
 car user-defined-flow 9 cir 512
 car user-defined-flow 10 cir 1000
 car user-defined-flow 11 cir 1000
 car user-defined-flow 12 cir 512
 car user-defined-flow 13 cir 512
 car user-defined-flow 51 cir 10000
 car user-defined-flow 52 cir 512
 priority user-defined-flow 1 high
 priority user-defined-flow 2 high
 priority user-defined-flow 4 high
 priority user-defined-flow 5 high
 priority user-defined-flow 6 high
 priority user-defined-flow 7 middle
 priority user-defined-flow 8 low
 priority user-defined-flow 9 low
 priority user-defined-flow 10 middle
 priority user-defined-flow 11 low
 priority user-defined-flow 12 low
 priority user-defined-flow 13 low
 priority user-defined-flow 51 high
 priority user-defined-flow 52 low

для выставления предупреждений по трешхолдам, можно воспользоваться следующей функцией:

cpu-defend policy 1
...
 alarm drop-rate user-defined-flow 7 threshold 100 interval 60

тут значение threshhold выставляется в пакетах, а интервал в сек.

Статистику по работе CoPP фильтров, можно посмотреть в секции display cpu-defend...
После выполнения настроек, дополнительно стоит просканировать маршрутизатор.

В заключение хочется отметить, что Huawei (как и любой современный вендор) предлагает все необходимые методы, для защиты плоскости управления своих маршрутизаторов. А периодически появляющиеся сообщения об найденных уязвимостях, показывают, что этими инструментами не стоит пренебрегать.

Автор: ACorwin

Источник

* - обязательные к заполнению поля