Это позволяет обеспечить адаптацию системы под кассира, а не кассира под систему, как это обычно происходит. Благодаря этому снижается время, требуемое для обучения кассиров, повышается уверенность кассира в своих силах, уменьшается количество обращений кассиров за помощью к главным кассирам/администраторам.
Тем самым увеличивается общая производительность труда персонала, растет пропускная способность магазина и повышается степень удовлетворенности покупателей.
Источник www.tadviser.ruNcr это в строительстве
1. National Cash Register — компания NCR Corporation, разработчик систем обслуживания с массовым параллелизмом;
3. noncompliance report — сообщение о несоответствии техническим условиям; техническая записка о несоответствии;
5. nonconformance report — акт о несоответствии техническим условиям; сообщение о несоответствии техническим условиям;
Монтаж металлической подсистемы на дом из газобетона. Монтаж фиброцементного сайдинга Cedral.
Англо-русский словарь технических аббревиатур . 2011 .
Смотреть что такое «NCR» в других словарях:
NCR — can refer to several topics: nCr as an abbreviation of the mathematics formula from n choose r NCR Corporation, a technology company specializing in solutions for businesses, formerly known as National Cash Register No carbon required paper, a… … Wikipedia
NCR — steht für: National Capital Region, Staatshoheitliches Gebiet einer Hauptstadt National Cash Register, das US amerikanische Unternehmen NCR Corporation National Catholic Reporter, eine US amerikanische römisch katholische Zeitschrift Natürliche… … Deutsch Wikipedia
NCR — [Abk. für gleichbed. engl. acrylonitrile chloroprene rubber]: DIN Kurzzeichen für Acrylnitril Chloropren Kautschuk … Universal-Lexikon
NCR — Para otros usos de este término, véase Nuevo Camino Revolucionario. La corporación NCR es una TIC especializada en soluciones para la venta al por menor y la industria financiera. Sus principales productos son: cajas (puntos de venta en… … Wikipedia Español
NCR — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. NCR peut désigner : (en) National Capital Region. Le nom officiel de la région du Grand Manille aux Philippines. (en) National Capital Region. Le nom … Wikipédia en Français
NCR — • National Cash Register internationaler Elektronik Hersteller http://www.ncr.com/ • No Calibration Required NASA … Acronyms
NCR — [1] National Cash Register internationaler Elektronik Hersteller (http://www.ncr.com/) [2] No Calibration Required ( > NASA Acronym List ) … Acronyms von A bis Z
NCR — An American based computer manufacturer. Tel 1 800 call NCR … International financial encyclopaedia
NCR Corporation — Type Public (NYSE: NCR) Industry Technology … Wikipedia
NCR Corporation — Rechtsform Aktiengesellschaft Sitz Duluth (Minnesota) Mitarbeiter … Deutsch Wikipedia
История бизнеса: как лизинг помог «ТСК»
NCR Corporation — Тип Публичная компания Листинг на бирже NYSE … Википедия
Источник technical_abbreviations.academic.ruНизкоуровневый взлом банкоматов NCR
Существуют системы, доступа к которым у простых смертных нет по умолчанию. И разработчики таких систем наивно полагают, что они защищены от проникновения и зорких глаз исследователей.
Взять хотя бы банкоматы (АТМ). Нередки случаи, когда к АТМ подходят неизвестные, подключают ноутбук, забирают деньги и уходят, не оставляя каких-либо логов в системе. А недавние истории с «котлетами» (вредоносное ПО под названием Cutlet Maker) и подавно подтверждают, что неуязвимых систем нет — есть недоисследованные.
Начало исследования
Бытует мнение, что единственный способ украсть деньги из банкомата — это приехать на самосвале, подцепиться к банкомату крюком и выдрать его с потрохами, а потом использовать болгарку, лом и газосварочный аппарат. Но есть и другой метод.
После непродолжительных поисков на Ebay у меня на столе оказалась платка диспенсера NCR USB S1 Dispenser с прошивкой. Цели были такие:
- найти обход шифрования команд, которые посылает компьютер по USB самому диспенсеру, в частности на выдачу банкнот;
- узнать, как обойти необходимость физического доступа в сейф для проведения аутентификации (передергивания кассеты) для генерации ключей шифрования команд из предыдущего пункта.
Прошивка
Прошивка представляет из себя ELF-файл под процессор NXP ColdFire (Motorola 68040, мой любимый процессор), работающий на VxWorks v5.5.1.
В ELF-файле интерес представляют две основные секции — .text и .data:
- В одной из них содержится код, который крутится все основное время (назовем его основной прошивкой), когда диспенсер подключен к системнику в верхней части АТМ.
- Во второй лежит упакованный с помощью zlib код загрузчика (его местное название USB Secure Bootloader), который отвечает за заливку прошивки и запуск основного кода.
Внутреннее устройство основной прошивки
Если разделять код на основные составляющие, то получится такая схема (в порядке подчинения):
- Поток, который занимается получением USB-пакетов и распределением их по сервисам.
- Сервисы — основные исполняющие единицы, каждому из них отведена своя роль и у каждого есть свои задачи (классы).
- Классы — здесь это задачи, которые может выполнять тот или иной сервис с помощью контроллеров.
- Контроллеры — собственно «воркеры» (workers), которые занимаются валидацией присланных им задач, их выполнением, а также формированием ответных пакетов.
Так как кода в прошивке много, было решено начать с поиска всех возможных сервисов, а дальше уже смотреть, куда передаются задачи.
В итоге нашлись следующие сервисы, которые как раз должны выполнять то, что я ищу:
1) DispTranService (Dispenser Transaction Service): работа с шифрованными командами, формирование пачек банкнот, аутентификация. Можно сказать, самое интересное — здесь.
2) securityService: после аутентификации на стороне диспенсера генерируется сессионный ключ, который по запросу компьютера отправляется на него в зашифрованном виде. Этим ключом будут шифроваться все важные команды — выдача, формирование пачки банкнот.
Впоследствии на глаза попался еще один сервис: UsbDownloadService. Его задача – при подключении диспенсера к компьютеру и несоответствии версии прошивки диспенсера той, что хранится на компьютере банкомата, переходить в bootloader с целью заливки прошивки, с которой должна работать ОС (лежит в папке с ПО вендора на компьютере). Этот сервис также умеет отдавать информацию о версии прошивки.
Физическая аутентификация
Физическая аутентификация реализована на высочайшем уровне и защищает АТМ от простой отправки по USB команд на выдачу без авторизации. В данном случае она заключается в том, что только при открытом сейфе с деньгами нужно выполнить одно из следующих действий:
Но все это требуется только если уровень доступа установлен на максимальный, то есть физический. Всего их три: USB (0), логический (1) и физический (2). Остальные два используются сервисниками и разработчиками для отладки и тестирования прошивки. Ну а физический — крайне рекомендуется вендором к использованию по умолчанию.
Уязвимость
Далее описана критическая уязвимость (уже исправленная вендором на момент публикации статьи), которая позволяла при наличии доступа в сервисную зону, но без доступа в сейф (например, через проделанное в лицевой панели ATM отверстие) выполнять любые команды диспенсера, включая выдачу наличных.
Как выяснилось, UsbDownloadService принимает команды, не требующие шифрования. Звучит заманчиво. Но вдруг дальше все защищено, и название Secure Bootloader оправдает себя?
(Спойлер: не оправдает!)
We need to go deeper
Как уже было сказано, в секции .data лежит упакованный код загрузчика, который долгое время не вызывал у меня интереса, да и коллеги, когда исследовали прошивку, не обратили на него внимание.
Пока наличие загрузчика было тайной, оставался открытым вопрос: как же все-таки ПО на компьютере заливает прошивку? Ведь в основной прошивке ничего такого обнаружить не удалось.
Итак, bootloader распакован, загружен в IDA по смещению 0x100000 — теперь можно исследовать… Только символов нет!
Не беда: сравнение основной прошивки с кодом загрузчика, чтение datasheet контроллера — и начинает вырисовываться определенная картина.
Выяснилось, что заливка прошивки хоть и выглядит защищенной, таковой на деле не является. Всего-то нужно знать, как заливать ее правильно.
На полное понимание этого процесса было потрачено довольно много усилий и времени (подробнее об этом можно узнать из доклада «Blackbox is dead—Long live Blackbox!» на конференции Black Hat 2018 в Лас-Вегасе). Чего только стоит перепайка памяти NVRAM, заливка в нее бэкапа с целью «раскирпичивания» всего контроллера… Спасибо коллеге Алексею за терпение!
В итоге получился следующий алгоритм заливки прошивки в диспенсер:
1) Сгенерировать пару RSA-ключей и залить публичный ключ в контроллер.
2) Записать последовательно секции .data и .text из ELF по их физическим адресам из заголовков секций.
3) Подсчитать SHA-1 от записанных данных, зашифровать хеш приватным ключом, отправить в контроллер.
4) Подсчитать и отправить сумму всех записанных word-ов прошивки.
После чего, если все подсчитано и записано успешно, загрузится основная прошивка.
Выяснилось, что при записи прошивки существует только одно ограничение: версия прошивки должна быть не ниже текущей. Но ведь никто не мешает нам подменить версию прошивки в самих ее данных.
В итоге моя особая прошивка с antisecurity-фиксами была залита и успешно запущена!
К этому моменту код основной прошивки был хорошо изучен, найдены команды на выдачу банкнот. Теперь их можно посылать незашифрованными, и диспенсер их с радостью выполнит.
Выдача
После всего пережитого во время исследования (например, «закирпиченый» реальный банкомат), результат был таким приятным и компенсирующим усилия, что алгоритм захотелось повторить и с другим крупным вендором.
Самый что ни на есть настоящий банкомат начал натужно жужжать и охотно поделился с нами свежими хрустящими банкнотами (в данном случае вендорскими «фантиками»). Никакой магии не применялось: только ноутбук, мозг и USB-шнурок.
Выводы
Мы в очередной раз убедились, что, руководствуясь принципом security through obscurity, обеспечить надлежащую защиту невозможно. Проприетарность кода или прошивки совершенно не означает, что к ней в один прекрасный момент не получит доступ злоумышленник и не воспользуется найденными уязвимостями. Всем необходимым для реализации корыстных целей можно обзавестись при наличии определенной суммы денег.
Разработчики должны заниматься кодом, а безопасники — его защитой. Именно поэтому наиболее продуктивным подходом видится сотрудничество с ИБ-компаниями с достаточным опытом в обеспечении безопасности различных систем, которые помогут построить адекватную защиту в каждом конкретном случае.
P.S. Вендор подтвердил уязвимость (брешь также обнаружена и в другой модели — S2), которая была заявлена как исправленная в февральском фиксе 2018-го года.
Благодарности
До меня над прошивкой (правда без платы диспенсера) уже работали мои коллеги — Дима Скляров и Миша Цветков. Их наработки мне очень помогли в исследовании, за что им огромное спасибо! По части «железа» мне очень помог Алексей Стенников.
Источник habr.com