Что такое аудит безопасности
Аудит безопасности — это процесс, когда специалисты по безопасности проверяют на уязвимости приложения: от простых сайтов до сложных систем на заводах.
Специалист по безопасности, или аудитор, должен найти слабые места приложения и рассказать разработчикам и руководству компании о возможных рисках. Это могут быть проблемы с утечкой данных или несанкционированным доступом к внутренним системам.
Даже небольшая уязвимость может стоить компании сотни тысяч рублей. А если в открытый доступ попадут личные данные пользователей, то суд оштрафует компанию на 1% от годового оборота, а при повторном нарушении — на 3%.
Но самый большой ущерб — это потеря уважения пользователей.
Если не проверять приложения на уязвимости, можно оказаться в неприятной ситуации — например, данные пользователей окажутся в открытом доступе. Такая ситуация произошла в начале июня с 12 крупными российскими компаниями. Хакер получил доступ к внутренним системам и начал выкладывать в интернет личные данные пользователей компаний «Ашан», «ТВОЕ», «Леруа Мерлен» и девяти других.
Теперь им придется заплатить штраф за утечку данных, сменить пароли для пользователей и самое важное — оправдаться перед ними. Это всё может в будущем повлиять на прибыль и репутацию компаний.
Как понять, что компании нужен аудит безопасности
Грубая ошибка для компаний — это не задумываться о безопасности, пока не случится инцидент. Но после него аудит бесполезен — нужно будет думать, как сохранить лицо и деньги, а иногда и не потерять бизнес целиком. При этом не всегда понятно, когда аудит точно нужен.
В моей практике был один случай, когда в компанию попал вирус-шифровальщик, потому что организация не заботилась о безопасности. Вирус-шифровальщик — это такая программа, которая превращает файлы в непонятный набор символов, а для расшифровки требуется специальный ключ, который есть только у хакера. Но вернемся к бедной компании.
Вирус заразил на компьютерах компании огромное количество данных. Но самое страшное — он зашифровал файлы от системы бухучета. Поэтому компания просто не могла выплатить зарплату сотрудникам два месяца. Как думаете, сколько работников уволилось после такого? И как долго компания восстанавливала свою сеть? Ответ — много и очень долго.
Но даже после этого инцидента компания не захотела провести полный аудит безопасности. И так она через месяц после взлома попала под ту же самую атаку из-за той же самой уязвимости! Только после этого руководство обратило наконец внимание на безопасность.
Не будьте как эта компания, проводите аудиты вовремя. А вот в каких ещё ситуациях нужно проводить аудиты, узнаем дальше.
👉 Компания никогда не проводила аудит.
В этом случае руководство плохо понимает, как живут сервисы компании и какие в них могут быть уязвимости. Возможно, злоумышленники уже сидят внутри инфраструктуры или выкачивают данные пользователей. Поэтому лучше как можно скорее начать аудит и определить дыры в защите.
👉 У компании уже случались инциденты с безопасностью.
Если компания уже исправляла проблемы с безопасностью, это не значит, что о них можно забыть. Уязвимости все еще могут появиться в любой момент — например, когда выйдет обновление системы или появится новый способ взлома.
👉 Компания заказывает разработку у подрядчика.
Если приложение делает не внутренняя команда разработчиков, стоит наладить процесс аудита безопасности и исправления найденных проблем. Это может быть проблематично, особенно если нет исходного кода.
Например, если компания получает уже собранные приложения или готовые сервисы, я рекомендую предусмотреть в договоре пункт об анализе защищенности сервисов. Подрядчик должен провести такой анализ самостоятельно и предоставить отчет. Другой вариант — проверить приложение лично с командой экспертов. А лучше — и то и другое.
👉 Бизнес компании — это онлайн-сервис.
Если вся прибыль зависит от надежности и доступности приложения, то технические проблемы неизбежно приведут к финансовым. Поэтому важно проводить аудиты безопасности еще на стадии разработки проекта и периодически делать их во время выпуска обновлений.
👉 Компания хранит персональные данные.
Согласно закону о хранении персональных данных граждан РФ, компании должны организовать безопасное хранилище и надежный доступ к нему. Поэтому стоит заранее проверить приложение на уязвимости, чтобы не попасть под крупные штрафы.
👉 Компания попадает под требования регуляторов.
Иногда в договорах с ними может присутствовать необходимость проведения аудитов безопасности. Примеры регуляторов — Роскомнадзор и Центробанк.
Не стоит выполнять требования формально. За это могут наложить штрафы или вообще приостановить деятельность компании.
👉 Сервисы компании часто обновляются.
В погоне за быстрой доставкой обновлений компании иногда забывают проверять безопасность, что может привести к проблемам. Поэтому стоит проводить аудиты в зависимости от регулярности обновлений.
Например, если вы выпускаете два крупных обновления в год, то проводите аудиты как раз перед каждым релизом. Можно больше, но не меньше.
👉 Сервисы компании редко обновляются.
Некоторые уязвимости могут оставаться в приложении достаточно долго, если регулярно не выпускать обновления. Это значит, что хакеры могут неоднократно эксплуатировать их. Поэтому стоит проводить хотя бы один аудит раз в полгода, чтобы не пропустить неожиданную уязвимость.
👉 Компания проводит акции и розыгрыши призов.
Часто разработчики забывают уделить этому внимание, хотя уязвимости могут появиться и здесь. Например, злоумышленники могут использовать технические уязвимости, накручивать лайки, репосты, а также подключать ботов и многое другое. Поэтому перед проведением акций нужно позаботиться о безопасности.
Общее правило: проводить аудит стоит всем компаниям вне зависимости от размера и используемых технологий. Аудиты безопасности — это гарантия, что с данными пользователей ничего не случится, и залог вашего здорового сна 🙂
Какие есть виды аудитов безопасности
Аудиты безопасности могут быть специализированными для разных частей инфраструктуры компании:
- Аудит сетевой инфраструктуры компании. Специалисты анализируют защиту периметра, настройки маршрутизаторов и коммутаторов, а также изучают системы на уязвимости и ищут несанкционированные устройства.
- Аудит всех систем — операционных, серверов, рабочих станций и других. В них ищут уязвимости и выставляют оптимальные настройки безопасности.
- Аудит безопасности приложений. Специалисты сканируют разрабатываемые и используемые приложения и ищут уязвимости, анализируют безопасность кода, аутентификацию и авторизацию, а также общую защиту данных. Я обычно занимаюсь этим видом аудита.
- Аудит физической безопасности. Специалисты проверяют доступ к помещениям, системы видеонаблюдения и контроля доступа, а также защиту серверных комнат.
- Аудит соответствия нормативным требованиям. Специалисты проверяют компанию на соответствие законодательству и стандартам безопасности — например, GDPR, PCI DSS и HIPAA.
Был забавный случай у моего знакомого. Отдел безопасности компании нанял специалистов, чтобы провести физический аудит безопасности. Первым их заданием было подключиться к корпоративному Wi-Fi внутри офиса с крыши соседнего здания с помощью специальных антенн.
Когда мой бдительный знакомый подключал устройства в офисе, то заметил подозрительную активность на крыше соседнего здания: непонятные люди сидели с ноутбуками и что-то делали на них. Он сразу же вызвал полицию, а та поймала двух хакеров-неудачников, которым пришлось провести ночь в отделении до выяснения обстоятельств. Поэтому никогда не знаешь, с какой стороны на вашу компанию могут напасть злоумышленники. Может быть, уборщик — это хакер под прикрытием.
Вернемся к типам аудитов безопасности. Еще их можно разделить по количеству предоставляемых данных. Это будут методы черного и белого ящика.
- Метод черного ящика — это когда специалист по безопасности пытается взломать приложение в роли обычного пользователя. Специалист имитирует действия реального пользователя и смотрит, какие уязвимости сможет найти. Этот подход дает компании свежий взгляд на проблемы, которые разработчики не заметили.
- Метод белого ящика — это когда специалисту по безопасности дают полный доступ к системе. Он получает исходный код, конфигурации и другие полезные данные. Так специалист сможет проверить приложение изнутри. Это удобно тем, что аудитор может полностью изучить всю архитектуру приложения и сделать подробный анализ.
Эти два способа можно совместить, чтобы получить больше знаний об уязвимостях. А затем подготовить задание разработчикам, которые исправят ошибки. Хотя не факт, что всё исправят быстро.
Чтобы провести аудит, компания может использовать своих специалистов по безопасности, а может пригласить внешних экспертов. Это называется внутренними и внешними аудитами.
👉 Внутренний аудит проводит отдел безопасности компании без сторонних экспертов.
Внутренний отдел безопасности еще могут называть Red Team. Эти специалисты проверяют сервисы компании на защищенность. Задача Red Team — проверить настройки безопасности и найти уязвимости в сервисах и инфраструктуре компании.
👉 Внешний аудит выполняет команда приглашенных специалистов. Компания и эксперты договариваются о передаваемых данных и методах тестирования.
Такой метод дает свежий взгляд на устройство систем компании, особенно когда команда долго работает над проектом.
Самая выгодная стратегия — это совмещать сразу два метода. Внутренние специалисты могут подсказать внешним, как всё устроено, а это ускорит сроки проверки. Внешние же способны обнаружить что-то новое и закрыть те вещи, до которых еще не дошел внутренний отдел безопасности.
Это когда компания приглашает внешних исследователей безопасности, чтобы найти уязвимости в системах. За каждую подтвержденную уязвимость компания выдает вознаграждение.
Однако этот метод требует большой подготовки. Нужно настроить процессы по информированию и исправлению найденных уязвимостей. А еще важно правильно оценивать критичность проблем, чтобы корректно рассчитать выплату.
Как подготовиться к аудиту безопасности
Этот вопрос очень интересный и больной для меня как для человека, который проводит аудиты. Я не понимаю, почему процесс подготовки всегда отчего-то опускается и кажется тривиальным. В реальности же всё далеко не так просто, и компаниям нужно тщательнее готовиться, если они хотят получить хорошие результаты.
Если не подготовиться к аудиту, он может сильно затянуться. На каждом этапе тестирования аудиторы будут обращаться к вам с дополнительными вопросами. Поэтому и вы, и специалисты по безопасности будете терять время и деньги.
Этапы подготовки простые, а главный совет — предоставьте аудиторам данные от всего, с чем они будут работать. Вот примерный план подготовки:
- Определите цели и требования. Разберитесь, зачем нужен аудит безопасности и какие результаты планируете получить. Это поможет специалистам выбрать подходящий тип аудита.
- Подготовьте доступы и данные. Заранее подумайте, как будет проходить тестирование и какие данные понадобятся. Если нужно подключить аудиторов к внутренним системам — подготовьте эти доступы. Создайте тестовые учетные записи и выдайте их специалистам.
- Предупредите бизнес и разработчиков. Сообщите всем подразделениям, что в компании будет проводиться тестирование безопасности. Также расскажите, что потребуется сделать сотрудникам. Убедитесь, что все понимают важность этого процесса.
- Не затягивайте реальное начало проекта. Помните, что аудиторы выделяют время и ресурсы, а также не планируют другие проекты, чтобы не мешать вашему. Если аудит затягивается, а проблемы не решаются, команда специалистов по безопасности несет денежные убытки. Поэтому по возможности подготовьте все заранее.
На моей памяти много случаев, когда компании совсем забывали о подготовке. Один раз мы должны были делать тестирование веб-сервиса, но оказалось, что у них нет тестовых учетных данных — и вообще не будет. Все их учетные записи — это реальные люди, среди которых нужно найти того, кто согласится отдать нам данные для авторизации. Но самое ужасное — чтобы войти в аккаунт, нам нужно было постоянно запрашивать у владельца учетной записи код двухфакторной аутентификации. Это была сплошная боль.
Другой пример — после заключения договора компания только начала согласовывать внутри себя процесс проведения аудита и выделения ресурсов для этого. Команда аудиторов ожидала, что сразу после подписания договора приступит к работе, но моментально столкнулась с суровой реальностью. В итоге заказчик подготовил данные через три месяца, а работа выпала на новогодние праздники, когда пришлось тратить лишние нервы и деньги.
Постарайтесь следовать этим четырем простым правилам. Тогда аудит безопасности пройдет без лишних трудностей, а вы сможете быстрее вернуться к прежней рабочей жизни.
Как проходит аудит безопасности
Все зависит от типа аудита и его масштаба. Рассмотрим, как проходит тестирование методом белого ящика.
Процесс аудита безопасности можно разделить на шесть этапов:
- Сбор данных и проверка доступов. Аудиторы собирают с заказчика данные, которые необходимы для тестирования. Это может быть документация к системам, детальные условия и ограничения для аудита, конфигурации для доступов и учетные записи. Специалисты проверяют, что всё работает и что функционал системы доступен.
- Предварительная разведка и оценка. Перед тестированием аудиторы проводят первоначальный анализ систем: исходного кода, зависимостей и других применяемых технологий. Это поможет специалистам сформировать возможные сценарии для атак и воздействия на систему.
- Тестирование. Это основной этап аудита. Здесь проводится анализ защищенности систем на основе предоставленных данных. Специалисты изучают код, зависимости с открытым исходным кодом, проводят автоматизированное и ручное тестирование приложения, анализируют бизнес-логику и многое другое.
- Анализ результатов и подготовка отчета. После тестов аудиторы проверяют собранные данные, результаты тестирования и оценки безопасности. По итогам составляют подробный отчет, где описывают обнаруженные уязвимости, рекомендации по улучшению безопасности и другую информацию.
- Передача результатов и рекомендаций. Теперь специалисты по безопасности показывают отчет компании. Они объясняют, как работают уязвимости, дают рекомендации по устранению проблем и обсуждают меры безопасности, чтобы защитить системы.
- Перепроверка уязвимостей после исправления. Некоторые компании проводят еще один тест после того, как компания исправила уязвимости. Но это уже не полное тестирование, а проверка только отдельных мест, чтобы подтвердить корректность их устранения.
Важно, чтобы на каждом этапе исполнитель и заказчик работали вместе. Если у аудитора возникнет срочный вопрос, нужно постараться быстрее на него ответить. Это ускорит процесс тестирования.
Как часто проводить аудит безопасности
Простая рекомендация — как минимум один раз в полгода. Это достаточный срок, чтобы исправить все предыдущие замечания и подготовить функционал для нового аудита. Но не нужно строго следовать этому совету. Учитывайте возможности вашей команды — время и деньги, которые придется потратить на аудит.
Еще хочу отметить, что аудиты безопасности — это одна из многих вещей, которые нужно делать, чтобы обезопасить ваши приложения. Это важная часть процесса безопасной разработки, и она точно должна присутствовать в каждой компании.
Аудиты безопасности помогут снизить стоимость исправления уязвимостей, а также избавят компанию от лишних штрафов и неприятных судебных исков. Поэтому лучше периодически привлекать специалистов по безопасности и находить проблемы как можно раньше — желательно на этапе написания кода.
Главное в вопросе аудитов безопасности — не забыть, что приложение должно быть безопасным для пользователей. Если не соблюдать это правило, можно потерять часть из них.
Что запомнить
Короткая памятка об аудитах безопасности:
- Аудит безопасности стоит проводить всем компаниям, чтобы избежать утечек данных или несанкционированного доступа к внутренним системам. А еще — чтобы не платить штрафы и не лишиться уважения пользователей.
- Проводить аудиты стоит после каждого релиза или хотя бы раз в полгода. Это избавит компанию от лишних проблем.
- Аудиты проводят отдельно для разных частей инфраструктуры. Например, бывает аудит безопасности сети, систем и приложений, а еще — физических объектов. Но возможен и аудит всей инфраструктуры в целом.
- Провести аудит может внутренняя команда специалистов или внешняя. Также они могут работать совместно, чтобы процесс шел быстрее и эффективнее.
- Аудит проходит в шесть этапов. Это сложный и долгий процесс, поэтому стоит заранее подготовиться к нему.
Чек-лист для подготовки к аудиту:
- определите цели и требования;
- подготовьте доступы и данные;
- предупредите бизнес и разработчиков;
- не затягивайте реальное начало проекта.
И не забывайте, что безопасность пользователей в руках компании!