01 Şub, 2022

[:tr]Yeni Nesil Otomobil Güvenlik Testleri Nasıl Yapılmalı? [4][:en]How Should New Generation Automobile Safety Tests Be Done? [4][:]

[:tr]

ICS Simülatörü Part 1

Otomobil ve diğer araçların ele geçirilmesi, üretici firma, toplum üzerinde ve ulusal çapta çarpıcı etkilere sahip olabilir. Düşünün ki rakip ülkeler ülkenizdeki tanklara, askeri ciplere ve diğer araçları komuta etmek için bilgisayar korsanları kullandığı bir siber savaş senaryosu hayal edin. Veya biraz daha sıradan, bilgisayar korsanlarının aracınızı açıp çalıştırabileceği ve kontrol edebileceği bir dünya hayal edin. İşte tam da bunu önlemek adına fiziksel ve yazılımsal ürünler geliştiren kurumların geliştirme süreçlerinde siber güvenlik danışmanlığı almalı ve ürünler kullanılmaya başlandıktan sonra belli periyotlarda kapsamlı pentest yaptırması önemlidir.

Şimdi simüle edilmiş bir aracı analiz etmek ve pentesti kolaylaştırmak için bu bilgilerin bir kısmını kullanabileceğiniz bir simülasyon ortamı kuracağız.

İlk adım, gerekli bağımlılıkları Kali sisteminize kurmaktır.

kali> apt-get install libsdl2-dev libsdl2-image-dev -y

Sıradaki adım The Car Hackers Handbook’un yazarı ve opengarages.org’un kurucusu Craig Smith, daha sonra indirip kuracağımız küçük bir CAN simülatörü geliştirdi. 

Buradan github.com’dan klonlamamız ve kurmamız gerekecektir.

kali> git clone https://github.com/zombieCraig/ICSim

kali> cd ICsim

O dizinde uzun bir listeleme yaptığımızda çok sayıda dosya görebiliriz. Bu noktada setup_vcan.sh betiğini çalıştırmamız gerekiyor.

otomobil güvenlik testi

Sanal kutu için arayüz kurmak için aşağıdaki komutları çalıştırabilirsiniz.

  • sudo modprobe can
  • sudo modprobe vcan
  • sudo ip link add dev vcan0 type vcan
  • sudo ip link set up vcan0

Simüle edilmiş aracımızın gösterge panelini başlatmak için, sanal CAN arayüzünün adının ardından icsim’i çalıştırmamız yeterlidir, benim durumum da vcan0 sizde farklı olabilir.

kali> ./icsim vcan0

Gösterge paneli aşağıdaki gibi masaüstünüzde görünmelidir. Sürücü için açık ve kapalı kapıları gösteren modern araçlara benzer bir hız göstergesi, dönüş sinyali ve sanal bir araç silueti içerir.

otomobil güvenlik testi

Bu aracın kumandasını çalıştırmak için şunu girin;

kali> ./controls vcan0

otomobil güvenlik testi

ICS Simülatörü Part 2

ICS simülatörü gösterge paneli ve kontrollerini kurduk. CAN trafiğini görüntülemek ve analiz etmek için can-utils veya SOCKET CAN kullanacağız.

Bu test adımında odaklanacağımız konular aşağıdaki gibidir;

  • cansniffer
  • candump
  • canplayer
  • cansend

cansniffer kullanarak CAN trafiğini sniff ederek başlayacağız. Bu yardımcı program ile arayüzü (bizim durumumuzda vcan0) belirlemelisiniz ve renklendirilmiş çıktıyı görmek istiyorsanız -c seçeneğini kullanmalısınız.

otomobil güvenlik testi

Tüm trafiğin terminalimizi geçmesini izlemek yerine, trafiği daha yaygın olarak kullanılan sniffer Wireshark’a benzer şekilde filtreleyebiliriz.

otomobil güvenlik testi

Daha sonra sadece ID=161’den gelen trafiği görmek istersek;

kali> cansniffer -c vcan0 

Sniffer başladıktan sonra girebiliriz;

-000000

+161

Yukarıdaki komutları girdiğinizde ekranda görünmeyecektir. Kimlik numarasını girdikten sonra, dinleyici, ID= 161 olanlar hariç tüm trafiği filtrelemeye başlayacaktır.

otomobil güvenlik testi

can-utils’deki candump yardımcı programı, CAN trafiğini yakalayabilir ve daha sonra analiz veya yeniden oynatma için bir dosyada saklayabilir.

