Pull to refresh

Comments 53

После того как инфраструктура выросла до 20+ узлов переехал на личный Step-CA. Немного бесит необходимость начальной установки времени, у OpenWRT могут быть с этим заморочки когда инет недоступен, но в целом решаемо.

есть понимание, кто стоит за атакой? обиженный ученик?

Летом я зарелизил два проекта - Рублокс (аналог роблокса) и свой мессенджер на подобии вичата, назвал Маська. Обо всем снимал видео в тикток для сбора аудитории. За пару месяцев пришло примерно 8к регистраций, и с ними пришли рейдеры. Мои сервисы рейдили пару недель каждый день всеми возможными способами. Одному это удалось, хотя скорее я там оставил дверь открытой) Да, всех рейдеров, их ip и данные знаю.

их ip и данные знаю.

Данные, которые они пожелали оставить о себе.

Ого, интересно. Было бы интересно прочитать статью и об этом тоже. Что за рейдеры? Какие-то частные лица? Или структуры, связанные с государством? Чего хотели? Денег? Отжать продукт?

их ip и данные знаю.

По IP вычислили?

чаще всего это были дети, которые насмотрелись мистера робота и с помощью нейронок занимались пинтестом. Большая часть взломщиков писали мне на почту или в тиктоке. Характер сообщений четко указывал на возраст. Чаще всего они парсили открытые данные моих сервисов и скдиывали мне с гордым видом, что они взломщики. Реальные уязвимости вскрыло всего несколько человек, и все они писали о них и просили исправить а не использовали в своих целях. Скорее всего мне так повезло, но и не стоит отрицать что я не все знаю и ваш комментарий имеет место быть)

Самое интересное не написали. Во сколько вы оцениваете размер ущерба от потери, в деньгах, и какова вероятность такого инцидента после всех ваших изменений?

Ущерб только репутационный. Взлом начался в 12 ночи по мск, к 8 утра уже все полностью было восстановлено и работало. В деньгах посчитать сложно - 10 литров бензина на поездку к серверу в соседний город для восстановления. Базы данных шифруются, но полного списка всего что сделал взломщик у меня не было. Сейчас вероятность конкретно такого взлома нулевая, ведь это и взломом в полной мере не назвать. Я оставил дверь открытой.

Почему-то сложилось впечатление после прочиения статьи, что проект с десятками виртуалок должен содержать что-то стоящее. А тут оказывается буря в стакане. /s Нулевая вероятность инцедента это скорее неправильная оценка для реальной системы.

глупый вопрос - а провайдер кто? если селектел и их же образ proxmox, то я могу рассказать как сломали и сертификаты/fail2ban вообще не помогли бы

Провайдера нет — это своё железо, физически стоит у меня, обычный домашний канал. Proxmox ставил сам, не из образа провайдера, так что тут вопрос отпадает.

Я читал об этом, но уже забыл напрочь. Там, вроде в образе был зашитый дефолтный пароль или ключ, или что-то такое?

... 10 литров бензина это не хухры-мухры!

У меня был один пароль. На всё.

Дальше, в принципе, можно не читать, кмк.

Использовать пароль для SSH в наше время — это смело 😄 На некоторых "известных мне" серверах Fail2Ban фиксирует до 20 000 попыток подключения в сутки, причём всего 3-х попыток достаточно для блокировки IP атакующего.

FYI На скорости 10000 попыток в сенунду, для полного перебора 8-символьного пароля, состоящего из полного набора печатных символов ASCII, потребуется 21,02 столетия.

Но вы же в курсе что никто не перебирает посимвольно, а проверяет слитые базы паролей, на случай если админ не использует уникальный пароль для каждого логина

Там шансы намного больше, особенно с подходом - один пароль на много серверов, может быть этот же пароль быть в какой нибудь базе, и займёт, при условии правильной сортировки слитых данных, сильно меньше

Кто думает что можно подобрать 10символьный пароль - просто не умеет в арифметику 1 класса.

Кстати, fail2ban из коробки стоит только в ламерской убунте. В redhat и debian его нет.

Я лично переношу ssh на порт повыше, чтобы не засирали логи (максимальный вред от брутфорсеров)

К вопросу кто как решает — в широком смысле решаю сертификатами и аппаратными ключами, TOTP. В узком смысле для SSH аппаратные ключи.

Уважаемый ТС, если вы самостоятельно не можете настроить безопасность своих серверов или сомневаетесь в результате самостоятельной настройки, установите openclaw иди hermes agent и поручите это сделать им. А заодно поручите им сделать cron задание по мониторингу активности и безопасности с оповещением в телеграм.

