Автопортал || Авто - статьи

Сельскохозяйственная техника
Чтение RSS

Як обдурити датчики дорожнього руху

  1. Як шукати пристрої і дані про них
  2. Що можна зробити з прошивкою
  3. І тільки вантажівки ночами їдуть ..
  4. Що робити?

Детально про це дослідження було розказано на RSA US 2016, презентацію можна побачити тут .

Масово датчики дорожнього руху стали з'являтися в російських містах буквально в останні пару років. Спочатку білі коробки на стовпах помітили водії, які користуються антирадарами. Їх пристрої, що попереджають про вимірювання швидкості, реагували на випромінювання нових сенсорів точно так же, як і на радари дорожньої поліції. Але міська влада поставили датчики зовсім не заради цього приємного для них побічного ефекту. Пристрої вважають кількість машин різних габаритів в кожної зі смуг руху, визначають їх середню швидкість і віддають зібрану інформацію в єдиний операційний центр.

Так виглядають датчики дорожнього руху в Москві

В результаті місто отримує дані про завантаження доріг і на їх основі може, наприклад, планувати режим роботи світлофорів і розвитку дорожньої інфраструктури. У щотижневому звіті столичних транспортної влади можна побачити самі повільні і швидкі магістралі як інформацією Центру організації дорожнього руху (ЦОДД), так і за даними «Яндекса». Якщо другий стовпець формується на основі використання цієї функції на смартфонах, то наповнення першого було б неможливо без дорожньої інфраструктури, про яку піде мова.

Якщо другий стовпець формується на основі використання цієї функції на смартфонах, то наповнення першого було б неможливо без дорожньої інфраструктури, про яку піде мова

Щотижня столична влада публікують дані про найбільш швидких і повільних трасах міста

По суті датчики - це нижній рівень інфраструктури «розумного міста», вони віддають далі «сирі» дані про трафік, без яких неможлива ніяка аналітика і правильна настройка систем. Відповідно, інформація від сенсорів повинна бути точною. Але чи так це насправді? Чи може стороння впливати на роботу датчиків і збирається ними інформацію? Спробуємо відповісти на ці питання і зрозуміти, що можна поліпшити в міський ІТ-інфраструктурі.

Як шукати пристрої і дані про них

Будь-яке дослідження, в т.ч. і вбудованих систем, до яких відносяться датчики дорожнього руху, починається зі збору всіх доступних даних. Неможливо знати «в обличчя» всі моделі датчиків навіть у вузькому сегменті, якщо ви не займаєтеся ними професійно і кожен день, а це значить, що, найімовірніше, у вас не вийде відразу визначити виробника за зовнішнім виглядом. Тим цінніше все його логотипи і додані установниками бирки.

Якщо в результаті вдалося приблизно визначити модель за зовнішнім виглядом, то після цього на сайтах вендорів або дружніх їм інтеграторів можна знайти різну документацію і, якщо пощастить, готове ПО для роботи з пристроями. Ви майже напевно станете володарем маркетингової листівки; з великою часткою ймовірності знайдете і більш розгорнутий документ продає спрямування. Документація по установці також не рідкість, а ось найбільша і рідкісна удача - виявити повноцінне технологічне опис з системою команд пристрою.

Зручно автоматизувати процес роботи з датчиками, тобто не сидіти з ноутбуком під кожним стовпом, що не виглядати пристрої і не зупинятися біля кожного з них. Зараз це цілком можливо - для елементів «розумного міста» вже не рідкість підключення через бездротові протоколи. Але для автоматизації потрібно, по-перше, зрозуміти, за яким саме протоколу відповідає датчик, і, по-друге, як можна відокремити потрібні пристрої від всіх інших.

Для цього підійдуть будь-які особливості у відповідях, будь-які ідентифікатори. Наприклад, переважна більшість MAC-адрес записані на конкретних виробників (але не всі, існують і анонімні). Крім числових ідентифікаторів пристрої як правило мають літерні імена, які теж можуть бути типовими, наприклад, назва моделі плюс інкрементний індекс.

