Безопасность превыше всего, и вы с этим согласны. Кроме того, вы хотите провести пентест, чтобы проверить код, недостатки, исправления, языки, серверы, разработку… тест на проникновение (или пентест) уже стал вашим выбором, но как подготовиться к нему? Вот 7 вопросов, которые помогут вам получить максимальную отдачу от теста на проникновение.
Должен ли я проводить тест на проникновение в производственной среде?
Проведение теста на проникновение в производственной среде имеет определенное преимущество: аудит проводится в реальных условиях использования вашего веб-сайта, веб-приложения, API. Однако тестирование производственной среды в редких случаях может помешать нормальной работе вашего бизнеса. Чтобы избежать любого риска, можно провести пентест в среде «iso-prod» — среде, полностью идентичной производственной.
Также интересно провести пентест на предпроизводственной среде, поскольку она очень похожа на конечную среду. Тесты не повлияют на сервисы, используемые вашими пользователями/клиентами. Это особенно подходит для критически важных инфраструктур, где целостность данных или системы имеет решающее значение.
Наконец, важно протестировать всю вашу онлайн-среду, поскольку некоторые непроизводственные среды доступны из Интернета. Эти платформы могут быть уязвимы. Они могут содержать техническую информацию о производственной среде или даже перенаправлять на элементы, характерные для производства.
Нужно ли проводить пентест до окончания разработки проекта?
Желание провести тест на проникновение во время разработки веб-приложения позволяет получить первоначальную обратную связь. Исправление уязвимостей на «ранней стадии» часто проще и занимает меньше времени (и, следовательно, требует меньше денег), чем когда сервис развернут. Первый пентест позволяет проекту продолжать развиваться на прочной основе и в правильном направлении.
Более того, в условиях постоянной эволюции функциональности трудно сказать, что проект «закончен». Всегда будут обновления или патчи, которые нужно установить, новые функции, которые нужно добавить, изменения в технологиях разработки и т.д. Рекомендуется проводить тесты на проникновение как минимум для каждой новой версии или крупной модификации вашего решения.
Проводится ли тест на проникновение на конфигурации сервера или только на коде?
Тест на проникновение проверяет ваше веб-приложение, конфигурацию сервера, веб-сервисы, API и в целом все сервисы, доступные из Интернета.
В зависимости от ваших конкретных потребностей, периметр (или область) тестирования определяется с вашим исполнителем.
Проводятся ли DoS-атаки во время пентеста?
Технически вполне возможно проверить устойчивость к атакам типа «отказ в обслуживании» (DoS) во время пентеста.
Какие решения тестируются во время теста на проникновение?
PHP, Java, Ruby, Python, C#, NodeJS… Языки разные, но логические уязвимости встречаются везде. Логические уязвимости связаны с дизайном веб-приложения, независимо от используемой технологии. Например, проблемы с контролем прав или недостатки XSS (межсайтовый скриптинг) могут присутствовать во всех технологиях разработки.
Что касается уязвимостей, специфичных для фреймворка или языка (MySQL injection; MongoDB injection…), то работа пентестера (консультанта по кибербезопасности) требует знания нескольких языков именно для того, чтобы иметь возможность их тестировать.
Кто устраняет уязвимости, найденные в ходе пентеста?
Разработчик и пентестер — это две разные профессии. Когда проводится тест на проникновение, найденные уязвимости документируются пентестерами в отчете, содержащем все детали. Этот отчет включает рекомендации по устранению уязвимостей, но пентестеры сами не исправляют их.
Это связано с тем, что разработчики уже знакомы с проектом. Поэтому они быстрее и эффективнее внесут необходимые исправления.
Проверяются ли исправления?
Стоит проверить, что внесенные исправления являются полными и правильными для каждой уязвимости. Проверка позволяет убедиться, что исправления не имели побочных эффектов, т. е. негативных последствий в виде создания новых уязвимостей.
Пентест, конечно, имеет высокую стоимость, но его следует рассматривать как инвестицию, направленную на предотвращение ущерба от реальной атаки, причем ущерба, который иногда трудно оценить количественно в виде финансовых потерь, данных клиентов, ухудшения имиджа и т.д. Тест на проникновение — это компонент общей стратегии безопасности. Эта стратегия должна быть продумана и спланирована в соответствии с каждой конкретной ситуацией.