Уязвимости в бизнес-логике, которые не распознает ни один сканер (сфера ecom) Продолжаем поднимать тему атак, направленных на эксплуатацию уязвимостей в бизнес-логике. На этот раз в сфере ecom-а и ритейла. Несколько популярных примеров логических уязвимостей: — Заказ без подтверждения, который ломает логистику. Если функциональность интернет-магазина позволяет оформить заказ без подтверждения по телефону, то оператор не сможет отличить его от фейка. Примет заказ и отправит товар со склада по адресу, где никого нет. При многократном повторении злоумышленник может перегрузить логистику, остановить работу магазина и нанести огромный ущерб бизнесу. Необходимо всегда делать подтверждение по SMS/звонку и использовать механизм ограничения множественных запросов. — Некорректная авторизация по номеру телефона. Многие онлайн-сервисы используют SMS-коды в качестве механизма авторизации пользователей. Но допускают ошибки, например, не делают ограничений по количеству попыток или сроку жизни кода подтверждения. Как правило, код состоит из 4-6 цифр, так что максимальное количество запросов, необходимых для перебора — 1 миллион, что совсем немного. — Отсутствие механизма защиты от перебора промокодов. Промокод генерируется при выдаче и сохраняется в базе данных. Если владелец промокода еще не активировал его, злоумышленник может перебирать и активировать такие коды. Нужно привязывать промокод к конкретному пользователю и реализовывать механизмы защиты от множественных запросов. — Класс атаки Circumvention of Work Flows Позволяет злоумышленнику обойти последовательность взаимодействия с приложением или условия его бизнес-логики. Например, если механизм реализован некорректно, то злоумышленник сможет оформить заказ, пропустив этап оплаты, и получить подтверждение заказа в CRM. В следующий раз расскажу о популярных логических уязвимостях в интернет-сервисах. #pentest
Just Security
Уязвимости в бизнес-логике, которые не распознает ни один сканер (сфера финтех) С каждым годом банковские веб-приложения становятся более отказоустойчивыми и имеют все меньше технических уязвимостей: SQL-инъекции, XSS, RFI/LFI и так далее. Более актуальными становятся атаки, направленные на эксплуатацию уязвимостей в бизнес-логике. Злоумышленники могут: — Обходить механизмы защиты, пропуская шаг подтверждения входа в личный кабинет с помощью N-значного кода в СМС. Например, чат-боты в мессенджерах позволяют более удобно и быстро пользоваться картами, переводами и платежами, но могут представлять угрозу безопасности, если не протестированы в полном объеме. Недавно мы проводили аудит нового продукта одного из банков. За несколько дней мы обнаружили множество ошибок в логике работы приложения, которые позволяли получить доступ к аккаунту, балансу пользователей и счетам. Удалось даже обойти механизм подтверждения операции. — Совершать фродовые операции, накручивая баланс за счет функциональности обмена валюты. Например, в приложении есть функциональность перевода одной валюты в другую и обратно. При этом происходит округление в бОльшую сторону. Можно сделать множественную операцию на перевод и таким образом накрутить баланс или получить более выгодный курс валюты. — Совершать множественные операции, требующие больших вычислительных ресурсов, тем самым вызывая отказ в обслуживании, что наносит компании-жертве репутационный ущерб. Такого рода ошибки не найдет ни один сканер безопасности, что делает ручные проверки силами квалифицированных пентестеров все более востребованными. Избегать проблем в логике приложений позволяют анализ кода и процессы безопасной разработки (Secure SDLC), о которых мы так много говорили на митапе. #pentest
5-ти минутная интеграция SAST в Gitlab CI/CD Если ты используешь Gitlab как инструмент для хранения и управления репозиториями, но все еще не внедрил SAST в свой CI/CD, то этот пост для тебя. Gitlab дает возможность одной строчкой внедрить статический анализатор кода в проект. Для этого необходимо в файл .gitlab-ci.yml добавить необходимый шаблон: Security/SAST.gitlab-ci.yml. Сервис сам определит на каком стеке написан проект и запустит нужный анализатор кода, а результаты можно будет посмотреть в отдельном стейдже или в security dashboard. Конечно, инструменты нужно настраивать под себя. К сожалению, в community версии можно определить только некоторые переменные, например, SAST_GOSEC_LEVEL (игнорировать уязвимости, найденные Gosec при заданном уровне,. 0 = Не определено, 1 = Низкие, 2 = Средние, 3 = Высокие). В enterprise же можно добавлять и изменять rulesets. Поддерживаемые языки программирования для быстрой интеграции: hdocs.gitlab.com/...ast В случае если необходимо использовать SAST со своими правилами и кастомными настройками, всегда можно обратиться к нам за помощью 😉
Первые 90 дней специалиста по информационной безопасности в новой компании Представь ситуацию, ты приходишь в новую компанию и тебе ставят задачу «сделать все безопасно». Задача непростая — с чего начать? Компания Sqreen подготовила полезный чек-лист, который поможет директорам или спецам по ИБ расставить приоритеты по задачам в первые месяцы работы. Думаю, материал будет полезен и тем, кто предлагает консалтинговые услуги. Чек-лист выполнен в виде небольших заметок с рекомендациями и ссылками на дополнительные материалы. Документ состоит из следующих разделов: - PROCESS - CULTURE - APPLICATION SECURITY - INFRASTRUCTURE SECURITY - MONITORING Чек-лист: assets.sqreen.com/...pdf
Как эффективно управлять уязвимостями? Как быть, если нужно управлять уязвимостями, а источников, которые обнаруживают их очень много: - сканеры сетевой инфраструктуры - сканеры веб-приложений - сканеры кода - SAST, DAST встроенные в CI/CD - и т.д. Заходить в каждый инструмент, выгружать отчеты, заводить задачи в баг-трекере, писать свои скрипты и хуки? Не стоит) Существует класс решений, которые позволяют собирать результаты сканирований из разных источников, агрегировать уязвимости, устанавливать сроки устранения уязвимостей, при необходимости отмечать баги как false positive, выгружать отчеты с применением различных фильтров и интегрироваться с багтрекерами. Чтобы понять насколько это удобно, можно развернуть у себя опенсорсное решение - DefectDojo (https:/...o). Сервис написан на Python и поддерживает более 20 форматов отчетов из различных сканеров: Nessus, Acunetix, Fotify, BurpSuit, Qualys, SonarQube и т.д. Если вы анализируете код и тестируете приложение в процессе CI/CD, то DefectDojo для вас еще отследит идентификатор сборки, хэш коммита, ветку, тег, SCM и Build сервер, т.д. Есть и коммерческие решения, например, Risksense, Threadfix.
