Уязвимость атаки CSRF и перехвата сессии

12

Из примечаний к выпуску 1.8CE Alpha:

Интернет-магазин Magento имеет дополнительные средства защиты от подделки межсайтовых запросов (CSRF), что означает, что самозванец больше не может выдавать себя за нового зарегистрированного клиента и выполнять действия от его имени.

и:

В более ранних версиях Magento был уязвим для атаки фиксации сеанса во время процесса регистрации. После входа в свою учетную запись идентификатор сеанса зарегистрированного пользователя не изменился. Поэтому, если злоумышленник знал о неавторизованном идентификаторе сеанса и если этот пользователь успешно зарегистрировался, злоумышленник смог перенять новую зарегистрированную учетную запись. Теперь идентификатор сессии меняется после успешной регистрации, делая невозможным несанкционированное использование учетной записи.

Если это в примечаниях к выпуску, и я не вижу точного выпуска предыдущих версий, обращающихся к этому (я смотрю не в том месте?) - значит ли это, что текущие магазины до 1.8 потенциально открыты для этих атак? векторы ?

Источник: http://www.magentocommerce.com/knowledge-base/entry/ce-18-later-release-notes

philwinkle
источник
Я только что обновил свой ответ ниже с подробной информацией о получении патча для этих уязвимостей.
Давиджер

Ответы:

9

Короче да. CE 1.7 по-прежнему уязвим для этих конкретных атак, потому что не было выпущено ни одного выпуска безопасности, содержащего исправление.

В последнем случае, атака с фиксацией сеанса, изменение представляет собой обновление методов безопасности, которые Magento уже использовал, чтобы соответствовать текущим рекомендациям по безопасности. Вероятно, что-то не будет выпущено в CE 1.7, если они выпустят патч с исправлениями CSRF.

На самом деле вопрос в том, какие именно уязвимости CSRF были исправлены? Несомненно, хорошо, что в примечаниях к выпуску они не содержали специфику, что ставит под угрозу все предыдущие выпуски, но было бы неплохо узнать это ради исправления старых реализаций.

ОБНОВЛЕНИЕ № 1: После обращения к Magento, чтобы выяснить, когда они будут выпускать исправления для вышеуказанных уязвимостей, я получил следующий ответ:

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

Я буду публиковать дальнейшие подробности здесь, как только получу их, и сделаю все возможное, чтобы патчи были выпущены, поскольку кажется, что в настоящее время патчей не существует.

ОБНОВЛЕНИЕ № 2: После работы с командой поддержки мне удалось получить исправление для Magento EE 1.12.0.2. Патч не был выпущен для Magento CE 1.7.0.2, и, насколько известно специалисту, который изучил его для меня, нет никаких планов выпустить официальный патч для CE 1.7.x, а решить проблемы только в готовящемся CE 1.8. стабильный выпуск.

Что касается специального патча для EE, я не могу публиковать его (или инструмент приложения патча) здесь напрямую, поскольку это, несомненно, будет нарушением NDA между лично мной и Magento и компанией, в которой я работаю. Название соответствующего патча: «PATCH_SUPEE-1513_EE_1.12.0.2_v1.sh» - если у вас есть Enterprise Edition или клиент, использующий его, вы должны иметь возможность запросить этот патч у службы поддержки Magento вместе с примечанием о уязвимости CSRF, которые предполагается исправить.

Для пользователей CE 1.7.0.2 я взял на себя свободу создавать файл патча (на основе патча, предоставленного Magento), который включает только фрагменты кода, которые изменяют файлы кода ядра Magento CE 1.7.0.2. Как правило, он включает в себя ненужные биты добавленных комментариев и скорректированное форматирование вместе с соответствующими изменениями кода. Для его создания необходимо вручную изменить исходный патч, чтобы применить его, используя предоставленный инструмент для применения патчей, а затем с помощью git сгенерировать патч на основе примененных изменений.

Файл патча, который я создал, можно скачать по этой ссылке : https://gist.github.com/davidalger/5938568.

Чтобы применить исправление, сначала перейдите в корневой каталог вашей установки Magento и выполните следующую команду: patch -p1 -i ./Magento_CE_1.7.0.2_v1-CSRF_Patch.diff

Специальное исправление EE включало проверку правильности ключа формы для специфических контроллеров Enterprise, изменения в файлах шаблонов enterprise / default и enterprise / iphone для включения ключей формы в формы, используемые для исправленных действий контроллера, и дополнительную функциональность Full Page Cache для правильного учета передача ключей формы вперед и назад на кэшированных страницах.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я НЕ ИСПЫТАЛ ни EE-патч, предоставленный Magento, ни патч, который я загрузил в связанный список. Патч, представленный в ссылочной базе данных, НЕ ПРЕДОСТАВЛЯЕТСЯ НИКАКИХ ГАРАНТИЙ и может или не может полностью устранить уязвимости, указанные в примечаниях к выпуску CE 1.8. Как непроверенный патч, также нет гарантии, что он функционирует полностью или частично. Т.е. используйте на свой страх и риск и примите меры для проверки перед развертыванием в производственной среде. Если вы обнаружите проблемы с патчем, дайте мне знать, и я обновлю его.

davidalger
источник
1
Безопасность через неизвестность не очень хорошая идея. Они должны сделать это публичным, чтобы каждый мог исправить его установку. Кроме того, простая разница между двумя версиями должна дать вам хорошее представление о том, как работает атака и как исправлять более старые установки. Поэтому информация все равно отсутствует.
Дароктар
1
Согласен, безвестность вовсе не является хорошей безопасностью, и я, конечно, не пытался это указать. Однако ответственное раскрытие - это то, что необходимо учитывать. Насколько нам известно, уязвимости могли быть отправлены в Magento за несколько недель до публичного выпуска EE 1.13 и CE 1.8a1. FWIW, я свяжусь с некоторыми людьми из Magento, чтобы узнать, есть ли у них патчи для EE 1.12 и какие планы на установку 1.7; специально для уязвимостей CSRF.
Давидгер
Будем следить за обновлением и соответственно редактировать вопрос / ответ, если выпущен патч. Благодарю.
Philwinkle
Я только что опубликовал обновление с предварительным ответом, который я получил от Magento. Кажется, в настоящее время нет никаких патчей, так что я собираюсь посмотреть, что я могу с этим поделать. Я обязательно буду держать вас в курсе ... здесь и, возможно, в моем твиттере.
Давиджер
2

Я не уверен на 100%, потому что я не смог воспроизвести проблему, но

то есть самозванец больше не может выдавать себя за нового зарегистрированного клиента

означает, что до сих пор «самозванец» мог выдавать себя за нового зарегистрированного клиента.
Я надеюсь, что это просто «семантика», но я думаю, что это означает, что вы боитесь, что это значит.

Мариус
источник
до сих пор значит исправлено в 1.8 - или что ты имеешь ввиду?
Фабиан Блехшмидт
да ... это то, что я имею в виду.
Мариус