Предоставление доступа к исходному коду во время пентеста в основном имеет преимущества. В этой статье мы попытаемся рассказать не только о них, но и о недостатках такого подхода.
Что такое анализ исходного кода во время пентеста?
Прежде чем перейти к сути вопроса, давайте уточним, что мы имеем в виду, говоря о предоставлении доступа к исходному коду в контексте пентеста.
Пентест соответствует аудиту безопасности с точки зрения злоумышленника. У большинства злоумышленников нет априорного доступа к исходному коду веб-приложения, которое будет подвергаться аудиту.
Если мы дадим доступ к исходному коду, можно ли тогда говорить о пентесте?
Это несколько гибридный подход, позволяющий развивать некоторые аспекты дальше. Ведь предоставление доступа к исходному коду во время пентеста означает, что речь пойдет о проведении тестов с точки зрения преступника, который может знать о нем, к примеру с точки зрения работника с плохими намерениями. Тем не менее, у пентестеров будет возможность ознакомиться с исходным кодом, если они сочтут его полезным для облегчения или углубления своих исследований.
Проведение полного анализа исходного кода не основная задача, потому что это цель не пентеста, а аудита исходного кода. Аудит исходного кода состоит из глубокого анализа кода для выявления уязвимостей или областей, требующих улучшения безопасности.
Каковы недостатки предоставления доступа к исходному коду во время пентеста?
Если целью пентеста является оценка риска в случае внешней атаки, вполне уместны тесты черного ящика (без предоставления какой-либо информации пентестерам). Чтобы оценить риск, с которым сталкивается хакер, тесты серого ящика (с доступом пользователя) обеспечат реалистичную обратную связь. Как правило, владельцу решения SaaS необходимо знать о рисках внешней атаки, а также о рисках для других своих клиентов в случае компрометации одной из учетных записей. Для этого идеально подходит пентест «чёрного ящика» и «серого ящика».
Если исходный код предоставляется пентестерам, они будут иметь доступ к элементам, невидимым для большинства злоумышленников, что означает предоставление максимального уровня информации за пределами периметра, подверженного атакам. Обратная связь по безопасности потенциально может быть очень интересной, но есть риск, что она выйдет за пределы того, что считается приоритетом, поскольку она выйдет за пределы общедоступного периметра. В некоторых случаях существует риск того, что разработчики минимизируют обратную связь по безопасности, говоря: «Да, но это слишком просто, потому что у них есть код». Вот почему необходимо четко сформулировать цели пентеста, а также ожидания технической команды клиента.
Однако обратите внимание, что на практике тот факт, что пентестеры имеют доступ к исходному коду, не мешает им также проводить реалистичные внешние атаки и давать отзывы о рисках в порядке приоритета.
Конфиденциальность и доверие
Доверие является центральным аспектом, когда речь идет о поиске компании для пентеста, и тем более, если предполагается обмен исходным кодом. Действительно, исходный код является интеллектуальной собственностью компании и значительной частью стоимости издателя программного обеспечения или стартапа.
Контракт на пентест будет включать положения о конфиденциальности для защиты клиента. В его интересах также подвергнуть сомнению серьезность поставщика услуг, профиль компании и аудиторов безопасности.
Безопасная передача кода
В дополнение к доверию и соблюдению конфиденциальности обмениваемой информации, существует вопрос о безопасной передаче исходного кода.
На этот вопрос обычно отвечают так:
- Если исходный код клиента находится на Github (или аналогичном), для пентестеров будет открыт временный внешний доступ.
- В качестве альтернативы клиент может предоставить зашифрованный архив, содержащий копии всех файлов исходного кода, через безопасную платформу обмена файлами.