Безопасность сайта - полезные сервисы и советы
Причиной написания статьи послужил очередной запрос клиента, который пожаловался на взлом сайт и рассылку спама через аккаунт одного из своих пользователей. Клиент - сервис услуг по рассылке email/sms сообщений. Компаний, которые предоставляют такие услуги на рынке - множество.
Такие сервисы всегда были привлекательны для хакеров по двум причинам:
- Возможность взломать базу данных и получить миллионы почтовых ящиков для рассылки спама и других зловредных действий.
- Взлом самих аккаунтов пользователей сервиса, для рассылки фишинговых и других писем подписчикам.
Подписчик получает письмо уже со знакомого адреса от известной компании, поэтому переходит по фишинговым ссылкам не задумываясь. Вектор атаки зависит только от фантазии злоумышленника и его целей.
При изучении cервера клиента были обнаружены уязвимости Heartbleed CVE-2014-0160, POODLE SSLv3.0 CVE-2014-3566, OpenSSL CCS CVE-2014-0224, которые можно было выявить простым сканированием через бесплатный сервис, например SSL Server Test от компании Qualys, речь о котором пойдет чуть ниже.Старый враг - Heartbleed
Возможность атаки Heartbleed основана на ложном изменении длины данных в запросе к серверу. В реально длина строки очень мала, а число, которое символизирует ее длину очень велико. Когда уязвимый сервер получает этот пакет, он передает такое же количество данных, скопированное из памяти в ответном пакете, т.е. выдает больше скрытой информации.
Схематично это выглядит так:
Если ваш сервер уязвим на Heartbleed, то этого уже будет достаточно, чтобы украсть логины, пароли и получить доступ к конфиденциальной информации.
Обнаружить Heartbleed в 2016 году было большим удивлением, так как данная уязвимость открыта еще в 2014 году, когда на тот момент ей были подвержены порядка 30% всех сайтов, использующих OpenSSL, а это более 500 млн. ресурсов. Сейчас уязвимость встречается значительно реже.Чем проверить сайт?
- SSL Server Test - бесплатный инструмент от Qualys для анализа конфигурации и обнаружения уязвимостей SSL веб-сервера. Находит Heartbleed и POODLE.
- Pentest Tools - частично бесплатный сервис для проверки на ряд уязвимостей, в том числе DNS Zone Transfer, Google Hacking, фаззинг директорий и многое другое.
- Securityheaders.io - бесплатный сервис для проверки заголовков страниц. Проверяет наличие Content-Security-Policy, X-Frame-Options, X-XSS-Protection и X-Content-Type-Options для предотвращения XSS и Clickjacking атак.
- Acunetix - условно бесплатный сканер уязвимостей сайта, дают 14-дневный триал. Проводит тестирование на уязвимости OWASP Top 10, устаревшие версии ПО по базам CVE, раскрытие важной информации и т.д. Acunetix дает понять, насколько у вас все плохо при простом автоматизированном сканировании и стоит ли прибегать к ручным проверкам. Однозначно MustCheck.
- ScanMyServer - бесплатный сканер уязвимостей, проверяет на SQL Injection, Cross Site Scripting, PHP Code Injection, Source Disclosure и другие неприятные вещи.
Пару полезных советов:
- Постоянно следите за обновлением ПО, повторяю постоянно, большинство из обновлений содержат security fix.
- Никогда не используйте shared хостинги для своих проектов, вас взломают через ваших же соседей по серверу.
- Используйте Web Application Firewall, например CloudFlare.
- Отключайте потенциально опасные функции PHP.
- Установите и настройте Fail2ban и сетевой экран iptables.
- Блокируйте популярные сканеры уязвимостей, которые так любят использовать начинающие взломщики - скрипт-кидди.
Наши рекомендации лишь минимизируют риски взлома сайта до определенного уровня. Определенный уровень для большинства компаний не является приемлемым. Если вы всерьез задумались о безопасности - обратитесь к профессионалам, специализирующихся на безопасности веб-приложений. Львиная доля критических уязвимостей выявляется только через многочасовое ручное тестирование, в том числе так называемые концептуальные и уязвимости бизнес-логики приложений.
Безопасность = техническая защита + мониторинг + периодический анализ защищенности
Промыслы хакеров, которые периодически попадают в СМИ - лишь верхушка айсберга. Вам не обязательно быть банком или финансовой организацией, чтобы стать целью злоумышленников. Их цель - любая информация, которую можно впоследствии монетизировать.
СамоPR через взлом и дальнейшую публикацию в СМИ - так же имеет место быть. Хакеры любят "тыкать носом" компаниям и показывать их незащищенность, особенно когда игнорируют их сообщения о найденных уязвимостях.
Достаточно вспомнить недавние взломы сайтов Yota и MegaIndex, хакером w0rm. Самое интересное в этих атаках, что последний был взломан через все тот же Heartbleed. Хакер сделал дамп памяти и получив доступы к панели администратора, смог узнать логины и пароли к десяткам тысячам сайтов, которые являлись клиентами MegaIndex.Итог
Такие истории ещё раз доказывают, что компании ставят безопасность далеко не на первое место при разработке и поддержке своих проектов. В современных реалиях, когда больше важна скорость разработки, компании больше уделяют времени вопросам функциональности приложений, чем аспектам безопасности. Результат — ненадежные, небезопасные, уязвимые веб-приложения.