Современный веб-ресурс представляет из себя постоянно развивающийся механизм со множеством апдейтов и усовершенствований. Они нацелены на улучшение производительности, повышение конверсии, оптимизации работы и удобства использования. Но при этом по тем или иным причинам могут быть допущены ошибки, которые могут привести к компрометации веб-ресурса. Это могут быть «забытые» служебные скрипты, недостаточный контроль за данными, отсутствие проверок доступа, вывод различных ошибок и многое другое. Для используемой CMS в публичном доступе могут появиться эксплоиты, позволяющие получить доступ к тому или иному функционалу веб-приложения, при помощи которых злоумышленник может нанести вред или попытаться получить критичные данные. Многие уязвимости, эксплуатируемые среднестатическим злоумышленником, лежат на поверхности и не требуют глубоких познаний или квалификации для их эксплуатации.
Easy hack
Большинство современных атак на веб-сайты происходит с использованием автоматизированных средств: разного рода веб-сканеров, фреймворков и утилит. Т.е. порог вхождения в веб-пентестинг довольно низок и компрометация сайта (при наличии поверхностных уязвимостей) всего лишь вопрос времени.
Скрипт кидди (англ. Script kiddie) — в хакерской культуре унизительный термин, используемый для описания тех, кто пользуется скриптами или программами, разработанными другими, для атаки компьютерных систем и сетей, не понимая механизма их действия.
Script kiddie — искатели легкой добычи. Они не пытаются получить доступ к какой-то определенной информации или осуществить атаку на конкретную компанию. Их цель состоит в том, чтобы получить права root самым простым из возможных способов. Они достигают этого, выбирая небольшое число уязвимостей и сканируя затем Internet в их поисках. Рано или поздно они находят уязвимую систему.
Согласно статистике нашей системы автоматического сканирования до 30% сайтов, присланных для проверки содержали критичные уязвимости — sql injection, небезопасные прямые ссылки на объекты, незащищенность критичных данных — все это делает атаки на сайты легкодоступными и продуктивными.
Злоумышленники могут искать определенные признаки, такие как тип и версия CMS, наличие определенных файлов в корне сайта и прочее с помощью поисковых систем и сканеров проверять наличие той или иной уязвимости. Также это может быть набор определенных паттернов, ответов сервера на те или иные запросы, по которым можно попытаться определить наличие уязвимости.
Основные вектора атак
Для того чтобы быть уверенными в том, что веб-приложение не удастся взломать «сходу» мы разработали несколько сценариев проверки типовых векторов атаки на веб-приложение.
Сбор информации: собирается доступная информация, такая как — заголовки веб-сервера, определение типа платформы, CMS, фреймворков. Проверяется наличие phpinfo файлов и служебных скриптов, позволяющих получить чувствительную информацию об атакуемом веб-ресурсе, производится сканирование директорий сайта на наличие файлов резервного копирования, критичных данных (репозиториев, документов и прочего).
Анализ: составляется карта веб-приложения со всеми доступными ссылками, полученными с сайта для дальнейших попыток эксплуатации. Обнаруженные email адреса добавляются в список предполагаемых логинов к bruteforce модулю.
Проверка: сайт проверяется на наиболее распространенные ошибки и уязвимости, такие как:
- sql injections — разного рода sql инъекции;
- cross site scripting — xss, межсайтовый скриптинг;
- cross site requets forgery — csrf, межсайтовая подделка запросов;
- local file inclusion — локальный инклуд;
- remote file inclusion — удаленный инклуд;
- open redirects — редиректы;
- code executions — выполнение кода;
- http response splitting — расщепление http запросов;
- xpath injections — xpath инъекции;
- buffer overflows — разного рода переполнения буфера;
- known vulnerabilities — поиск известных эксплоитов.
Дополнительно: формы авторизации подвергаются атаке по словарю (bruteforce) со списком часто встречающихся логинов (admin, user, test, web и т.д.) по специализированной парольной базе.
Выявленные уязвимости могут быть проэксплуатированы как по отдельности, так и составлять сложный сценарий атаки на веб-приложение. Проверка сайта в автоматическом режиме позволит выявить большинство уязвимостей такого рода для оперативного устранения и минимизации рисков взлома сайта.
Методология проведения аудита
Данные сценарии составлены с учетом методологии OWASP TOP 10.
Тип уязвимости: внедрение кода — OWASP A1 (injection).
Как выявляется: ошибки в теле страницы, время отклика.
Чем грозит: компрометация пользовательских данных, заражение сайта.
Тип уязвимости: некорректная аутентификация и управление сессией — OWASP A2 (broken authentication and session management).
Как выявляется: передача сессии в URL, отсутствие шифрования.
Чем грозит: утечка чужой сессии может привести к перехвату управления аккаунтом.
Тип уязвимости: межсайтовый скриптинг — OWASP A3 XSS (cross-site scripting).
Как выявляется: наличие ответа на специально сформированный запрос в коде страницы.
Чем грозит: атака производится непосредственно на пользователя, манипуляция данными.
Тип уязвимости: небезопасные прямые ссылки на объекты — OWASP A4 (insecure direct object references).
Как выявляется: перебор значения параметров.
Чем грозит: возможна утечка критичных данных.
Тип уязвимости: небезопасная конфигурация — OWASP A5 (security misconfiguration).
Как выявляется: выявление настроек по умолчанию, стандартных паролей, сообщений об ошибках.
Чем грозит: компрометация пользовательских данных, заражение сайта.
Тип уязвимости: утечка чувствительных данных — OWASP A6 (sensitive data exposure).
Как выявляется: корректная установка и настройка сертификатов, выявление критичных данных.
Чем грозит: возможна утечка критичных данных.
Тип уязвимости: отсутствие контроля доступа к функциональному уровню — OWASP A7 (missing function level access control).
Как выявляется: манипуляция данными для получения доступа.
Чем грозит: возможна утечка критичных данных.
Тип уязвимости: подделка межсайтовых запросов — OWASP A8 CSRF (cross-site request forgery).
Как выявляется: отсутствие проверки адреса запроса (токена).
Чем грозит: манипуляция данными.
Тип уязвимости: использование компонентов с известными уязвимостями — OWASP A9 (using components with known vulnerabilities).
Как выявляется: наличие общедоступных уязвимостей для данной версии приложения.
Чем грозит: компрометация пользовательских данных, заражение сайта.
Тип уязвимости: невалидируемые редиректы — OWASP A10 (unvalidated redirects and forwards).
Как выявляется: манипуляция параметрами URL.
Чем грозит: компрометация пользовательских данных, возможна утечка критичных данных.
Итог
Всем обнаруженным уязвимостям присваивается определенный ранг: от незначительной до критичной. Каждая обнаруженная уязвимость из разряда критичных проверяется вручную для минимизации false-срабатываний. В отчете содержится список уязвимых URL, параметров, тип и описание уязвимости, а также вероятные последствия эксплуатации уязвимости злоумышленником.
Частота проверки (раз в квартал, или чаще, по желанию) позволят владельцу сайта иметь актуальную картину безопасности. Такого рода проверки позволят в кратчайший срок выявить большинство поверхностных уязвимостей, устаревшие версии ПО и компонентов CMS и позволят оперативно защитить веб-приложение.
Пример отчета о выполненном автоматическом сканировании сайта.
Комментарии (18)
evnuh
01.12.2015 14:21+2Как же вам всем удаётся подбирать такие оригинальные КДПВ к статьям про безопасность?
habrahabr.ru/company/panda/blog/271953
habrahabr.ru/company/panda/blog/268875
habrahabr.ru/company/pentestit/blog/270633
habrahabr.ru/company/pentestit/blog/261569evnuh
01.12.2015 14:32+2Я так понимаю, вы критикующие комментарии не принимаете к своим статьям, раз грозный меч LukaSafonov прошёлся абсолютно по всем комментаторам в этом топике?)
Scf
01.12.2015 14:28+1Если скан автоматический, то почему ежеквартально? Проще же купить что-то вроде XSpider и сканировать хоть каждый день.
cyber-security
01.12.2015 18:54Люди всегда самая явная дыра в системе безопасности!
Таких статей в последнее время пруд пруди на хабре именно от вас habrahabr.ru/company/pentestit/blog/252227
вода-вода-вода-вода-вода-вода-нашсайт-вода-вода
Статья получилась «ни о чем». Сотряение воздуха с описанием тривиальных вещей понятных даже людям не имеющим своих сайтов. Вопрос один: какую цель преследовал автор статьи публикуя ее на хабре?lukasafonov
01.12.2015 18:59Это корпоративный блог, и мы в нем рассказываем о нашей деятельности.
cyber-security
01.12.2015 19:01так а зачем одно и то же писать только чуть смысл менять и содержание ?!
и сразу всем говорить что вы не правы ?!gezakht
01.12.2015 19:07+4По крайней мере автор пишет сам, а не ищет людей для написания — https://www.fl.ru/projects/2522337/trebuetsya--chelovek--dlya-napisaniya-stati-na-habrahabr.html
rodionovs
01.12.2015 19:14+2Не совсем понятна суть претензии. Каждая статья — уникальна и, как заметил мой коллега, мы действительно рассказываем о нашей деятельности. С таким же успехом можно спросить — «почему вы пишите постоянно об информационной безопасности». Каждая опубликованная статья анализируется, основным показателем является итоговое количество «плюсов».
cyber-security
01.12.2015 19:00и мне -2 за правду
все + поставил кому они влепили
простите за такой флуд но это правда !!!!
Twost
Простите, а в чём смысловая нагрузка данного поста? Дважды перечитал, так и не понял
MasMaX
Реклама же, типа купите нашу услугу.
Twost
Судя по реакции, Вы угадали
MasMaX
Судя по моей карме хозяин поста обиделся)))
rodionovs
Позволю подытожить:
— в настоящий момент в сети доступно большое количество инструментов и техник атак на сайты, воспользоваться которыми может даже «школьник»;
— несмотря на встроенные системы безопасности фреймворков, на которых разрабатываются сайты, имеет место быть даже такие уязвимости, как SQLi и прочее;
— согласно статистике, 7 из 10 сайтов имеют уязвимости со статусом «Critical», что позволяет злоумышленнику получить доступ к конфиденциальной информации и скомпрометировать ресурс, или использовать веб-сайт для атаки на внутреннюю сеть;
— аудит безопасности сайта в автоматическом режиме, проводимый раз в квартал, позволяет перекрыть большинство подобных атак. Кроме того, даже полноценный аудит (как в автоматическом, так и в ручном режимах) не перекрывает 100% уязвимостей (вам об этом скажет любой эксперт) — необходимо также проводить аудит исходного кода для 100% безопасности.
Если посчитать стоимость полноценного аудита безопасности: Blackbox (от 100 000 руб.) + аудит исходного кода (Whitebox, от 150 000 руб.) — то стоимость таких работ для типичного e-commerce, к примеру, составит от 250 тыс. рублей, а то и больше — от 500 000 рублей. Согласитесь, не каждая компания может себе такое позволить.
Таким образом, для максимальной компенсации рисков при минимальном бюджете можно ограничиться ежеквартальным аудитом безопасности сайта, который позволит обнаружить и устранить большинство известных векторов атак всего за 15 000 рублей за каждый аудит. Можно, конечно, приобрести сканер безопасности и производить такие проверки самостоятельно — но! для работы с подобными инструментами необходима качественная практическая подготовка в области ИБ — иначе такой скан будет или нерезультативным, или его последствия окажутся печальными.
Результаты проведенного аудита безопасности e-commerce сайта в автоматическом режиме (в обезличенном виде) вы можете скачать по ссылке. Я постарался изложить всю суть мыслей автора по данной статье, если что-то упустил — поправь меня, пожалуйста, LukaSafonov.