Это вольный перевод моего поста из блога моей компании о том, как я ликвидировал последствия хакерской атаки на наш сервер.
Короче говоря, мой сервер взломали.
Злоумышленник получил пароль к FTP-серверу и почти 10 часов скачивал все, что попадалось под руку.
Как на самом деле был взломан сервер – это другая история.
Короче говоря, хакер отправил моему хосту поддельный билет в службу поддержки с просьбой помочь создать пользователя FTP. И хостер, в общем, повелся на это.
Я не только создал пользователя, но и дал ему админские права.
Переписку хакера с хостером я обязательно выложу (копию мне удалось получить), если хабровцы захотят, это отдельный кусок весело.
Пока просто перечислю действия, которые я предпринял для защиты своего сервера и устранения последствий: Скажу сразу, я не админ.
Я .
NET-программист. Чтобы остудить трудовых администраторов и специалистов по безопасности, мои попытки наверняка покажутся детским лепетом, поэтому я сразу прошу их не принимать все это близко к сердцу.
Но, возможно, я смогу кому-то помочь.
Программисту вроде меня, который просто запускает свой небольшой сервер с несколькими приложениями.
Так:
- Настройте политику блокировки .
По умолчанию сервер Windows не защищен от атак методом перебора — атак с подбором пароля.
Хакер может создать, например, тысячу подключений RDP (также известных как «Удаленный рабочий стол»), пробуя разные логины/пароли.
Или замучать свой FTP-сервер бесконечными подключениями.
Именно поэтому стоит настроить «локаут» — временную блокировку пользователя после нескольких неудачных попыток.
Заходим в «Пуск – Выполнить – secpol.msc – Параметры безопасности – Политики учетных записей – Политика блокировки учетной записи».
И установите, например, «5 попыток» и «5 минут» — это заблокирует пользователя на 5 минут после 5 неудачных авторизаций.
- Заблокировать пользователя службы поддержки Если вы арендуете сервер, вероятно, для вашего хостера настроен пользователь службы поддержки.
Что-то вроде «Пользователь поддержки» или «support_user».
Заблокируй его.
Иногда опасность исходит именно от хостера.
И его наивная индийская молодежь, раздающая доступ направо и налево.
Это именно то, что случилось со мной.
- Отключите FTP, если он не нужен Если вашим клиентам или приложениям не нужен постоянный FTP, отключите его.
Включайте его только тогда, когда вам нужно загрузить файлы.
И разрешить доступ только со своего IP. А еще лучше переключить сервер в режим «вслепую».
Это имя сервера, который разрешает доступ только запись .
В настройках FTP-сервера IIS установите флажок «запись» и снимите флажок «чтение».
- Установите менеджер паролей .
Группа моих друзей (на самом деле группа) используют схему «один сложный пароль для всего».
Даже знакомые программисты, админы, дизайнеры.
В общем, люди неглупые.
Подумайте еще раз.
Даже для учетных записей служб (например, пользователей базы данных и т. д.) используйте только сложные сгенерированные пароли.
И держите их в менеджере пропусков.
Лично я использую LastPass — он бесплатный, крутой и доступен в виде расширения для Chrome.
- Резервное копирование! Резервное копирование, резервное копирование всего, всегда и везде.
Создавайте ежедневные задания на SQL-сервере, которые будут сохранять базы данных как локально, так и где-нибудь в Интернете.
Даже в бесплатной версии MS SQL Server Express можно создавать какие-то задания (через Task-Scheduler).
Лично у меня бэкап работает так: два раза в день делается локальная копия всех баз.
И два раза в неделю - удаленная копия.
Для удаленных копий я использую Microsoft SkyDrive — это 25 гигабайт онлайн-хранилища.
Бесплатно.
Неплохо, правда? Включен инструмент для синхронизации папок (называемый Windows Live Mesh).
Если вам не нравится MS по религиозным соображениям, используйте DropBox или что-то еще, но ИСПОЛЬЗУЙТЕ ЕГО!
- Брандмауэр Ну тут все понятно.
Главное правило – «запретить все».
Windows 2008 R2 имеет довольно хороший встроенный брандмауэр, так что это хорошее место для начала.
Оставьте порты 80 и 443 (а может и 3389 для RDP) открытыми и всё.
- Не используйте стандартные порты .
Если помимо веб-сервера вам еще нужно выставить что-то «снаружи» — например, терминальный сервер (по тому же RDP) или SQL-сервер — используйте нестандартные порты.
Какие-то идиотские значения типа 15089. Порт службы терминала (тот же «Удаленный рабочий стол») меняется в реестре здесь: «HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber» (не забудьте открыть этот порт на брандмауэре и перезапустите службу RDP).
Порты SQL Server меняются в утилите «Диспетчер конфигурации SQL Server» — «Конфигурация сети» — «Протоколы для [имя сервера]» — «TCP-IP» — клик правой кнопкой мыши — «Свойства».
- Нет папки «/admin/» и других «стандартных» имен.
.
- CMS вашего сайта не должна располагаться в папке site.com/admin/.
- Учетная запись администратора не должна называться «Администратор».
- Страницы входа не должны называться «login.aspx/login.php/signin.py».
- И т. д. и т. п.
— продолжайте список сами.
- CMS вашего сайта не должна располагаться в папке site.com/admin/.
-
Устав Для Молодого Веб-Дизайнера-Фрилансера
19 Oct, 24 -
Идея: Решение «Проблемы Вавилона» В Im
19 Oct, 24 -
Стив Джобс Не Разработал Ни Одного Проекта
19 Oct, 24 -
Обзор Ip-Телефона Snom D735
19 Oct, 24 -
Спокойной Ночи? Дети!
19 Oct, 24 -
Неожиданная Атака На Microsoft.
19 Oct, 24 -
Регистрация Торговой Марки
19 Oct, 24