Что такое self-XSS-атаки?
Self-XSS , или самостоятельный межсайтовый скриптинг, — это тип атаки социальной инженерии, которая заставляет вас выполнить вредоносный код в вашем веб-браузере. В отличие от обычных XSS-атак , которые основаны на уязвимостях в веб-приложениях, позволяющих злоумышленникам внедрять вредоносный код, самостоятельные XSS-атаки основаны на ваших собственных потенциальных действиях по выполнению кода.
Self-XSS-атаки обычно включают в себя злоумышленник, заставляющий вас скопировать и вставить вредоносный код в консоль DevTools вашего браузера. Злоумышленник обычно добивается этого, обещая какое-то вознаграждение. Это может быть:
- Обещая вам, что код предоставит вам доступ к скрытым функциям или виртуальным наградам.
- Делая вид, что код представляет собой тест безопасности или исправление ошибок.
- Обещая, что код позволит взломать сайт ради вашей выгоды.
Как только вы выполните код, злоумышленник сможет получить контроль над вашей учетной записью. Это может позволить злоумышленнику:
- Украдите вашу личную информацию, такую как имя, адрес и номер кредитной карты.
- Публиковать несанкционированные сообщения или комментарии от вашего имени.
- Возьмите под контроль свои учетные записи в социальных сетях.
- Распространять вредоносное ПО среди других пользователей.
Как Chrome DevTools пытается смягчить атаки XSS на себя?
Позволить пользователям вставлять код в DevTools и затем выполнять его по своей сути рискованно. Но это также одна из основных функций Chrome DevTools. Поэтому нам пришлось найти баланс между смягчением потенциальных атак self-XSS и отсутствием вмешательства в работу разработчиков, которые просто хотят отлаживать веб-сайты.
Разработчики обычно не копируют код, который они нашли где-то в Интернете, не вставляют его в DevTools и не выполняют, предварительно не взглянув на то, что делает этот код. Большинство разработчиков хорошо осведомлены о рисках безопасности, связанных с выполнением кода, который они нашли в сомнительном уголке Интернета.
Chrome DevTools доверяет разработчикам, которые знают, что они делают. Мы не хотим каким-либо образом замедлять или отвлекать их, когда они копируют и вставляют код.
Мы считаем, что лица, не являющиеся разработчиками, подвергаются гораздо более высокому риску стать жертвой XSS-атаки. Мы считаем приемлемым и полезным прерывать вас, когда вы делаете что-то потенциально опасное, чтобы защитить вас. Когда Chrome DevTools обнаруживает, что неопытный пользователь пытается вставить код в DevTools, он останавливается и отображает предупреждение.
Когда DevTools будет отображать предупреждения XSS?
DevTools использует очень простую эвристику, чтобы решить, отображать ли собственные предупреждения XSS: она основана на истории консоли вашего профиля пользователя.
Если в вашем профиле есть хотя бы 5 записей в истории консоли, DevTools не будет беспокоить вас предупреждениями или всплывающими окнами. История консоли — это список команд, которые вы ввели и выполнили в консоли . Это команды, которые вы видите, когда помещаете курсор в консоль и несколько раз нажимаете клавишу со стрелкой вверх.
Как выглядят предупреждения XSS?
Когда неопытный пользователь пытается вставить код в Консоль , это действие блокируется, и вместо этого Консоль отображает предупреждение.
Вы можете обойти это предупреждение и включить вставку, но для этого вам нужно ввести «разрешить вставку».
Когда неопытный пользователь вставляет код в редактор кода DevTools (например, на панель «Источники» ), пользовательский опыт очень похож. Вместо предупреждения вы увидите модальный диалог.
И опять же, одного только закрытия этого диалога недостаточно, чтобы включить вставку. Чтобы отменить предупреждение, вам нужно ввести «разрешить вставку» в поле ввода.
Это разовая настройка?
Да, как только вы решите разрешить вставку, вас больше не будут беспокоить предупреждения XSS.
Мы надеемся, что это позволит достичь хорошего компромисса между полезностью и неудобством. Добавляя трение, мы увеличиваем вероятность того, что вы прочитаете предупреждение, и, следовательно, уменьшаем вероятность успешной атаки с помощью XSS.
Chrome DevTools хранит флаг, указывающий, следует ли отображать предупреждения о XSS в вашем профиле Chrome. Поэтому, если вы создаете новый профиль и сразу же начинаете вставлять код в DevTools, вставка блокируется и вместо этого отображаются предупреждения XSS.
Можете ли вы отключить его для автоматизации тестирования?
А как насчет автоматизированных тестов? Многие инструменты тестирования создают новый временный профиль для каждого запуска теста. Поэтому, если вы используете DevTools для отладки автоматических тестов, вставка в консоль изначально блокируется.
Чтобы обойти эту проблему, выполните одно из следующих действий:
Используйте Chrome для тестирования — разновидность Chrome, разработанную специально для тестирования и автоматизации. Предупреждения Self-XSS отключены.
Для других каналов выпуска Chrome передайте в Chrome флаг командной строки
--unsafely-disable-devtools-self-xss-warnings
чтобы полностью отключить диалоговое окно предупреждения self-xss.
Заключение
Что вы думаете об этой стратегии смягчения атак XSS на себя? Если у вас есть комментарии или предложения, оставьте комментарий к этой ошибке или свяжитесь с нами одним из следующих способов.
Особенно, если вы работаете над веб-сайтом, который предупреждает о самостоятельных XSS-атаках через журналы консоли, мы хотели бы поговорить о согласовании наших усилий или измерении воздействия мер по смягчению последствий самостоятельного XSS.
Загрузите предварительный просмотр каналов
Рассмотрите возможность использования Chrome Canary , Dev или Beta в качестве браузера для разработки по умолчанию. Эти каналы предварительного просмотра предоставляют вам доступ к новейшим функциям DevTools, позволяют тестировать передовые API-интерфейсы веб-платформы и помогают находить проблемы на вашем сайте раньше, чем это сделают ваши пользователи!
Свяжитесь с командой Chrome DevTools
Используйте следующие параметры, чтобы обсудить новые функции, обновления или что-либо еще, связанное с DevTools.
- Отправляйте нам отзывы и запросы на добавление новых функций на crbug.com .
- Сообщите о проблеме DevTools, используя Дополнительные параметры > Справка > Сообщить о проблеме DevTools в DevTools.
- Напишите в Твиттере @ChromeDevTools .
- Оставляйте комментарии к видео «Что нового в видеороликах DevTools на YouTube» или «Советы разработчика на YouTube» .