перевод статьи
Seth Goldfarb от 17 Августа 2020
оригинальная статья:
Communications 101: Best Practices in Disclosing Software Vulnerabilities and Responding to Cyberattacks Коммуникация 101:
лучшие практики раскрытия уязвимостей программного обеспечения и реагирования на кибератаки "Ошибаться — человеческое, прощать — божеское" –
A. Pope Essay on Criticism 2, 525 Все ошибаются. Создаете ли вы просто полезное программное обеспечение или пытаетесь масштабировать запуск стартапа в следующего единорога, вы обязательно столкнётесь с какими-нибудь неприятностями на этом пути.
С таким количеством кибератак, о которых сообщают СМИ, становится легко забыть обо всех уязвимостях, которые способны поймать профессионалы в области безопасности.
К счастью, для разработчиков, люди склонны понимать, когда другие берут на себя ответственность за их ошибки и искренне стараются их исправить.
Планируете ли вы бороться с потенциальными кибератаками и сообщениями об уязвимостях или в настоящее время занимаетесь решением этих проблем, в этой статье подробно описаны передовые методы взаимодействия при обнаружении уязвимостей программного обеспечения и реагировании на кибератаки.
Читайте дальше, чтобы узнать о передовом опыте ответственного подхода к раскрытию потенциальных уязвимостей и общения с заинтересованными сторонами во время кибератак.
ТерминологияПрежде чем перейти к передовым методам выявления уязвимостей и реагирования на кибератаки, важно уточнить некоторые термины, которые мы будем использовать.
Такие термины, как угроза, уязвимость и риск могут использоваться как синонимы в повседневном разговоре, но эти слова принимают очень специфические значения, когда используются в контексте безопасности.
Активы - включают данные, устройства и все остальное, что связано с управлением информацией.
Риски - это потенциальные проблемы, которые могут возникнуть, если угроза будет использовать уязвимость.
Контроль безопасности - под этим понимаются меры, принимаемые для предотвращения, обнаружения, противодействия и минимизации рисков.
Угрозы - к ним относятся люди и вещи, которые могут использовать уязвимости.
Уязвимость - относится ко всему, что может быть использовано для получения несанкционированного доступа к системе.
Управление ответственным раскрытием информации Профессиональная работа с уязвимостями программного обеспечения - это эффективный способ для разработчиков DeFi завоевать лояльность других разработчиков, пользователей и других заинтересованных сторон, а также
лучший способ реализовать на практике соблюдение принципов ответственного раскрытия информации.
Ответственное раскрытие информации - это протокол для уведомления соответствующих заинтересованных сторон после обнаружения уязвимости.
В отличие от
полного раскрытия информации , ответственное раскрытие информации подразумевает предоставление разработчикам программного обеспечения возможности устранить уязвимости до их публикации.
Основные принципы ответственного раскрытия информации включают:
- Как можно скорее уведомить владельцев программного обеспечения о вашем открытии.
- Предоставление владельцу (-ам) разумного времени для ответа на ваше уведомление, решения проблемы и публичного заявления.
То, что составляет разумное количество времени, зависит от интерпретации, что и делает общение таким важным.
Так ,например, несмотря на якобы скудный ответ от Starbucks, известно, что Егор Хомаков сумел предупредить кофейного гиганта об уязвимости,
позволившей ему взломать подарочные карты на бесплатный кофе и решить эту проблему менее чем за две недели.
С другой стороны,
уязвимость Meltdown, обнаруженная командой Project Zero в Google, привела к тому, что микропроцессоры Intel x86 и некоторые микропроцессоры на базе ARM непреднамеренно раскрыли данные, и на ее устранение потребовалось семь месяцев работы.
Сообщение о потенциальной уязвимости При управлении раскрытием потенциальных уязвимостей предоставление доступного пути к ответственному раскрытию информации, уважение ценности раскрытия информации и публикация анализа обнаруженных уязвимостей являются ключами к завоеванию доверия со стороны других разработчиков и заинтересованных сторон.
- Настройте электронную почту или выберите предпочтительные каналы связи для получения раскрытия информации и разместите на своем веб-сайте доступный раздел с контактной информацией и политиками в отношении
раскрытия потенциальных уязвимостей.
- Создайте папку в интерфейсе децентрализованных приложений или основном веб-сайте ./well-known/ и включите файл с именем security.txt с этой контактной информацией и политиками в отношении раскрытия информации,
чтобы упростить поиск вашей программы для устранения ошибок (см. пример на
https://securitytxt.org/)
- Когда кто-то сообщает о потенциальной уязвимости, ответьте уважительно и своевременно. Сообщите отправителю, что вы получили его отчет, и укажите срок, в течение которого он может ожидать дальнейших действий.
- Предполагайте лучшее, но готовьтесь к худшему. Имея дело с недобросовестной стороной, оставайтесь профессиональными в изложении своей позиции и готовьте более подробный ответ только в том случае, если плохой субъект может нанести ущерб репутации вашей организации.
- После того, как у вас будет возможность просмотреть отчет и оценить потенциальную уязвимость, свяжитесь с отправителем, чтобы уведомить его о ваших результатах и подробно описать план устранения уязвимости.
Без регулярного и уважительного общения любой, кто сообщил об уязвимости, может счесть целесообразным опубликовать информацию об уязвимости или предпринять простые действия для предотвращения нанесения вреда
пользователям программного обеспечения.
Публикация об уязвимостиПосле оценки потенциальной уязвимости и общения с тем, кто раскрыл информацию, важно составить план сообщения о непосредственных рисках и последующих действий с подробным описанием вашего анализа уязвимости и действий по ее снижению.
- Назначьте основной канал для публикации подробной информации об уязвимостях и ведите список дополнительных каналов для трансляции этой информации (например, электронная почта, Reddit, Telegram, Twitter и т. д.).
- Если уязвимость требует немедленного внимания, сообщите, что происходит и какие шаги вы предпринимаете, чтобы справиться с ситуацией.
- Если с уязвимостью можно справиться, не влияя на регулярное использование программного обеспечения, напишите раскрытие, включая график событий, упоминание того, кто сообщил об уязвимости, а также подробные
сведения об уязвимости и шагах, предпринимаемых для ее устранения.
Вот несколько хороших примеров статей, в которых подробно рассказывается о раскрытии информации:
-
Награда за ошибку от компании Argent присуждена OpenZeppelin-
Раскрытие уязвимости Authereum от samczsun Хотя ответственное раскрытие информации не касается компенсации специалистов по безопасности, предоставление вознаграждений за найденные ошибки для компенсации их работы специалистам по безопасности считается
лучшей практикой.
Примеры вознаграждений за обнаруженные ошибки в экосистеме DeFi :
-
Argent -
bZx -
Set Protocol -
Uniswap Управление кибератакой Несмотря на все усилия аудиторов по безопасности, тот факт, что умные контракты существуют всего несколько лет в сочетании с совместимостью DeFi-приложений означает, что все децентрализованные приложения (dApps)
сталкиваются с возможностью эксплуатации через уязвимости, которые никогда раньше не встречались.
Это не означает, что людям не следует использовать децентрализованные приложения(dApps) и изучать DeFi; однако это означает, что пользователи и разработчики должны знать о рисках и соответствующим образом подготовиться.
В следующих разделах описывается, как подготовиться к кибератаке, что делать во время атаки и как справиться с ее последствиями. Разработайте стратегию коммуникации- Если ваша компания хранит какие-либо конфиденциальные данные, разработайте план связи с пользователями в случае нарушения.
- Проекты DeFi, которые не хранят пользовательские данные и не ведут учетные записи по электронной почте, должны иметь определенный канал связи для предоставления обновлений в реальном времени и создать план
обмена обновлениями с пользователями, СМИ, инвесторами и другими членами команды.
- Подумайте о том, чтобы обратиться к PR-фирме за советом по поводу общения с журналистами при разработке вашей коммуникационной стратегии и / или отложите средства для удержания PR- фирмы в случае кибератаки для управления вашими коммуникациями.