Эксплуатация индустриальных кооперативных роботов cvv sites reddit, free carding dumps

Традиционные индустриальные роботы довольно скучны, поскольку являются автономными или работают в рамках ограниченных возможностей и выполняют повторяющиеся, запрограммированные задачи на производстве.
Автор: Lucas Apa (@lucasapa)
Традиционные индустриальные роботы довольно скучны, поскольку являются автономными или работают в рамках ограниченных возможностей и выполняют повторяющиеся, запрограммированные задачи на производстве ([1] см. раздел Ссылки). Обычно эти роботы выполняют обязанности, сопряженные с опасностью, и решают задачи, непосильные для рабочих. То есть, этот тип роботов функционирует изолированно от людей и другой более продвинутой техники.
С другой стороны, новое поколение кооперативных роботов (или «коботов») работает совместно с людьми в общих рабочих пространствах и соблюдает все стандартны безопасности, вместо выполнения автоматизированных и изолированных операций. Коботы могут разучивать движения, «смотреть» через HD-камеры и «слушать» через микрофоны и, как следствие, оказывают серьезное подспорье бизнесу.
Вопрос: Могут ли эти роботы нанести вред человеку?
Ответ: Исследование Лаборатории Роботизации и Управления университета École de technologie supérieure (ÉTS) в Монреале (Канала) наглядно показывает, что даже небольшая по размерам модель UR5 вполне может нанести серьезный вред человеку [8]. Даже на небольших скоростях силы этих коботов вполне достаточно для появления трещин в черепе [9].
Вопрос: Подождите… Разве у этих роботов нет специальных функций, которые предотвращают нанесение вреда находящимся рядом людям?
Ответ: Есть, но, как будет продемонстрировано далее, эти функции могут быть взломаны удаленно.
Вопрос: Где используются подобные роботы?
Ответ: По всему миру в серийных производствах и каждый день [10].
Интеграторы определяют все настройки безопасности
Компания Universal Robots – производитель роботов UR. Компания, которая устанавливает роботов по месту, называется интегратором. Только интегрированные и установленные роботы рассматриваются как решение, готовое к использованию. Интеграторы роботов UR отвечают за то, чтобы любой потенциальный вред от всей роботизированной системы был исключен. Этот комплекс мер включает (но не ограничивается) следующее [11]:
В компании Universal Robots признали потенциально опасные и важные факторы риска, которые должны учитываться интеграторами. Например:
Некоторые функции, имеющие отношение к безопасности, специально спроектированы для коботов и особенно уместны в областях, которые затрагивает анализ рисков, проводимый интегратором. Например:
Рисунок 5: Использование виртуальных плоскостей [12]
Безопасность ввода/вывода: когда активируется функция безопасности ввода (через аварийные кнопки, сенсоры и т. д.), посылается слабый сигнал на входные выводы, и система безопасности переключается в «дежурный» режим.
Рисунок 6: Сканер безопасности [13]
Безопасные настройки эффективны для предотвращения множество потенциальных инцидентов. Однако может случиться так, что эти функции будут под контролем злоумышленника, и возникнет реальная угроза человеческой жизни.
Рисунок 7: Выдержка из руководства пользователя для робота UR
Удаленное изменение настроек безопасности
«Настройки безопасности следует менять только по результатам анализа рисков, который выполняется интегратором [14]. Если любой параметр безопасности изменен, всю роботизированную систему следует рассматривать как новую, и, соответственно, весь процесс проверки безопасности, включая оценку рисков, должен быть обновлен».
Процесс удаленного изменения настроек безопасности состоит из следующих шагов:
Шаг 1. Подтверждение версии удаленной системы посредством эксплуатации проблемы в механизме аутентификации на сервере UR Dashboard Server.
Шаг 2. Эксплуатация переполнения буфера стека в службе UR Modbus TCP и выполнение команд от имени суперпользователя.
Шаг 3. Модификация файла safety.conf, что отменяет все общие ограничения безопасности, ограничения соединений, границ и безопасные значения ввода/вывода.
Шаг 4. Осуществление коллизии при подсчете контрольной суммы и загрузка нового файла. Мы должны подделать этот номер, поскольку интеграторы, скорее всего, сделали запись текущей контрольной суммы на аппаратных средствах (например, жестком диске), так как это наиболее распространенная практика.
Шаг 5. Перезагрузка робота и обновление настроек безопасности из нового файла. Этот процесс должен пройти незаметно.
Шаг 6. Перемещение робота в хаотичной и опасной манере посредством эксплуатации проблемы аутентификации в службе управления роботом UR.
Во время анализа образа прошивки ursys-CB3.1-3.3.4-310.img мне удалось найти входные точки и службы, позволяющие другим машинам в сети взаимодействовать с операционной системой. В этом демо-примере я использовал симулятор URSim, предоставляемый производителем, с настоящим бинарным файлом из образа прошивки робота. Мне удалось создать измененные версии этого бинарного файла для частичного запуска на стандартной Linux-машине даже при том, что этот файл был пригоден для использования в симуляторе вместе с экспериментальной версией эксплоита.
В главном бинарном файле URControl используются различные сетевые службы, и в большинстве собственных протоколов не реализованы сколь-нибудь серьезные механизмы аутентификации. Например, любой пользователь сети может отправить команду к одной из этих служб и получить удаленную версию запущенного процесса (Шаг 1):
Рисунок 8: Получение версии удаленного процесса
Теперь, когда я знаю, что в удаленной системе используется уязвимое ядро ursys-CB3.1-3.3.4-310 (модели роботов UR3, UR5 или UR10), то могу эксплуатировать удаленную службу для компрометирования робота (Шаг 2).
Служба UR Modbus TCP (порт 502) не предоставляет механизмов аутентификации для исходной команды. Таким образом, злоумышленник может переключить робота в такое состояние, которое негативно скажется на контролируемом процессе. Злоумышленник, подсоединившись к роботу через IP-адрес, может выполнять запросы чтения/записи к службе Modbus, чтобы частично изменить состояние робота или отсылать запросы устройствам, управляющим перемещениям для изменения состояния сочленений.
Метод изменения безопасных настроек, связанный с отсылкой запросов на запись к Modbus, не сработал. Однако была найдена уязвимость, связанная с переполнением буфера в стеке получателя службы UR Modbus TCP (внутри основного бинарного файла URControl).
Переполнение буфера в стеке было основано на использовании функции recv, которая использует размер буфера, определяемый пользователем, а конкретно, сколько байтов из сокета будет скопировано. Довольно распространенная проблема.
Рисунок 9: Схема переполнение стека на базе параметра функции recv
Перед переходом к рассмотрению эксплоита, рассмотрим используемые методы защиты. Linux-ядро робота настроено на рандомизацию (randomize_va_space=1 => ASLR) позиций в стеке, странице виртуальных разделяемых динамических объектов и областях разделяемой памяти. Более того, в основном бинарном файле используется бит NX (No eXecute), который не позволяет записывать и выполнять никакие сегменты.
При переполнении целевого буфера мы также переполняем указатели на аргументы функций. Перед возвратом в функции эти аргументы используются в вызовах других функций, и мы должны предоставить тем вызовам корректные значения/структуры. Иначе мы никогда не достигнем конца функции и не сможем управлять потоком выполнения.
Рисунок 10: Указатель edx+0x2c должен быть корректным
На рисунке выше указатель edx+0x2c разыменован и используется в качестве аргумента в вызове 0x82e0c90. Проблема возникает после того, как EBX (вычисленный на базе предыдущего, контролируемого нами, указателя в регистре EDX) должен указывать на структуру, где находится файловый дескриптор, который последствии закрывается.
Рисунок 11: ebx+01014 должен содержать значение 0
Чтобы выбрать статический адрес, удовлетворяющий этим двум требованиям, я выбрал следующую статическую область, поскольку все другие изменяются из-за использования ASLR.
Рисунок 12: Синим цветом подсвечена выбранная статическая область
Я написал несколько скриптов для поиска и нашел подходящий адрес 0x83aa1fc, который удовлетворяет обоим вышеуказанным условиям:
Теперь, когда удовлетворены оба этих условия, выполнение сможет продолжиться до окончания этой функции, и я получу управление над регистром EIP, поскольку сохраненный регистр в стеке был переполнен:
Рисунок 13: Состояние регистров и указателей при переполнении буфера
На данный момент я контролирую большинство регистров, и теперь нужно разместить шелл-код и перенаправить поток выполнение туда, где будет находиться шелл-код. Для решения этой задачи будет использоваться возвратно-ориентированное программирование (ROP). Главная проблема заключается в нахождении достаточного количества гаджетов для надежной работы эксплоита. В моем случае автоматические утилиты по поиску ROP-цепей не сработали, я решил все сделать вручную.
Вначале нужно сосредоточить внимание на конечной задаче, а конкретно, развертывании обратного шелла, который будет подключаться к моей машине. При создании удаленных ROP-эксплоитов в Linux ключевую роль играют системные вызовы. В зависимости от качества найденных гаджетов на базе инструкций int, я смогу работать с примитивами наподобие write или dup2 для повторного использования уже созданного сокета с целью возврата шелла или реализации других пост-эксплуатационных стратегий.
В этом бинарном файле я нашел лишь одну подходящую инструкцию int 0x80, которая используется для запуска системных вызовов. Поскольку гаджет только один, соответственно, я смогу выполнить только один системный вызов. Я выбрал функцию execve. Инструкция int 0x80 требует настройки регистра с номером системного вызова (в нашем случае – EAX со значением 0xb) и регистра (EBX), который будет указывать на специальную структуру). Эта структура содержит массив указателей, указывающих на аргументы выполняемой команды.
Из-за специфики уязвимости я не могу использовать пустые байты (0x00) в запрашиваемом буфере, что представляет собой проблему, поскольку нам нужно отсылать команды и аргументы, а также создать массив указателей, заканчивающийся пустым байтом. Чтобы решить этот вопрос, я временно использовал группы байтов 0xFF, которые затем, во время выполнения ROP, заменил на 0x00.
В псевдокоде этот вызов будет выглядеть так: (вызов обратного TCP-шелла):
Рисунок 14: Аргументы системного вызова execve
Вся контролируемая информация находится в стеке, и вначале я попытался выровнять указатель стека (ESP) относительно наибольшей управляемой секции (STAGE 1). Я разделил самые большие управляемые секции на два участка, поскольку оба могут потенциально содержать множество ROP-гаджетов.
Рисунок 15: Схема стека с разделением на два участка
Как было сказано выше, на данный момент я контролирую регистры EBX и EIP. Далее нужно выровнять ESP относительно любого из управляемых сегментов, и я начал конструировать ROP-цепь.
Следующий гаджет (ROP1 0x8220efa) используется для выравнивания ESP:
Рисунок 16: Добавление первого гаджета для выравнивания ESP
Таким образом, ESP = ESP + EBX – 1 (адрес секции STAGE 1 в стеке). Теперь ESP выровнен относительно секции STAGE 1. Регистр EBX должен уменьшить ESP на 0x137 байт, и я использовал число 0xfffffec9 (4294966985), после добавления которого в ESP устанавливается нужное значение.
Когда у гаджета выполняется инструкция retn, ROP-гаджеты в секции STAGE 1 начинают выполнять свою работу. Участок STAGE 1 работает по следующему алгоритму:
Участок STAGE 2 работает по следующему алгоритму:
Рисунок 18: Алгоритм работы секции STAGE 2
Как только полезная нагрузка с обратным TCP-шеллом выполнилась, появляется обратное соединение к моему компьютеру. Теперь я могу использовать sudo для запуска команд в системе управления роботом от имени суперпользователя.
Настройки безопасности сохраняются в файле safety.conf (Шаг 3). Компания Universal Robots использует алгоритм CRC (STM-32) для поддержки целостности файла и сохраняет вычисленную контрольную сумму на диске. На самом деле, этот алгоритм не предоставляет никакой целостности настроек, поскольку можно спровоцировать коллизии или вычислить новые контрольные суммы для новых настроек, перезаписав специальные файлы в файловой системе. Я исследовал алгоритм вычисления для каждой настройки и создал альтернативный вариант. На видео я не подменял новое CRC-значение (находится в правом верхнем углу экрана), хотя подобную замену легко можно сделать (Шаг 4).
Перед модификацией настроек безопасности робота я настроил процесс, который по истечении 25 секунд автоматически инициирует новый экземпляр контроллера робота с новыми настройками. Этого времени достаточно для получения, модификации и обратной загрузки файла с настойками безопасности. Команда, показанная на рисунке ниже, инициирует новый процесс URControl. Я использовал Python, поскольку здесь при ответвлении я могу закрыть все текущие дескрипторы файлов запускаемого процесса. Не следует забывать, что я провожу ответвление из объекта обратного шелла, и мне нужно создать новый процесс, который не наследует файловые дескрипторы, поскольку эти дескрипторы закрываются, когда родительский процесс URControl прекращает свое существование (во время перезагрузки и внедрении новых настроек безопасности).
Рисунок 19: Инициация подчиненного процесса с закрытием файловых дескрипторов
Теперь у меня есть 25 секунд для загрузки текущего файла, модификации, вычислении нового CRC, загрузки обратно и прекращение работы процесса URControl (который работает со старой конфигурацией). Для остановки текущего процесса URControl я использую команду kill (Шаг 5).
Рисунок 20: Остановка текущего экземпляра процесса URControl при помощи команды kill
Далее я отсылаю эту команду службе URControl для активации новой загруженной инсталляции, и отключаю все всплывающие окна, которые могут появиться в пользовательском интерфейсе.
Рисунок 21: Команда для загрузки инсталляции с обновленными настройками
Кроме того, злоумышленник может воспользоваться функцией movej, предусмотренной в службе URControl, для удаленного перемещения соединений с нужной скоростью и ускорением (Шаг 6), что показано в конце видео.
В этой статье было продемонстрировано, что новая и дорогая технология имеет много технических уязвимостей, наподобие переполнения буфера, в одном из протоколов, которые позволяют осуществлять удаленные атаки, нарушающих целость всей роботизированной системы. Мы сообщили обо всех брешах производителям еще в январе, но проблемы до сих пор не решены.
Так чего же мы ждем?
Ссылки
В статье мы расскажем о наиболее интересных стартапах в области кибербезопасности, на которые следует обратить внимание.
Хотите узнать, что происходит нового в сфере кибербезопасности, – обращайте внимание на стартапы, относящиеся к данной области. Стартапы начинаются с инновационной идеи и не ограничиваются стандартными решениями и основным подходом. Зачастую стартапы справляются с проблемами, которые больше никто не может решить.
Обратной стороной стартапов, конечно же, нехватка ресурсов и зрелости. Выбор продукта или платформы стартапа – это риск, требующий особых отношений между заказчиком и поставщиком . Однако, в случае успеха компания может получить конкурентное преимущество или снизить нагрузку на ресурсы безопасности.
Ниже приведены наиболее интересные стартапы (компании, основанные или вышедшие из «скрытого режима» за последние два года).
Компания Abnormal Security, основанная в 2019 году, предлагает облачную платформу безопасности электронной почты, которая использует анализ поведенческих данных для выявления и предотвращения атак на электронную почту. Платформа на базе искусственного интеллекта анализирует поведение пользовательских данных, организационную структуру, отношения и бизнес-процессы, чтобы выявить аномальную активность, которая может указывать на кибератаку. Платформа защиты электронной почты Abnormal может предотвратить компрометацию корпоративной электронной почты, атаки на цепочку поставок , мошенничество со счетами, фишинг учетных данных и компрометацию учетной записи электронной почты. Компания также предоставляет инструменты для автоматизации реагирования на инциденты, а платформа дает облачный API для интеграции с корпоративными платформами, такими как Microsoft Office 365, G Suite и Slack.
Копания Apiiro вышла из «скрытого режима» в 2020 году. Ее платформа devsecops переводит жизненный цикл безопасной разработки «от ручного и периодического подхода «разработчики в последнюю очередь» к автоматическому подходу, основанному на оценке риска, «разработчики в первую очередь», написал в блоге соучредитель и генеральный директор Идан Плотник . Платформа Apiiro работает, соединяя все локальные и облачные системы управления версиями и билетами через API. Платформа также предоставляет настраиваемые предопределенные правила управления кодом. Со временем платформа создает инвентарь, «изучая» все продукты, проекты и репозитории. Эти данные позволяют лучше идентифицировать рискованные изменения кода.
Axis Security Application Access Cloud – облачное решение для доступа к приложениям , построенное на принципе нулевого доверия. Он не полагается на наличие агентов, установленных на пользовательских устройствах. Поэтому организации могут подключать пользователей – локальных и удаленных – на любом устройстве к частным приложениям, не затрагивая сеть или сами приложения. Axis вышла из «скрытого режима» в 2020 году.
BreachQuest, вышедшая из «скрытого режима» 25 августа 2021 года, предлагает платформу реагирования на инциденты под названием Priori. Платформа обеспечивает большую наглядность за счет постоянного отслеживания вредоносной активности. Компания утверждает, что Priori может предоставить мгновенную информацию об атаке и о том, какие конечные точки скомпрометированы после обнаружения угрозы.
Cloudrise предоставляет услуги управляемой защиты данных и автоматизации безопасности в формате SaaS. Несмотря на свое название, Cloudrise защищает как облачные, так и локальные данные. Компания утверждает, что может интегрировать защиту данных в проекты цифровой трансформации. Cloudrise автоматизирует рабочие процессы с помощью решений для защиты данных и конфиденциальности. Компания Cloudrise была запущена в октябре 2019 года.
Cylentium утверждает, что ее технология кибер-невидимости может «скрыть» корпоративную или домашнюю сеть и любое подключенное к ней устройство от обнаружения злоумышленниками. Компания называет эту концепцию «нулевой идентичностью». Компания продает свою продукцию предприятиям, потребителям и государственному сектору. Cylentium была запущена в 2020 году.
Компания Deduce , основанная в 2019 году, предлагает два продукта для так называемого «интеллектуального анализа личности». Служба оповещений клиентов отправляет клиентам уведомления о потенциальной компрометации учетной записи, а оценка риска идентификации использует агрегированные данные для оценки риска компрометации учетной записи. Компания использует когнитивные алгоритмы для анализа конфиденциальных данных с более чем 150 000 сайтов и приложений для выявления возможного мошенничества. Deduce заявляет, что использование ее продуктов снижает ущерб от захвата аккаунта более чем на 90%.
Автоматизированная платформа безопасности и соответствия Drata ориентирована на готовность к аудиту по таким стандартам, как SOC 2 или ISO 27001. Drata отслеживает и собирает данные о мерах безопасности, чтобы предоставить доказательства их наличия и работы. Платформа также помогает оптимизировать рабочие процессы. Drata была основана в 2020 году.
FYEO – это платформа для мониторинга угроз и управления доступом для потребителей, предприятий и малого и среднего бизнеса. Компания утверждает, что ее решения для управления учетными данными снимают бремя управления цифровой идентификацией. FYEO Domain Intelligence («FYEO DI») предоставляет услуги мониторинга домена, учетных данных и угроз. FYEO Identity будет предоставлять услуги управления паролями и идентификацией, начиная с четвертого квартала 2021 года. FYEO вышла из «скрытого режима» в 2021 году.
Kronos – платформа прогнозирующей аналитики уязвимостей (PVA) от компании Hive Pro , основанная на четырех основных принципах: предотвращение, обнаружение, реагирование и прогнозирование. Hive Pro автоматизирует и координирует устранение уязвимостей с помощью единого представления. Продукт компании Artemis представляет собой платформу и услугу для тестирования на проникновение на основе данных. Компания Hive Pro была основана в 2019 году.
Израильская компания Infinipoint была основана в 2019 году. Свой основной облачный продукт она называет «идентификация устройства как услуга» или DIaaS , который представляет собой решение для идентификации и определения положения устройства. Продукт интегрируется с аутентификацией SSO и действует как единая точка принуждения для всех корпоративных сервисов. DIaaS использует анализ рисков для обеспечения соблюдения политик, предоставляет статус безопасности устройства как утверждается, устраняет уязвимости «одним щелчком».
Компания Kameleon , занимающаяся производством полупроводников, не имеет собственных фабрик и занимает особое место среди поставщиков средств кибербезопасности. Компания разработала «Блок обработки проактивной безопасности» (ProSPU). Он предназначен для защиты систем при загрузке и для использования в центрах обработки данных, управляемых компьютерах, серверах и системах облачных вычислений. Компания Kameleon была основана в 2019 году.
Облачная платформа безопасности данных Open Raven предназначена для обеспечения большей прозрачности облачных ресурсов. Платформа отображает все облачные хранилища данных, включая теневые облачные учетные записи, и идентифицирует данные, которые они хранят. Затем Open Raven в режиме реального времени отслеживает утечки данных и нарушения политик и предупреждает команды о необходимости исправлений. Open Raven также может отслеживать файлы журналов на предмет конфиденциальной информации, которую следует удалить. Компания вышла из «скрытого режима» в 2020 году.
Компания Satori, основанная в 2019 году, называет свой сервис доступа к данным “DataSecOps”. Целью сервиса является отделение элементов управления безопасностью и конфиденциальностью от архитектуры. Сервис отслеживает, классифицирует и контролирует доступ к конфиденциальным данным. Имеется возможность настроить политики на основе таких критериев, как группы, пользователи, типы данных или схема, чтобы предотвратить несанкционированный доступ, замаскировать конфиденциальные данные или запустить рабочий процесс. Сервис предлагает предварительно настроенные политики для общих правил, таких как GDPR , CCPA и HIPAA .
Компания Scope Security недавно вышла из «скрытого режима», будучи основана в 2019 году. Ее продукт Scope OmniSight нацелен на отрасль здравоохранения и обнаруживает атаки на ИТ-инфраструктуру, клинические системы и системы электронных медицинских записей . Компонент анализа угроз может собирать индикаторы угроз из множества внутренних и сторонних источников, представляя данные через единый портал.
Основным продуктом Strata является платформа Maverics Identity Orchestration Platform . Это распределенная мультиоблачная платформа управления идентификацией. Заявленная цель Strata – обеспечить согласованность в распределенных облачных средах для идентификации пользователей для приложений, развернутых в нескольких облаках и локально. Функции включают в себя решение безопасного гибридного доступа для расширения доступа с нулевым доверием к локальным приложениям для облачных пользователей, уровень абстракции идентификации для лучшего управления идентификацией в мультиоблачной среде и каталог коннекторов для интеграции систем идентификации из популярных облачных систем и систем управления идентификацией. Strata была основана в 2019 году.
SynSaber , запущенная 22 июля 2021 года, предлагает решение для мониторинга промышленных активов и сети. Компания обещает обеспечить «постоянное понимание и осведомленность о состоянии, уязвимостях и угрозах во всех точках промышленной экосистемы, включая IIoT, облако и локальную среду». SynSaber была основана бывшими лидерами Dragos и Crowdstrike.
Traceable называет свой основной продукт на основе искусственного интеллекта чем-то средним между брандмауэром веб-приложений и самозащитой приложений во время выполнения. Компания утверждает, что предлагает точное обнаружение и блокирование угроз путем мониторинга активности приложений и непрерывного обучения, чтобы отличать обычную активность от вредоносной. Продукт интегрируется со шлюзами API. Traceable была основана в июле 2020 года.
Компания Wiz, основанная командой облачной безопасности Microsoft, предлагает решение для обеспечения безопасности в нескольких облаках, рассчитанное на масштабную работу. Компания утверждает, что ее продукт может анализировать все уровни облачного стека для выявления векторов атак с высоким риском и обеспечивать понимание, позволяющее лучше расставлять приоритеты. Wiz использует безагентный подход и может сканировать все виртуальные машины и контейнеры. Wiz вышла из «скрытого режима» в 2020 году.
Работает на CMS “1С-Битрикс: Управление сайтом”
cvv sites reddit free carding dumps