CYBERSECURITY W AUTOMOTIVE

AUTOSAR SecOC – architektura i wyzwania bezpieczeństwa komunikacji w pojazdach

Niniejszy artykuł jest częścią cyklu poświęconego tematyce cyberbezpieczeństwa w branży automotive, przygotowanego przez Krzysztofa Labudę



Czym jest protokół SecOC w kontekście AUTOSAR?

W tej części przybliżę czytelnikowi podejście architektoniczne AUTOSAR dla Secure Onboard Communication Protocol (SecOC).

 SecOC, na który powoływałem się w czwartej odsłonie cyklu „Co kryje się pod hasłem cybersecurity w automotive?”, jest jednym z głównych protokołów umożliwiających uwierzytelnienie i sprawdzanie spójności komunikacji samochodowej.

Zależność od innych warstw protokołu i SecOC, z niższą warstwą stosu komunikacyjnego, będzie zależeć od architektury platformy (AP – Authentic PDU lub CP – Cryptographic PDU), a w przypadku implementacji CP będzie również zależeć od rodzaju transmisji (tutaj możemy wyróżnić transmisję bezpośrednią, transmisję wyzwalaną lub protokół transportowy). Te specyficzne dla projektu zależności nie są częścią specyfikacji protokołu i zależą od innych dedykowanych standardów lub norm, m.in. FIPS-180-4 (standaryzującego funkcje hashujące) czy opracowań NIST.

Protokół SecOC nie jest zależny od typowej warstwy aplikacji motoryzacyjnej. Opiera się jednak na istnieniu komponentu oprogramowania, który zapewnia informacje o freshness values. Ponadto mogą istnieć wyspecjalizowane aplikacje, które wyzwalają modyfikację w zachowaniu SecOC.

Na poniższym obrazku porównano realizacje SecOC w oparciu o szynę CAN oraz standardowy stos sieciowy ETH. Są w nim zawarte również moduły kryptograficzne opisywane w drugiej odsłonie cyklu (CSM, CRYIF, Cry dla CRYPTO).

Ogólny sposób formowania ramki opiera się o realizację  o stos sieciowy, zrealizowany  o protokół ETH (widać enkapsulację freshness oraz MAC z danymi). 

Ilustracja przedstawiająca strukturę zabezpieczonej przez SecOS ramki:

Schemat działania protokołu SecOC w architekturze AUTOSAR – uwierzytelnianie i bezpieczeństwo komunikacji w pojazdach

Źródło: opracowanie własne na podstawie: https://autosec.se/wp-content/uploads/2019/03/6.-Holisec_SecOC_2019-03-26_Kaushik_final.pdf

Ilustracja przedstawiająca odbiór oraz weryfikację ramki:

Schemat działania protokołu SecOC w architekturze AUTOSAR – uwierzytelnianie i bezpieczeństwo komunikacji w pojazdach

Źródło: opracowanie własne na podstawie https://www.linkedin.com/pulse/cyber-security-solution-autosar-classic-platform-quoc-bao-nguyen/

Architektura komunikacji: CAN vs Ethernet w SecOC

Jako ciekawostkę można rozpatrzyć realizację w oparciu o szynę CAN. O sposobach zabezpieczania tego protokołu i problematyce wspominałem w osobnym cyklu – Cybersecurity w automotive: rozwiązania sieciowe. Charakterystyczne jest to, że realizacja w oparciu o CAN nie może odbywać się w ramach jednej ramki. Konieczna jest realizacja poprzez Cryptographic Message i komplementarną do niej Authentic Message.

Ilustracja przedstawiająca realizację w oparciu o CAN: 

Schemat działania protokołu SecOC w architekturze AUTOSAR – uwierzytelnianie i bezpieczeństwo komunikacji w pojazdach

 Źródło: opracowanie własne na podstawie: https://www.linkedin.com/pulse/cyber-security-solution-autosar-classic-platform-quoc-bao-nguyen/

SecOC jako rozwiązanie wprowadza kluczową funkcjonalność niezbędną do weryfikacji autentyczności komunikacji opartej na PDU między ECU w ramach architektury / sieci pojazdu. Podejście to wymaga, aby zarówno wysyłający ECU, jak i ECU odbierający zaimplementowali moduł SecOC. Aby zapewnić autentyczność wiadomości, moduł SecOC po stronie wysyłającej i odbierającej uzyskuje tzw. freshness values z zewnętrznego menedżera tej wartości dla każdego jednoznacznie zabezpieczonego łącza komunikacyjnego.

