Какие виды DDoS-атак существуют?
Существует несколько видов DDoS-атак:
- HTTP и POST-флуд,
- синхронный флуд,
- усиление DNS,
- DNS-флуд,
- UDP и ICMP-флуд,
- Переполнение MAC-адресов,
- атаки на протокол «Ping of death».
Название вида | Краткое пояснение | Действия злоумышленников | Итоги атаки |
---|---|---|---|
HTTP и POST-флуд | Отправка непрерывного потока HTTP-запросов и POST без ожидания ответа. | Трафик имитирует законные HTTP-запросы и POST, поэтому обнаружить злонамеренные действия сложно. | Сервер пытается ответить на все запросы, но его ресурсы быстро заканчиваются, что приводит к сбою. |
Синхронный флуд | Объемная атака, манипулирующая TCP для подключения клиента к серверу. | Злоумышленник загружает сервер дополнительными синхронными запросами. | Сервер связан с «полуоткрытыми» соединениями и не может отвечать на новые запросы. |
Атаки с усилением DNS | Отправка DNS-ответов в систему жертвы при использовании общедоступных серверов. | Злоумышленник отправляет запросы на поиск DNS, подделывая IP-адрес источника на IP жертвы. И запросы исходят будто бы от пострадавшего от DDoS-атаки. | Сервис заваливается нежелательными ответами и начинает виснуть. |
DNS-флуд | Версия UDP-флуда для конкретного приложения. | Злоумышленник отправляет огромное количество фальшивых DNS-запросов на DNS-сервер для его перегрузки. | DNS-сервер пытается ответить на все запросы и перегружается, из-за чего веб-сайт становится недоступным. |
UDP и ICMP-флуд | Заполнение случайных или определенных портов на хосте жертвы. | Злоумышленник отправляет пакеты UDP на порты жертвы, после проверки сервис ответит пакетом ICMP. Увеличение потока пакетов сделает порты недоступными для клиентов. | При атаке потребляются целевые ресурсы, что в итоге приводит к недоступности сервера. |
Переполнение MAC-адресов | Атака направлена на нарушение безопасности сетевых коммутаторов. | Злоумышленник отправляет недействительные MAC-адреса и заполняет исходную таблицу. После достижения предела MAC-адресов удаляются законные адреса. | После удаления всех рабочих MAC-адресов клиенты не могут получить доступ в Интернет. Пользователи получают флуд-рассылку по всей сети. |
Ping of death | Тип атаки на протокол с использованием пакетов, разработанных для сбоя системы на стороне сервера. | Злоумышленник использует уязвимости в целевой системе с пакетным содержимым и доводит ее до зависаний и сбоев. Атаки распространяются на ICMP и другие протоколы. | Сервер начинает зависать и сбоить. |
Система DDoS защиты хостинга
Хостинг-провайдер является главным рубежом защиты сайтов и других размещенных ресурсов от распределенных атак «отказ в доступе». Из-за сложности реализации, у провайдеров нет единого стандарта DDoS-защиты.
Если попытаться обобщить имеющиеся практики, можно выделить 2 основных уровня предоставления подобных услуг. Реализация этих уровней у конкретных провайдеров может различаться в зависимости от компетентности сотрудников и наличия у компании достаточной технической базы.
Базовая DDoS-защита
Алгоритм базовой защиты
- Весь входящий трафик клиента анализируется по ряду показателей, способных сигнализировать о начале DDoS-атаки. В эти параметры входит количество уникальных IP-адресов, скорость доставки пакетов, скорость передачи данных и многое другое.
- Трафик фильтруется с помощью сторонних сервисов защиты от DDoS — центров очистки, в соответствии с заранее установленными правилами. Этот режим хорошо работает против широко распространенных объемных нападений, типа DDoS с использованием усилителей (DNS/NTP amplification) или атаки с использованием простого протокола обнаружения сервисов (SSDP).
- Система блокирует все подозрительные запросы. Только реальные пользователи получают доступ к сайту.
Базовую защиту от DDoS большинство крупных провайдеров предоставляют своим клиентам бесплатно. Однако, несмотря на широкую доступность, подобный защитный контур имеет и массу недостатков, прежде всего, отсутствие гибкости. Клиент не может настроить правила фильтрации под себя, что повышает риск пропуска атаки малого объема или полной блокировки IP-адреса жертвы при особо крупном нападении.
Базовый уровень дает защиту от большинства видов DDoS-атак, но подобный контур не может считаться универсальным решением, способным противостоять киберугрозам любого масштаба. Такой защитный контур подойдет небольшим веб-проектам или стартапам в качестве временной меры.
Продвинутая DDoS-защита
Алгоритм продвинутой защиты
- Устанавливаются дополнительные правила фильтрации трафика для всех уровней OSI, включая анализ содержимого пакетов на уровне L7.
- Включается возможность блокировки адресов или разрешения доступа к серверу на основе геолокации.
- Включается защита от сложных атак, типа UDP/SYN/ACK/RST Flood, всех видов объемных атак, атак на TLS-сервисы, а также смарт-атак с низким объемом трафика.
- Формируется индивидуальный защитный профиль для отдельного клиента, в зависимости от объема трафика и типа предоставляемых услуг.
Продвинутая защита от DDoS значительно расширяет возможности базового защитного контура, а также настраивать фильтры под нужды отдельных ресурсов. Эти меры позволят сайту «пережить» даже массированную DDoS-атаку с объемом, превышающим 5 Гбит/с. Весь вредоносный трафик будет заблокирован, начиная с первого запроса, а реальные клиенты смогут продолжать пользоваться веб-сервисом, не замечая никаких изменений в его работе.
Главный недостаток расширенной версии защиты от DDoS — подобная услуга в большинстве случаев предоставляется хостинг-провайдером на платной основе. Часто ее цена определяется индивидуально, в зависимости от объема работ по точной настройке сетевых фильтров и объема трафика, который нужно обрабатывать центрам очистки.
Как Eternalhost защищает от DDoS-атак
Система предотвращения распределенных атак типа «отказ в обслуживании» на нашем хостинге сочетает в себе главные преимущества базового и продвинутого уровня. Каждый клиент Eternalhost, вне зависимости от тарифа и вида услуг, может получить DDoS-защиту на всех уровнях OSI, а также круглосуточное сопровождение специалистами техподдержки.
Нашу «линию обороны» от DDoS условно можно разделить на три основных эшелона. Первый и второй — автоматические фильтры на стороне двух внешних центров очистки, перехватывающие вредоносный трафик на всех семи уровнях OSI. Третий — настраиваемые вручную фильтры на нашем собственном шлюзе. Последние часто приходится калибровать индивидуально для отдельных сервисов или клиентов.
Как обеспечить безопасность web-приложений?
Приложения доступны из Интернета, чем привлекают внимание злоумышленников. Для получения доступа к конфиденциальным данным в них содержащихся, они применяют разнообразные векторы атак. . Прямой способ защиты приложений — межсетевой экран или брандмауэр
Для большего числа веб-приложений применяется прикладной сетевой экран Web Application Firewall (WAF). Если же мы говорим о бизнес-приложениях, которые содержат базы коммерческих и персональных данных, — то здесь требуется другой тип защиты — брандмауэр баз данных Database Firewall (DBF). Это позволяет защитить конфиденциальные данные на разных уровнях.
Прямой способ защиты приложений — межсетевой экран или брандмауэр. Для большего числа веб-приложений применяется прикладной сетевой экран Web Application Firewall (WAF). Если же мы говорим о бизнес-приложениях, которые содержат базы коммерческих и персональных данных, — то здесь требуется другой тип защиты — брандмауэр баз данных Database Firewall (DBF). Это позволяет защитить конфиденциальные данные на разных уровнях.
Применение специализированных решений по информационной безопасности позволяет обнаружить и предотвратить атаки на прикладном и сетевом уровне и реализовать комплекс мер, чтобы обеспечить доступность и непрерывность работы web-приложений за счёт защиты от различных классов атак.
Межсетевой экран автоматически обнаруживает и блокирует атаки на веб-приложения и определяет нелегитимных пользователей, пытающихся проникнуть в веб-приложение.
К основным мерам относятся:
-
проверка данных на соответствие стандартам протоколов;
-
контроль трафика на основе нейронных сетей;
-
сигнатурный анализ;
-
защита от SQL-инъекций;
-
протекция от межсетевого скриптинга (XSS);
-
контроль доступа к конфиденциальным данным.
Внедрение программно-аппаратных комплексов снижает риски несанкционированного доступа к критичной информации и эксплуатации уязвимостей системного ПО. Более того, наличие специализированных решений по информационной безопасности позволяет обеспечить законодательные требования по защите персональных данных, а также банковских стандартов (СТО БР) и стандарта безопасности данных индустрии платежных карт PCI DSS в вопросах защиты веб-приложений.
Применение специализированных систем защиты web-приложений позволит своевременно обнаруживать и предотвращать попытки несанкционированных действий злоумышленников как внутри организации, так и извне.
Кроме выявления и блокировки атак для защиты данных в приложениях требуется непрерывный мониторинг доступа к базам данных и анализ поведения пользователей и систем. Эти функции обеспечивают решения класса DAM (database activity monitoring). Рассмотрим подробнее принцип работы таких решений.
VPN
VPN — это защищённая сеть, которая скрывает IP адрес и месторасположение. Она надёжно зашифрует весь трафик и данные, передаваемые с устройства. Если вам необходимо обойти блокировку сайта, получить анонимность в сети или подключиться к Wi-Fi в публичном месте, используйте VPN.
Сама технология работает так:
1. Информация шифруется на устройстве.
2. Передаётся на сервер VPN-провайдера.
3. Дешифруется на сервере.
4. Передаётся по назначению (на сервер сайта).
Таким образом, личная информация защищена от перехвата, она полностью зашифрована, персональные данные скрыты. Блокировки сайтов, например, от Роскомнадзора перестают работать. Присутствие в сети выглядит так, словно вы вышли в интернет не из России, а из другой страны (где размещён VPN сервер). Вот список VPN-сервисов, которыми можно пользоваться бесплатно.
Чтобы защитить свои данные, приобретите лицензированный антивирус на сайте: https://ggsel.com/catalog/antivirus.
Как и зачем проводятся масштабные DDoS-атаки?
Успешная атака типа «отказ в обслуживании» (DoS) или распределенная атака типа «отказ в обслуживании» (DDoS) нарушает нормальный трафик целевого сервера, службы или сети, переполняя ее инфраструктуру Интернет-трафиком.
Распределенный отказ в обслуживании (ддос-атака) делает целевую онлайн-службу непригодной для использования. Масштабные атаки исходят из ботнета — преступной сети взломанных компьютеров, разбросанных по всему миру.
Ботнет — скомпрометированные машины (стационарные компьютеры, ноутбуки, серверы, IoT-устройства), которые контролируются киберпреступниками. Через них злоумышленники создают источники трафика для атаки и перегрузки инфраструктуры организаций.
Можно выделить следующие типы DDoS-атак:
- Атаки уровня приложений – нацелены на веб-серверы, платформы и веб-приложения, но не на сеть. Злоумышленники используют известные уязвимости приложений и злоупотребляют протоколами более высокого уровня (HTTPS, SNMP). Из-за меньшей полосы пропускания, не всегда можно увидеть увеличение трафика. Атаки измеряются количеством запросов в секунду.
- Сетевые атаки – атаки на протоколы приводят к отказам и нарушению корректной работы протоколов уровня 3 и 4 модели OSI. Атаки измеряются в пакетах в секунду.
- Флуд-атаки – огромный объем трафика пускается в сеть жертвы для заполнения большой пропускной способности, что в итоге приводит к отказу в доступе. Ботнеты помогают злоумышленникам запускать массовые DDoS-атаки, скорость которых может варьироваться от 100 Гб/с до Тб/с.
Объектом DDoS-атак могут стать любые организации. Согласно исследованиям Qrator Labs, в 2021 году злоумышленники атаковали компании в основном для сбора данных, а от атак больше всех пострадали розничные сети, сфера образования и организации с электронной коммерцией.
Компания Stormwall опубликовала отчет исследование, согласно которому чаще DDoS-атакам в РФ подвергается финансовый сектор (43 %), ритейл-индустрия (31 %) и игровая сфера (18 %). Теперь же злоумышленники стали массово выводить из строя государственные онлайн-службы, значимые российские сайты и приложения.
Но зачем злоумышленники атакуют онлайн-ресурсы?
Основные причины – нанесение ущерба для прибыли и репутации. Остановка работы сервисов может привести к финансовым издержкам и потери клиентов. Давайте разберемся в видах кибератак прежде, чем приступить к борьбе с наплывом трафика.
Постоянное шифрование
Чтобы результатом действий на сайте не стала утечка личных данных или спам-атака на почту, пользуйтесь ресурсами, сетевой адрес которых начинается с HTTPS. Это значит, что соединение между вами и сервером шифруется – информацию не получится перехватить.
Современные браузеры напоминают о риске нешифрованного соединения. Если при проверке сертификата данные не совпадают, на экране появляется предупреждение. Правда, его можно проигнорировать, нажав «Я принимаю риск, всё равно перейти».
Чтобы повысить уровень защиты, зашифруйте столько интернет-трафика, сколько сможете, с помощью расширения HTTPS Everywhere. Оно автоматически заставляет сайты использовать HTTPS протокол вместо HTTP. Его можно бесплатно установить в браузеры Google Chrome, Mozilla Firefox и Opera, в том числе и на мобильных устройствах.
Информации в облачных хранилищах тоже не мешает добавить защиты. Установите программу для шифрования данных в облаке, например, Boxcryptor.
Как оценить безопасность приложения
Оценить безопасность веб-приложения можно с помощью специальных сервисов и программ: OWASP ZAP, Arachni, Burp Suite или других. Они помогают срежиссировать разные атаки и узнать об уязвимостях при разработке или в готовом веб-приложении.
На скриншоте показаны результаты тестирования в Burp Suite— найдено несколько уязвимостей, и в правом нижнем углу описано, как тестировали определённую атаку.
Такие сканеры проверяют приложение на все основные атаки, в том числе XSS, SQL-инъекции, CSRF и загрузку вредоносных файлов. После тестирования вы получаете подробный отчёт об уязвимости веб-приложения — он пригодится при составлении карты задач для повышения безопасности.
XSS: плохой сценарий
XSS — Cross Site Scripting (межсайтовое выполнение сценариев). Строго говоря, XSS — не уязвимость, а атака. Но условимся, что под XSS мы понимаем уязвимости, позволяющие проводить атаку XSS.
Когда происходит XSS-атака, в веб-страницу встраивается вредоносный код. И как только посетитель сайта откроет эту страницу, начнёт выполняться какой-либо неприятный сценарий. Чаще всего под вредоносным кодом подразумевается внедрение html-тегов или скриптов на JavaScript.
XSS бывают нескольких разновидностей:
1. Хранимые (stored). Код, который позволяет проводить атаку, постоянно находится на сервере и выполняется автоматически.
2. Отражённые (reflected). В этом случае вредоносного кода нет на самом сайте, но он содержится в заранее созданной злоумышленником веб-ссылке. Обрабатывая этот «плохой» кусок кода, сайт может ненамеренно запустить в браузере пользователя скрипт, который перехватит данные или выполнит другую «полезную нагрузку», если имеется ввиду сама нагрузка XSS.
3. DOM-based. Вариант отражённых, когда вредоносный код не отправляется на сервер, а выполняется сразу в браузере.
К чему может привести
— Перехват сессии пользователя (файлы cookies).
— Подмена страницы (например, формы ввода логина/пароля), чтобы похитить конфиденциальные данные.
— Внедрение скриптов на сайты с высокой посещаемостью (с целью рекламы, накрутки просмотров, DDoS-атак и прочего).
— Внедрение вредоносных программ на внешне безопасных сайтах.
Как защититься
— Выполняйте кодирование данных, вводимых пользователем, при выводе их на страницу.
— Если какие-то данные нельзя закодировать, защитите их дополнительной валидацией.
— Обеспечьте безопасную обработку данных, причём не только на стороне сервера, но и на стороне клиента.
готовим ОС
Помимо тонкой настройки nginx, нужно позаботиться о настройках сетевого стека системы. По меньшей мере — сразу включить net.ipv4.tcp_syncookies в sysctl, чтобы разом защитить себя от атаки SYN-flood небольшого размера.
15. Тюним ядро
Обратите внимание на более продвинутые настройки сетевой части (ядра) опять же по тайм-аутам и памяти. Есть более важные и менее важные
В первую очередь надо обратить внимание на:
- net.ipv4.tcp_fin_timeout Время, которое сокет проведет в TCP-фазе FIN-WAIT-2 (ожидание FIN/ACK-сегмента).
- net.ipv4.tcp_{,r,w}mem Размер приемного буфера сокетов TCP. Три значения: минимум, значение по умолчанию и максимум.
- net.core.{r,w}mem_max То же самое для не TCP буферов.
При канале в 100 Мбит/с значения по умолчанию еще как-то годятся; но если у вас в наличии хотя бы гигабит в cекунду, то лучше использовать что-то вроде:
Подробнее об установке параметров сетевого стека при наличии широкого канала можно прочитать здесь: http://bit.ly/8U0SDq.
16. Ревизия /proc/sys/net/**
Идеально изучить все параметры /proc/sys/net/**. Надо посмотреть, насколько они отличаются от дефолтных, и понять, насколько они адекватно выставлены. Linux-разработчик (или системный администратор), разбирающийся в работе подвластного ему интернет-сервиса и желающий его оптимизировать, должен с интересом прочитать документацию всех параметров сетевого стека ядра. Возможно, он найдет там специфические для своего сайта переменные, которые помогут не только защитить сайт от злоумышленников, но и ускорить его работу.
SQL-инъекции
SQL-инъекция — это атака, направленная на сайт или веб-приложение, в ходе которой пользователь может обходным путём получить информацию из базы данных с помощью SQL-запросов. В случае успешной атаки пользовательские данные интерпретируются как часть SQL-кода запроса, и таким образом изменяется его логика. Как и прочие атаки, SQL-инъекция эксплуатирует уязвимости и недоработки в коде, и нужно проводить анализ сайта, чтобы найти «слабые» места.
Попробуем пояснить, что такое SQL-инъекция, на простом примере.
Представим, что вы пришли в отдел бытовой техники (базу данных). У вас собой есть список покупок, где написано: «Один чайник за 1000 рублей». Вы даёте список продавцу, прося его принести то, что в нём указано (SQL-запрос).
В ответ на вашу просьбу продавец принесёт вам чайник — переходя к реальной жизни, отправив запрос, вы получите информацию из базы данных.
SQL-инъекция возникает, когда злоумышленник может изменить запрос к базе данных.
В примере выше SQL-инъекция бы возникла, если бы кто-то посторонний исправил ваш список покупок, например дописал в конец: «Чайник за 1000 рублей или смартфон за 30 000 рублей». Получив от вас такой запрос, продавец, видя, что смартфоны лежат гораздо ближе, чем чайники, дал бы вам смартфон — то есть то, что нужно злоумышленнику.
SQL-инъекция возможна при отсутствии фильтраций входящих параметров — хакеры могут менять их, чтобы получать нужные им данные. Уязвимыми местами в этом случае служат поля пользовательского ввода и URL-адреса, взаимодействующие с базой данных.
К чему может привести
— Утечка конфиденциальных данных (паролей, данных банковских карт и прочего).
— Внедрение вредоносного контента в уязвимые поля.
— Изменение базы данных.
— Доступ к операциям администрирования.
Как защититься
— При составлении запросов используйте плейсхолдеры (параметризированные запросы).
— Настройте белый список полей ввода.
— Отделите базу данных от логики веб-приложения.
— Используйте экранирование запросов.
Отечественное решение для информационной безопасности веб-приложений
Первое российское решение для обеспечения безопасности веб-приложений классов DBF и DAM стал аппаратно-программный комплекс «Гарда БД» от производителя систем информационной безопасности «Гарда Технологии».
«Гарда БД» изначально разрабатывалась как система защиты баз данных и веб-приложений. И большинство практических кейсов как раз связано с CRM, 1C, банковскими АБС и другими приложениями, которые используются в ежедневной практике работы сотрудников.
Это система аудита и блокировки сетевого доступа к базам данных и бизнес-приложениям. За счет непрерывного мониторинга обращений к базам данных и веб-приложениям детектирует подозрительные действия в реальном времени.
«Гарда БД» за счет сочетания технологических возможностей обеспечивает комплексную защиту: хранение запросов и ответов для дальнейшего ретроспективного анализа, автоматический поиск неконтролируемых баз данных, поведенческий анализ и выявление нарушений политик ИБ, аналитика и автоматическое уведомление об аномалиях.
Систему отличает скорость анализа трафика свыше десяти Гбит/с, что позволяет мгновенно реагировать на аномалии и информировать об этом службу безопасности, ни один подозрительный запрос или атака не останутся незамеченными.
Поведенческая аналитика позволяет выявлять отклонения от нормального поведения сотрудников или приложений. Все данные собираются в наглядные статистические отчеты, где можно видеть все логины, IP-адреса и запросы к базам данных и приложениям за конкретный период времени, а также большое количество запросов и множественные неуспешные авторизации. Контроль осуществляется по протоколам передачи данных HTTP/HTTPS и протоколам аутентификации.
АПК «Гарда БД» — прогрессивное решение, которое позволяет предотвратить инциденты уже по первым признакам аномального поведения пользователей и систем и обеспечить защиту web-приложений от всех видов угроз. Для тестирования системы в организации предусмотрен бесплатный пилотный проект. Уже за первый месяц работы системы удается предотвратить инциденты информационной безопасности в бизнес-приложениях.
Часто задаваемые вопросы на тему защиты от DDoS
Защищают ли виртуальные частные сети от DDoS-атак?
Да. VPN будет защищать вас от DDoS-атак двумя способами. Во-первых, он скрывает настоящий адрес вашего сервера — весь трафик будет идти в VPN, а не к вам напрямую. Во-вторых, у VPN очень широкая пропускная способность соединения, и поэтому она может принять такие объемы трафика, которые бы перегрузили ваш сервер. Воспользуйтесь VPN со статичным IP-адресом, если ожидаете появления входящих соединений.
Сколько времени может длиться DDoS-атака?
Коммерческие услуги по осуществлению DDoS-атак предлагают атаки длительностью всего пять минут. DDoS-атаки команды матерых хакеров могут длиться 24 или даже 72 часа.
Сколько времени нужно на восстановление от DDoS-атаки?
DDoS-атаки не наносят никакого физического ущерба, они просто не дают нормальным пользователям возможности получить доступ к вашему сайту или веб-сервису. Технически веб-ресурс восстанавливается сразу после завершения атаки, потому что как только фиктивные запросы на соединение с ресурсом закончатся, он сможет ответить на нормальные запросы. Восстановление испорченной из-за атаки репутации может занять много времени.
Можете ли вы ответить на DDoS-атаки такими же атаками?
В теории возможно предпринять DDoS-атаку на тот IP-адрес, через который вас атаковали. Однако в этом мало смысла, поскольку компьютер, который атаковал вас, — это просто бот, зараженный вредоносным ПО. Вы не доберетесь до настоящего злоумышленника. Кроме того, ботнет, который осуществляет атаку, может включать в себя сотни тысяч компьютеров, поэтому вы на длительное время загрузите этой работой свое собственное оборудование, атакуя из чувства мести все эти зараженные компьютеры.
Просмотров: 1 684
Атаки на ПО Web-портала
Web-приложение в некоторых случаях позволяет обратиться напрямую к операционной системе, на которой работает Web-сервер, и выполнить команды от его имени. Для этого используются более сложные атаки на переполнение буфера или другие манипуляции с памятью серверов. Так могут быть атакованы и база данных, и ПО Web-сервера, и любая другая компонента многоуровневого Web-портала.
В качестве средств защиты от таких атак, помимо вышеперечисленных решений, рекомендуется использовать сетевой сканер безопасности, который тестирует все Web-приложение целиком на наличие известных уязвимостей во всех компонентах. Такие сканеры можно использовать либо для аудита текущей конфигурации Web-портала с помощью анализа конфигурационных файлов, либо для имитации внешних сетевых атак и выявления таким образом имеющихся уязвимостей. В качестве примера сетевых сканеров можно привести решения Maxpatrol, Qualys и Nessus.
Как защитить бизнес
Предприятия регулярно страдают от масштабных потерь в связи с атаками хакеров.
Например, в 2019 году компания Orvibo, создающая ПО и аппаратуру для умных домов, допустила утечку двух миллионов записей персональных данных своих клиентов. В том же году случилась одна из крупнейших утечек данных у Сбербанка, в 2020 году подобная акция повторилась вновь. С защитой персональных данных не всегда справляются должным образом и государственные органы.
Вот что рекомендуем сделать компаниям для защиты персональных данных клиентов.
Выбрать безопасный хостинг
Бесплатные сервисы продают данные пользователей и зачастую сами являются злоумышленниками. Некоторые из них подставляют ссылки на свои сайты поисковым ботам, чтобы отнимать у клиентов позиции в ранжировании Google.
Не всегда можно доверять и платным хостинг-провайдерам. Так, сервис HostGator был замечен в подозрительных схемах по продаже «защитного ПО».
Уязвимости при загрузке файлов
На многих сайтах пользователи могут подгружать разные файлы: например менять свою фотографию профиля или прикреплять изображения к комментариям. Если на вашем сайте доступна загрузка файлов пользователями, то нужно тщательно подойти к вопросу безопасности.
Самая распространённая ошибка — отсутствие проверки типа файла. Например, пользователь при загрузке фотографии может вместо .jpeg или .png подгрузить php-скрипт и выполнить его.
Тип файла обычно проверяется по заголовку, но такая проверка опасна, так как заголовок можно подменить. Проверки на стороне клиента тоже иногда можно обойти. И даже использование чёрного/белого списка расширений может быть неэффективным, поскольку иногда вредоносный код встраивается прямо в файл с «правильным» расширением.
Как защититься
Исчерпывающие рекомендации о том, как обезопасить загрузку файлов, есть на StackOverflow. Чек-лист посвящен PHP, однако некоторые пункты будут актуальны и для других языков:
1. запретить выполнение файлов в директории, куда они сохраняются;
2. переименовывать пользовательские файлы так, чтобы пользователь не мог повлиять на них;
3. заново сохранять картинки с помощью библиотек по редактированию изображений, чтобы удалить лишние meta-данные и возможный внедрённый в них вредоносный код.
⌘⌘⌘
Обход директорий
Обход директорий (Path traversal или Directory traversal) заключается в том, что хакер получает доступ к директориям или файлам на сервере с помощью манипуляций переменных, ссылающиеся на эти файлы. Например, для скачивания файла с сервера указывается его имя:
www.site.ru/download?file=file.pdf
С помощью символа, обозначающего директории (../), можно получить доступ к другим файлам, просто добавив его в строку:
www.site.ru/download?file=../../../etc/passwd
Если имя файла никак не валидируется, то злоумышленник сможет увидеть все файлы системы. И это очень опасно, так как важная информация (файлы конфигурации, логи и прочее) находится в заранее известных местах. Кроме того, можно читать исходный код приложения.
Уязвимость становится ещё опаснее, если помимо чтения файлов есть ещё и возможность загружать их в произвольные директории.
К чему может привести
— Несанкционированный доступ и изменение системных файлов, а также исходного кода сайта или веб-приложения.
— Удалённое выполнение вредоносного кода
— Подмена страниц сайта.
Как защититься
— Старайтесь не использовать вызовы файловой системы при пользовательском вводе.
— Если же без вызовов файловой системы не обойтись, проверяйте вводимые пользователем данные перед их обработкой. После проверки входных данных используйте API файловой системы платформы для канонизации пути. Следует убедиться, что канонизированный путь начинается с ожидаемого базового каталога.
Рекомендации по обеспечению информационной безопасности сайта
Пароли
Используйте сложные пароли, но которые реально запомнить. В этом случае пользователь не будет записывать их на бумажку. Пример: Kata007pulta* Пароль содержит спецсимволы, цифры, верхний регистр, более 8 символов. Такой пароль сложно подобрать, но легко запомнить пользователю.
Периодически меняйте важные пароли. Если храните пароли, то сделайте архив с паролем, и храните в нем Excel с паролями локально на своем ПК.
Минимальный доступ и убрать все ненужные элементы
У каждого пользователя должен быть минимальный уровень доступа, достаточный для его работы. Не нужно давать больше, чем ему нужно для выполнения служебных обязанностей. Атаке извне может быть подвергнут любой элемент вашей системы, и чем меньше возможностей у этого элемента, тем лучше.
Закрывайте доступ через неиспользуемые порты на сервере. Каждый порт — потенциальная точка входа для злоумышленника.
Обновления
Ставьте обновления своевременно. Заведите регламент работ по обновлению основного ПО — ПО сервера, CMS сайта, антивирус и т.д.
Инсайдеры
Инсайдер гораздо опаснее внешнего злоумышленника. У него уже есть доступ в системе. К нему есть некоторое доверие со стороны других людей в системе. Он может долгое время незаметно пакостить в системе. Создайте условия для максимальной удовлетворенности людей в системе, со всеми расставайтесь полюбовно, не оставляя долгов перед другими (особенно перед программистами и системными администраторами).
Чем сложнее решение, тем больше дыр и ошибок
А баги — это риск-фактор для взлома системы. Уменьшайте сложность системы. По мере развития она и так будет усложняться по естественным причинам (много данных, обязательные хотелки пользователей и т.д.) — не стоит все усложнять на первых этапах своими же руками.
Используйте основы риск менеджмента
Проводите пересмотр рисков и мер по уменьшению критичности и вероятности возникновения риска.
Риски — это не что-то, что высечено на камне. Вы провели некие работы по снижению рисков, и необходимо пересмотреть их, сделать акцент на другие риски.
Не публикуйте в общий доступ лишней информации
Внешний злоумышленник собирает информацию сначала из открытых источников. По крупицам ищет уязвимости системы, изучает структуру системы и возможные точки входа в него.
Не публикуйте в общий доступ информацию, чувствительную ко взлому. Тем самым вы уменьшите вероятность взлома внешним злоумышленником.
Не ставьте ничего на телефон и ПК
На рабочих станциях (и тем более на серверах) не должно быть ненужного ПО. Любое дополнительное — потенциальный риск получить вирус или другое вредоносное ПО.
Уязвимости в ПО также могут быть точкой входа в систему.
Поэтому ставьте приложения только из проверенных источников и давайте этим приложениям минимум необходимых прав.
Для программистов — не доверять вводу юзера
Когда сайт обрабатывает запрос от браузера, нельзя доверять введенным данным от пользователя.
В платформе Falcon Space практически любая процедура принимает параметр @username, который находится внутри системы, а не получен от браузера. Именно на него мы ориентируемся при авторизации доступа к определенным ресурсам.
К примеру, пришел запрос GetOrder и передан параметр orderID — можем ли бы просто выдать заказ по orderID. Нет, т.к. юзер мог указать чужой orderID. Мы должны проверить сначала (по @username) имеет ли текущий пользователь доступ к этому объекту.
Бекапы, бекапы, бекапы!
Делайте бекапы базы данных и файлов сайта. Ежедневно должны создаваться бекапы. Их нужно копировать на удаленное хранилище (яндекс диск или dropbox). В случае, если сгорит сервер, ваши бекапы будут в сохранности.
Периодически проверяйте, что ваши бекапы делаются и они пригодны для использования (может случиться так, что бекапы делаются, но они повреждены и не могут быть использованы; либо делаются сильно усеченные и не позволяют полностью восстановить информацию).