Все це дає можливість написати сканер для пошуку саме цікавлять нас пристроїв. Одна з моделей, встановлених в Москві, використовує технологічне з'єднання по Bluetooth. І MAC-адреси, і «дружні імена» пристроїв характерні і дозволяють додати в базу даних тільки датчики руху, виключивши прилеглі смартфони і телевізори. Безпека Bluetooth виходить за рамки статті, тому про компрометацію BT-пристроїв ми говорити не будемо. Московський уряд було повідомлено про недоліки настройки в листопаді 2015 р

Записи про датчиках руху, збережені в базі даних

Я використовував Python, PostgreSQL і трохи C. У режимі реального часу, тобто під час проїзду повз датчика, сканер визначає MAC, friendly name і координати. Поля «виробник» і адреса - вже окремим проходом по записах в базі, тому що всі необхідні дані у нас вже збережені. Отримання адреси за координатами - щодо витратна за часом процедура, її точно не потрібно проводити одночасно з пошуком пристроїв. Встановлення з'єднання Bluetooth теж не швидкий процес, так що якщо хочете знайти датчики - краще не газувати, а їхати неспішно.

Що можна зробити з прошивкою

Відкритість виробника по відношенню до інженерів-установників, яким він хоче дати легкий доступ до інструментів і документам, одночасно означає і його відкритість до дослідників. (Я поважаю такий підхід - на мій погляд поєднана з програмою bug bounty відкритість дає результат краще, ніж секретність.) Вибравши будь-який із знайдених датчиків можна встановити на ноутбук готове ПО вендора для їх налаштування, приїхати по збереженому адресою і з'єднатися з пристроєм.

Як і при будь-якому дослідженні безпеки вбудованих систем, в першу чергу відразу ж перевіряємо, чи можна здійснити перепрошивання пристрою.

Як і при будь-якому дослідженні безпеки вбудованих систем, в першу чергу відразу ж перевіряємо, чи можна здійснити перепрошивання пристрою

ПО для настройки дозволяє змінювати прошивку датчика