Po stronie nadawcy moduł SecOC tworzy Secured I-PDU poprzez dodanie informacji uwierzytelniających do wychodzącego Authentic I-PDU. Informacje uwierzytelniające składają się z elementu pełniącego rolę uwierzytelniającą, np. kodu uwierzytelniania wiadomości (MAC) i opcjonalnie freshness values. Niezależnie od tego, czy wartość świeżości jest zawarta w payloadzie Secure I-PDUfreshness values są brane pod uwagę podczas generowania przez podmiot uwierzytelniający. W przypadku korzystania z freshness counter, zamiast znaczników czasu (timestamp), freshness counter powinien być zwiększany przez Freshness Manager przed dostarczeniem informacji uwierzytelniających do strony odbiorcy.

Po stronie odbiorcy moduł SecOC sprawdza autentyczność (oraz freshness) I-PDU poprzez weryfikację informacji uwierzytelniających, które zostały dołączone przez moduł SecOC strony wysyłającej. Aby zweryfikować autentyczność Authentic I-PDUSecured I-PDU dostarczony do strony odbierającej SecOC powinien być tym samym Secured I-PDU.

Składowe Secured I-PDU:

Schemat działania protokołu SecOC w architekturze AUTOSAR – uwierzytelnianie i bezpieczeństwo komunikacji w pojazdach

źródło: Konsorcjum AUTOSAR, strona 11 https://www.autosar.org/fileadmin/standards/R20-11/FO/AUTOSAR_PRS_SecOcProtocol.pdf

Diagram przedstawiający przykład zawartości zabezpieczonej jednostki danych (Secured I-PDU) z obciętymi freshness value i authenticatorem:

Schemat działania protokołu SecOC w architekturze AUTOSAR – uwierzytelnianie i bezpieczeństwo komunikacji w pojazdach

Źródło: Konsorcjum AUTOSAR, strona 12 https://www.autosar.org/fileadmin/standards/R20-11/FO/AUTOSAR_PRS_SecOcProtocol.pdf

SOC i SIEM – analiza zagrożeń poza pojazdem

AUTOSAR rozróżnia 3 profile SecOC, w zależności od obranych parametrów – algorytmu MAC (Message Authentication Code), sposobu traktowania wartości freshness i wartości MAC:

SecOC Profile 1 (24Bit-CMAC-8Bit-FV)

  • Algorytm: CMAC/AES-128
  • Przycięcie wartości freshness: 8 bitów
  • Przycięcie wartości MAC: 24 bity

SecOC Profile 2 (24Bit-CMAC-No-FV)

  • Algorytm: CMAC/AES-128
  • Przycięcie wartości freshness: 0 bitów (wartość świeżości nie jest używana)
  • Przycięcie wartości MAC: 24 bity

SecOC Profile 3 (JASPAR)

  • Algorytm: CMAC/AES-128
  • Długość wartości freshness: 64 bity
  • Przycięcie wartości freshness: 4 bity
  • Przycięcie wartości MAC: 28 bitów

Wyzwania i ograniczenia implementacji SecOC w praktyce

Warto zwrócić uwagę, że w tak zaproponowanym protokole istnieje kilka istotnych wyzwań:

  • Każdy OEM definiuje swój dedykowany sposób implementacji SecOC, co wymaga dostosowania. Pomocna może być biblioteka Pythona Scapy.
  • Gdy używana jest wartość freshness, musi ona być dokładnie monitorowana i synchronizowana, co bywa problematyczne.
  • Ramki zabezpieczone przez SecOC zazwyczaj występują razem z niezabezpieczonymi, co może komplikować obsługę.
  • Niespójne generowanie MAC może prowadzić do nieprzewidywalnego zachowania systemu zabezpieczeń, szczególnie przy niejasnościach dotyczących uwierzytelnianych pól (np. PDU-ID czy długość ramki).
  • Zarządzanie materiałem kryptograficznym (klucze, aktualizacje, mapowanie PDU-ID na klucze) wpływa na integralność komunikacji i wymaga bezpiecznej implementacji.

AUTOSAR oferuje wsparcie i mechanizmy bezpiecznego przechowywania danych oraz ochrony poufnych informacji w ECU pojazdów. Obejmuje to m.in. szyfrowanie danych, kontrolę dostępu oraz bezpieczne usuwanie danych, aby zapobiec nieautoryzowanemu dostępowi lub wyciekowi danych.



Autor: Krzysztof Labuda,
Konsultant ds. testów bezpieczeństwa

Uczestnik programu Certified Ethical Hacker CEH v11, który uczy najnowszych narzędzi, technik i metodologii hackerskich klasy komercyjnej, używanych przez hakerów i specjalistów ds. bezpieczeństwa informacji.