Bunu yapmak için, sadece log için -l seçeneğini ve çıktıyı renklendirmek için -c seçeneğini kullanmamız gerekebilir. Çıktıyı günlüğe kaydetmek ve görüntülemek istiyorsak, -s 0 seçeneğini kullanabiliriz (sessiz mod 0). Ek olarak, hex’ten ASCII’ye (insan tarafından okunabilir) dönüştürülmek üzere çıktı almak istiyorsak, -a (ASCII) seçeneğini ekleyebiliriz. Bu, ASCII çıktısı ile renklendirme modunda candump’u başlatır, verileri bir günlük dosyasında saklar ve aynı anda terminale (stdout) gönderir.

kali> candump -c -l -s 0 -a vcan0

otomobil güvenlik testi

ICS Simülatörü Part 3 CAN Sinyallerinde Tersine Mühendislik

Aslında şu ana kadar anlattıklarımız bu adım için ön hazırlıktı diyebiliriz. CAN paketlerini yakalamak ve göndermek için CAN yardımcı programlarının veya can-utils’in nasıl kullanılacağını öğrendik. Şimdi, bu araçlarla aracın kontrolünü ele geçirmek için CAN paketlerini izole etmeye ve tersine mühendislik yapmaya başlayabiliriz.

Arabayı Hızlandırmak İçin Kumandayı Kullanın

Şimdi, gösterge paneli (aşağıdaki gibi) ve kontrolör açıkken kapıları açıp kapatmak, dönüş sinyallerini açmak ve aracı hızlandırmak için ağ üzerinde paketler göndermeye başlayabiliriz.

Senaryomuzda arabayı 100 mph’ye hızlandıran CAN paket sinyalini bulmamız gerekiyor. Bu paketi bulduğumuzda onu çoğaltabiliriz (tersine mühendislik) ve sürücü hiçbir şey yapmadan arabanın 100mph’ye hızlanmasını sağlamak için ağa paketleri gönderebiliriz. 

Belirli Paketi ve Değerleri Bulmak İçin cansniffer’ı Kullanın

kali> cansniffer -c vcan0

Şimdi, cansniffer çalışırken, bir kez daha YUKARI okuna basın ve arabayı 100mph’ye hızlandırın. Veri geçişini izleyin ve hızla değişen paketleri gözlemleyin (kırmızı renkte olacaktır). Bu paketler muhtemelen aracın hızını değiştirenler olacaktır.

otomobil güvenlik testiotomobil güvenlik testi

Aşağıda görebileceğiniz gibi aracı hızlandırma için olası değer ve kimlik ID’si 244 olan paketi belirledik. O kimliğe odaklanalım.

otomobil güvenlik testi

Daha önce anlattığımız gibi, bu kimlik dışındaki tüm trafiği filtreleyebiliriz. Maskeyi kullanarak ve ardından odaklanmak istediğimiz kimliği girerek cansniffer yalnızca odaklanmak istediğimiz trafiği görüntüleyecektir. Bu nedenle, yalnızca bu kimliği filtrelemek için şunu girin;

-000000

+244

Bu girişler ekranda görünmeyecektir. 

Bunu yaptığınızda, cansniffer aşağıda görüldüğü gibi Arbitration ID 244’e yönelik olanlar hariç tüm trafiği filtreleyecektir.

otomobil güvenlik testi

Şimdi arabayı tekrar 100 mil hızla hızlandırın ve değerlerin değişimini izleyin. Maksimum hıza ulaştığınızda, muhtemelen yukarıdakilere benzer değerler göreceksiniz. Bu değerleri not olarak kaydedin.

Hızlandırma Paketinde Tersine Mühendislik Yapın

Artık cansend yardımcı programını kullanarak bu Arbitration Kimliği ile bu değerlerle ağ üzerinden bir paket gönderebiliriz. Dikkat edin. cansend yardımcı programı arabirimi ardından arbitration kimliğini, “#” sembolü ve ardından aşağıdaki gibi değerleri gerektirir;

kali> cansend vcan0 244 # 0000003812

otomobil güvenlik testi

Bu paket arabaya 100mph’ye hızlanması için sinyal gönderecektir.

Bu doğru paket olmasına rağmen, hız göstergesinde herhangi bir değişiklik fark etmeyebilirsiniz. Bunun nedeni, CAN ağının aynı anda 0mph’de rölantide de sinyaller göndermesidir. Araba karışık sinyaller alıyor. Arabanın normal kontrol sistemi 0 mph’de çalışmasını söylüyor ve siz 100 mph’ye hızlanması için tek bir paket gönderiyorsunuz.

Ya arabaya sadece 1 yerine 100 mil hızlanmasını söyleyen sürekli bir paket akışı gönderebilseydik? Normal kontrol sistemi paketlerini bastırabilir ve arabanın hızlanmasını sağlayabiliriz.

