Безопасность является одной из основных проблем для поставщиков SaaS-приложений. Действительно, важно, чтобы пользователи доверяли решению и были уверены, что данные защищены.
SaaS и пентесты
Безопасность аутентификации, разделение данных, шифрование данных, а также безопасность пользовательских путей, непрерывность сервиса и интеграция со сторонними компаниями… Вопросы безопасности SaaS-приложений многочисленны. Пентест позволяет оценить надежность платформы SaaS, чтобы проверить и, возможно, усилить ее уровень безопасности. Ниже приведен список аспектов, которые заслуживают особого внимания при проведении пентеста.
Тестирование безопасности данных в приложении SaaS
Безопасность аутентификации
Аутентификация пользователя — это особенно ответственный этап. Она определяет, имеет ли пользователь легитимный доступ, и предоставляет соответствующие полномочия (роль и уровень доступа).
Как интерфейс, видимый извне приложения, он подвержен многочисленным атакам и должен быть устойчивым. Надежность интерфейса является проблемой для любого программного обеспечения SaaS.
Аутентификация может управляться либо платформой SaaS, либо SSO (Single Sign On). В обоих случаях реализация должна быть строгой, чтобы ее нельзя было обойти. В ходе пентеста проверяется, например, контроль доступа, политика идентификации, хранение доступа, ключи доступа и т.д.
Вертикальное разделение данных
SaaS-приложения обычно работают, предлагая различные роли для пользователей, например: пользователь, менеджер, администратор.
Реализация различных уровней привилегий должна быть основана на функциональности, обеспечивающей разделение привилегий между различными пользователями, группами или клиентскими базами в организации. Важно обеспечить принцип наименьших привилегий, т. е. предоставить каждой роли только те права, которые ей необходимы. Это первая мера предосторожности для ограничения возможностей повышения прав.
Мы часто сталкиваемся с проблемами прав между пользователями во время пентестов. Это уязвимости, которые позволяют обычному пользователю наделить себя дополнительными функциями, к которым он не должен иметь доступа (например, учетная запись обычного пользователя получает права менеджера для проверки отчета о расходах в HR-приложении).
Горизонтальное разделение данных
Специфика SaaS-платформы заключается в том, что она размещает всех своих клиентов на одной инфраструктуре, на одних и тех же серверах, в одной и той же базе данных. Разделение данных по учетным записям осуществляется на уровне приложений, с помощью аутентификации и контроля прав.
Многопользовательский хостинг является наиболее распространенным предложением, поскольку он снижает стоимость предлагаемой услуги за счет совместного использования аппаратного оборудования, экземпляров и т. д.
Конфиденциальность данных требует, чтобы учетные записи клиентов были герметичными. Проблемы с конфигурацией и лазейки в правах могут создать возможности для доступа к другой учетной записи, а не к той, которая обычно предоставляется. Тест на проникновение может подтвердить наличие разделения данных.
Для своих клиентов, имеющих строгие ограничения по безопасности, некоторые редакторы предлагают выделенный экземпляр, чтобы снизить риск несанкционированного доступа к данным.
Шифрование данных
Шифрование данных является важной мерой, гарантирующей конфиденциальность данных программного обеспечения SaaS. Оно должно применяться не только для хранения данных, но и для данных, находящихся в пути. Таким образом, если произойдет утечка данных или злоумышленники перехватят информацию, она будет нечитаема и непригодна для использования.
Шифрование в состоянии покоя означает, что база данных хранит зашифрованные элементы. Шифрование в пути означает, что во время импорта, экспорта или передачи данные остаются зашифрованными от конца до конца. Протокол доступа к базе данных должен обеспечивать шифрование.
Ключи шифрования являются очень чувствительной информацией. Рекомендуется хранить их в отдельном месте от данных, которые они шифруют. Часто клиент может сам управлять ключами шифрования (обслуживание и хранение).
Шифрование данных может быть решающим критерием при выборе платформы SaaS, поэтому это важный предмет для проверки во время аудита безопасности. В ходе теста на проникновение проверяется, например, подходит ли шифрование и хорошо ли оно настроено, безопасно ли хранятся и вызываются ключи шифрования и т. д.
Проведение пентеста приложений SaaS
Тестирование на проникновение платформы SaaS подвергает приложение реалистичным атакам, используя те же инструменты и методы, которые может использовать злоумышленник. Это позволяет понять, где система уже сильна, а где ее необходимо усилить в приоритетном порядке.
Как и все веб-приложения, SaaS-приложения предоставляют услуги через Интернет. Во время теста на проникновение большой объем тестирования сосредоточен на прикладном уровне, который является источником технических и логических уязвимостей.
Пентест приложений может проводиться в режиме «черного ящика», «серого ящика» или «белого ящика».
В «черном ящике» тесты нацелены на поверхность атаки, доступную извне, чтобы проверить все риски, доступные внешнему злоумышленнику. Вы не предоставляете никакой информации или учетных записей до начала тестов.
В «белом ящике» анализ идет еще дальше за счет предоставления доступа к исходному коду программного обеспечения SaaS.