Базовые советы по защите сервера от взлома

Защита сервера БЕЗОПАСНОСТЬ

Безопасность в интернете всегда должна стоять на первом месте — это касается всех сфер использования возможностей интернета в разрезе информационной безопасности и предотвращения утечки информации

  • если заходите в сеть только с телефона, тогда защитите свой телефон;
  • пользуетесь только компьютером или ноутбуком — работа на этих устройствах должна соответствовать нормам и требованиям информационной безопасности;
  • являетесь владельцем сайтов или приложений, тогда ваша задача — защитить свои ресурсы от взломов и потери персональных данных своих пользователей и другой информации;
  • являетесь владельцем собственных серверов, тогда защита серверов и проектов, размещенных на них, — это первое, что должно вас беспокоить.

Защита сервера от взлома – комплекс мер по обеспечению безопасности баз данных на сервере

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

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

Компрометация доступов к серверу может обернуться многими неприятностями: появление сторонних скриптов, нагружающих ресурсы сервера, потеря или кража данных, расположенных на нём, а значит следует знать как защитить сервер от взлома и тем самым предотвратить утечку информации общества.


Терминология информационной безопасности

Защита веб-сервера и сервера приложений — это комплекс мер по устранению угроз, направленных на эти серверы, с целью защиты веб-трафика, локальной корпоративной сети и информации, хранящейся в ней.

Веб-сервер —  это сервер, обслуживающий HTTP-запросы. Его главная задача заключается в отображении статического контента сайта. Дополнительно он автоматизирует работу веб-страниц, авторизует и аутентифицирует пользователей, ведет журнал пользовательских запросов, поддерживает защищенные HTTPS-соединения. Такой веб-сервер называют ещё статическим. Он может работать отдельно без сервера приложений. Когда статический веб-сервер работает совместно с сервером приложений и базой данных, он направляет запросы динамического контента на сервер приложений. В этом случае его называют динамическим.

Сервер приложений  — это фреймворк (программную платформу), который работает не только с HTTP и HTTPS, но и с другими протоколами. Он обеспечивает взаимодействие пользователей с динамическим и статическим контентом. Веб-серверу и серверу приложений необходима защита от проникновения в программное обеспечение, перехвата трафика и несанкционированного доступа к важной информации.


Защита от атак на уязвимые сервисы и сам сервер

Обновление

Необходимо научится обновлять систему целиком и следовательно уметь “строить мир и ядро” для *nix, обновлять через пакетную систему Linux и уметь нажимать кнопку Обновить в Windows Update для лицензионной MS Windows. Для админов FreeBSD нужно уметь ставить софт, используя порты. Так вы будете плыть вместе с разработчиками, а не против них.

Читайте также: «Как не сгореть в серверной». Противопожарная безопасность серверной комнаты

Админам MS Windows в целях эффективной защиты сервера нужно привыкать и чаще использовать формат дистрибутива MSI, который настоятельно рекомендуется Microsoft и поддерживает обновление старого пакета новым. Чтобы вы не делали на своем сервере, задайте себе вопрос, если появится новая версия этой программы, как легче обновить ее? Вы должны создать такое решение, которое вы полностью контролируете, да бывают проекты со своими разработками или патчами, но если ваши разработки требуют заморозки нужных вам приложений на определенной версии и вы не можете свои патчи применить к новой системе – грош цена такому решению!

Security tuning

Защита сервера, это комплекс мероприятий, а значит стоит рассматривать этот процесс, как комплекс работ по защите информации общества. Большинство серверных операционных систем идут не достаточно настроенными, по-умолчанию, для работы в агрессивной “химической” среде Интернет. Чтобы хакеры “не нахимичили” на вашем сервере нужно произвести тюнинг безопасности, а именно прочитать рекомендации производителя операционной системы по безопасности. Админы *nix систем могут вызвать man security и, прочитав советы разработчиков, делать сказку былью. Но какая бы ни была операционная система нужно тщательно тестировать работу сервера и сервисов после тюнинга безопасности.

Файрвол

Настроенный файрвол, который был проверен вами лично с помощью сканеров портов типа nmap и сканеров уязвимостей, если есть вывод от данных программ, то все ли вы понимаете о чем идет речь? При настройке файрвола помните, что существуют пути обхода его правил. Например, есть локальная сеть защищенная файрволом, выставив флаг запрещения фрагментированности пакета, можно при определенных ситуациях достигнуть адресата в локальной сети. Или частая ошибка администратора, излишнее доверие к исходящим пакетам собственного сервера.