Arabaya hızlanmasını söyleyen sürekli paketler göndermek için basit bir komut dosyası yazmayı deneyelim. Örneğin;

kali> while true; do cansend vcan0 244#0000003812; done

otomobil güvenlik testi

otomobil güvenlik testi

Özet:

can-utils ve ICSim, CAN protokolünün nasıl çalıştığını anlamak ve ağdaki kontrol sinyallerini ve paketlerini tersine mühendislik yapmak için mükemmel pentest araçlarıdır. GPS, hücresel ve kablosuz ağlar gibi araca erişim sağlamak için birçok vektör olmasına rağmen, aracın ağına girdikten sonra hangi sinyallerin hangi işlevleri kontrol ettiğini belirlememiz gerekir.

Sonuç:

Her geliştirilen fiziki veya yazılımsal ürünün daha geliştiriliyorken bile siber güvenlik mimarilerinin ve siber güvenlik katmanlarının, birden fazla siber güvenlik mühendisi ile inşa edilmelidir. Aynı zamanda birden fazla Pentester’la farklı bakış açısı getirilebilecek testlerinin kapsamlarının geniş tutulması koşuluyla yaptırılması gerektiğini düşünmekteyiz.


Bu içerik dizisinin diğer bölümlerine aşağıdaki linklerden ulaşabilirsiniz:


Sorumluluk Reddi Beyanı

Değerli ziyaretçimiz,

Bu blog yazımız bilgi amaçlı olup, saldırılara karşı farkındalığı arttırabilmek ve bu doğrultuda tedbirler alınabilmesi amacı ile hazırlanmıştır. Bu yazıda geçen bilgilerin amacı dışında kullanılmasının hukuki olmadığını hatırlatırız. Anlatılanlardan kaynaklanabilecek doğrudan ya da dolaylı zarar ve kayıplardan CyberArts firmasının sorumlu tutulamayacağını beyan ederiz.


Siber Güvenlik, Dijital Dönüşüm, MSSP, Sızma Testi, KVKK, GDPR, ISO 27001, ISO 27701 ve DDO Bilgi ve İletişim Güvenliği Rehberi başlıklarıyla ilgili teklif almak için lütfen tıklayın.

[:en]

ICS Simulator Part 1

The seizure of cars and other vehicles can have dramatic effects on the manufacturer, society, and nationally. Imagine a cyber warfare scenario where rival countries use hackers to command tanks, military jeeps and other vehicles in your country. Or imagine a more mundane world where hackers can open, start, and control your vehicle. In order to prevent this, it is important for institutions that develop physical and software products to receive cyber security consultancy during their development processes and to have comprehensive pentests performed at certain periods after the products are used.

Now set up a simulation environment where you can use some of this information to analyze a simulated vehicle and facilitate pentesting.

The first step is to install the required dependencies on your Kali system.

kali > apt-get install libsdl2-dev libsdl2-image-dev -y

next step

The Car Hackers Craig Smith, author of the Handbook and founder of opengarages.org , has developed a small CAN simulator that we will download and install later.

From here we will need to clone and install from github.com .

kali > git clone https://github.com/zombieCraig/ICSim

kali > cd ICsim

When we make a long listing in that directory, we can see many files. At this point we need to run the setup_vcan.sh script.

otomobil güvenlik testi

You can run the following commands to set up the interface for virtual box.

  • sudo modprobe can
  • sudo modprobe vcan
  • sudo ip link add dev vcan0 type vcan
  • sudo ip link set up vcan0

To start the dashboard of our simulated car, we just need to run icsim after the name of the virtual CAN interface, in my case vcan0 may be different for you.

kali > ./ icsim vcan0

The dashboard should appear on your desktop as below. It includes a speedometer, turn signal and a virtual vehicle silhouette, similar to modern vehicles that show open and closed doors for the driver.

otomobil güvenlik testi

To operate the remote of this vehicle, enter;

kali > ./ controls vcan0

otomobil güvenlik testi

ICS Simulator Part 2

We installed the ICS simulator dashboard and controls. We will use canutils or SOCKET CAN to view and analyze CAN traffic.

The topics we will focus on in this test step are as follows;

  • cansniffer
  • candump
  • canplayer
  • cansend

Sniffing the CAN traffic using cansniffer. With this utility you have to specify the interface (vcan0 in our case) and use the -c option if you want to see the colored output.

otomobil güvenlik testi

Instead of watching all the traffic pass our terminal, the traffic is more commonly used sniffer We can filter similarly to Wireshark.

