loader
Foto

CAN protokoll szimulációja, implementálása - virtuális gépen

A CAN protokoll elengedhetetlen nem csak az autóiparban, hanem az ipari rendszereknél is. Fontos tehát ismerni, gyakorlati szinten ismerni ezt a kommunikációs megoldást, ugyanakkor a gyakorlati elsajátítása -főleg otthoni környezetben- nehéz. A CAN Analyzer drága, illetve a tesztpanelek beszerzése is pénzbe kerül..... Ezért ebben a cikkben nulláról felépítünk egy olyan környezetet, amelynek segítségével a CAN protokoll gyakorlati ismerete (autózás szempontjából) kényelmesen elsajátítható. És még a "C" nyelv ismeretre sincs szükség.....

Korábbi cikkünkben összeraktunk egy olyan virtuális gépgyűjteményt, amelyek használatával az IT biztonsággal foglalkozó cikkeink könnyebben lesznek érthetők, hiszen kipróbálhatók a különböző technikák úgy, hogy nem kell plusz fizikai gépeket beszereznünk, illetve a Büntető Törvénykönyv tartalmát sem merítjük ki.....

Indítsuk el a Kali Linux-ot és lépjünk be (kali/kali), majd indítsunk el egy terminálablakot. Célszerű frissíteni a virtuális operációs rendszerünket, ehhez a következő két utasítás kiadása szükséges.

sudo apt update
sudo apt upgrade

 

A CAN protokoll szimulációjához, méréséhez szükségünk van a "CAN-Utils" csomag telepítéséhez, amely olyan alkalmazásokat tartalmaz, amelyek segítségével véletlenszerű CAN forgalmat tudunk előállítani, dumpolni, stb.
A CAN-Utils telepítéséhez adjuk ki a következő utasítást.

sudo apt install can-utils

Ennek hatására a programcsomag telepítésre kerül a virtuális gépünkre (1. ábra).

kep
1. ábra   CAN-Utils telepítése
 

A telepítés után a CAN-Utils csomag alkalmazásai használhatók.

Hozzunk először létre egy CAN interfészt, amelyen keresztül fogjuk kiküldeni/elkapni a CAN üzeneteket. Adjuk ki a következő három utasítást.

sudo modprobe can
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan

kep
2. ábra   A "vcan0" hálózati interfész létrehozása
 

Kérjük most le "vcan0" hálózati interfész tulajdonságait a következő utasítás segítségével.

ifconfig vcan0

Látható a következő ábrán az, hogy létrejött ugyan az új hálózati interfész, de még nem üzemel.

kep
3. ábra   A "vcan0 hálózati interfész tulajdonságai
 

Kapcsoljuk be ezt az interfészt a következő utasítással.

sudo ifconfig vcan0 up

Most újra kérjük le a CAN hálózati interfész tulajdonságait, és látni fogjuk az "UP" szót a "flags" mellett, tehát üzemel már az interfész.

kep
4. ábra   Működik a "vcan0" interfész
 

Ahhoz, hogy tudjuk vizsgálni a CAN üzeneteket, létre kell hoznunk egy CAN forgalmat. Ehhez a "cangen" programot kell használnunk, adjuk ki a következő utasítást.

cangen vcan0

A CAN forgalom elindul a "vcan0" interfészen.

kep
5. ábra   CAN forgalom létrehozása a "cangen" alkalmazás segítségével
 

Nézzük most meg a létrejött forgalmat, dumpoljuk ki első esetben a terminálablakba, adjuk ki a következő utasítást.

candump vcan0

A "cangen vcan0" segítségével létrejött forgalom láthatóvá válik a terminálablakban.

kep
6. ábra   CAN forgalom a terminálablakban
 

Szükséges lehet néha elmenteni a forgalmat, ekkor célszerű a "-l" kapcsoló használata.

candump -l vcan0

Ebben az esetben a forgalmat nem látjuk a terminálablakban, hanem egy file-ba történik az adatok beírása.

kep
7. ábra   CAN üzenetek file-ba történő mentése
 

A "nano" szövegeditorral az elmentett hálózati forgalom kényelmesen megtekinthető.

nano fileNév

kep
8. ábra   CAN üzenetek a log file-ban
 

Elmenthetjük a CAN hálózati forgalmat azért, hogy megvizsgáljuk, illetve akár azért is, hogy visszajátszuk. Ha utóbbi mellett döntünk, akkor adjuk ki a következő utasítást, és a "vcan0" interfészen az elmentett CAN üzenetek megjelennek.

canplayer -I fileNÉV

kep
9. ábra   Elmentett CAN üzenetek "lejátszása" a "vcan0" hálózati interfészen
 

Alkalmazhatjuk a "candump" helyett a "cansniffer"-t is.

cansniffer vcan0

A sniffer eredménye a terminálablakban látható (10. ábra).

kep
10. ábra   CAN üzenetek lehallgatása
 

Természetesen a "candump" és a "cansniffer" alkalmazások helyett (mellett) használhatjuk a Wireshark hálózati monitorozó programot is. Indítsuk el tehát a Wireshark-ot root jogosultságokkal, hogy az alkalmazás hozzá tudjon férni a hálózati interfészekhez.

sudo wireshark

Amikor a Wireshark elindult, ki kell választani azt a hálózati interfészt, amelynek a forgalmát szeretnénk monitorozni. Válasszuk ki a "vcan0"-t (11. ábra).

kep
11. ábra   A "vcan0" interfész kiválasztása a Wireshark programnál
 

Ezután a Wireshark program felületén látható lesz a "cangen" segítségével előállított hálózati forgalom (12. ábra).

kep
12. ábra   Hálózati forgalom a Wireshark felületén
 

 



Egyéb cikkek

További cikkeink ebben a témakörben

Régebbi cikkeink

Az nmap (grafikus megjelenítésnél a ZenMap) használata az IT biztonság, illetve az üzemeltetés területén dolgozó szakembereknél szinte elkerülhetetlen. Az ingyenes szoftver segítségével tesztelhetők a számítógépeink, a számítógéphálózatunk, vizsgálha. . . .

A Python programozási nyelv nagyon elterjedt a fejlesztők körében. Használják beágyazott rendszereknél, webes alkalmazásoknál, IT biztonság különböző területein, stb. Látható, hogy nagyon széles a felhasználási területe ennek a nyelvnek, ideje volt m. . . .

Elkezdjük most részletesebben megismerni az nmap használatát. Az nmap nagyon fontos eszköz az IT biztonsággal, illetve az üzemeltetéssel foglalkozó szakembereknél. De hogyan működik? Hogyan lehet és érdemes a scannelési tulajdonságokat beállítani? M. . . .