Безопасность на первом месте или как не испортить репутацию своего проекта
В этой статье хотелось бы рассказать об уязвимостях, с которым мы чаще всего сталкиваемся на практике при проведении анализа защищенности сайта. Все уязвимости, о которых я расскажу были обнаружены в крупных проектах.
Для начала я развею миф о том, что сайты взламывают очень редко и выборочно. По идее привлекательность взлома ресурса прямо пропорциональна посещаемости сайта и ценности данных в БД. Увы, это не так. Взламывают просто ради развлечения и рейтинга, допустим на таком сайте http://zone-h.org. Оценить масштабы беды вы можете по этой ссылке http://zone-h.org/archive просмотрев временные промежутки, которые указывают о взломе нового ресурса.
Буква H означает homepage defacement, т.е. произошла замена главной страницы сайта, а это значит, что главная страница вашего сайта выглядит примерно следующим образом:
Картина не совсем приятная, особенно, если это происходит в рабочее время и приходится на максимальный пик трафика на сайте. Ниже я опишу несколько уязвимостей, которые нам встречаются чаще всего.
SQL injection
https://www.owasp.org/index.php/SQL_Injection
Уязвимость основанная на внедрении в запрос к БД произвольного кода, позволяющего прочитать, изменить, удалить данные любых таблиц. Таким образом, злоумышленник может получать любую информацию из базы данных, включая логины и хеши паролей пользователей. Уязвимость возникает из-за некорректной обработки входных данных, используемых в SQL-запросах.
Все входные данные пользователя должны быть отделены от текста SQL-запроса кавычками, которые должны экранироваться в содержании входящих параметров веб-приложения.
Cross-site Scripting (XSS)
https://www.owasp.org/index.php/XSS
Межсайтовый скриптинг. По количеству найденных уязвимостей занимает первое место. Тип атаки на веб-приложение, заключающийся во внедрении в выдаваемую веб-приложение страницу вредоносного кода. Уязвимость в большинстве случаев недооценивают. Эксплуатация может повлечь за собой перехват сессии администратора или данных платежных документов.
К изучению стоит прочитать вчерашнюю статью о найденной XSS на сайте ipay.ua. Самое интересное в этой истории - реакция руководства сайта (в комментариях). Кто после этого захочет пользоваться данным сервисом? Думаю никто.
Вывод: если с вами связался человек и сообщил о нахождении уязвимости на вашем ресурсе, внимательно выслушайте его, изучите риски и закройте уязвимость. А еще лучше отблагодарите материально.
Исследователи безопасности достаточно принципиальный и идейный народ. В случае игнорирования вами найденной проблемы, человек обязательно расскажет об этом другим, посредством того же Хабра. Что вы получите в итоге? Смотрите скриншот.
Cross-Site Request Forgery (CSRF)
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)
Вид атак на посетителей сайтов, использующий недостатки протокола HTTP. Если жертва заходит на сайт, созданный злоумышленником, от её лица тайно отправляется запрос на другой сервер (например, на сервер платёжной системы), осуществляющий некую операцию от имени пользователя (например, перевод денег на счёт злоумышленника). Решением проблемы является использование защиты от CSRF, предотвращающей отправку запроса со стороннего сайта.
«Слабые» учетные данные
https://www.owasp.org/index.php/Authentication_Cheat_Sheet
Злоумышленник имеет возможность подобрать учетные данные для авторизации, «логин-пароль» очевидны или являются словарными. Пароль и логин admin/admin не самая лучшая идея.
Unrestricted File Upload
https://www.owasp.org/index.php/Unrestricted_File_Upload
Недостаточная проверка загружаемых файлов позволяет загружать файлы любых расширений. При загрузке изображения, кроме проверки расширения и типа файла, нужно также добавлять другие фильтры. Под видом изображение можно загрузить зараженные файлы.
Напоследок хочется сказать, что уязвимости могут создать большие проблемы для ваших клиентов и посетителей сайта, чем для вас. Именно поэтому одной из задач проведения анализа защищенности сайта является пункт: использование веб-приложения для организации атак на рабочие места пользователей приложения.