С обходом фильтра и некоторыми шестнадцатеричными номерами взломанные кредитные карты по-прежнему доступны для Google

Опубликовано: 2022-03-11

Несколько слов о взломе кредитных карт

Если вы меня знаете или читали мой предыдущий пост, то знаете, что до прихода в Toptal я работал в очень интересной компании. В этой компании наш платежный провайдер обрабатывал транзакции на сумму около 500 тысяч долларов в день. Частью моей работы было обеспечение соответствия нашего провайдера стандарту PCI-DSS, то есть стандарту безопасности данных индустрии платежных карт.

Можно с уверенностью сказать, что это была работа не для слабонервных. На данный момент я довольно хорошо знаком с кредитными картами (CC), взломом кредитных карт и веб-безопасностью в целом. В конце концов, наша работа заключалась в защите данных наших пользователей, чтобы предотвратить их взлом, кражу или неправомерное использование.

Вы можете себе представить мое удивление, когда я увидел статью Беннета Хаселтона 2007 года на Slashdot: Почему номера CC до сих пор так легко найти?. Короче говоря, Хазелтон смог найти номера кредитных карт через Google, сначала путем поиска первых восьми цифр карты в формате «nnnn nnnn», а затем с помощью некоторых расширенных запросов, основанных на диапазонах номеров. Например, он может использовать «4060000000000000..40609999999999999», чтобы найти все 16-значные номера основных счетов (PAN) в CHASE (все карты которых начинаются с 4060). Кстати: вот полный список идентификационных номеров эмитента.

В то время я не придавал этому большого значения, поскольку Google сразу же начал фильтровать типы запросов, которые использовал Беннет. Когда вы пытались ввести в Google такой диапазон, Google выдавал страницу, на которой говорилось что-то вроде «Ты плохой человек».

Это ответ Google тем, кто пытается понять, как найти номера кредитных карт в Интернете.

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

С небольшой доработкой старого трюка Хазелтона я смог найти в Google номера кредитных карт, номера социального страхования и любую другую интересующую конфиденциальную информацию.

Поэтому я уведомил Google и стал ждать. После месяца без ответа, я уведомил их снова безрезультатно. С небольшой доработкой старого трюка Хазелтона я смог найти в Google номера кредитных карт, номера социального страхования и любую другую конфиденциальную информацию.

Беннет

Вчера несколько моих друзей (buhera.blog.hu и _2501) обратили мое внимание на недавнюю публикацию Slashdot: Номера кредитных карт по-прежнему доступны для Google.

Автор статьи, опять же Беннет Хаселтон, написавший оригинальную статью еще в 2007 году, утверждает, что номера кредитных карт все еще можно найти в Google. Вы не можете использовать хак запроса диапазона номеров, но это все же можно сделать. Вместо использования простых диапазонов вам необходимо применить к запросу определенное форматирование. Что-то вроде: «1234 5678» (обратите внимание на пробел посередине). По этому запросу приходит много обращений, но очень немногие представляют реальный интерес. Среди участников есть номера телефонов, почтовые индексы и тому подобное. Не очень тревожно. Но тут приходит взлом кредитной карты.

Методология

Мне было любопытно, можно ли по-прежнему получать номера кредитных карт в Интернете, как это было в 2007 году. Как любой хороший инженер, я обычно подхожу к делу, используя правильно составленный и разумный план, который должен быть идеально выполнен с максимальной точностью. Если вы пробовали этот метод, вы, возможно, знаете, что он может очень сильно потерпеть неудачу — и в этом случае ваше тщательное планирование и усилия пропадут даром.

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

Взлом кредитной карты

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

Во-первых, я попробовал несколько подходов, основанных на запросах диапазона. Затем я просмотрел расширенные запросы и почти все, что вы могли бы придумать в течение часа или около того. Ни один из них не дал значительных результатов.

И тут у меня появилась сумасшедшая идея.

Что, если возникло несоответствие между механизмом фильтрации и фактическим сервером? Что, если сообщение, которое я получил от Google («Вы плохой человек»), исходило не от самой серверной части, а от специального механизма фильтрации, который Google внедрил для цензуры запросов, подобных моему?

Это имело бы большой смысл с архитектурной точки зрения. И подобные ошибки довольно распространены — мы постоянно видим их в ITSEC, особенно в решениях IDS/IPS, а также в обычном программном обеспечении. Существует процедура фильтрации, которая обрабатывает данные и передает их серверной части только в том случае, если она считает, что данные приемлемы / не являются вредоносными. Однако серверная часть и фильтрующий сервер почти никогда не анализируют входные данные одинаково. Таким образом, кажущиеся действительными входные данные могут пройти через фильтр и нанести ущерб серверной части, эффективно минуя фильтр.

