
Таны машиныг хакердах боломжтой юу? CAN Network-ийн тухай

Э. Бумбаяр
Багш


Э. Бумбаяр
Багш
Орчин үеийн автомашинд 100 гаруй бие даасан "mini-computer" буюу Электрон хяналтын нэгж (ECU) байдгийг та мэдэх үү? Хөдөлгүүрийг удирдах, тоормосыг ажиллуулах, аюулгүйн дэрийг дэлгэх, цонхыг онгойлгох гэх мэт бүгд өөрийн гэсэн ECU-тай байдаг. Эдгээр олон ECU буюу "тархи" хоорондоо хэрхэн холбогддог вэ? Эдгээр ECU-г хакердаж болох уу? Жишээ нь: ECU-г хакердаж автомашины аль нэг системийг (тоормос, хөдөлгүүр гэх мэт) ажиллагаагүй болгож болох уу? гэдэг талаар мэдэж авцгаая.
Энэ нийтлэлээр бид CAN-ийн үндсэн ажиллагаа, яагаад энэ нь автомашины технологийн "чимээгүй баатар" болох, түүний аюулгүй байдлын сул тал, мөн таны ирээдүйн технологийн төслүүдэд хэрхэн ашиглагдаж болохыг судлах болно.
CAN бол "Controller Area Network" гэсэн үгийн товчлол. Энгийнээр хэлбэл, энэ нь төв компьютер шаардахгүйгээр олон тооны microcontroller (ECU)-г хоорондоо холбодог, "bus" төрлийн сүлжээ юм.
CAN (Controller Area Network) гарахаас өмнө автомашины доторх цахилгааны утас хэдэн километр урт, асар хүнд, засварлахад бэрх, яг л "шпагетти" шиг байсан. Хянах товчлуур бүрээс мотор руу тусдаа утас очих шаардлагатай байв.
Энэ асуудлыг шийдэхийн тулд 1980-аад оны дундуур Bosch компани CAN хэмээх энгийн, бат бөх, найдвартай, хоёрхон утастай системийг бүтээж, автомашины үйлдвэрлэлд жинхэнэ хувьсгал хийсэн юм.
Үндсэн бүрэлдэхүүн хэсгүүд:
ECU (Electronic Control Unit): Электрон хяналтын нэгж. Энэ нь тодорхой нэг үйлдлийг хариуцсан "mini-computer" юм. (Жишээ нь: Хөдөлгүүрийн удирдлага, ABS тоормосны систем, агааржуулагч, хөгжим тоглуулагч).
The Bus (Түгээгүүр): Хоёр мушгирсан утас (Twisted Pair). Энэ хоёр утсыг CAN-High (CAN-H) CAN-Low (CAN-L) гэж нэрлэдэг бөгөөд бүх ECU-г хооронд нь холбодог "мэдээллийн гол зам" юм.
Энэхүү хоёр утастай differential signaling (ялгаварт дохиолол)-ын гол ид шид нь цахилгаан соронзон "шуугиан"-д (noise) маш тэсвэртэй байдагт оршино. Автомашины хөдөлгүүр, асаалтын систем зэрэг нь асар их цахилгаан шуугиан үүсгэдэг ч CAN сүлжээний мэдээлэл алдагдалгүй дамждаг.