Представьте реальную ситуацию, вражеский код пытается инициировать соединение с хостом хакера-хозяина, а у вас правило в файрволе “от меня в интернет все разрешено”. Составляя правила для файрвола при защите сервера, нужно полностью представлять всю картину сетевого общения ваших сервисов между собой и удаленными клиентами.

Система обнаружения вторжений на сервер

Файрвол можно представить в виде каменных стен у рыцарского замка. Воздвигнул раз и сидишь внутри – сухо и комфортно. А что если кто-то уже из пушки проверяет прочность стен? Может уже нужно выглянуть из замка и навалять люлей кому-то? Чтобы знать, что происходит за стенами замка, те что снаружи, для защиты сервера нужно иметь систему обнаружений вторжений (IDS). Если у вас будет такая система на базе понравившегося вам пакета, то если кто начнет палить из nmap-пушки, то вы будете в курсе, и атакёр тоже будет в курсе “что вы в курсе”. Вот еще один вариант, как защитить сервер компании.

Анализ нестандартных ситуаций. Использование Alchemy Eye для мониторинга состояния сети и контроля ее безопасности

Alchemy Eye – средство мониторинга состояния серверов в сети с богатыми возможностями. Ниже показано, как реализуются сценарии, описанные в предыдущих разделах, посредством этой программы.

Прежде всего, чтобы обеспечить непрерывность мониторинга, нужно запустить программу как NT-службу (установить ее в Файл>Настройки>NT-служба, затем запустить из Панели управления Windows). После запуска службы появится иконка в области уведомлений (системном трее), по клику на ней откроется главное окно программы, где и нужно создать необходимые проверки.

Alchemy Eye позволяет создавать любое количество объектов мониторинга («сервер» в терминах программы, но пусть это вас не смущает: одному физическому серверу может соответствовать любое количество объектов мониторинга). Каждому объекту мониторинга соответствует проверка одного типа для одного компьютера.

Чтобы добавить проверку в программ, откройте диалог создания нового сервера (меню «Сервер>Добавить сервер>Новый») – рис 1. На основной закладке этого диалога нужно задать логическое имя для объекта мониторинга, интервал между проверками, и тип проверки.

Alchemy Eye. Выбор типа проверки сервера.

Скриншот на рис.1 может продемонстрировать лишь небольшое количество типов проверок, доступных в программе (полный список вы можете посмотреть самостоятельно). Для ориентировки можно привести соответствия между задачами, описанными выше, и некоторыми проверками, доступными в Alchemy Eye:

  • Проверка физической доступности оборудования: ICMP, UDP, трассировка маршрута (traceroute).
  • Проверка работоспособности служб и сервисов, запущенных в сети: все стандартные протоколы (POP/SMTP, DNS, DHCP, HTTP/FTP), подключение к базам данных (Oracle, MySQL, MS SQL Server, или любая БД, доступная через источники данных ODBC). Кроме того, Alchemy Eye предоставляет мощное средство для проверки нестандартных серверов – TCP-скрипт. В этой проверке можно описать достаточно сложную логику подключения к порту сервера, отсылки ему любых строк-команд и тестирования ответов.
  • Проверка нагрузки сети и отдельных служб: можно использовать проверку стандартных переменных SNMP MIB (Management Information Base) – программа не только позволяет контролировать их, но и предоставляет дерево-список всех доступных в MIB переменных (рис. 2). Счетчики производительности для Windows-машин доступны «из коробки» (рис. 3), а сходная функциональность для nix-серверов – в виде бесплатного плагина на сайте производителя.
  • Проверка специфических параметров* для данного окружения: список проверок включает и SQL-запросы с проверкой результата, и анализ лог-файлов (в том числе на удаленных компьютерах), и еще более специфичные проверки (например, анализ значений ключей реестра или журнала событий Windows).
  • Проверка состояния уязвимых объектов: сюда можно отнести подключение по TCP/IP к любому порту удаленного компьютера, проверка прав доступа к различным файлам и папкам (права могут быть изменены злоумышленником или некачественным ПО), проверка количества файлов в определенной папке и сравнения файла по содержимому с эталоном.
Браузер дерева MIB – выбор переменной для SNMP-мониторинга
Браузер счетчиков производительности Windows – выбор параметра для мониторинга

В случае сложных окружений, для которых недостаточно встроенных проверок, можно использовать одну из возможностей расширения, доступных в Alchemy Eye: запуск скриптовых функций (VBScript, JavaScript, ActivePerl) или внешних приложений, а так же подсистему плагинов.

После выбора типа проверки нужно задать ее параметры – как правило, они включают адрес проверяемого сервера и несколько других, очевидных либо в деталях объясняемых всплывающими подсказками.

Страница выбора параметров ICMP-проверки

