Не отваряйте портове към света - ще бъдете разбити (рискове)
Отново и отново, след извършване на одит, в отговор на моите препоръки да скрия портовете зад бял списък, се сблъсквам със стена от неразбиране. Дори много готини администратори/DevOps питат: „Защо?!?“
Предлагам да разгледаме рисковете в низходящ ред на вероятността от възникване и щети.
Грешка в конфигурацията
DDoS през IP
Груба сила
Уязвимости на услугата
Уязвимости на стека на ядрото
Увеличени DDoS атаки
Грешка в конфигурацията
Най-типичната и опасна ситуация. Как се случва. Разработчикът трябва бързо да тества хипотезата; той настройва временен сървър с mysql/redis/mongodb/elastic. Паролата, разбира се, е сложна, той я използва навсякъде. Отваря услугата към света - за него е удобно да се свързва от своя компютър без тези ваши VPN. И ме мързи да помня синтаксиса на iptables; сървърът така или иначе е временен. Още няколко дни разработка - стана страхотно, можем да го покажем на клиента. Клиентът го харесва, няма време да го преправяме, пускаме го в PROD!
Пример, умишлено преувеличен, за да се премине през целия рейк:
Няма нищо по-постоянно от временно - не харесвам тази фраза, но според субективните усещания 20-40% от такива временни сървъри остават за дълго време.
Сложна универсална парола, която се използва в много услуги, е зло. Защото една от услугите, където е използвана тази парола, може да е била хакната. По един или друг начин базите данни на хакнати услуги се събират в една, която се използва за [груба сила]*.
Струва си да добавим, че след инсталирането redis, mongodb и elastic обикновено са достъпни без удостоверяване и често се допълват колекция от отворени бази данни.
Може да изглежда, че никой няма да сканира вашия 3306 порт след няколко дни. Това е заблуда! Masscan е отличен скенер и може да сканира с 10 милиона порта в секунда. А в Интернет има само 4 милиарда IPv4. Съответно всичките 3306 порта в Интернет се намират за 7 минути. Чарлз!!! Седем минути!
„Кой има нужда от това?“ - възразявате вие. Така че съм изненадан, когато погледна статистиката на изпуснатите пакети. Откъде идват 40 хиляди опита за сканиране от 3 хиляди уникални IP адреса на ден? Сега всички сканират, от хакерите на мама до правителствата. Много е лесно да проверите - вземете всеки VPS за $3-5 от която и да е** нискотарифна авиокомпания, активирайте регистриране на изпуснати пакети и прегледайте журнала след ден.
Активиране на регистриране
В /etc/iptables/rules.v4 добавете в края:
-A INPUT -j LOG --log-prefix "[FW - ALL] " --log-level 4
И в /etc/rsyslog.d/10-iptables.conf
:msg,съдържа,"[FW - " /var/log/iptables.log
& Спри се
DDoS през IP
Ако нападател знае вашия IP, той може да отвлече вашия сървър за няколко часа или дни. Не всички евтини хостинг доставчици имат DDoS защита и вашият сървър просто ще бъде изключен от мрежата. Ако сте скрили сървъра си зад CDN, не забравяйте да промените IP адреса, в противен случай хакер ще го търси в Google и DDoS вашия сървър, заобикаляйки CDN (много популярна грешка).
Уязвимости на услугата
Всеки популярен софтуер рано или късно открива грешки, дори най-тестваните и критични. Сред специалистите по IB има полушега - сигурността на инфраструктурата може безопасно да се оцени до момента на последната актуализация. Ако вашата инфраструктура е богата на портове, стърчащи в света, и не сте я актуализирали от една година, тогава всеки специалист по сигурността ще ви каже, без да гледа, че сте изтекли и най-вероятно вече сте били хакнати.
Също така си струва да се спомене, че всички известни уязвимости някога са били неизвестни. Представете си хакер, който намери такава уязвимост и сканира целия интернет за 7 минути за нейното присъствие... Ето нова вирусна епидемия) Трябва да актуализираме, но това може да навреди на продукта, казвате вие. И ще бъдете прави, ако пакетите не са инсталирани от официалните хранилища на ОС. От опит актуализациите от официалното хранилище рядко повреждат продукта.
Груба сила
Както беше описано по-горе, има база данни с половин милиард пароли, които са удобни за въвеждане от клавиатурата. С други думи, ако не сте генерирали парола, а сте въвели съседни символи на клавиатурата, бъдете сигурни*, че те ще ви объркат.
Уязвимости на стека на ядрото.
Също така се случва **** дори да няма значение коя услуга отваря порта, когато самият мрежов стек на ядрото е уязвим. Тоест, абсолютно всеки tcp/udp сокет на двегодишна система е податлив на уязвимост, водеща до DDoS.
Увеличени DDoS атаки
Това няма да причини директна вреда, но може да задръсти канала ви, да увеличи натоварването на системата, вашият IP ще попадне в някой черен списък***** и ще получите злоупотреба от хостера.
Наистина ли имате нужда от всички тези рискове? Добавете своя домашен и работен IP към белия списък. Дори и да е динамичен, влезте през админ панела на хостера, през уеб конзолата и просто добавете друг.
Изграждам и защитавам IT инфраструктура от 15 години. Разработих правило, което горещо препоръчвам на всички - никое пристанище не трябва да стърчи в света без бял списък.
Например най-сигурният уеб сървър*** е този, който отваря 80 и 443 само за CDN/WAF. И сервизните портове (ssh, netdata, bacula, phpmyadmin) трябва да са поне зад белия списък, а още по-добре зад VPN. В противен случай рискувате да бъдете компрометирани.
Това е всичко, което исках да кажа. Дръжте портовете си затворени!
(1) UPD1: Тук можете да проверите страхотната си универсална парола (не правете това, без да смените тази парола с произволна във всички услуги), дали се е появил в обединената база данни. И тук можете да видите колко услуги са били хакнати, къде е включен вашият имейл и съответно да разберете дали вашата готина универсална парола е била компрометирана.
(2) За чест на Amazon LightSail има минимални сканирания. Явно го филтрират някак.
(3) Още по-сигурен уеб сървър е този зад специална защитна стена, собствен WAF, но ние говорим за публичен VPS/Dedicated.
(4) Сегменти.
(5) Firehol.
В анкетата могат да участват само регистрирани потребители. Впиши се, Моля те.
Портовете ви стърчат ли?
винаги
понякога
Никога
Не знам, мамка му
54 потребители гласуваха. 6 потребители се въздържаха.