otomobil güvenlik testi

If we want to see only the traffic from ID=161 later;

kali > cansniffer -c vcan0 

sniffer starts, we can enter;

-000000

+161

When you enter the above commands, it will not appear on the screen. After entering the ID number, the listener will start filtering all traffic except ID= 161.

otomobil güvenlik testi

Can – utils The candump utility can capture CAN traffic and store it in a file for later analysis or replay.

To do this, we may just need to use the -l option for log and the -c option to colorize the output. If we want to log and display the output, we can use the -s 0 option (silent mode 0). Additionally, if we want output to be converted from hex to ASCII (human readable), we can add the -a (ASCII) option. This is in color mode with ASCII output  It starts candump , stores the data in a log file and simultaneously sends it to the terminal ( stdout ).

kali > candump -c -l -s 0 -a vcan0

otomobil güvenlik testi

ICS Simulator Part 3 Reverse Engineering CAN Signals

In fact, we can say that what we have told so far was a preliminary preparation for this step. We learned how to use CAN utilities or can- utils to capture and send CAN packets . Now with these tools we can start isolating and reverse engineering the CAN packets to take control of the vehicle.

Use the Remote to Accelerate the Car

Now, with the instrument cluster (as below) and the controller on , we can start sending packets over the network to open and close the doors, turn on the turn signals and accelerate the vehicle.

we need to find the CAN packet signal that accelerates the car to 100 mph. Once we find this packet we can replicate it (reverse engineer) and send packets to the network to have the car accelerate to 100mph without the driver doing anything.

Use cansniffer to Find Specific Bundle and Values

kali > cansniffer -c vcan0

Now, with the cansniffer running, press the UP arrow once again and accelerate the car to 100mph. Monitor data migration and observe rapidly changing packets (it will be in red). These packages will likely be the ones that change the speed of the vehicle.

otomobil güvenlik testiotomobil güvenlik testi

As you can see below, we have identified the package with possible value and ID 244 for car acceleration. Let’s focus on that identity.

otomobil güvenlik testi

As we explained earlier, we can filter all traffic except this ID. By using the mask and then entering the ID we want to focus on, cansniffer will display only the traffic we want to focus on. So, to filter only this ID, enter;

-000000

+244

These entries will not appear on the screen.

you do this, the cansniffer will filter all traffic except for Arbitration ID 244 as seen below.

otomobil güvenlik testi

Now accelerate the car to 100 mph again and watch the values change. When you reach maximum speed, you will probably see values similar to the above. Save these values as notes.

Reverse Engineer the Acceleration Pack

cansend anymore We can send a packet over the network with these values with this Arbitration ID using the utility. Be careful. cansend The utility interface then requires the arbitration ID, the symbol “#” followed by values like;

kali > cansend vcan0 244 #0000003812

otomobil güvenlik testi

This packet will signal the car to accelerate to 100mph.

Although this is the right package, you may not notice any change in the speedometer. This is because the CAN network also sends signals at the same time idling at 0mph. The car is getting mixed signals. The car’s normal control system tells it to run at 0 mph, and you send a single packet to accelerate to 100 mph.

What if we could send a steady stream of packets telling the car to accelerate to 100 mph instead of just 1. We can suppress the normal control system packages and make the car accelerate.

Let’s try writing a simple script to send continuous packets telling the car to speed up. E.g;

kali > while true ; do cansend vcan0 244#0000003812; done

otomobil güvenlik testi

otomobil güvenlik testi

Summary:

can – utils and ICSim are excellent pentest tools for understanding how the CAN protocol works and for reverse engineering control signals and packets in the network. Although there are many vectors to gain access to the vehicle such as GPS, cellular and wireless networks, once we enter the vehicle’s network we need to determine which signals control which functions.

Conclusion:

Even while each developed physical or software product is being developed, cyber security architectures and cyber security layers should be built with more than one cyber security engineer. At the same time, we think that tests that can bring different perspectives with more than one Pentester should be done, provided that their scope is wide.


You can access other parts of this content series at the following links:


Disclaimer

Dear visitor,

This blog post is for information purposes and has been prepared with the aim of raising awareness against attacks and taking measures in this direction. We remind you that it is not legal to use the information in this article for any other purpose. We declare that CyberArts company cannot be held responsible for direct or indirect damages and losses that may arise from what is explained.


To request a quotation for the following: Cyber Security, Digital Transformation, MSSP, Penetration Testing, KVKK, GDPR, ISO 27001 and ISO 27701, please click here.


 [:]

İçerik Hakkında:
Sosyal Medyada Paylaş:
Facebook
Twitter
LinkedIn
Telegram