Если проверка является критичной (ее несрабатывание требует немедленного внимания технических специалистов), в этом же диалоге необходимо настроить уведомления: Alchemy Eye может отсылать их с помощью электронной почты, ICQ/MSN (обратите внимание, что в настройках программы должен быть настроен доступ к соответствующим аккаунтам) или сообщениями локальной сети (net send).

Когда объекты мониторинга созданы, главное окно Alchemy Eye само по себе становится инструментом анализа текущей ситуации, наглядно отображая состояния серверов (рис.5). Если заданных проверок больше чем 4-5 (и к тому же, они имеют разную степень критичности), лучше всего разбить их по папкам (впоследствии это даст дополнительные «приятности», вроде возможности сгенерировать отчеты только для проверок из конкретной папки).

Главное окно Alchemy Eye – мониторинг серверов (3 успешных проверки, 1 сбой)

При организации защиты сервера все проверки Alchemy Eye «бинарные» (проверка либо прошла, либо нет), но на количество однотипных проверок никаких ограничений не накладывается. Таким образом, встроенных средств программы вполне достаточно для реализации сложных сценариев: например, две независимые проверки загрузки процессора одного и того же сервера – одна будет «ловить» загрузку выше 95% и немедленно сообщать о проблеме техническим специалистам, а другая – загрузку выше 80% для статистического учета и последующего анализа.

Задачи для защиты сервера этого рода (учет и анализ) в Alchemy Eye решаются с помощью встроенных отчетов (меню Отчеты). Стоит учесть, что вся статистика выполненных программой проверок и их результатов записывается в стандартной форме в файл stat.csv в папке программы, данные из него можно использовать для последующего анализа (Alchemy Eye позволяет подключать сторонние программы-анализаторы в качестве генераторов отчетов – подробная инструкция имеется в справке программы).

Напоследок хотелось бы заметить, что даже при наличии качественного программного средства разработка работающей системы мониторинга крупной сети и контроля ее безопасности сервера (читай – выбор необходимого количества и типов проверок) является серьезной инженерной задачей, требующей вдумчивого подхода. Две основных цели при защиты сервера и информации на нём, о которых не следует забывать при конфигурации системы мониторинга:

  • создать достаточное количество проверок для обеспечения высокой степени надежности;
  • не слишком увлечься количеством и частотой проверок, чтобы избежать перегрузок оборудования, но в первую очередь – специалистов, в чьи обязанности входит анализ результатов мониторинга.

Минимизируйте доступные сервисы для Интернета

Отключайте ненужное, так как нельзя взломать то, что отключено. Частая ошибка, например, когда MySQL сервер, работающий в паре с Apache на одной машине, настроен так, что доступен удаленно на своем стандартном порту 3306. Зачем? Дайте команду netstat -na | grep LISTEN и дайте себе ответ: вы знаете какие программы на каком интерфейсе и какой порт используют? Вы контролируете ситуацию? Хорошо если так.

Читайте также: Как обжаловать результаты проверки Роскомнадзора

Предотвращение и защита от DDoS-атак на сервер

Согласно данным Corero Network Security, более ⅔ всех компаний в мире ежемесячно подвергаются атакам «отказа в доступе». Причём их число доходит до 10 миллионов в год и имеет постоянную тенденцию к росту.

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

Самый эффективный способ защиты от DDoS-атак — фильтры, устанавливаемые провайдером на интернет-каналы с большой пропускной способностью. Они проводят последовательный анализ всего трафика и выявляют подозрительную сетевую активность или ошибки. Фильтры могут устанавливаться, как на уровне маршрутизаторов, так и с помощью специальных аппаратных устройств.

Эффективный способ защиты от DDoS-атак

