Пользователь
0,0
рейтинг
21 февраля 2014 в 18:09

Разработка → Беда с web безопасностью или самый защищенный банк Америки из песочницы

Вдохновившись статьей MrGrey о реакций российских компаний на плохие новости о дырах в безопасности, решил добавить свои 5 копеек, рассказав о своем опыте общения с американским Банком, который называет самым защищенным банком и является одним из крупнейших банков Америки — и в общем, наверное, всего мира.

Началось все с поздравительного email'a о регистрации кредитки — в нем не работали ссылки, просто в следствии описки (был поставлен лишний пробел(%20) после http://). Безуспешно поискав email технической поддержки на сайте, я не нашел ничего лучшего, чем написать в онлайн чат, где меня конечно не поняли.

Расстроившись, ну и посмотрев код, который является мешаниной inline css и тучи js, решил попробовать спросить мнения Google о моем новом банке. Поискав что-то вроде site:bankname.com filetype:txt, я нашел ~20 страничек, на которых был открыт source backend code. На вид это походило как если бы вы не включили ShortTags, то есть сразу была открыта структура всех каталогов и манера написания кода.

Так же Google показал огромное количество stack traceback страниц этого чудесного банка, traceback давал прекрасное понимание о том, какой сервер использует чудо-банк, какие сервисы и библотеки.

Собрав все это, я описал все эти проблемы с указанием того, как я их нашел (линк на Google) на все email, которые определялись через whois для доменного имени (других email найти просто невозможно). Конечно, ответа не последовала, код был виден, traceback демонстрировал структуру. Но это же мой банк, подумав, собрал это все вместе и написал на страничку чудо-банка в Facebook и отправил парочку твитов. Ответа нет.

Расстроившись, да и разозлившись, нашел community forum чудобанка, создал там топик об ошибках, все описал… Ответа не было.
Иногда заходя просматривать топик, я обнаружил, что в углу топика есть забавный счетчик, который тупо считает количество загрузок страницы.

Дальше, недолго думая, написал пару строчек кода, которые в бекграунде обновляли страницу, что-то вроде:

#!/bin/bash
for i in {1..99999999}
do
echo "done $i"
wget -qO- topicUrl &> /dev/null
done


На 60000 тысячах «просмотров» мне ответили сразу двое сотрудников, что они все передадут, и им стыдно, что они не отвечали.
Ну что же, я рад… Но в процессе использования их community форума я обнаружил еще несколько мелких помарок/описок, о которых я и написал.

Затем обнаружил, что вообще вставка картинок на этом самом форуме отключена как-то настолько неправильно, что неотключена. Продемонстрировал это все администрации, рассказав попутно о том, как Opera позволяла исполнять js в картинках.

Помимо исполнения js картинка почему-то еще линковалась/линкуется к сайту, с которого она добавлена. И, конечно, переход на этот сайт происходит без всякого предупреждения (по-моему, превосходный способ своровать чьи-нибудь данные).

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

Ответов на это, я опять не получил. Решив убить сразу нескольких зайцев (найти работу в крутом банке и рассказать техническим ребятам из банка о их бедах), я попытался подать резюме на одну из вакансий, опубликованных на сайте. Что же вы думаете, конечно у меня ничего не получилось, система требовала заполнить, поля которых не было в html форме.

Когда я подавал заявление на работу, я, конечно, искал, и нашел что-то более-менее подходящее мне — это LAMP. Чего, судя по моим наблюдениям, чудо-банк не использовал (то, что было открыто наружу — все смотрелось javой). Подумав, я решил спросить Google где же там PHP. Гугл рассказал про Wordpress на одном из сабдоменов чудобанка. Перейдя туда обнаружился открытый wp-admin (никакой защиты от bruteforce) и устаревший Wordpress с известными всему миру xss, который я и опубликовал вновь на community форумe чудо-банка вместе с еще 5-ю страницами, на которых миру был открыт их backend код.

За время своего интереса к беспомощности этого банка я написал 13 постов и получил 2 ответа. Ответы были только о том, что информация будет переданна. И судя по тому, что большинство проблем уже закрыто, информация действительно была передана, но мне никто, ничего так и не сказал.

