Когда обнаруживается серьезная уязвимость, для всех начинает тикать таймер — это то, что мы на этой неделе ощутили на собственном опыте в связи с утечкой PHP2Shell.
Обычно в таких случаях запускается отлаженный процесс: вендоры, провайдеры и исследователи договариваются о дате скоординированного раскрытия информации, чтобы можно было подготовить патчи, предупредить клиентов и не предоставлять всему интернету готовую «дорожную карту» для эксплуатации уязвимости до того, как организации успеют подготовить защиту.
Это соглашение — единственное, что отделяет ответственное раскрытие информации от хаоса. Когда вендор решает игнорировать этот протокол, его поспешная реакция может выглядеть как оперативность, но на практике это одностороннее решение, которое подвергает риску клиентов и весь остальной рынок.
Преждевременное исправление — это дорожная карта для эксплойта
Патчи и меры по смягчению последствий не нейтральны; они раскрывают недостатки и дают злоумышленникам возможность провести обратную разработку уязвимости. Сравнение (diffing) исправленного бинарного файла с оригиналом — это хорошо известный способ выяснить, что именно было сломано, и злоумышленники регулярно делают это в течение нескольких часов после релиза. Сетевое правило для смягчения последствий работает так же, только быстрее и заметнее.
Когда мера по смягчению последствий начинает действовать в крупной сети, ее может заметить любой. Исследователи и злоумышленники могут прощупать периметр, увидеть, какие запросы теперь блокируются, а какие проходят, и сделать вывод о том, что именно ищет правило. Правило, призванное защитить клиентов, может быстро превратиться в подробное «описание» уязвимости.
Такого рода раскрытие гораздо опаснее до официального объявления. До официального раскрытия большинство вендоров еще не выпустили патчи, могут быть еще не уведомлены, а большинство специалистов по защите даже не знают о существовании проблемы. Любой, кто вычислит недостаток по преждевременной мере защиты, получает преимущество перед всеми остальными, кто ждет окончания эмбарго.
Кроме того, мера защиты никогда не охватывает всё сразу. Правила обходятся, крайние случаи упускаются из виду, к тому же не каждый источник находится под одной и той же защитой. Злоумышленники, которые узнают, на что нацелено правило, могут искать пути, которые оно не покрывает, и клиенты, которым должна была помочь ранняя установка, оказываются под ударом.
Развертывание заметной меры защиты до указанной даты подрывает защиту, которую обеспечивает эмбарго. Это обмен безопасностью всей экосистемы на репутацию «первого».
Ответственный путь — более медленный и менее броский. Провайдеры готовят свои исправления в тишине и тщательно их тестируют. Они предоставляют клиентам информацию, необходимую для принятия решения о том, как и когда действовать, а затем выпускают всё вместе, когда эмбарго снимается.
Эмбарго — это обещание
Эмбарго работают, когда их все соблюдают. Когда одна сторона действует раньше времени, это не просто попытка вырваться вперед; это нарушение соглашения, на которое полагались другие провайдеры и их клиенты. Массовое развертывание мер защиты, проведенное другим вендором, внесло путаницу в и без того напряженную ситуацию: принудительное применение мер к производственному трафику до официального раскрытия по сути было равносильно раскрытию самой уязвимости.
Это был не шаг в духе «мы хотим сделать всё правильно», а тактика «мы успели первыми».
Интернет — это общая ответственность
Ни один провайдер не работает в изоляции. Наш трафик, источники, которые мы защищаем, и пользователи на другом конце — все мы делим один интернет. Когда один игрок игнорирует эмбарго, последствия затрагивают всех, включая клиентов, которые доверились процессу, и провайдеров, которые сдержали свое слово.
Ответственные провайдеры работают вместе: мы соблюдаем согласованные сроки, предоставляем клиентам реальный выбор и ставим здоровье интернета превыше всего остального. Слишком многое поставлено на карту, чтобы поступать иначе.
Ваш источник, ваш график
В Fastly наш руководящий принцип прост: мы глубоко заботимся о здоровье и целостности источников наших клиентов и хотим дать им возможность вносить изменения по собственному графику.
В инциденте с PHP2Shell, как и в любой другой ситуации, нет единственно верного способа применить временное «исправление» или принять решение за наших клиентов. Правильный ответ зависит от клиента и его конкретного контекста. Подходы могут включать:
- Применение исправлений сначала в тестовой среде и мониторинг результатов перед принятием масштабных решений
Применение исправлений сначала в тестовой среде и мониторинг результатов перед принятием масштабных решений
- Перенос исправлений в рабочую среду сразу после цикла регрессионного тестирования
Перенос исправлений в рабочую среду сразу после цикла регрессионного тестирования
- Воздержание от масштабных изменений, когда клиенты находятся в периодах высокого давления и высокого трафика (праздники, крупные события)
Воздержание от масштабных изменений, когда клиенты находятся в периодах высокого давления и высокого трафика (праздники, крупные события)
Ничто из вышеперечисленного не является правильным или неправильным, но мы хотим, чтобы наши клиенты сами контролировали свою историю. Клиенты знают свой бизнес, свой трафик и свою готовность к риску лучше, чем мы. Наша работа — предоставить им информацию и инструменты для выбора, а также поддержать их всеми возможными способами. Мы не определяем исправление в вакууме.
Ваш партнер, а не просто провайдер
В Fastly мы не считаем себя вендором; мы считаем себя партнером. Ваш источник, ваш трафик и ваш бизнес принадлежат вам, и наша работа — помочь вам защитить и развивать их на ваших условиях.
Это означает, что вы контролируете ситуацию: когда возникает критическая уязвимость, мы не принимаем решение за вас. Мы предоставляем вам контекст и все доступные варианты, чтобы вы могли решить, что лучше для вашего бизнеса. Это также означает быть рядом, когда это важно.
Мы узнаем, что для вас важнее всего, и помогаем вам этого достичь. Вот что для нас значит поступать правильно по отношению к клиенту.
Вы можете следить за последними обновлениями PHP2Shell по мере развития ситуации здесь, или, как всегда, обращайтесь к нам, если вам нужна помощь.




/)
/)