Так, через технологічний бездротовий доступ можна перепрошивати пристрій. Дістати прошивку виробника не складніше, ніж його ПО. За форматом вона нагадує Intel iHex або Motorola SREC, але насправді це не вони, а пропріетарна розробка вендора. Відкинувши службову інформацію ( «:» - команду на запис, порядкові номери, адреси пам'яті і контрольні суми) з блоків для digital signal processor (DSP) і main processing unit (MPU) ми отримаємо безпосередньо код. Але ми не знаємо архітектуру контролерів на борту пристрою, так що просто відкрити файл дизассемблером не вийде.

Прошивка датчика дорожнього руху

Тут, як не дивно, виручає LinkedIn, корисний не тільки для кар'єристів і відділів кадрів. Іноді архітектура пристроїв не є таємницею, і колишні інженери компанії готові розповісти про неї. Тепер у нас на руках крім файлу є і розуміння того, для якої архітектури скомпільована прошивка. Проте, щастя це приносить дуже ненадовго - рівно до запуску IDA.

Навіть якщо в документації не зазначено типи контролерів, дізнатися їх все-таки можна

Навіть зі знанням архітектури прошивка залишається безглуздим набором байт. Однак у того ж інженера можна дізнатися про те, як саме шифрується прошивка, про таблицю ключів і алгоритми. На руках у мене пристрої не було, і на цьому місці я відклав модифікацію прошивки в режимі black box як безперспективну. Визнаємо, що в цьому конкретному випадку мікроелектронники знають, як захистити прошивку. Але чи означає це кінець дослідження датчиків? Зовсім ні.

І тільки вантажівки ночами їдуть ..

Модифікація прошивки «хороша» тим, що в неї можна додати нові функції. Але їх вистачає і в стандартному ПО вендора. Наприклад, на борту пристрою є близько 8 МБ пам'яті, в якій, поки вона не переповниться, зберігається копія даних про трафік. І ця пам'ять доступна. Прошивка дозволяє змінювати класифікацію проїжджаючих автомобілів по довжині і число смуг руху. Хочете копію зібраної інформації про трафік? Добре. Потрібно чогось зробити все машини вантажівками, котрі їдуть по правій смузі? Це можна. В результаті постраждає точність міської статистики з усіма витікаючими наслідками.

Ось що збирають і передають далі датчики руху. Ці ж дані зберігаються на борту

Бажаючому отримати копію столичної статистики або вплинути на неї, звичайно, доведеться обійти або об'їхати всі датчики, зате йому не обов'язково запускати програму у кожного з тисячі датчиків і редагувати настройки вручну. В даному випадку описана пропріетарна система команд цих пристроїв. Не можна сказати, що це часто зустрічається при дослідженні вбудованих систем, але в будь-якому випадку після з'єднання з датчиком через ПО вендора команди вже не секрет - їх видно сніффером. Але опис англійською позбавляє від аналізу протоколу спілкування з пристроєм на машинному.

Але опис англійською позбавляє від аналізу протоколу спілкування з пристроєм на машинному

Документовані команди пристрої рятують від аналізу трафіку

На датчику насправді не реалізовані сервіси Bluetooth, бездротової протокол в цьому випадку не більше ніж середовище для передачі даних. Передачі через звичайний послідовний (serial) порт. Програмна робота з такими портами нічим не відрізняється від читання і записи з файлів, код для відправки команд тривіальний. Для цих цілей немає навіть необхідності реалізовувати нормальну многопоточную роботу з портом, досить відправки байт і отримання відповіді в одному потоці.

Підведемо підсумок. Нешвидко рухається по місту машина, ноутбук з досить потужним bluetooth-передавачем і запущеною програмою-сканером збирає розташування датчиків, збирає з них дані про трафік, при бажанні міняє настройки пристроїв. Я б не назвав інформацію про трафік сильно секретної, але від зміни налаштувань може постраждати її достовірність. А на цих даних взагалі-то можуть бути засновані «розумні» світлофори і інше шляхове обладнання.

А на цих даних взагалі-то можуть бути засновані «розумні» світлофори і інше шляхове обладнання

Датчик відповів нам, команда почута. Знаючи систему команд, не складно «перевести» відповідь

Що робити?

Виходить, що відповіді на задані на початку питання про достовірність даних про трафік і їх захищеності негативні. Чому так сталося? Не було ніякої авторизації, крім передбаченої в Bluetooth, але і та була налаштована не кращим чином. Вендор дуже добрий до інженерам і велика кількість даних про його пристроях доступно публічно, в тому числі на офіційному сайті. Особисто я симпатизую виробнику і поважаю його за це, оскільки не думаю, що «security through obscurity» має в наш час великий сенс: систему команд все одно дізнаються і інженерне ПО все одно дістануть. На мій погляд по можливості краще поєднувати відкритість, програми bug bounty і швидку реакцію на знайдені вразливості. Хоча б тому, що число сторонніх дослідників популярного обладнання і ПЗ в будь-якому випадку буде більше, ніж кількість співробітників в будь-якому ІБ-підрозділі.

На етапі установки варто йти від будь-яких стандартних ідентифікаторів. Зрозуміло, що вендорам потрібно рекламувати свої продукти, а обслуговуючим бригадам - ​​отримувати з наклейок додаткову інформацію про пристрої, але крім зручності існують і питання інформаційної безпеки. Нарешті, не варто покладатися тільки лише на стандартну ідентифікацію, реалізовану в добре вивчених протоколах. Будь-яка додаткова грамотно реалізована пропріетарна захист буде доречна і помітно збільшить складність проникнення.

Детально про це дослідження було розказано на RSA US 2016, з презентацією можна ознайомитися на сайті конференції .

Що робити?
Але чи так це насправді?
Чи може стороння впливати на роботу датчиків і збирається ними інформацію?
Але чи означає це кінець дослідження датчиків?
Хочете копію зібраної інформації про трафік?
Потрібно чогось зробити все машини вантажівками, котрі їдуть по правій смузі?
Чому так сталося?