CAN сүлжээний ажиллагааг ойлгохын тулд "Уламжлалт утас" болон "CAN Bus" хоёрыг харьцуулъя.
Уламжлалт (Point-to-Point): Таны машины жолооч талын цонхны товчлуур дээр 4 товчлуур байна гэж бодъё. Энэ нь зорчигчийн 3 цонх болон өөрийн цонхыг удирдах ёстой. Хуучин системд товчлуур бүрээс тусдаа мотор руу утас очих шаардлагатай болно.
CAN (Broadcast): CAN сүлжээнд бүх ECU (жолоочийн хаалганы модуль, зорчигчийн хаалганы модулиуд) нэг "уулзалтын өрөө"-нд (bus network) хамт сууна.
Хурлын өрөөний зарчим
CAN bus-ыг нэг том дугуй ширээтэй хурлын өрөө гэж төсөөлцгөөе. ECU-г тэр өрөөнд сууж буй хүмүүс (хэлтсийн дарга нар) гэж бодъё.
Хаяг байхгүй (No Destination Address): Энэ өрөөнд хэн ч хэн нэгнийг нэрээр нь дууддаггүй. "Батаа, энэ чамд!" гэж хэлдэггүй.
Message-Based (Зурваст суурилсан): Үүний оронд, хүмүүс өөрийн мэдээллийг зүгээр л "зарладаг". Жишээ нь, жолоочийн хаалганы модуль (ECU) "ЦОНХЫГ ХААХ КОМАНД, ID: 123" гэж өрөөнд ярина.
Broadcast (Нэвтрүүлэг): Энэ мэдээллийг өрөөнд байгаа бүх хүн (бүх ECU) сонсоно.
Filtering (Шүүлтүүр): Гэхдээ зөвхөн энэ мэдээллийг сонирхож буй ECU-г л тэр мэдээллийг "хүлээн авч" боловсруулна. Бусад нь "Энэ надад хамаагүй" гээд үл тооно.
Энэ зарчим нь маш цөөн утас ашиглан асар олон мэдээллийг үр дүнтэй солилцох боломжийг олгодог.
Давуу талууд:
Найдвартай байдал (Reliability): Маш хүчтэй шуугиантай орчинд ч алдаагүй ажилладаг.
Зардал ба Жин (Cost & Weight): Олон километр зэс утсыг хэмнэдэг.
Уян хатан байдал (Flexible): Сүлжээнд шинэ ECU нэмэхэд маш хялбар.
Оношилгоо (Diagnostics): OBD-II портоор дамжуулан бүх ECU-тай "ярилцаж" чаддаг.
Сул талууд:
Хурд (Speed): Ихэнх автомашины CAN сүлжээ 500 kbit/s эсвэл 1 Mbit/s хурдтай байдаг.
Аюулгүй байдал (Security): CAN-ийн хамгийн том сул тал. 1980-аад онд "аюулгүй байдал"-ыг огт тооцоолоогүй.
CAN сүлжээ бол "итгэмтгий" (trusting) сүлжээ юм.
Authentication (Баталгаажуулалт) байхгүй: Хурлын өрөөнд хэн нэгэн "Би бол Тоормосны систем байна" гээд ярихад, бусад бүх ECU түүнд итгэдэг.
Encryption (Шифрлэлт) байхгүй: Бүх яриа "ил" (plain text) явагддаг.
Physical Access (Физик хандалт): OBD-II порт бол тэр "хурлын өрөө"-ний шууд хаалга юм.
Энэ бол CAN сүлжээний эмзэг байдлыг дэлхий нийтэд нотолсон түүхэн үйл явдал юм.
Үйл явдал: Аюулгүй байдлын судлаачид болох Charlie Miller болон Chris Valasek хурдны зам дээр явж байсан 2014 оны Jeep Cherokee машиныг интернэтээр дамжуулан алсаас удирдаж, хакердсан.
Хэрхэн хакердсан бэ? Тэд OBD-II порт ашиглаагүй. Харин машины Uconnect гэх "infotainment" системийн программ хангамжийн сул талыг ашиглан, гар утасны сүлжээгээр (cellular network) дамжуулан машиныг хакердсан.
CAN рүү нэвтэрсэн нь: Тэд хөгжим тоглуулагчийн системээр дамжин машины дотоод удирдлагын CAN сүлжээ рүү нэвтэрч, хуурамч зурвас (fake messages) илгээж эхэлсэн.
Үр дүн: Эхлээд тэд машины агааржуулагч, хөгжмийн дуу, шил арчигчийг удирдсан. Эцэст нь тэд машины хурдны хайрцгийг салгаж, тоормосыг нь идэвхгүй болгож, жолооны хүрдийг удирдаж чадсан.
Үр дагавар: Fiat Chrysler компани нийт 1.4 сая гаруй машиныг эргүүлэн татаж, security patch хийсэн.
Орчин үеийн шийдэл: Automotive "Firewall"
Энэ явдлаас хойш автомашин үйлдвэрлэгчид Gateway ECU-г өргөнөөр ашиглах болсон. Энэ нь энгийн сүлжээ (хөгжим, Bluetooth, Wi-Fi) болон амин чухал сүлжээ (хөдөлгүүр, тоормос, жолоодлого) хооронд тусгаарладаг.
CAN сүлжээг анх автомашинд зориулан Bosch компани бүтээсэн ч, түүний бат бөх, найдвартай байдал нь бусад олон салбарын итгэлийг хүлээсэн юм.
Агаарын тээвэр ба Сансар: Онгоцны нислэгийн хэрэгслүүд (avionics), буух төхөөрөмжийн мэдрэгч, хяналтын системүүдэд ашиглагддаг.
Анагаах ухааны төхөөрөмж: CT болон X-ray сканерууд, ухаалаг эмнэлгийн ор, лабораторийн автоматжуулалтын системүүд.
Үйлдвэрийн автоматжуулалт: Үйлдвэрийн угсрах шугам, робот гар, сав баглаа боодлын машинууд нь CANopen эсвэл DeviceNet ашигладаг.
Далайн тээвэр: Усан онгоц, завины удирдлагын системүүд NMEA 2000 стандартыг ашигладаг.
Робот техник: Агуулахын өөрөө явагч тээвэрлэгч (AGV) болон судалгааны роботууд.
CAN Network бол бидний өдөр тутам унадаг автомашины технологийн "чимээгүй баатар" юм. Энэхүү энгийн мэт хоёрхон утастай систем нь бидний машинуудыг илүү ухаалаг, аюулгүй, хөнгөн, хямд болгож чадсан.
Хэдийгээр түүний хурд хязгаарлагдмал, аюулгүй байдлын хувьд эмзэг талуудтай ч, түүнийг орлуулсан CAN-FD (Flexible Data-rate) шинэ хувилбар, мөн автомашин доторх Ethernet-ийн хэрэглээ нэмэгдэж байна. Гэсэн хэдий ч CAN-ийн бат бөх, найдвартай ажиллагаа нь ойрын арван жилд ч ашиглагдсаар байхын баталгаа юм.
Ирээдүйн инженер, технологийн мэргэжилтнүүд болох та бүхний хувьд эдгээр "далд" ажилладаг сүлжээг ойлгох нь зөвхөн автомашин гэлтгүй IoT (Internet of Things), робот техник, үйлдвэрийн автоматжуулалт зэрэг ямар ч салбарт амжилттай ажиллах суурь ур чадварын нэг байх болно.
Та ч гэсэн CAN сүлжээтэй "ярилцаж" болно. 1996 оноос хойш үйлдвэрлэгдсэн бараг бүх машинд жолооны хүрдний доор OBD-II порт байдаг. Энэ бол CAN bus руу орох таны "хаалга" юм.
Юу хийж болох вэ?
CAN Sniffer (Чагнагч): Microcontroller ашиглан машины сүлжээг "чагнаж" болно. Таныг тоормос дарах, хаалга онгойлгох, хурд авах үед ямар зурвас явж буйг уншиж, тайлж болно.
Дижитал хянах самбар (Dashboard) бүтээх: Машинаас ирсэн хурд, хөдөлгүүрийн эргэлтийн мэдээллийг уншиж, өөрийн хийсэн дэлгэцэн дээр харуулах.
Хэрэг болох зүйлс:
Microcontroller (XIAO seeed studio, ESP, Arduino, Raspberry Pi)
CAN Transceiver Module: (Жишээ нь: MCP2515 эсвэл TJA1050 модуль)
OBD-II холбогч
Бодит машин дээр ажиллахдаа маш болгоомжтой байх ёстой. Зөвхөн "чагнах" (read-only) үйлдлээс эхлээрэй. Хэрэв та CAN сүлжээ рүү буруу, хуурамч зурвас илгээвэл (write/send) таны машины ажиллагааг ноцтой доголдуулж, осол аваарт хүргэх эрсдэлтэй!