Чем занимается «белый хакер»? 10 вопросов о специалистах по поиску уязвимостей
Крупные компании всё чаще пользуются услугами белых хакеров. Разбираемся, кто это такие, чем они занимаются и как стать одним из них.
Как показывают опросы, хакеры чаще всего ищут не выгоды и лёгких денег, а хотят испытать свои силы, решить головоломку в виде защиты какой-то компании. При этом далеко не всем хочется нарушать закон и рисковать. К счастью, в последние годы активно формируется сообщество белых хакеров, а спрос на их услуги растёт, особенно среди крупных компаний. В этой статье мы с помощью экспертов разберёмся, кто такие белые хакеры, при чём там шляпы, как стать белым хакером и зачем это может быть нужно.
Как строится система информационной безопасности компании? Рассказывает эксперт

Специалист по компьютерной безопасности — это широкое понятие, включающее в себя большое количество ролей и обязанностей, но основная цель у всех одинаковая — это обеспечить конфиденциальность, целостность и доступность информации. Наглядным примером будет средневековый город, жители и производства которого является функциональной частью программного обеспечения. Как хорошие защитники мы не хотим, чтобы нашу продукцию воровали, ломали и делали сообщение с другими городами недоступным. И что бы этого не допустить в штате есть целый арсенал специалистов. Думать о защите города необходимо на этапе проектирования, для этого есть Application Security специалисты, которые занимаются анализом архитектуры приложения и функциональных требований, находя угрозы и предлагая способы их устранения в самом начале. Очевидно, дешевле определить, что крепостную стену надо строить из камня на этапе требований, чем построить из дерева и затем переделывать. На этапе постройки города важно чтобы соблюдались регламенты и правила строительства, а никто из строителей (программистов) не использовал испорченные материалы, для этого существует Static Application Security Testing, который состоит из Security Code Review и автоматизированного поиска дефектов в коде.
Настройкой и интеграцией автоматизированных сканов занимается команда DevSecOps, в то время как обязанности по регулярному разбору репортов и обновлению правил поиска часто также ложатся на Application Security специалистов. Могут быть в городе и другие роли, например иногда очень сложно обойтись без человека, который занимается регулярным чтением распоряжений международных организаций и подготовкой городской документации для подтверждения того, что все требования удовлетворены. Есть и аудиторы, которые путешествуют по странам и проверяют их соответствие требованиям. Под страной или государством следует понимать производителя программного обеспечения или ИТ-организацию, предоставляющею услуги. И на уровне государства найдется работа для специалиста по компьютерной безопасности, кто-то должен защищать границы и не пускать злоумышленников в инфраструктуру, служба IT Security и Physical Security отлично справляются с этой работой. Кто-то должен руководить процессами по защите информации. Есть и специальные Red Team команды, задача которых вломиться на территорию государства по заказу его руководителей и получить контроль над критическими системами, зачастую для этого используются слабозащищенные города. Список далеко не полный и его продолжение я предлагаю вашей фантазии.
Вернемся к нашему городу, после того как он построен, застройщик приглашает команду Penetration testers или, говоря популярно, «этичных» хакеров, которые просят дать доступ к staging серверу с таким же городом и пытаются его сломать, имитирую действия злоумышленников или «чёрных» хакеров. В ход идут все доступные средства от попыток прикинуться жителем города и обмануть охранников, до вероломного переламывания стены. Особое внимание уделяется всем входам и выходам из города, как к самым уязвимым местам. Список утилит и методологий используемых «этичными» и «чёрными» хакерами во многом схож, подробнее об общей методологии можно почитать тут. Гораздо интереснее посмотреть на разницу! Так как Penetration testing команда приглашена командой разработчиков она имеет ряд преимуществ, например изначально ей могут быть предоставлены привилегии различных ролей в городе, а также перед тестированием могут быть отключены дополнительные средства защиты такие Web Application Firewall. Все это позволяет улучшить процесс тестирования, так как не отнимает время инженеров на обход дополнительных защит. «Чёрные» хакеры изначально находятся определенно в более тяжелой ситуации, так как лишены вышеперечисленных преимуществ и вынуждены проводить атаки «вслепую». Но все трудности с лихвой компенсируется отсутствием ограничений по времени тестирования и необходимости атаковать именно приложение. Злоумышленник может покупать на чёрном рынке 0-day уязвимости в веб-серверах патчи для которых еще не опубликованы, он может использовать обман для получения credentials пользователей или банально купить информацию у легитимного пользователя. Также в арсенале злоумышленника есть ряд утилит, позволяющих закрепиться в системе на длительное время и оставаться незамеченным, что намного реже востребовано тестировщиками. Подводя итог, разница между тулсетами «этичного» и «чёрного» хакеров кроется в сути самих ролей, первый это высококлассный инженер, действующий в рамках соглашений, а второй преступник, которому не чужды все соответствующие методы.
Как бы хорошо ни старались специалисты по информационной безопасности, самым уязвимым местом любой системы остаются ее пользователи. Если губернатор велит открыть главные ворота и пускать всех, все механизмы защиты будут бесполезны. Стоит отметить, что администраторы инфраструктуры, в том числе файрволлов, в данном случае тоже пользователи, просто другого программного обеспечения. Конечно же ошибки могут допускать и разработчики, глобально их можно разделить на два типа — это либо ошибка в логике программы, которая закралась на этапе требований или проектирования взаимосвязей между модулями, либо техническая ошибка, например в реализации механизмов защиты. Список таких ошибок к счастью конечен. Наиболее часто встречающейся на моей практике было отсутствие валидации входных данных или эскейпинга выходных, приводящих к широкому списку проблем от банальных XSS до Remote Code Execution на продакшен серверах. Подробнее можно почитать по ссылке. На этом у меня все и пожалуйста, помните, что лучший специалист по компьютерной безопасности для своего приложения — это сам разработчик!