30 октября 2016 в 07:09

Массовое ограбление покупателей Fix-Price

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

image

Где то в начале лета с бонусной карты моего друга были сняты все бонусы в размере ~800р, для студента это огромные деньги которые он копил целый год, и мне стало интересно, как злоумышленникам удалось это сделать. Когда я зашёл в личный кабинет, мне было предложено скачать электронную версию карты в виде картинки на телефон. И вот тут то я осознал всю масштабность трагедии! Начнём расследование с самого начала:

Первый фактор: Слабые пароли.

Уязвимость, которая не поддаётся закрытию — сам человек. Я связался с продавцом взломанных аккаунтов и он прислал мне пароли на которые чаще всего попадались аккаунты:

1) Номер телефона без восьмёрки/семёрки
2) Номер телефона с 8, 7, +7
3) 123456
4) 123456789
5) 1234567890
6) qwerty
7) fixprice
8) 111111
9) 222222
10) 12345678
11) 1234567
12) 666666
13) 123123

Пароли отсортированы по популярности. Зайдя на сайт, можно было узнать персональные данные, такие как: почту, номер телефона, дату рождения, ФИО и адрес.

Второй фактор: Проверка номера через сайт

Где взять базу номеров для брута? Вот тут магазин очень сильно облегчил злоумышленникам работу. При авторизации отправлялся всего 1 POST запрос на URL следующего вида:

bonus.fix-price/login

В ответ приходил коротенький JSON который содержал исчерпывающий ответ:

1) Номер не зарегистрирован
2) Почта не зарегистрирована
3) Неверный пароль
4) Внутренняя ошибка сервера

До сих пор сайт помогает проверить номер выдавая ответ «клиент не найден», так же можно было проверить номер на другом поддомене:

konkurs.fix-price/profile/checkmail?email=&phone=

Он сейчас не работает, но раньше там была каптча, обойти которую не составляло проблем — можно было ввести её один раз и посылать кучу запросов. Таким способом, за сутки, злоумышленник перебирал ВСЕ диапазоны номеров небольшого города.

Третий фактор: Бруть без проблем

Сайт никак не блокировал брут с одного IP. Можно было поставить программу на взломанный компьютер и пить чифир не заботясь о прокси. Опять же, за день можно было перебрутить все логины которые нашли на этапе выше.

Кстати, администрацию интересуют масштабы:

image

Думаю и читателей тоже заинтересуют. После моего вопроса о количестве аккаунтов, злоумышленник который занимался их продажей назвал цифру: 30 000. 30 тысяч аккаунтов было взломано всего за 3 месяца!

Общий баланс этих аккаунтов, по его словам, составляет порядка полумиллиона рублей.

Так же была собрана не хилая база номеров размером в более чем миллион записей! На каждый город примерно по 50 тысяч. Возможно, злоумышленник будет продавать эту базу спамерам (или уже продал).

Четвёртый фактор: генерируй штрихкоды сам

Сгенерировать штрихкод? Нет ничего проще:

hash:=sha256(2041 + номер карты)
GET bonus.fix-price/assets/fixprice/images/barcode/%hash%.png

Таким образом можно было украсть чужую карту просто зная её номер! Круто правда? Магазин заботится о безопасности своих покупателей!

Пятый фактор: Сотрудники магазина

Я просто оставлю это здесь:

image

image

На сколько правдивы данные истории я не знаю, просто мимо проходил и заскринил.

События последних 5-ти месяцев

Как только я узнал о проблеме — сразу написал им, но за всё лето так и не получил ответа. Хотел позвонить, но зная старую мудрость «делай добро и беги» я не стал этого делать.

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

Примерно месяц назад какой то пользователь выложил огромное количество аккаунтов в продажу, первая половина школьников мигом ринулись запускать IDE и клепать свои бруты, а вторая половина устремилась в магазин обналичивать купленные за 10-15% от баланса карты. В итоге сайт лежал постоянно. И вот спустя неделю было принято такое решение:

image

А потом такое:

image

Заключение


Пострадали в первую очередь покупатели, телефоны всех кто регистрировался на сайте в руках у нехорошего человека, магазин мало того, что не вернул деньги, так вообще отключил всю бонусную систему! Хочу напомнить, что балансы начали пропадать как минимум в начале лета! В их группе вконтакте пользователи дико негодуют по этому поводу и обвиняют магазин во всех смертных грехах, да и если подумать, то правильно делают, если бы магазин отреагировал на моё письмо сразу же — можно было избежать такого развития событий.
VANS SOFT @VANSCoder
карма
40,0
рейтинг 0,0
Пользователь
Самое читаемое Разработка