Обычно вы можете вызвать такое поведение, вводя данные в различных кодировках. Например: вместо использования десятичных чисел (0-9), как насчет преобразования их в шестнадцатеричные, восьмеричные или двоичные? Ну, угадайте, что…

Найдите это, и Google скажет вам, что вы плохой человек: «4060000000000000..4060999999999999».

Поищите это, и Google будет рад вам помочь: «0xe6c8c69c9c000..0xe6d753e6ecfff».

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

Результаты включают…

  • Огромные CSV-файлы, заполненные потенциально конфиденциальной информацией.

Благодаря этому простому взлому кредитной карты вас ждет крупное вторжение в частную жизнь.

  • Ошибочные файлы журнала электронной коммерции.

Эти ошибочные файлы журнала электронной коммерции упрощают поиск кредитной карты.

  • Конфиденциальная информация, размещенная на хакерских сайтах (и даже в Facebook).

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

Это действительно страшная вещь.

Я знаю, что эта ошибка не вдохновит никаких исследований в области безопасности, но вот она. Google сделал эту ерунду и даже не ответил мне. Что ж, бывает. Однако я не завидую охранникам в большом G. У них должно быть много вещей, на которые нужно обратить внимание. Я пишу об этом взломе номера кредитной карты здесь, потому что:

  1. Это относительно низкое воздействие.
  2. Любой, кто заинтересован и мотивирован, уже понял это.
  3. Цитируя Хаселтона, если крупные игроки не берут на себя ответственность и не действуют в связи с этими эксплойтами, то «правильнее всего будет пролить свет на проблему и настоять на том, чтобы они исправили ее как можно скорее».

Этот трюк можно использовать для поиска телефонных номеров, SSN, TFN и многого другого. И, как писал Беннетт, эти номера гораздо сложнее изменить, чем вашу кредитную карту, для которой вы можете просто позвонить в свой банк и аннулировать карту.

Примеры запросов

ВНИМАНИЕ: НЕ гуглите номер своей кредитной карты полностью!

Найдите любой CC PAN, начинающийся с 4060: 40600000000000000..40609999999999999 ? 0xe6c8c69c9c000..0xe6d753e6ecfff

Некоторые венгерские номера телефонов от провайдера «Теленор»? Нет проблем: 36200000000..36209999999 ? 0x86db02a00..0x86e48c07f

Ищите SSN. К счастью, они не возвращают много значимых результатов: 100000000..999999999 ? 0x5f5e100..0x3b9ac9ff

Есть много, много других.

Если вы обнаружите что-то очень тревожное или вам интересно узнать о взломе кредитных карт, оставьте это в комментариях или свяжитесь со мной по электронной почте [email protected] или в Твиттере по адресу @synsecblog. Вызывать полицию в таких случаях обычно бесполезно, но попробовать стоит. Данный продавец или поставщик карт обычно более заинтересован в решении проблемы.

Куда пойти отсюда

Что ж, Google, очевидно, должен это исправить, возможно, с помощью таких крупных игроков, как Visa и Mastercard. На самом деле, Хазелтон предлагает ряд интересных предложений в двух статьях, ссылки на которые приведены выше.

Однако что вам нужно сделать (и почему я написал этот пост), так это распространить информацию. Мошенничество с кредитными картами — это большая индустрия, и простая осведомленность может уберечь вас от превращения в жертву. Кроме того, если у вас есть сайт электронной коммерции или вы занимаетесь обработкой кредитных карт, убедитесь, что вы в безопасности. PCI-DSS — хороший ориентир, но он далек от совершенства. Кроме того, всегда полезно погуглить свой сайт с расширенным запросом «site:mysite.com» для поиска конфиденциальных чисел. Есть очень, очень малый шанс, что вы что-нибудь найдете, но если вы найдете, вы должны действовать немедленно.

Кроме того, небольшой дружеский совет: никогда и никому не сообщайте информацию о своей кредитной карте. Я бы посоветовал использовать PayPal или аналогичную услугу, когда это возможно. Вы можете проверить эти ссылки для получения дополнительной информации:

  • Советы Visa по безопасности кредитных карт
  • Советы Citi по безопасности кредитных карт

И несколько общих советов: не скачивайте то, о чем вы не просили, не открывайте спам-письма и помните, что ваш банк никогда не запросит ваш пароль.

Кстати: если вы думаете, что нет никого настолько глупого, чтобы поддаться этим методам взлома кредитных карт или выдать информацию о своей кредитной карте в Интернете, взгляните на @NeedADebitCard.

Берегите людей!