А по тексту статьи и рисункам / графикам разве не понятно, что там 146% ИИ сделано?
Я вообще бы сказал, что все в целом придумано нейронкой: от автора, до взлома и анализа, но не могу этого доказать. Особенно то, как мгновенно было проведено расследование и восстановление при нулевых знаниях по безопасности.

Картинки нейронкой собирал. Тексты писал лично. Восстановление прошло быстро благодаря настроеному резервному серверу, а расследование делал несколько дней после взлома.

Весьма поучительная история. Хорошо, что все обошлось.

Если проект для вас важен - сейчас самое время провести аудит, вероятно, техдолг у вас накопился приличный.

кто как решает вопрос с хранением секретов

Для секретов в репозитории есть sops, например, и vault как KMS/PKI.

Для ssh есть системы типа Teleport, но вам, наверное, проще просто перейти на ключи и настроить fw (либо вообще разрешать ssh только через VPN).

есть ли у вас мониторинг, который реально будит ночью

Это обычная практика, но нужно ли это вам? И не забудьте, что мониторинг тоже может сломаться или быть на той же инфре, что и все остальное.

BTW, для простых внешних проверок и алертинга есть uptime-kuma.

Если проект важен не аудит надо делать, а холодный бэкап...

Работу над ошибками никто не отменял.

Тем более, у автора внешний бэкап был, хоть и случайно, вместе с локальным бэкапом и репликой.

Интересная история. Я сам пару лет назад вместе с ии начал изучать, пробовать сервера, проксмокс, сети, сервисы и прочее. Признаю и понимаю что глубина и серьёзность знаний тут сомнительная, но прикладная выгода и удобства - несравнимы.

Сделал на работе сервер, убунту,

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

И вот почти год как старый amd и ddr3 работают без всяких нареканий, под речами о том что нужен нормальный бэкап, и сам решивший что нужен проксмокс - гораздо удобнее и разделять сервисы и экспериментировать, пробовать. В ожидании нового железа готовлю инфраструктуру -добавил ещё один древний офисный комп с дебиан - как независимый мониторинг всех компов, сети, и прочего

И буквально два запуска ватчера показали странную активность на сервере - 8 ядер под 100 процентов

С помощью ии конечно посмотрели процессы, папки, логи - оказалось Nocobase -тестовый контейнер , пробовал делать централизованную БД производства , имеет в старой установленной версии изъян в безопасности + открытая регистрация + открытый порт (с мыслями что вроде не страшно, тест, важных данных нет, да и честно "проиграл забыл") - эта связка привела к появлению суперадмина в БД с говорящим именем backdoor и паре майнеров на сервере которые неделю где то как то насиловали бедный and

Выводы интересные

Обновляться стоит чаще и тщательнее

Что то попробовал, потыкал - закрой за собой

Старый amd ещё как могёт - ЦЕХ вообще не заметил тормозов в работе с файлами и сервисами

Видимо, ещё и майнер был умный: загружал на 100, но не слишком агрессивно воевал за ресурсы.

Интересно, сколько майнер заработает на древнем cpu, стоит оно вообще того?

Человек якобы без опыта который ставит везде один пароль и использует рутовую учётку, а потом делает такой разбор инцидента. Слабо верится в отсутствие художественной составляющей этой литературы.

С другой стороны, если учесть, что человек может развиваться по мере роста своего сервиса, а времени на выплату технического долга, заложенного в начале пути —хронически не хватать, то история перестаёт быть такой уж невероятной.

Да не, люди ленивые. Один пароль - самый частый грех. Пока тебя не ломанут, будешь забивать. Я забивал, пока не купил менеджер паролей.

Я забивал, пока у меня не взломали и не зашифровали 2 виндовых сервера.

Один пароль админа на обоих. Хранился в Evernote.

Один из серверов торчал голой жопой RDP в интернет, без VPN.

Сам дурак, да. Не надо так делать.

После этого сложные и разные пароли, никакого облачного хранения секретов, менеджер паролей.

Дорогой был опыт, но небесполезный.

И я все это знал, в теории, но лень и надежда на "авось".

Возможно, пропустил в тексте. Удачливый взломщик добрался до документации и в ней нашёл пароль? Или он умудрился подобрать пароль? Тогда, раз всё равно уже поимели, не могли бы вы написать, какой он (пароль) был, когда был целым? Мне как аматеру-содержателю аналогичной инфраструктуры, хотелось бы получше понять картину.

Вангую, что использовался пароль password1 безопасный пароль Password1!

ну давайте теперь бросаться в другую крайность: ключи, только ключи