Комментарии (164)

  • +4
    Про сделай добро и беги, конечно, порадовали.
    А что за магазин это такой? Как он себя позиционирует и почему там так много клиентов?
    • +3
      Там весь товар по 39 рублей (или около того). В основном ширпотреб китайский, но бывают полезные вещи за эту цену. Из последних упаковку «суперклеев» (5-6 обычных тюбиков + 1 крупнее «Цементный») за эту цену — это даром.
      А вот как товар на краденые номера карт покупался я не понял. Как говорится «не в теме» их дисконтных программ.
      • +4
        Сейчас там всё по 50, но мелочь идёт в виде 5 за 50, 6 за 50 и т.д.

        Сайт имеет бонусную программу, за покупки давали 5% на карту, потом с этой карты можно оплачивать до 100%. Карты нужно регистрировать на сайте, там же можно скачать штрихкод для оплаты покупок по нему. Злоумышленники брутили аккаунты и скачивали этот штрихкод, шли в магазин и на кассе предъявляли его для оплаты.
        • +1
          У них в разных городах разная фиксированная цена же.
    • +6
      Всё по фиксированной цене. Ходят туда в основном студенты, пенсионеры и малоимущие коих очень много. Продают всё, пиво, воду, продукты, химию и прочие по ценам на 1-2 рубля ниже других.
      • +8
        Не скажите, там бывают и полезные любому предметы из серии все по 1USD с али, только ждать месяц не надо :)
        • 0
          Я даже купил там usb фонарик.
      • +8
        Не студент, не пенсионер, и не малоимущий, но 8 батареек cr20xx (включая cr2032) за 50 рублей — это просто подарок сисадмину с большим парком машин с умирающими батарейками RTC. В обычных магазинах только одна такая батарейка 50-100 рублей стоит.
        • +1
          Сам иногда беру в фикс-прайсе всякий хлам. Но практика показала, что CR2032 за стольник живут минимум года 3, а дешевые — от силы год-полтора. Сравнивал, правда, не фикспрайсовские, а Sony (не знаю, почем их у нас закупают) и Camelion по 15 руб за штуку, которые покупал сам лично.

          Кстати, был немало удивлен, когда искал калькулятор с большими цифрами и кнопками для бабушки, зашел в один из таких магазинов. Там явный китайский нонеймовый калькулятор продавался за 450 рублей. На следующий день открыл сайт Технопоинта и увидел там за ту же цену вполне себе фирменные Canon-ы и Citizen-ы, еще и с гарантией в 2 года.
        • 0
          Пример про с cr2032 неудачен http://electronica.bashel.ru/?item=98-47-39
          https://elkomp.ru/catalog/2778/190326/?sphrase_id=354395
          цены на них только в быдло магазах такие и то только потому что берут.
          • +1
            Не совсем понял что вы хотели сказать. Что 1 штука за 40 рублей выгоднее, чем 8 штук за 50 рублей?
            Другой вопрос, что купив упаковку этих батареек можно уже дома обнаружить, что они уже полудохлые.
      • 0
        Бесшовные банданы для всяких спортивностей по те же сорок рублей. В других местах дешевле двух сотен не видел, а ушатываются они достаточно быстро, что фикспрайс, что Buff за кучу денег.
      • +5
        Ещё экономные. Экономных добавьте в список пожалуйста.
    • 0
      Раньше был «Всё по ...» 35,36,38 и т.д., сейчас цены разные (не самые низки зачастую), кроме типично китайского хлама (одноразовые отвёртки) появился ещё чай, туалетная бумага и пр. И традиционно-маркетологические закидоны — «стельки 25 руб, пара всего за 50» и решай как знаешь — пара стелек в упаковке за 50(по факту так оказалось), но упаковка фабричная и по одной не продают или раз «фикс прайс», то они просто продают упаковки парами, чтобы цена на всё была одинаковая? Посмотрел на это и понял что смысла ходить туда нет (был у них раньше конкурент «Всё по 36» назывался, те же яйца, но на полрубля дешевле и был рядом с работой — удобно было чай и бумагу с кухонными полотенцами закупать в маленький офис на самообслуживании).
      • +1
        Покупаю сок «Сады Придонья» яблочный прямого отжима, 50 руб. за литр, везде по 70-100, берем упаковками. Ну и куча разного хлама по хозяйству есть, который в магазинах с 300% наценкой.
    • 0
      Лично покупал несколько штук батареек CR2032 в одной упаковке (4 штуки CR2032 и 2 штуки CR2025) за 45-50 рублей.

      Вставлял эти CR2032 и CR2025 как в материнские платы, так и в напольные весы — батарейки рабочие.
  • +2
    Все же я считаю, что основная вина на пользователях, ибо зачем делать легкие пароли, а потом жаловаться вот меня хакнули?
    • +4
      Пострадали не только пользователи которые использовали словарные пароли, но и все остальные — теперь никто не может пользоваться картами.
    • +11
      hash:=sha256(2041 + номер карты)
      GET bonus.fix-price/assets/fixprice/images/barcode/%hash%.png

      А с этим пользователь что должен был делать? Использовать "несловарный" номер карты?

      • +1
        Я так понимаю, номер карты сам по себе по замыслу разработчиков является приватной информацией, как, например, полный комплект данных кредитки. Очевидно, что из него довольно тривиально генерируется штрих-код. И побрутить номера карты не удастся, валидация их происходит на кассе продавцом.
        Так что без брутфорса паролей аккаунтов здесь всё равно не обойтись.
        • 0

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

          • +2
            В том-то и дело, что штрих-код можно проверить только попытавшись расплатиться по нему в магазине. Так и представляю себе брутфорс живых продавцов: вот эти 500 ваших дисконт-карт не существуют, вот эти 250 просрочены, вот на этих 300 нулевой баланс, но вот этой вот как раз хватит чтобы расплатиться :)
            • 0

              https://bonus.fix-price.ru/assets/fixprice/images/barcode/123.png = 404.
              https://bonus.fix-price.ru/assets/fixprice/images/barcode/181210f8f9c779c26da1d9b2075bde0127302ee0e3fca38c9a83f5b1dd8e5d3b.png = 404.


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

              • 0
                Карты судя по всему лежали в виде файлов, потому что когда указывал левый хэш — выдавало 404. А когда указывал хэш от валидного номера карты — показывало штрихкод без регистрации и СМС. Сейчас выдаёт 404 т.к. выпилили всю систему карт.
                чтобы найти начальные цифры

                Они статичные всегда. Это как бы идентификатор для кассы что используется карта.
                • 0
                  Они статичные всегда. Это как бы идентификатор для кассы что используется карта.

                  Да я догадываюсь. Но если у тебя нет карточки — ты не знаешь этот идентификатор и нужно либо пытаться искать фотографии в интернетах, либо сходить и получить карточку.

                • 0
                  А вот это уже ещё одна уязвимость, да. Тут проблема даже не в открытой урле и/или алгоритме, а в том что этот запрос позволяет отличить валидный номер карты от невалидного.
        • 0
          По определению штрих код не может быть приватным. Начало известно, последняя цифра — контрольная, далее подряд от 1 до крайней.
    • +3
      А как их переубедить в том что пароли слабые? Проходил практику в одной крупной компании, пароли были ФИО, либо фамилия+номер кабинета. Админы и безопасники люто негодовали, но женщины 40+ с дикими воплями кричали что не могут запомнить сложный и несвязанный пароль и им придется его хранить на листочке.
      • +5
        Причём не просто на листочке, а приклееном к монитору.
        • +2
          В чем проблема хранить пароль на стикере приклееным к монитору, если никто к нему не получит доступ виртуально, кроме как физически. (Допустим, что вебкамеры нет)(И исключим возможных гостей и родственников, для тех кто живёт один)
          • +1

            Ну всё-таки всегда неплохо иметь возможность однозначно идентифицировать сотрудника, сделавшего лажу. А в мире, где у всех такие вот пароли, любой сотрудник при желании может авторизироваться с несвоими данными.

            • +4
              Почему вас это волнует? Просто спрашиваем с того, от чьего имени сделана лажа. Почему с него? Его учётная запись в логах.

              Пара лишений премии — научится делать так, чтобы его учётная запись другим людям была недоступна.
              • 0
                Лишение премии на пару лет. Зато кормёжка за счёт государства. Ситуации — они разные бывают.
          • +1
            В том, что угроза может быть в коллеге за соседним столом.
            Простой пример: бухгалтерия, в комнате сидит 5 дам, каждая ведет учет по своему участку работы, близится годовая отчетность… Вчера одна обозвала другую «старой перечницей».
            «Ах так», — подумала та, — «ну я тебе покажу!» И удаляет от её же имени часть наработанной информации, необходимой для годовой отчетности.
            Официально — сама дура, удалила, а теперь плачет, что приходится ночами сидеть, чтобы успеть в срок.
            • +2
              Вот, собственно, это и надо им приводить в качестве одного из аргументов.

              Пользователь сам отвечает за хранение своих данных для доступа к системе. Всегда надо подчёркивать, что всё, что сделано от имени пользователя, считается сделанным этим пользователем. galina_ivanova удалила всю отчётность за год? Значит она и будет отвечать. Хранила пароль на листочке на мониторе? Ну, ква.

              А если пользователь имеет доступ к каким-то очень критичным данным, тогда хорошо ещё и принудительно заставлять меня пароль раз в какой-то период времени.
              • 0
                тогда хорошо ещё и принудительно заставлять меня пароль раз в какой-то период времени


                Нет. Тогда необходимо принудительно выдавать хороший пароль. Пока пользователь может выбирать себе пароль — он априори плохой.
                • 0
                  Как вариант, можно и так.
                • +2
                  Чем сильнее пароль похож на заклинание вызова сатаны, тем выше шансов, что это заклинание материализуется в виде наклейки на мониторе или (если за наклейки бьют) просто бумажки в верхнем ящике стола.
              • +6
                тогда хорошо ещё и принудительно заставлять меня пароль раз в какой-то период времени.

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

                • +5
                  обычно берут старый пароль и меняют в нем последний символ. У нас в конторе один разработчик на столько долго работает, что уже закончились все «новые английские буквы»
                • 0
                  Естественно, надо следить за тем, что пароль изменён, и требовать, чтобы он соответствовал «безопасному» паттерну.
                  • +1
                    Предположим, паттерн «большие, малые латинские буквы, цифры и спецсимволы, длиной 8+».

                    P@ssw0rd
                    P@ssw0rd1
                    P@ssword2
                    P@ssw0rd3…
                    • 0
                      Не такой плохой пароль, к слову.
                      • +2
                        Если злоумышленником вскрыты пароли P@ssw0rd1 и P@ssw0rd2, каким может быть следующий? Хм. Надо подумать…

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

                        Формальные требования качества пароля могут не соответствовать реальной его вскрываемости. Вот в чем печаль.
                        • 0
                          Разумеется, мы все предпочтём видеть по-настоящему безопасный пароль, длинный, бессмысленный, использующий самые разные спецсимволы, цифры и буквы в разном регистре и нигде более не используемый, но в реальной жизни волей-неволей приходится идти на компромиссы, ну и/или проверять пароли на «похожесть» с предыдущими до того, как разрешать устанавливать их.
                          • 0
                            Любой бессмысленный пароль длиной до 10 символов (а то и до 15) запоминается спустя 256 его вводов за первый месяц, 512 вводов за квартал и дальнейшие регулярные вводы по 8 раз в месяц.
              • 0
                Пробовал, когда работал админом, приводить такое в качестве аргумента различным тетушкам, в ответ чаще всего получал что-то вроде: ой, да кому это надо, разве кто-то будет так делать?
                • +2
                  Расписка в том, что они предупреждены о возможных последствиях, может неплохо работать в таких случаях. Плюсом идёт то, что у админа, в случае чего всегда есть аргумент, который можно предъявить начальству – пользователи были предупреждены и сознавали, что отвечают за сохранность данных и т.п.
              • +2
                Самопротиворечивый алгоритм. Если человек полностью отвечает за свой пароль и учётку и за то, что из под этой учётки сделано, то неправильно заставлять его менять пароль. Потому что такого рода ответственность должна порождать право самому реализовывать механизм несения этой ответственности. То есть самому придумывать пароль, решать, как его хранить и т. д.
                А иначе он вам скажет: я каждый месяц новый пароль запоминать не могу, пришлось записывать на листочек, я не виноват. И в чём-то будет прав.
                • 0
                  В чём-то он, наверное, будет прав, но безопасность не заканчивается на пароле пользователя, это ведь лишь один из возможных компонентов безопасной системы. И то, что он несёт ответственность за хранение своего имени и пароля в тайне, не означает, что остальные могут расслабиться, полагая, что, «сам будет виноват».

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

                  Заставлять менять пароль раз в месяц – прямо скажем, не самая гуманная мера для защиты данных («железные» ключи будут, скорее всего, удобнее), но если другие методы авторизации не используются, возможно, смена пароля поможет сделать несанкционированный доступ более трудоёмким делом.
                  • +1
                    По существу я с Вами согласен. Конечно, основная задача фирмы — предотвратить утечку информации, а не наказать сотрудников, когда эта утечка уже случилась. И конечно, некоторый патернализм со стороны фирмы по отношению к сотрудникам в каких-то случаях может быть оправдан.
              • 0
                Пользователь сам отвечает за хранение своих данных для доступа к системе. Всегда надо подчёркивать, что всё, что сделано от имени пользователя, считается сделанным этим пользователем.


                Отдельный элемент администрирования — написание инструкций и приказов. Плюс журнал ознакомления. Т.е. не надо «подчёркивать». Пользователь ознакомился и расписался под тем, что на предприятии введена презумпция виновности. Всё, дальше можно вообще пароли не задавать — будут и компьютеры лочить, и капканы на подходе к рабочему месту ставить. Проверено.

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

              Пример с бухгалтерией не очень. Если сотрудница докажет, что, например, листочек с паролем лежал в ящике стола, и докажет, что его использовала другая для мести и подставы, то работодатель должен:
              1. Сделать выговор первой за то, что хранила небрежно пароли.
              2. Уволить вторую за саботаж.
              • +2
                Слишком много «если».
              • 0
                Это уже частности и уже дело сотрудницы доказывать, что она – не верблюд, что она надёжно хранила пароль, а доступ под её учётной записью был несанкционированным.
                • 0
                  К чему такие сложности? Проблема решается USB-ключами.
                  • 0
                    Которые лежат на компе с всем известным пином 1234?
                    • +1
                      Ну эта проблема решается немного проще. На одной из предыдущих работ ходил по кабинетам безопасник, собирал безхозные етокены. Сотрудники потом их выкупали за печеньки)
                      • +1
                        Иными словами — технические меры должны быть подкреплены политически и организационно. :)
                      • 0

                        Метод кнута и печенек.

          • +1
            ну, к примеру, проблема может быть в том, что роли даже внутри бухгалтерии может быть разными. К примеру, проводка платежей должна подтверждаться несколькими сотрудниками. Мне известен случай, когда вот подобным образом хранили пароли + RSA SecurID брелоки. Как результат — убытки компании на многие миллионы.
      • +2
        А как их переубедить в том что пароли слабые?

        Никак. Очевидно, пароли для массового использования ущербны «by design».

        Алтернатива — био-идентификация, токены + пин-код.
        • +11
          Ради покупки сухариков за 8 рублей?
          • +2

            Ну например, да. При выдаче карточки покупатель придумывает кодовое слово, которое не отображается в личном кабинете и видно только кассирам. Названо слово — кассир подтверждает покупку, нет — кассир посылает подальше.


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


            Может не самый клиентоориентированный метод, но покупать за полную стоимость-то товары никто не мешает. А если хочешь поэкономить — изволь быть чуть-чуть ответственнее.

            • +1
              Называть кодовое слово когда мне дышат в затылок не лучший вариант, так же с пинкодом от карты — кассир отворачивается, а камеры над кассой и покупатели за спиной нет.
              • –1

                Ну блин, это всё-таки не карта, на которой реальные деньги лежат. Вряд ли тем, кто тебя взломает будет именно тот, кто стоял в одной с тобой очереди. Я тут не идеальную бонусную систему пытался придумать, а просто не слишком затратные меры, при которых нельзя было бы воспользоваться утёкшими данными для обналичивания карт. Это тоже фейл, ФИО и прочие данные всё равно бы утекли, но хотя бы не двойной.

                • +1
                  Придумывание чего то нового — это изобретение велосипеда с палками в колёсах по-умолчанию.

                  Можно просто использовать брелок с чипом как в симкарте.
                • 0
                  Ничего этого не нужно, нужно было лишь настроить чтобы «В ответ НЕ приходил коротенький JSON», ну и блокировать брут, но это уже опционального, мне кажется хватило бы только первого пункта.
            • +2
              Названо слово — кассир подтверждает покупку, нет — кассир посылает подальше.

              1) не исключает сговор покупателя и кассира
              2) БД с паспортными данными требует ОТТАКУЮ кучу геморроя.
              3) Называние слова чревато утечками же.
          • 0
            А какая разница? Деньги они везде деньги.
          • +2
            Ради покупки сухариков за 8 рублей?

            Специально для сухариков за 8 рублей можете использовать простые пароли.
        • +18
          Однажды Сисадмин пожаловался Учителю:
          – Мы выдали всем нашим пользователям индивидуальные пароли, а они не желают хранить их в тайне. Записывают на листочках и приклеивают к мониторам. Что нам делать? Как заставить их?
          Инь Фу Во спросил:
          – Сначала скажи, почему они это делают.
          Сисадмин подумал и ответил:
          – Может быть, они не считают пароль ценным?
          – А разве пароль сам по себе ценный?
          – Не сам по себе. Ценна информация, которая под паролем.
          – Для кого она ценна?
          – Для нашего предприятия.
          – А для пользователей?
          – Для пользователей, видимо, нет.
          – Так и есть, – сказал Учитель. – Под паролем нет ничего ценного для наших работников. Надо, чтоб было.
          – Что для них ценно? – спросил Сисадмин.
          – Догадайся с трёх раз, – рассмеялся Учитель.
          Сисадмин ушёл просветлённый и сделал на корпоративном портале персональные странички для всех работников. И на тех страничках был указан размер зарплаты. Узнав об этом, все пользователи забеспокоились о своих паролях. На другой день в курилке обсуждали размер зарплаты Главбуха. На третий день ни у кого не было видно листочков с паролями.
          • +1
            Решение интересное, но далеко не 100%.
        • 0
          Гм. Предполагается, что скомпрометированный элемент аутентификации должен быть заблокирован, а пользователь — получить новый.
          Как вы предполагаете это делать для сетчатки или отпечатка пальца?
          • 0
            У человека много пальцев :-)

            И компрометируется в данном случае не элемент аутентификации, а система проверки!
            • 0
              К сожалению, в процессе жизни заменить скомпрометированный палец — крайне затруднительно.

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

              Компрометируется как раз элемент аутентификации. И максимум, что я могу сделать — пометить его везде как скомпрометированный.
              Но у меня только 20 пальцев, да и не везде удобно прислонять к сканеру пальцы ног…
              • –1
                Компрометируется как раз элемент аутентификации.

                Это неверно. Как его можно скомпрометировать, если оригинал строго в единственном экземпляре?

                В т.ч. у однояйцовых близнецов разные отпечатки пальцев.

                смогла воспроизвести его с достаточной для прохождения аутентификации точностью

                Так это компрометация системы проверки отпечатка, а не самого пальца!
                • 0

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

                  • –1
                    Напомню события трехлетней давности.

                    … Ведущие банки России временно прекратили прием пятитысячных купюр старого образца в своих банкоматах — слишком много подделок…

                    … Впрочем, искусными эти подделки не назовешь: бумага однослойная, водяных знаков нет, печать обычная на струйном принтере. Но банкоматы обманываться были рады. Теперь службы безопасности «лечат» эту доверчивость, спешно обновляя программное обеспечение...


                    http://www.ntv.ru/novosti/678296/

                    Поэтому, не надо путать компрометацию системы проверки с компрометацией элемента аутентификации.
              • 0
                Как показала давняя истерия с каким-то ифоном, дактдатчик спокойно воспринимает не только сами 'пальцы' но и 'иные' части тела.
                И может быть не все варианты могут быть использованы с точки зрения гигиены или морали в общественных местах, но это уже на усмотрение пользователя:)
    • +1

      Зачем вообще "копить целый год" на бонусной карте магазина? :)

  • +2
    Итого основная ошибка только одна — возможность оплачивать 100% покупки бонусами.
    • +1
      А что изменилось, если можно было бы оплачивать 50%?
      • 0
        Нужно было бы нести свои деньги. То есть реально вложить что-то, чтобы получить какую-то фигню со скидкой. Продать такое сложнее.
        • +1
          Вы недооцениваете всю мощь юных кардеров, когда магазин запретил штрихкоды и брелки — они скупили все карточки под аккаунты балансом больше 100 рублей. 50р карточка, 10р акк, 100 на счету, профит 40р в виде продуктов.
  • +1
    Пострадали в первую очередь покупатели, телефоны всех кто регистрировался на сайте в руках у нехорошего человека

    Нифига не понял. Что за бред?
    • +1
      Сайт давал возможность без труда узнать, зарегистрирован ли номер телефона или почта. Злоумышленник чекал номера телефонов на сайте и составлял базу для брута, которую сейчас полюбому продаёт.
      Со взломанных аккаунтов доставалась вся информация о пользователе, включая почту, ФИО и адрес.
      • 0
        А вообще, интересная идея, посмотреть сайты других магазинов, в которых регистрировал клубную карту, там же просили заполнить бумажку с ФИО, телефоном, почтой и другой информацией, а система авторизации на сайте может оказаться подобной этой.
        • 0
          Перекресток, эльдорадо и мвидео уже были атакованы. Сетям азс/роснефть/тнк/Газпром и лукойл точно ничего не угрожает, у постояльцев хак форумов нет машин. Остаются карусель, связной, кораблик, карты малина (у них множество сетей в партнерах), формула кино, азбука вкуса/ав маркет.
      • 0
        Это стало ясно дальше из текста статьи. Но если читать это конкретное предложение, выходит вот что:

        «Все регистрировались на сайте в руках нехорошего человека.»

        Именно так стоят знаки препинания. Мне пришлось перечитать 4 раза это предложение, чтобы угадать, где надо ставить запятые.

        Вот как оно должно было быть:

        Пострадали в первую очередь покупатели. Телефоны всех, кто регистрировался на сайте, — в руках у нехорошего человека

  • +3
    Судя по тексту статьи, вы знакомы или знаете злоумышленника. А в полицию-то заявили? Кража как-никак.
    • +2
      «сделал добро (рассказал о наличии уязвимости) — и беги»
      • –1
        Нет. Вы не поняли.
        Если человек ознакомлен с фактом совершения преступления каким-то лицом и не сообщил об этом, то он — соучастник.
        Из некоторых речевых оборотов в статье можно сделать вывод о том, что автор взаимодействовал с преступником в части получения некоторых сведений. А раз он знает, что тот человек совершил некие деяния, но сообщил об этом, то автор сам соучастник преступления. И неважно, что он всем рассказал о данной уязвимости.
        • +4
          По этой (в т.ч.) причине, для избегания коллизий с весьма странной правовой позицией государства, всегда имеет смысл добавлять «один мой знакомый» или «снилось мне» перед такими рассказами.
          • 0
            ну типа того… :)
          • +1
            Про одного знакомого могут попросить подавать показания… А вот про сон — точно нет.
          • +1
            Вот они какие, вещие сны…
        • 0
          А есть заявление от пострадавшего? Нет преступления — нет преступника. Еще клевету повесят.
          Это не убийство, без заявления дело не заведут.
        • +1

          Соучастие — содействие в совершении преступления либо заранее обещанное содействие в сокрытии его следов. Вы бы УК прочитали для начала, перед тем как авторитетные заявления делать.

  • +7
    имея даже миллионы ворованных бонусов не представляю, что там можно купить на этой помойке, ну кроме разве что очень ограниченного ассортимента продуктов.

    p.s. сам как то приобрел там сковороду с керамическим покрытием, покрытие оказалось обычной белой краской, которая начала гореть при нагревании :))
    • +2
      У нас, например, алкоголики периодически за водку дерутся. Оказывается, водка тоже бывает просроченной :)))))
      А вообще цены там очень высокие на большинство ассортимента, но попадаются и интересные вещи, например художественные альбомы, которые должны по идее стоить гораздо дороже 50-ти рублей.
    • +3
      Там продается вода за какую-то символическую стоимость, 7 рублей за 0.5 литра, что ли. Вкусные конфеты есть, батончики, приличные отвертки.
      • +5
        продукты — верю, но приличные отвертки… бгг :))
        • +16
          Приличные одноразовые отвертки.
        • +5
          между одноразовой отверткой и отсутствием отвертки вообще — я пожалуй выберу одноразовуюю
          • +3
            Возможно, зря. Это создает иллюзию наличия отвертки.
            Как-то купил там набор, и радовался что подготовлен на случай войны. А когда сломалась полка, все насадки для отверток тупо погнулись (прямые) или стерлись (крестовые) на первом же шурупе. Было неожиданно.
        • +2
          Возможно, просто в отвёртках вы разбираетесь лучше )
        • 0
          Для ковыряния в компьютере и аналогичных работ без значительных усилий — вполне нормальные инструменты.
    • +8
      Взял клеевой пистолет там и стержни к нему. Ну да, качество унылое. Но и в 4 раза дешевле, чем самый дешевый клеевой пистолет в любом другом месте, и примерно в 10 раз дешевле, чем в фирменном магазине. Но ведь клеит! Учитывая, что он мне нужен 1 раз в полгода — почему бы и нет?
    • +10
      Я там беру очень крутой кислородный отбеливатель за копейки. Перкарбонат натрия, гидроперит, ТАЕД для активации и Трилон-Б. Я писал о нем: DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт
      • +3
        Вот, снял на тапок. Как раз закончился. Самый злой в розовых банках. Даже фломастеры и зеленку отстирывает.
        Банки отбеливателя

    • 0
      Батарейки. Детские книжки. Контейнеры под мелочи (я в них метизы храню). Нитки. КЛ-лампочки. Дешевые фонарики для дачного сортира. Резинки для волос. Некоторые игрушки. Карандаши. Носки.
    • 0
      Сок «Сады Придонья» сильно дешевле, чем в других магазинах.
  • +3
    У перекрестка есть похожие карты и приложение на моб. Недавно они отменили списание с экрана телефона и сделали только с карты. Совпадение? :)
    • +4
      Нет, на них тоже голодная школота набеги совершала.
      • 0
        Перекрёсток одно время точно сильно доила не школота, а банковские хоббисты. Но там суть была в генерации баллов из воздуха из-за багов.
  • 0
    Когда половину бизнес-логики делают на джаваскрипте на стороне клиента, а все кишки сервера смотрят наружу — этим и заканчивается. Все эти функции для проверки логина и генерации штрихкода должны быть доступны только серверному приложению, и ни в коем случае не по http-запросам.
  • 0
    Народ вопрос к теме. А есть ли какая-то защищенная система лояльности, которую можно внедрять в рабочий бизнес? А то прочитал ужаснулся.
    • +1
      Да. Персональный менеджер, знающий своих подопечных в лицо. :)
    • +1
      SMS на телефон. СушиСтор держал карточки, теперь на это перешёл. И фиг взломаешь.
      • 0
        Отправка SMS стоит денег, и SMS не является гарантированным средством доставки сообщения в срок.
        • 0
          Ну контора не обеднеет, и редкие задержки в минуту-две не так возмутят юзеров, как воровство со счетов, на фоне откровенной беспомощности «защиты» накоплений юзеров.
      • 0
        Карточки надёжнее, чем смс на телефон.
        • +2
          В случае с скидочными картами телефон и СМС — более надёжны чем карточки. Мой ящик карточек весит больше чем все остальные документы вместе взятые и занимает столько же места, причём он один а нас с женой двое, поэтому лежит в основном скидочная карта дома.
          И это общая проблема — посмотрите в любой очереди в Детский мир, например, сколько людей приходят без карт,. Надёжность прихода СМС перекрывает надёжность того, что карта не дома, на порядки (эмпирически проверено) — не было ни разу, чтобы СМС пришла с задержкой больше секунд (Детский Мир).
          Насчёт цены — для больших объёмов цена микроскопическая. Ведение пластиковой карточки, кстати, тоже денег стоит. Единственный серьёзный плюс карты — обслуживание с ней быстрее.

          С картами и вообще со скидками проблема в другом. Магазины увлеклись созданием мегапорталов для скидок. Простую задачу превращают в квест. Ради копеечной скидки я, например, не буду выбирать магазин в ущерб удобства и качества. Декатлоновские скидки, например, кроме раздражения не вызывают ничего — надо регистрироваться. в почте копаться, следить чтобы не устарели…
          • 0
            о Twitter Digits кто что слышал пробовал? если его к логин/пароль, как типа 3d secure сделать.
            • 0
              О google authenticator кто-то слышал, тем более что он реализует стандартный протокол. Но дело в
              том, что 1)не у всех есть подходящий телефон, 2) не все способны его установить и нормально пользоваться, 3) все уже вложились в СМС
          • 0
            Насчёт цены — для больших объёмов цена микроскопическая.
            неправда, цены уже давно не микроскопические.
            Билайн на свои от 1M смс в месяц 0,6руб/смс
            МФ на свои от 300M смс в месяц 0,2руб/смс
            МТС на свои от 100К смс в месяц 0,77руб/смс

            Ведение пластиковой карточки, кстати, тоже денег стоит.
            Себестоимость изготовления карты с магнитной лентой, персонализацией и штрих-кодированием при тиражах более 100К от 4руб/штука
    • 0
      Карточка с номером не такой уж плохой вариант, только применять нужно с головой, и ограничения на брут ставить. Создание аккаунта — с привязкой к телефону, попытки брута должны ограничиваться 5 запросами в сутки и только после логина в систему. Ни одна система не является абсолютно защищенной, но можно максимально усложнить взлом, чтобы выхлоп не стоил потраченных усилий.
    • +1
      Смотря какой бизнес. Если оффлайн, то лучший вариант — это физические пластиковые карты с регулярными семинарами для продавцов-менеджеров как отличить подделку.

      Ещё многие знакомые заведения используют бонусную систему, название которой созвучно с утконосом. Слышал, что проблемы с безопасностью там бывают, но их своевременно фиксят.
    • 0

      Мобильное приложение магазина можно сделать надёжным и защищённым от перебора паролей. Но, конечно, оно дорого в разработке и потребителей бесит, когда вы требуете его поставить (меня тоже).


      Электронные карточки для Apple Wallet (.pkpass) могут быть такими же надёжными. Они даже могут делать запросы на сервер, проверять свой статус и следить, чтобы ничего страшного не происходило (и отключаться, если что-то пошло не так). Карточки поддерживаются на iOS, Windows Mobile (с ограничениями), есть приложения для поддержки карт на Android.


      Росинтер выдаёт такие карты «почётный гости», например. Я делаю себе сам карты .pkpass со штрих-кодами (делал для своей карты Fix-Price), потому что это удобнее

    • 0
      Есть, но будет работать только на смартфонах
  • 0
    Вы абсолютно правы. Разрешение пользовательских паролей без валидации качества — безусловно колоссальный ляп в ИБ.

    Про отсутствие капчи или других средств от брута на сервере — так же, слов нет.

    И разработчику, и сисадмину, и в первую очередь менеджерам и заказчику руки отрывать, и дипломы в одно место засунуть.
  • +4
    с бонусной карты моего друга были сняты все бонусы в размере ~800р, для студента это огромные деньги которые он копил целый год

    Копил? Целый год? На бонусной карте магазина? Зачем? :)

    • +13
      Хотел шикануть :)
    • 0
      Я коплю долгое время и списываю если денег мало или не хватает. Скорее всего и он откладывал на чёрный день.
      • 0
        800 (восемьсот) рублей на чёрный день? Серьёзно?
        • 0

          Вы поистине счастливы, раз искренне задаете подобные вопросы :-)
          800 рублей, в общем-то, это достаточно заметная сумма денег, особенно учитывая то, что речь идет о студенте.
          Плюс к тому, некоторых городах, например, проезд в транспорте стоит 13-15 рублей, полгорода на такси объездить стоит сотню, а за полтораста рублей можно неплохо пообедать. Попадая в Москву, эти люди точно так же искренне возникает непонимание от того, что им проехать в режиме метро+автобус от вокзала до нужной точки и обратно — стоило двести рублей.

        • 0
          Со слов студента:
          На 800р в фиксе можно купить еды на неделю. Сок литровый + молоко + йогурты 4 штуки + газировка 0,5 за 25р или 3 бутылки 1.5л за 50р + сухари + конфеты + печенье + консервы + чипсы + макароны + бич пакет и т.д.

          Что бы накопить 800р нужно потратить 16 тысяч.
      • +1

        Бог с ним с суммой, внизу в каментах уже ее обсудили. Зачем копить на черный день на карте магазина, который может закрыться в любой момент? Все эти накопительные карточки нужны только для одного: списать с них все бонусы при следующей же покупке. :)

  • +1
    FixPrice — сами те ещё жулики. Пусть хлебнут хоть чутка проблем.
    У них около каждой кассы несколько наклеек со штрих-кодами, замешкаешься на кассе, получишь лишний товар в чеке.
    Не верите? Зайдите в ближайший магазин.
    • +2
      IMHO, это «инициатива» самих работников. Сильно сомневаюсь, что руководству магазина, а тем более, сети, интересна уголовная статья.
  • –2
    А где теперь можно найти эту клиентскую базу? и купить ее, для определенного города))
    • +4
      На mvd.ru поищите
  • +4
    Разработчикам системы тоже, видимо, платили по 39 рублей
    • +1
      Судя по всему они работали за еду из этого магазина.
  • 0
    были сняты все бонусы в размере ~800р, для студента это огромные деньги которые он копил целый год
    серьезно? Давно не студент, но иногда смотрю славного друже и он там называет цены на еду (правда в Питере). Насколько помню 800р это примерно 6 шаверм (извиняюсь за такое сравнение). А может кто подсказать, сколько в среднем стипендия у студента в России? (сам с Украины)
    • 0
      Если считать в вашей системе счисления: 20 шаверм или 2500 рублей. Есть ещё социальная стипендия и прочие плюшки.
      • 0
        Зависит от города и вуза. Иркутский государственный сейчас, если верить товарищам, даёт порядка 30-35 шаверм базовых. У аспиранта в СО РАН точно что-то слегка за 60 шаверм. Но это я в шавермах из поста выше считаю, у нас они процентов на двадцать дороже.
    • 0
      Лично я не понял, зачем так долго копить такие суммы. Поразить кассира что ли? Не забываем, что правила бонусных программ имеют свойство меняться (то бишь срок жизни бонусов внезапно может оказаться маленьким). Накопил сумму того, что обычно покупаешь — потратил. Зачем мне тратить сейчас свои деньги на бутылку гранатового сока, если бонусов на неё уже хватает?

      Единственное разумное объяснение — если мне сейчас банк даёт за супермаркеты допустим 5%, тогда оплачивать сейчас деньгами становится выгодно.У друга автора столько карт разных банков, что у него круглый год хороший кэшбэк на продукты? Тогда прошу прощения, респект другу.

      PS: сам, дурень, в одном банке стартовые 500 бонус-рублей потерял, сверх этого зачем-то копил-копил, не тратил, а про срок жизни забыл. Банк, кстати, тоже забыл, потому что аннулировал на несколько месяцев позже, чем должен был, так что я вдвойне лопухнулся
    • 0
      Да сейчас почти никто не живет на стипендию (только если это не какая-нибудь правительственная, супер пупер). Это маленькие деньги, которые можно рассматривать только как дополнительный бонус.
  • –1
    Не удивлюсь, если всё и было так задумано.
    • +1
      0) Куча недовольных покупателей которая ходила в этот магазин ради бонусов.
      1) Затраты на разработку новой бонусной системы
      2) Деньги и продукты достались уж точно не магазину (за исключением наценки)
      3) Затраты на облако:
      Стоимость ******* рассчитывается индивидуально для каждого веб-сайта и зависит от его особенностей. Средняя стоимость составляет порядка 15.000-20.000 рублей за типовой веб-сайт.
      • 0
        Не люблю конспирологию, но иногда таких хитрые схемы проворачивают, что диву даешься.
        Например, под видом атаки хакеров и мошенников, магазин мог спустить кучу товара в никуда, товара которого никогда и не было, для каких-нибудь своих там целей, например, для махинаций с налогами или прочими бухгалтерскими вещами…

        Но если приземлиться, то кто-то в цепи разработчик-заказчик мог прекрасно знать слабые места системы и потом слить их на сторону за вознаграждение, инсайд такой.
  • +1
    Вот к чему приводит экономия на ИТшниках. А ведь так бизнесы и закрываются.
  • +1
    А что было необходимо сделать со стороны магазина, чтобы такого не произошло?
    1. ИТ: затруднить брутфорс — фильтрацию на IP;
    2. ИТ: «тупой» ответ на ошибочные данные (вида «логин или пароль указаны некорректно»);
    3. Процесс: снятие бонусов только по пластиковой карте, либо с двухфакторной авторизацией через СМС на номер телефона, к которому привязана карта;
    4. Регламент: любая активность по восстановлению карты, использованию нескольких карт должна фиксироваться и анализироваться.


    Что ещё?
    • 0
      5. Оповещение по СМС о действиях с картой
      6. Проверка по региону, если карта из Питера, а её используют в Тюмени — блокировать подобное.
      7. Запоминать подозрительных личностей которые в день по несколько раз расплачиваются бонусами с разных карт
      8. Проверять почту хотя бы раз в месяц. (я писал им на почту и не получил ответа, мой знакомый писал им фидбэк по поводу пропажи баллов — ему ответили шаблонной отпиской «они сгорели или ваши родственники потратили»)

      Можно придумать кучу организационно-технических методов, но оно им надо? Проще как всегда добавить пару костылей и надеяться на «авось».
      • 0
        Хорошее дополнение, спасибо.

        Я вопрос задавал больше для себя — из любой ошибки лучше бы извлекать какой-нибудь урок.
        И хотелось бы понимать как такая работа должна быть правильно организована.
      • 0
        6. Проверка по региону, если карта из Питера, а её используют в Тюмени — блокировать подобное.

        Плохой вариант. Ну вот у меня карта Лукойла из Волгограда. Мне очень нравиться, что я ей легко могу пользоваться по всей России. Без проблем заправляюсь в Калининграде и ее использую. Расстроился (но проникся), что не действует в Белоруссии и Литве)
        Ситилинк так же по всей России действует. А вот ДНС открылся в Калининграде, а их бонусная карта тут не действует: это меня расстроило.
        Люди все больше перемещаются и это нормально что у федеральных сетей действуют глобальные бонусные программы, системы скидок и т. п.
        7. Запоминать подозрительных личностей которые в день по несколько раз расплачиваются бонусами с разных карт

        Это как вообще? :-) Ну могут с камер записи на всякий случай оставлять на будущее.
        Правда что с этим всем делать? Это не мошеннические действия с деньгами, где есть уголовка. В случае с бонусами: мало вероятно, что кто-то сможет провернуть дело, даже если за руку поймают.
  • 0
    Сразу вспомнил бонусные программы РНКО «Платёжный центр»: это карточки Кукуруза в Евросети, карты Билайна, карты обувных магазинов Kari… Для списания баллов там всего лишь достаточно считывания штрихкода с пластика. Поскольку владельцы Кукуруз обычно копят баллы на то, чтобы купить гаджет в Евросети (кстати, меня удивило, что в ФиксПрайсе пробивают целиком весь чек за баллы, тогда как РНКО требует как минимум рубль оплачивать деньгами, чтобы скидка не была 100%-ой — или перестраховались, или Fix нарушает какие-то правила торговли), то у них баллов накапливается много.

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

    А всего-то надо списание подтверждать СМСкой. Но мозговитые ребята из ЦФТ (специально делаю акцент, уж всяко опытнее разработчиков Фикса, тем более если те были наёмными, а не штатными) не хотят этого делать! Белый песец
    • 0
      пробивают целиком весь чек за баллы
      Всё, в правилах ввели ограничение 50% на оплату баллами и ещё кучу ухудшений. Начисление теперь на покупку свыше (а может и от, надо уточнять) 150 рублей, с округлением а-ля Тинькофф — до целого в меньшую сторону, плюс со сгоранием через 180 дней. Вдобавок к этому у многих, включая меня, пустой баланс после повторной регистрации карты. Правда у меня потерялась сущая мелочь, но если по чекам выйдет, что полгода не прошло, а скорее всего так, то надо им устроить раздолбай.

      Самое забавное, что оферта датирована первым январём сего года — это вообще как так, внаглую? Чтоб у кого-то баллы с начала года пунктом про полгода аннулировать небось? Или опять какой-то дурень-вебмастер-наёмник виноват? Мда… Такое чувство, что магазину совсем наплевать на репутацию, что после случившегося позора ещё и такие «сюрпризы» выкатывает
  • 0
    Забавно. Оказывается я зря переживал, что потерял или куда-то заныкал этот брелок.
    image
  • 0
    На самом деле магазин сам себя защитил. Все эти бонусные программы в первую очередь для магазина, а не для вас. Они позволяют вам накапливать бонусы, тем самым привязывая вас к себе. Вы имея скидку в магазине, скорее всего пойдете в него, чтобы эту скидку потратить. Плюс еще что-то может купите.
    А тут получается, что какие-то левые люди, которые, возможно, никогда и не являлись их клиентами, у них за бесплатно затариваются.
    Поэтому то они сначала тупили (ну пропали бонусы: ну и хрен с ними), а когда поняли, что некоторые люди эти бонусы все на себя «завязали» и затариваются на них… тогда то и начали действовать.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.