Специалист по тестированию на проникновение делает то же, что и взломщик: ищет путь внутрь и пользуется им. Законы о компьютерных преступлениях в большинстве стран не спрашивают о намерениях. Они спрашивают, был ли доступ разрешён. Вся разница между услугой и правонарушением — это набор документов, подписанных нужным человеком до начала работ.
В этой статье описаны эти документы. Это не юридическая консультация: право в разных странах различается, и что применимо к вам, решают ваши юристы.
Документы
Договор
Коммерческое соглашение: что делается, в какой срок, за какую стоимость, с какой ответственностью и конфиденциальностью. Сам по себе договор разрешением не является. Он обязывает стороны друг перед другом, но не определяет, что именно можно атаковать.
Письмо-разрешение
Заявление, которым владелец систем разрешает тест. В нём должны быть названы:
- системы — по адресу, домену или другому однозначному идентификатору;
- период, в течение которого тестирование разрешено;
- люди или компания, которым разрешено тестировать;
- подписавший и то, в каком качестве он подписывает.
Исполнители держат его при себе — буквально или фигурально — весь проект. Когда хостинг-провайдер или правоохранительный орган спрашивает, что происходит, отвечает именно этот документ.
Правила проведения работ
Технические границы: какие техники разрешены и какие исключены, часы тестирования, частота запросов, что делать, если система теряет стабильность, кому звонить ночью. NIST SP 800-115 считает правила проведения работ обязательной частью планирования, а PTES по той же причине относит их к подготовительному этапу: вопросы, не решённые до теста, решаются во время инцидента.
Описание объёма
Перечень того, что входит и что не входит. Исключения важны не меньше включений: платёжный провайдер за страницей оплаты, общая платформа хостинговой компании, сервис единого входа, принадлежащий материнской компании.
Конфиденциальность и защита данных
Соглашение о неразглашении, подписанное до обмена техническими деталями. Если в ходе работ возможен доступ к персональным данным — соглашение об обработке данных. В Европейском союзе это следует из статьи 28 GDPR, когда исполнитель обрабатывает персональные данные по поручению заказчика.
Кто вправе подписывать
Разрешение стоит ровно столько, сколько полномочия подписавшего.
- Владелец системы, а не её пользователь. Компания не может разрешить тестирование SaaS-продукта, на который она подписана.
- Лицо, уполномоченное действовать от имени компании. Разработчик, заказавший тест рабочей системы работодателя без ведома руководства, ничего не разрешил.
- Каждый владелец, если их несколько. Для системы, которой управляет одна компания на инфраструктуре другой, могут понадобиться обе подписи.
Аккуратный исполнитель это проверяет: смотрит коммерческий регистр, принадлежность доменов и подтверждает заказ через официальный канал компании. Исполнитель, который не спрашивает, должен вас насторожить.
Третьи лица
Ваше разрешение распространяется на ваше. Вокруг обычно есть системы, которые вашими не являются.
Облачные провайдеры. Крупные провайдеры публикуют правила тестирования ресурсов, которые клиенты размещают на их платформах. На момент написания AWS, Microsoft Azure и Google Cloud разрешают клиентам тестировать собственные ресурсы без предварительного согласования — в пределах правил, которые публикует каждый из них; AWS, кроме того, перечисляет сервисы, которые можно тестировать. Тесты на отказ в обслуживании ограничены у всех. Правила меняются, поэтому их проверяют перед каждым проектом, а не вспоминают по прошлому.
Хостинг и управляемые сервисы. У виртуального хостинга, управляемых баз данных и сетей доставки контента свои условия. Одни требуют уведомления, другие запрещают тестирование вовсе.
Поставщики и партнёры. Интеграция с партнёром не распространяет ваше разрешение на его сторону. Без письменного согласия партнёра тестирование останавливается на вашей границе.
Типичные пробелы
- Тест уже начался, а письмо всё ещё «на подписи».
- В объёме указан домен, а приложение месяц назад переехало на другой адрес.
- Письмо подписал тот, у кого не было на это полномочий.
- В объём входит рабочая среда, а службу эксплуатации никто не предупредил.
- Дочерняя компания в другой стране тестируется по разрешению материнской.
Каждый из них превращает разрешённый тест в неразрешённый для части работ, и ни один не виден с технической стороны.
Bug bounty — это тоже разрешение
Программа bug bounty — это разрешение, данное публично: в политике программы сказано, что и как можно тестировать, и тот, кто её соблюдает, действует с разрешения владельца. Условие safe harbour добавляет обязательство владельца не преследовать исследователей, остающихся в рамках политики. Оно связывает только владельца. Оно не меняет уголовный закон и не связывает третьих лиц — поэтому политику нужно соблюдать точно, а система без программы целью не является.
Коротко
До отправки первого пакета должны существовать договор, письмо-разрешение, подписанное тем, кто вправе его подписывать, правила проведения работ, объём с исключениями и согласие каждого третьего лица, чьи системы затрагиваются. Как мы это организуем, описано на странице «Порядок работы».