Аудит безопасности сайта

Аудит безопасности сайта, тесты на проникновение (penetration testing) — популярная услуга. Обыватели считают, что аудит методом «черного ящика»(black box) — это хорошо. Дескать, если не пробился специалист по информационной безопасности, значит и хакер не пройдет.

Блек бокс — не лучший метод аудита безопасности сайта, и в этой статье я рассказываю почему.

Классический pentest методом черного ящика похож на черную пешку на шахматной доске. Простая, дешевая услуга, дающая иллюзию безопасности.

Без доступов, без информации о системе и прочих данных, исполнитель запускает сканер уязвимостей и затем интерпретирует результаты.
Это помогает выявить часто используемые дыры, защищает от script kiddies.

Но даже самые современные сканеры не могут обнаружить то, на что нет ссылок с сайта. И то, что себя никак не проявляет до поры до времени. А это может быть:

  • «Забытый» разработчиками шелл
  • Закладка в варезном шаблоне
  • Вирусный код, ориентированный на определенный браузер (например, работающий только если посетитель зашел с IE6) или мобильные устройства.
  • Доступные по вебу дампы базы данных, старые конфиги (где прописаны пароли), общедоступные средства бэкапа или сами бэкапы
  • Скрипты рассылки спама, перебора паролей, дорвэи

И это вовсе не экзотика, это как минимум две трети вредоносной активности на вебе. Если через сайт проходят финансовые транзакции, то сам разработчик не всегда уверен в логике работы, а сканеру и подавно не под силу в этом разобраться.

60-70% типичной вредоносной активности не способен обнаружить ни один сканер!

Это называется ошибка второго рода или ложноотрицательное срабатывание (false negative).

После такого аудита безопасности сайта готовьтесь к взломам и повторным затратам на аудит.

Аудит безопасности сайта должен быть белым

Pentest методом белого ящика — более сложная и глубокая услуга. Обычно, в случае сложных информационных систем, белый ящик предполагает атаку инсайдера.

Для того, чтобы сделать аудит «по-белому», вы даете всю информацию о системе, а я провожу аудит исходных кодов сайта.

При аудите исходных текстов весь ваш код, строчка за строчкой, анализируется на предмет потенциальных проблем, анализируется логика работы, права доступа — все что имеет значение.

Кстати, проблемы, которые выявляются при методе белого ящика — именно потенциальные. Например, в текущих условиях отсутствие проверки типа не приводит к взлому.
Но такой код потенциально опасен, и при изменениях на сайте может стать уязвимостью.

Метод белого ящика позволяет потенциально проблемные места выявить наряду с реальными уязвимостями

Это называется ошибка первого рода или ложноположительное срабатывание (false positive). Но ошибочными такие срабатывания являются до тех пор, пока хакеры не научатся их использовать.

В аудите «по-белому» сканер может дополнить картину, а может и вообще не использоваться. Главное преимущество “белого ящика” в том, что ваш сайт проверяется не только на известные сейчас дыры, но и на потенциально возможные.

Если вы хотите быть уверены, что действительно защищены, руководствуйтесь принципом «Хорошо делай, хорошо будет» и заказывайте только «белый» аудит безопасности сайта.