Windows Firewall: Защита от WannaCry

WannaCry заражает компьютер, используя EternalBlue — это эксплоит разработанный АНБ, который эксплуатирует уязвимость протокола SMB (Windows Server Message Block). MS выпустили хотфиксы, но атаку SMBLoris это не останавливает. Причём даже удаление SMBv1 не помогает. Вместо этого проще создать правило для файрвола, которое бы блокировало все входящие соединения на порты 445 и 139.

Года за 3 использования KIS он не словил ни одного вируса (просто их не было на компе), зато постоянно жаловался на дистрибутив Process Hacker, как на подозрительную программу. Я добавлял его в исключения, но жалобы не кончались. После очередного обновления KIS у меня комп стал загружаться значительно медленнее. Особенно это заметно перед загрузкой Welcome screen — появляется индикатор загрузки на тёмном экране. В общем, я решил потихоньку отвыкать от KIS и пользоваться встроенными средствами (по крайней мере файрволом).
Буду понемногу добавлять правила для встроенного файрвола.

Итак, создаём правило для встроенного в систему firewall (брандмауэр или межсетевой экран).
1. Открываем оснастку файвола в Панели управления:
Control Panel -> Windows Firewall
2. В левой части окна выбираем Advanced Settings:

При необходимости вводим пароль админа на запрос UAC

3. В левой части окна оснастки выделяем Inbound Rules и нажимаем правую кнопку мыши
4. В меню выбираем New Rule…:

5. На шаге Rule Type выбираем Port и нажимаем «Next»:

6. Для шага Protocol and Ports оставляем TCP и выбираем Specific local ports через запятую 445 и 139, после чего жмём «Next»:

7. На шаге «Action» в качестве действия выбираем «Блокировать соединение», после чего опять жмём «Next»:

8. На шаге «Profile» оставляем галочки напротив всех типов сетей, и жмём «Next»:

9. Осталось на шаге «Name» заполнить поля с названием правила и, при желании, поле «Описание» и нажать «Finish»:

То же самое с помощью PowerShell:

New-NetFirewallRule -DisplayName 'WannaCry (SMBLoris) protection' -Description 'Block all incoming connections on ports 445 and 139.' -Action Block -Protocol TCP -LocalPort @('445', '139') -Group "USER"

Скрипт НЕ делает проверку на наличие правила, поэтому если запустить его несколько раз, будет создано несколько одинаковых правил! Для более удобной сортировки я добавил группу USER