Существуют различные варианты попыток защитысокрытия сервисов от «любопытных глаз». Основные: использование нестандартного порта, fail2ban, ACL и tarpit (и их сочетание). Есть ещё port knocking. Но, очень часто эта технология оказывается не используемой. Где-то из-за незнания технологии (хотя, статей хватает). Но, чаще из-за проблем на практике, которые мешают её внедрению:
‣ сложности использования технологией неподготовленным пользователям;
‣ фильтрация трафика (как на стороне клиента, так и сервиса);
‣ «раздувание» сгенерированных правил;
‣ несогласованность с другими отделами безопасности (трафик для port knocking может считаться зловредным).
Часто игнорирование port knocking приводит к тому, что задачи по безопасности пытаются решать другими технологиями. Что приводит к решениям, простота и эффективность которых вызывает вопросы. Усугубляется это частым отсутствием знаний в области наступательной безопасности: непониманием как атакующие могут обходить средства защиты. Я за годы работы пентестером и архитектором безопасности очень полюбил port knocking и нашёл варианты решить самые частые проблемы с его использованием. Ими и хочу поделиться.
Исходная задача: уменьшить количество несанкционированных обращений к сервису (в идеале — исключить полностью). При этом не мешая легитимным обращениям.
В статье обсудим:
‣ зачем (и как) пытаться убрать сервис из базы поисковиков (Censys, Shodan);
‣ использование нестандартного порта, fail2ban, ACL, tarpit и какие подходы используют атакующие для попытки обхода этих мер;
‣ варианты port knocking и практические проблемы их использования;
‣ «прозрачный» port knocking (не требующий от пользователей дополнительных действий);
‣ использование ipset для повышения эффективности port knocking;
‣ port knocking в docker контейнере: когда полезен и как его сделать;
‣ некоторые спорные практики защиты.
Все статьи подряд / Информационная безопасность / Хабр