А потом получится внезапно так: умирает рабочий ноутбук, точнее диск, вместе с ним ключ к серверу, и зайти на него вы не можете.
Точнее, есть вторая машина с которой можно зайти, вот как раз на этот случай - но ее вы включали последний раз давно, и теперь надо вытащить ее из дальнего угла, сдуть пыль, и надеяться что старый ключ еще работает, и вы не снесли его случайно полгода назад.

Просто пароль надо посложнее чем qwedsa

Менеджер паролей

Менеджер паролей

«Брелок (сущ.) — маленькая фитюлька, предоставляющая человеку возможность потерять все ключи одновременно.» ©

Из нормального без проблем бэкапится. Вообще не иметь их на бумаге в сейфе немного странно.

Ну это как в истории про админов, что делятся на:

  1. не делающих бэкапы

  2. уже их делающих

  3. проверяющих работоспособность бэкапов

А со второго ключа пыль сдувать не надо – он в смартфоне, в настройках ssh-клиента.

смартфон - идеальное место для того, что вы не хотите, чтобы попало в чужие руки /s

смартфон - идеальное место для того, что вы не хотите, чтобы попало в чужие руки /s

Гопники согласно кивают.

А резервную копию ноутбука отменили что ли?

Перечитывал несколько раз статью, подождал пока настоятся комментарии, и так и не понял (как и в комментариях выше) - где точка взлома (первый вход, сервер или web морда) ?

Подобран легкий пароль или каким-то образом он нашелся в открытых 350 файлах 🙄 документации?

Статья канечно кажется нейрослопом (из разряда "Я варила борщи а потом стала вайбкодером, Как я поднял 20мл а потом ушел в минус на 50мл" и так далее), но и такое может быть, когда заигрался и не хватает предыдущего опыта (например попался вирус в cms, или на компе, зашел на ftp и заразил весь сервер и тд).

Лет 15 назад когда был куплен первый vps (до этого только shared) и размещена cms - я гуглил как настроить сервер и там сразу были рекомендации: настроить fail2ban, поменять порты, использовать ключи и так далее. Здесь не нужно быть системным админом, все мы учились писать html странички и размещали первые скрипты, но это просто база для вебмастера, которая попадалась в каждой первой статье даже у хостеров, и занимала 5 минут на настройку.

А здесь и целая инфраструктура, и физические сервера, и один пароль, плюс записанный в сотнях файлах, короче абсурд.


SECRET = os.environ.get('JWT_SECRET', 'K7x...9fQ')

Конструкция настолько привычная, что глаз её вообще не цепляет.

В каком месте она привычная? Она же орет "секрет в коде". Дайте угадаю, вы дали ИИ секрет и сказали "напиши" а она подставила его как значение по умолчанию, и вы решили что и так норм? А потом, когда оно стрельнуло, вы попросили опять же ИИ сделать разбор?

Знаете, в целом, абсолютно заслуженно поймали грабли.

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

Другой вариант: берём какую‑нибудь любимую (любимая — следовательно, помним её идеально), выбираем из неё один куплет, берём из неё один из куплетов, пароль — первая буква каждого слова в этом куплете. Выглядит как мусор, но с точки зрения «парольности» — идеально.

Например: CОнсДнноПЛснНкткв(естественно, набираем в английской раскладке).

По конфигурации сервера прям совсем непонятная солянка. И собирала эту солянку cloude. Так как по спекам явный косяк, я прям не знаю, чему ещё из статьи верить

UPD. у меня от этих пост мортем, нагаллюцинированных ИИшками аж глаз дёргается. То есть он расписывается в своей тупости смешивая доступную гипервизору память (не кратную 2N) с потоками процессора вместо реальных ядер. И т.д. Он с абсолютно серьёзной миной несёт чушь, которая может быть правдой, а может и нет, а может на половину... Я уже участвовал в таких разборах полётов, когда заведовал всем обезьяна с гранатой менеджер с клодом, который до пены у рта доказывал мне несуществующие факты и выводы, потому что он это читал это из окна чата, куда скормил пару скриншотов проблемы.

А зачем на каждый сервер свой пароль.

Когда правильным будет отключить вход по паролю в ssh и использовать только ключи

Ну рили

А почему репликация отвалилась? Это помогло или не оказало влияния?

Совет ТС-су: освоить терраформ и анзибл/паппет чтоб все состояния серверов и виртуалок были декларативно описаны в гите. Остается только бекапы, и повторимость окружений быстро восстанавливается до нужного состояния. Это может быть сложно для начала, но это true way в проде и цель куда стремиться, а после и обучать "детей" :)

Sign up to leave a comment.

Articles