Так что беда с отношением к безопасности — она мировая.

Community форум банка.
Mikhail Shelemetyev @MikhailShel
карма
13,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

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

  • +21
    Лично я уже давно усвоил. Хуже всего с безопасностью именно в банках. И лучше в банки вообще не лезть с этим. Как правило ничего кроме попытки пришить статью — не получите.
    • +2
      Вообщем, не совсем согласен, взять Bof (bankofamerica.com)- отлично защищенный сайт, собственно поэтому я и думал что у Amex тоже будет не слишком плохо.
    • +12
      Яростно плюсую и передаю свой (бесценный) опыт.
      Да, попробовали пришить статью. Причём так нагло, некрасиво, я бы сказал, бездарно.

      О! RCE на государственном сайте или сайте банка? Ну его нахрен, даже смотреть не буду, мне хватило.
  • +1
    Если писать про хаки: больше UaF с интересным обходом ASLR или/и логических вещей. Если веб, то не стандартные RCE и челленджи, любопытные истории, и что бы Риск был повыше. Мы ж тут все «страшные Русские хакИры», о которых стока пишет запад!
    • +4
      О я не претендую совсем быть хакером, ничо не взламывал. Это так нытье о том насколько большие ребята не парятся о защите наших данных и вообще о защите.
      • 0
        Ок, принято. Тем не менее как защита Ваших данных была подвергнута риску? Какой был этот риск? К тому же как я понял, баги закрыли. Значит таки парятся)
        • 0
          xss напрямую украсть все куки;) Ну недостаточно, же, парились бы достаточно не было бы таких проблем вообще, неправильный robots.txt,etc.
          • 0
            HTTPOnly/Secure там на JSESSION, что важнее robots.txt,etc
            • 0
              А вот да, вы правы про JSESSION, ну можно было бы поохотить за куками от wordpress, но вообщем согласен.
              • +1
                Требования безопасности ваших данных не распространяются на комьюнити форумы, чаты и правильность ссылок в письмах (за это получит по голове подразделение рекламы). В обязанности подразделения безопасности входит защита в основном серверов системы Дистанционного банковского обслуживания (ДБО) и прочих «стратегически важных» серверов.
                К примеру сайт vtb24.ru постоянно фигурирует в различных списках сайтов, на которых нашли нелепые уязвимости. Вот только кроме рекламной информации о том, какой это замечательный банк, на этом сайте ничего нет. Интернет-банк у них находится на другом домене. Его они защищают. А эта рекламная заглушка — просто пшик. И уязвимости на нем безопасность закрывает, если больше нечем заняться.
                Хорошо это или плохо — каждый сам решит. Но таковы реалии. По мне, так пусть лучше защищают мои счета и деньги, а не следят за размером шрифтов на форуме.
                • 0
                  Открытый backend код был на непосредственном сайте.
                  Плохой robots.txt тоже «и на нем».
                  И если они и те же люди делают формум и основной сайт, а так оно и есть, не огорчат ли вас эти проблеммы?
                  • 0
                    Если честно, то не сильно.
                    Систему ДБО разрабатывают сторонние компании (крупные, известные на рынке игроки: BSS, СтепАп...). Очень редко банк использует собственную разработку. Настолько редко, что этот вариант можно не рассматривать.
                    К системе ДБО предъявляются определенные требования со стороны регулятора. Там и защита персональных данных и периодические аудиторские проверки, penetration-тесты и прочее.
                    А собственный сайт банка запросто может быть сделан вчерашним студентом. А поддержкой его могут заниматься девочки из отдела PR.
                    Ничего общего между этими двумя сущностями нет.
  • 0
    Было дело, репортил уязвимости им тоже, исправили, не ответили х)
    • +1
      Вообще считаю самая большая их проблема, это отсутствие банального email для тех. контактов.
      Ну и эффект страуса тоже шляпа конечно.
      • 0
        security@americanexpress.com
        abuse@americanexpress.com
        • 0
          не отвечают никто там, да и чтото нет этого не в контактах не в футере, а там этому место. Люди не должны искать место куда написать если они видят проблему, нет?
    • +1
      Сергей, видимо про не закрытый AXFR?=) А то он был, а теперь нету)
      • 0
        Ну из интересного, да ) bugscollector.com/db/americanexpress.com/51/
        • 0
          Да, видел я эти 1500 строчек. Но писать не стал. Ну их. В их случае — не ответили — это даже не так плохо)
  • 0
    Можно еще добавить о банках — даже если и с безопасностью все в порядке, то далеко не каждый банк дает удобную админку. Часто это выглядит как уродливая поделка из 90х, работает медленно или даже глючит и никому до этого нету дела. Сталкивался с таким в некоторых крупных европейских банках. Но, к счастью, есть и хорошие примеры, где все сделано удобно.
  • 0
    удалил, перенес в ответ
  • +4
    Лично участвовал в рефакторинге HTML кода для одной мировой банковской системы. Я раньше думал что как раз в банках должен быть лучший, показательный код, так как работают с деньгами, ответственность, все такое… Но как оказалось там на столько говнокод, что мне 10 лет назад в институте стыдно было бы такое показывать. А тут боевая система, огромная масса клиентов. Никаких паттернов, никаких MVC, все насыпью, в одной куче. Мне поначалу даже поплохело из-за того что мне придется в этом разбираться.
    Я поначалу пытался что-то сказать, улучшить, применить какие-то проверенные наработки, но на дворе 2014 год, а по прежнему отказываются использовать HTML5 типы полей, хотя на смартфонах и новых браузерах это в разы улучшит юзабилити интерфейса, хотя уже скоро откажутся от поддержки IE8.
    • 0
      Как человек работающий в банке и занимающийся оперативной разработкой скажу — без говнокода никуда. Порой приоритет ставится на время и тогда рефакторинг кода засовывается в одно известное место.

      Хотя долже заметить, что наличие говнокода зависит очень сильно от стартового этапа. Приведу пример:
      У нас в банке создали более менее отдельный отдел разработки только в 2007 году. До этого было с десяток человек, которые тянули все. В итоге сейчас один отдел занимается полностью рефакторингом и переписыванием css+html заточенного под IE 6 и повертье — работы там не початый край.
      У нас (java) с этим попроще — изначально очень умно подошли к проекту, в плане структурирования. Правда svn сервер и багтрекер отдали в аутсорс. И это пи*де* товарищи. Еще не было не одной недели, что бы аутсорс компания не накосячила. То мы переедем на нову версию eclipse. То откатимся. То мы на tomcat'e. То мы на GlassFish. То мы подключаем для workflow Apache Studio. То выделяем доп. сервер отдельно. Дурдом.
      Недавно подсчитал из 40 часовой рабочей недели примерно 6-8 часов мне приходится прыгать с бубном и ругаться по телефону выясняя кто накосячил — один из коллег или долбаные аутсорсеры (как правило они родимые, показывают бурную деятельность перед начальством). И ладно бы выделить на это отдельный день, скажем пятницу. Так нет, раз в два дня возникют подобные проблемы, на которые тратишь по 2-3 часа и кучу нервов.

      По поводу безопасности — к сожалению нету специального отдела и даже penetration test'ов не проводится (хотя считаю что по хорошому каждые 3 месяца такое должно делаться).
      Печально.
  • +11
    Филиалы американских банков в глубинках — вообще край непуганых идиотов. В одном наблюдал такую картину: основное помещение — считай аквариум, окна от потолка до пола. Ни жалюзи, ни штор. Первый этаж. Все сотрудники сидят вдоль окон, спиной к ним. Мониторы соответственно как на ладони видны с улицы. Клиент подошел, открывается его «дело» на экране — а там и номер соцстрахования в личной карте, и имена-адреса телефоны-счета. Мой вопрос «а не боитесь ли вы телескопа в доме через дорогу» вызвал лишь недоумение.
    • +1
      В американской глубинке я б этого тоже не боялся, там даже двери никогда не запирают.
  • +4
    По моему опыту беда во всех (допускаю, что возможны редкие исключения) компаниях не IT-профиля. Страна не так важна. Писал я в том году в одну мягко говоря крупную компанию. Дабы не играть с огнём, начал я с XSS. И паршиво в плане безопасности, и понятно, и показательно даже не специалисту (когда алерт выскакивает), и условно безопасно для меня. Пробывал писать на всякие admin@, security@ и т.п. Почти по всем адресам отвечал почтовый робот «Де, нету такого адреса у нас на деревне». Вроде бы прошёл в admin@ — ответа не было. Отправил в службу поддержки через сайт. Получил автоответ. Обождал неделю — послал вопрос: «Как там процесс устранение уязвимости». Получил ответ, цитата:
    У нас нету (прим.ред.: думаю, что в контексте надо понимать — «нету протокола взаимодействия») «процесса устранения уязвимости», но ваш запрос перенаправлен в наш департамент управления ПО.

    Перевод, но достаточно дословный.
    После этого тишина. SQLi им даже слать не стал. XSS живы до сих пор. SQLi, естественно, тоже.
    *irony*Видимо, мои письма прочитали только аналитики АНБ, и их они тоже не заинтересовали.*irony*
  • +1
    — является одним из крупнейших банков Америки — и в общем, наверное, всего мира.

    Вики говорит, что самый большой штатовский банк на 8-м месте в мире, первые — китацы.
    • 0
      Вы правы. Ну тут он очень на слуху и во всей рекламе позицинориует себя как самый защищенный.
      • 0
        Так это же не банк!
        • 0
          Кто не банк? americanExpress не банк? Чтоже тогда банк если не он? он делает как дебетовые так и кредетовые карты 100% банк:)
          • 0
            Я, конечно, не финансист, но, насколько я понимаю, карты тут не при чем. Амекс это «American multinational financial services corporation». Вот банк — HSBC Holdings plc is a British multinational banking and financial services company.

            Или вот список ста штатовских банков — амекса там нет, и тут одно из двух — либо амекс как минимум на 101-м месте в штатах, любо это не банк.
            • 0
              Я тоже не в коем разе не финансист но, позиционируют они себя как банк, возможно не являясь банком а являясь кредитной системой. Для я себя считают что банк это компания/ организация которая хранит деньги и занимается их переводами и т.п. эти ребята как раз этим и занимаются. Но опять же сторого говоря возможно это и не банк, но разве это суть?
              • 0
                То что они огромны я думаю не стоит никому доказывать, все слышали про AmericanExpress
              • +2
                Насколько я понимаю, Амекс — это плетежная система, такая же как Виза или Мастеркард… У меня есть карта амекс, но она от Костко, амекс там не при делах. Пытаюсь найти в гугле amex «checking account» — нет ничего.
                • 0
                  у меня там кредитка, ну вроде вот debit account savings нет?
                  • +1
                    Нет, saving — это накопительный счет, контор, которые предлагают хранить и преувеличивать деньги, полно, а checking — это как раз расчетный счет, который используется для обычных платежей, банк должен его предоставлять, а у амекса такого нет.

                    Лучше бы финансист какой прояснил, мне самому интересно стало.
                    • 0
                      Вечером спрошу у жены она тут получила мастера в финансах, а я не понимаю в чем разница расчетного и накопительно, суть то одна можно складывать деньги и деньги снимать/ платить. Накопительный просто еще +процент ежемесячный.
                      • 0
                        Ага. Но даже в описании есть разница: HSBC — банковская компания и ..., а Amex — финансовый сервис.
        • 0
          Смотря что считать банком в США. :) Если объект, в котором физлицо может открыть checking/saving счет, и на этот счет можно легко перечислить деньги через пару account number / routing number — то это самый натуральный банк. :)
          • 0
            А да! Я же вчера спросил, ну вообще суть Amex в том что он «и банк». Тоесть если бы у визы был свой банк, то она бы называлась банковской системой как Amex.
          • 0
            Я не знаю, но версии Форбс это вроде как не банк. Я тоже всегда думал, что не банк.
    • 0
      del
  • +2
    Вот кстати отличная статья показывающая как оно выглядит с другой стороны — стороны банка
    habrahabr.ru/post/201610/
    • +1
      хорошая статья, но в случаем с «пациентом» я лично ощущаю огромное влияние одной из древнейших цивицилизаций, ну как ощущаю в комментариях в js прямо написано откуда ноги растут. Тоесть здесь проблемма с неудачным аутсорсом скорее всего, а ну и о отделе тестрования забывать нельзя, он вообще какой-то призрачный видимо
    • 0
      Хорошо, однако, сначала читать комменты.
      Хотел разродиться длинным ответом про ИТ-кухню банков, а тут оказывается уже все расписали по полочкам.
  • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      Ага, из бессвязного потока текста я так и не понял, какие-нибудь существенные бреши были обнаружены? Раскрытие некоторого количества информации о структуре сайта, да, немаловажная вещь для начала работы хакера, но дальше-то что? Кроме того, с вероятность 146% официальный информационный сайт не имеет (вплоть до гальваники) ничего общего с банковским функционалом (эквайринг, работа с пластиком, онлайн-банкинг и т.п.) и вообще может находиться на сторонней площадке и разрабатываться/поддерживаться сторонней компанией, так делают многие банки.
      • 0
        Потенциально возможный фишинг прямо с сайта банка — это вполне себе хорошая дыра в безопасности, а исполнение чужого JS в контексте сайта банка потенциально позволяет подрисовать какую-нибудь форму для ввода финансовой информации прямо на сайте банка.
        И если левый сайт пользователь сможет отличить, то такая форма на официальном сайте вызовет куда меньше подозрений. А уж как заставить зайти на эту форму — это уже дело десятое, но отлично отлаженное.
        • 0
          Настолько отлично отлаженное, что извращаться и делать это на настоящем сайте не требуется. Слишком ненадежно и рискованно, пока рассылаешь фишинговые письма, сайт может измениться, дыру могут закрыть (причем даже не намеренно, а просто с очередным апдейтом). Проще запилить похожую страничку, типа alfablank.ru вместо alfabank.ru.
          • 0
            Заметить это возможно. Заметить же подлог на официальном сайте будет посложнее. А спам, не думаю, что повторная рассылка вызовет затруднения.
            • 0
              После первой рассылки банк получит минимум с десяток жалоб и все прикроет. Ни один здравомыслящий злоумышленник не будет использовать такие уязвимости для ведения фишинговой деятельности. Как первая ступень для развития атаки — да, но для фишинга — точно нет. Это глупо.
  • +4
    Как бы переданная «куда надо» информация не оказалась поводом для очередного громкого скандала — разоблачения «русского хакера».

    Сейчас сами сотрудники пару сотен тысяч распределят по своим кошелькам, а потом ваши посты и эту статью передадут вместе с информацией о пропадании денег, мол, наглый хакер не только спер бабки, но и хвастался на крупнейшем хакерском сайте!
  • –1
    Товарищи программисты и инженеры, меня как урожденного ГСМ с тягой к технологии интересует вопрос: а реально и сделать идеально безопасную и безглючную компьютерную систему, к примеру ту, что отвечает за полёт самолёта или ракеты? Не берем в расчет аппаратную часть и социальную, интересно только в части программной. Пусть это будет операционка но настолько безупречно вылизана, что в ней всё продумано и она никогда не зависнет и не сломается…

    Спасибо.
    • –1
      Конечно. Даже ты можешь такую сделать. Возьми свой копьютер, выключи и утопи тёмной ночью в самом глубоком месте какой-нибудь полноводной реки без свидетелей. Почти идеальная безопасность. Но для лучшей защиты, конечно, лучше бы оборудование перед утоплением сжечь.
      • –1
        Для сжигания ещё что-нибудь из горюче-смазочных материалов надо добыть…
      • 0
        Странно, думал петросяны тут не особо в почете.
        • –1
          Идеальной безопасности не бывает. Все алгоритмы шифрования, кроме ровно одного, взламываются за конечное время, при чём с ростом скоростей процессоров, это время только уменьшается. Такой ответ больше нравится?
          • –1
            Да. Откуда такой снобизм, а?

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