Способы защиты сервера от атак DDoS

  1. Еще на этапе написания программного обеспечения необходимо задуматься о безопасности сайта. Тщательно проверяйте ПО на наличие ошибок и уязвимостей.
  2. Регулярно обновляйте ПО, а также предусмотрите возможность вернуться к старой версии при возникновении проблем.
  3. Следите за ограничением доступа. Службы, связанные с администрированием, должны полностью закрываться от стороннего доступа. Защищайте администраторский аккаунт сложными паролями и почаще их меняйте. Своевременно удаляйте аккаунты сотрудников, которые уволились.
  4. Доступ к интерфейсу администратора должен проводиться исключительно из внутренней сети или посредством VPN.
  5. Сканируйте систему на наличие уязвимостей. Наиболее опасные варианты уязвимостей регулярно публикует авторитетный рейтинг OWASP Top 10.
  6. Применяйте брандмауэр для приложений — WAF (Web Application Firewall). Он просматривает переданный трафик и следит за легитимностью запросов.
  7. Используйте CDN (Content Delivery Network). Это сеть по доставке контента, функционирующая с помощью распределенной сети. Трафик сортируется по нескольким серверам, что снижает задержку при доступе посетителей.
  8. Контролируйте входящий трафик с помощью списков контроля доступа (ACL), где будут указан список лиц, имеющих доступ к объекту (программе, процессу или файлу), а также их роли.
  9. Можно блокировать трафик, которых исходит от атакующих устройств. Делается это двумя методами: применение межсетевых экранов или списков ACL. В первом случае блокируется конкретный поток, но при этом экраны не могут отделить «положительный» трафик от «отрицательного». А во втором — фильтруются второстепенные протоколы. Поэтому он не принесет пользы, если хакер применяет первостепенные запросы.
  10. Чтобы защититься от DNS-спуфинга, нужно периодически очищать кеш DNS.
  11. Использовать защиту от спам-ботов — капча (captcha), «человечные» временные рамки на заполнение форм, reCaptcha (галочка «Я не робот») и т. д.
  12. Обратная атака. Весь вредоносный трафик перенаправляется на злоумышленника. Он поможет не только отразить нападение на сервер и защитить его, но и разрушить сервер атакующего.
  13. Размещение ресурсов на нескольких независимых серверах. При выходе одного сервера из строя, оставшиеся обеспечат работоспособность.
  14. Использование проверенных аппаратных средств защиты сервера от DDoS-атак. Например, Impletec iCore или DefensePro.
  15. Выбирать хостинг-провайдера, сотрудничающего с надёжным поставщиком услуг кибербезопасности. Среди критериев надёжности специалисты выделяют: наличие гарантий качества, обеспечение защиты от максимально полного спектра угроз, круглосуточная техподдержка, транспарентность (доступ клиента к статистике и аналитике), а также отсутствие тарификации вредоносного трафика.

Защита сервера от SQL инъекций

Вот несколько простых правил, которые позволят защититься от атак с использованием SQL-инъекций:

Ввод пользовательских данных не должен быть доверенным. Его всегда нужно санировать, прежде чем данные будут использоваться в динамических операциях SQL.

Хранимые процедуры — они могут инкапсулировать SQL-запросы и обрабатывать все входные данные в качестве параметров.

Подготовленные запросы — сначала создаются запросы, а затем все предоставленные пользовательские данные обрабатываются в качестве параметров. Это не влияет на синтаксис инструкции SQL.

Регулярные выражения — могут быть использованы для обнаружения потенциально вредоносного кода и его удаления перед выполнением операторов SQL.

Права доступа на подключение к базе данных – чтобы защититься от SQL инъекций, учетным записям, которые используются для подключения к базе данных, должны предоставляться только необходимые права доступа. Это поможет ограничить действия, которые SQL-операторы могут выполнять на сервере.

Сообщения об ошибках — не должны раскрывать конфиденциальную информацию. Простые пользовательские сообщения об ошибках, такие как «Извините, возникла техническая ошибка. Служба поддержки уже уведомлена о ней. Повторите попытку позже», можно использовать вместо отображения запросов SQL, вызвавших ошибку.

Устанавливайте пароль на MariaDB/MySQL

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

Запрещаем доступ извне к MySQL/MariaDB

Запретив к базам данных доступ извне, мы защитим сервер от утечки исходного кода, который вы разрабатываете и тестируете.

Обычно web-сервер имеет 2 сетевые службы:

• непосредственно веб-сервер, прослушивающий 80-й порт (если HTTPS, то 443-й порт);

• сетевую службу СУБД MariaDB/MySQL – 3306.

Чтобы СУБД MariaDB или MySQL принимали подключения лишь от web-приложений, работающих на localhost, следует исправить конфигурационный файл my.cnf, то есть он должен выглядеть так:

 [mysqld]
datadir="c:/Server/data/DB/data/"
bind-address = 127.0.0.1

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

net stop mysql
net start mysql

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

Зачищайте сервер

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

Блокируйте доступ к резерву

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

Прячьте версию веб-сервера

Версия сервера может рассказать злоумышленнику очень многое: какие уязвимости доступны на данном сервере и как его можно взломать. Также злоумышленник сможет понять, на какой ОС запущен сервер, что так же поможет ему при планировании атаки на сервер для взлома и кражи информации.

Главное в случае с информационной безопасностью — это постоянство. Сервер и систему стоит периодически проверять, что касается и надежности IP-адресов с высоким уровнем доступа.

Читайте также: Как Роскомнадзор проводит проверку

Оцените статью