Hilang dalam Terjemahan: Kerentanan Gateway Protokol Industri

Hambatan bahasa tidak hanya antara orang IT dan pengguna. Pabrik dan komputer "pintar" yang mengontrolnya juga tidak dapat berkomunikasi satu sama lain tanpa penerjemah - gateway khusus untuk protokol industri. Dalam posting ini, kita akan membahas kelemahan gateway protokol dan bagaimana penyerang dapat menggunakannya untuk merugikan bisnis.



gambar



Gateway protokol adalah perangkat kecil yang menyediakan terjemahan perintah yang sangat penting antara peralatan mesin, sensor, berbagai aktuator, dan komputer yang menjalankan pabrik, bendungan, pembangkit listrik, dan pabrik industri. Gerbang ini mirip dengan router rumah: mereka juga memiliki banyak antarmuka yang terhubung ke jaringan yang berbeda, dan sama rentannya terhadap berbagai serangan. Jika perangkat seperti itu gagal, komunikasi antara sistem kontrol dan mesin terputus. Operator tidak akan melihat apa yang terjadi. Faktanya, mereka bahkan tidak dapat mengetahui apakah mesin, turbin, atau generator beroperasi dengan aman. Bahkan jika ada sesuatu yang salah, kegagalan gateway tidak akan memungkinkan operator untuk mengeluarkan perintah untuk memulai atau menghentikan proses.



Situasi serupa harus terjadi pada Desember 2015 selamaserangan terhadap jaringan listrik Ukraina : penyerang memperoleh akses ke pusat kendali jaringan listrik dan menonaktifkan gateway protokol di gardu induk dengan mengupload firmware yang rusak kepada mereka. Ini memblokir semua upaya oleh teknisi utilitas untuk memulihkan layanan, karena perintah dari sistem kontrol untuk menutup pemutus sirkuit tidak dapat dikirim.



Dalam laporan insiden oleh SANS ICS (sebuah divisi dari organisasi pendidikan dan penelitian Amerika SANS Institute for the Study of Industrial Control Systems) dan Power Analysis and Information Exchange Center (E-ISAC - sebuah struktur yang menyatukan peserta di pasar listrik Amerika Utara), firmware gateway rusak. protokol disebut "ledakan jembatan". Ini sangat akurat menggambarkan apa yang terjadi, karena penyerang menghancurkan tautan kunci - penerjemah, yang hanya bertindak sebagai jembatan antara pengontrol dan gardu induk.

gambar

Struktur interaksi antara jaringan kontrol dan jaringan eksekusi. Sumber (selanjutnya, kecuali disebutkan lain): Trend Micro



Karena lokasinya, gateway protokol dapat menjadi tautan terlemah dalam rantai perangkat fasilitas industri, dan penyerang dapat menyerang perangkat tersebut karena dua alasan penting:



  1. Gateway tidak mungkin berakhir pada inventaris aset penting yang akan dipantau oleh agen keamanan atau sistem pendaftaran. Karenanya, serangan itu cenderung tidak diperhatikan.
  2. Masalah terjemahan sulit untuk didiagnosis, sehingga kekurangan dalam desain gateway protokol memungkinkan penyerang tingkat lanjut untuk melakukan serangan yang sangat terselubung.


Jenis gateway



Menurut mode operasi, dua kelompok gateway dapat dibedakan:



  1. Lalu lintas maju gateway waktu nyata ( gateway waktu nyata) saat tersedia - setiap paket yang masuk segera dievaluasi, diterjemahkan, dan diteruskan; perwakilan: Nexcom NIO50, Schneider Link 150, Digi One IA;
  2. Stasiun Data - bekerja secara asinkron menggunakan tabel pemetaan antarmuka - jangan menunggu permintaan baca untuk menerima data dari PLC yang terhubung, tetapi secara teratur meminta pembaruan status dari PLC dan menyimpan data yang diterima di cache internal untuk dikeluarkan sesuai permintaan.


Karakteristik penting kedua dari gateway protokol adalah jenis protokol yang mereka dukung dan terjemahkan. Dengan properti ini, perangkat dapat dikelompokkan menjadi tiga kategori:



  1. , , , Modbus TCP Modbus RTU, — , ;
  2. , , , Modbus RTU → Profibus, — , ;
  3. , , , Modbus TCP → Profibus, — , .


Dalam studi Lost in Translation: When Industrial Protocol Translation Goes Wrong , kami memeriksa kerentanan dari grup gateway pertama. Untuk ini, kami telah merakit bangku uji yang terdiri dari komponen-komponen berikut:



  • fuzzer yang menghasilkan lalu lintas masuk untuk gateway yang diuji - misalnya, saat menguji terjemahan dari Modbus TCP ke Modbus RTU, fuzzer membuat kasus uji Modbus TCP,
  • gateway - perangkat yang dipelajari,
  • simulator - perangkat yang mensimulasikan stasiun penerima, misalnya, PLC yang mengimplementasikan Modbus RTU perangkat slave - diperlukan karena beberapa gateway protokol mungkin tidak berfungsi dengan benar jika tidak ada perangkat slave dalam rangkaian,
  • sniffer yang mengumpulkan informasi tentang lalu lintas keluar, yaitu, tentang protokol siaran,
  • penganalisis lalu lintas masuk dan keluar.


gambar

Diagram blok bangku uji untuk mempelajari kerentanan gateway protokol Meja



gambar

uji nyata



Untuk memodelkan simpul Modbus utama, kami menggunakan perangkat lunak sumber terbuka QmodMaster, dan untuk memodelkan perangkat budak - pyModSlave, menyesuaikannya untuk kebutuhan kami, seperti menerima data dari / dev / ttyUSB0.



Kami menggunakan Wireshark untuk Modbus TCP dan IONinja untuk Modbus RTU untuk mencegat lalu lintas. Kami menulis parser khusus untuk mengubah output dari kedua program ini menjadi sintaks umum yang dapat dipahami oleh parser kami.



Kami mengimplementasikan fuzzer berdasarkan BooFuzz, menambahkan beberapa modul dari proyek Boofuzz-modbus, yang didistribusikan di bawah lisensi Apache. Kami menjadikan fuzzer portabel untuk berbagai protokol ICS, dan menggunakannya untuk menguji beberapa implementasi Modbus.



Berikut ini beberapa jenis serangan yang kami temukan saat memeriksa berbagai gateway protokol:



  • serangan terhadap penerjemah protokol,
  • penggunaan kembali kredensial dan dekripsi konfigurasi,
  • amplifikasi lalu lintas,
  • eskalasi hak istimewa.


Serangan penerjemah protokol



Gateway real-time menerjemahkan paket dari satu protokol ke protokol lain, menggantikan header protokol sumber dengan header protokol target. Gateway dari vendor yang berbeda menangani paket yang tidak valid secara berbeda. Beberapa di antaranya, misalnya, saat menerima paket dengan panjang yang salah ditentukan, alih-alih menyesuaikan panjangnya atau membuangnya, disiarkan apa adanya. Fitur ini memungkinkan Anda dengan hati-hati mendesain paket dengan panjang yang salah untuk Modbus TCP sehingga tetap benar setelah diterjemahkan ke Modbus RTU. Selain itu, jika Anda membacanya sebagai paket Modbus RTU, ini akan memiliki arti yang sangat berbeda dibandingkan dengan padanan Modbus TCP.



gambar

Paket serangan: di Modbus TCP berisi perintah untuk membaca register, tetapi di Modbus RTU sudah ada perintah untuk menulis beberapa sel bit



Saat mengurai paket ini dengan semantik Modbus TCP, ini diinterpretasikan sebagai perintah untuk membaca register input (Kode Fungsi 04) dari blok dengan ID = 3. Tetapi dalam semantik Modbus RTU, ini diartikan sebagai penulisan beberapa sel bit (Kode Fungsi 15 dan 0F) ke sebuah blok dengan ID = 1.

Kerentanan ini penting karena permintaan baca yang benar-benar tidak bersalah berubah menjadi perintah tulis karena gateway protokol tidak memproses paket dengan benar. Penyerang tingkat lanjut dapat memanfaatkan kerentanan ini untuk melewati firewall industri khusus yang memblokir perintah penulisan dari alamat IP yang tidak masuk daftar putih.



Akibatnya, satu perintah saja sudah cukup untuk, misalnya, menonaktifkan sensor untuk memantau kinerja dan keselamatan mesin (sensor suhu dan takometer), sambil membiarkan mesin menyala. Jika teknisi dan operator tidak memperhatikan hal ini, mesin mungkin sudah masuk ke mode kritis dan gagal, tetapi tidak ada yang tahu tentang ini, karena termometer dan takometer telah dinonaktifkan.



Menggunakan kembali kredensial dan mendekripsi konfigurasi



Gerbang moxa menggunakan protokol berpemilik saat berkomunikasi dengan program kendali jarak jauh MGate Manager. Saat MGate Manager dijalankan, insinyur diminta untuk memasukkan nama pengguna dan kata sandi untuk mengakses gateway protokol, setelah itu McGate Manager secara otomatis mengatur ulang konfigurasi sehingga pengguna dapat mengubah pengaturan. Ketika teknisi lapangan menyelesaikan konfigurasi gateway protokol dan mengklik tombol Keluar, konfigurasi tersebut dikompresi, dienkripsi, dan diunggah ke gateway.



gambar

Langkah Konfigurasi Moxa Gateway



Ada dua kelemahan keamanan dalam prosedur ini yang dapat disalahgunakan.



- Penggunaan kembali



Ketika seorang insinyur masuk, sebuah kunci diteruskan ke Manajer MGate untuk melakukan hash kata sandi. Namun, dalam firmware yang diuji, mekanismenya diimplementasikan sedemikian rupa sehingga peretas dapat mencegat kata sandi terenkripsi insinyur untuk memasuki sistem, dan kemudian menggunakannya untuk masuk dengan hak akses administratif, bahkan tanpa mengetahui kata sandi dalam bentuk teks.



-



Dekripsi konfigurasi Konfigurasi terenkripsi yang dikirimkan melalui jaringan berisi kunci enkripsi yang memungkinkan peretas untuk membuang dan mendekripsi.



gambar

Konfigurasi terenkripsi berisi kunci AES untuk mendekripsinya. Sangat berguna untuk meretas



Untuk dekripsi, kami menggunakan pustaka dekripsi berpemilik yang diekstrak dari firmware perangkat. Konfigurasi tersebut berisi file konfigurasi, database SQLite, dan kunci Secure Shell (SSH). Di bawah ini adalah contoh konfigurasi yang didekripsi dari gateway protokol kami sendiri, yang dapat kami intersep.



gambar

File konfigurasi terdekripsi Moxa MGate 5105



Amplifikasi lalu lintas



Karena stasiun data menyiarkan protokol secara asinkron satu sama lain, beberapa permintaan tulis-satu-bit dapat digabungkan menjadi satu permintaan untuk memanfaatkan bus serial dengan lebih baik. Misal, seorang hacker dapat memanggil fungsi 15 (menulis beberapa bit), di data station akan diubah menjadi 1 record untuk ID = 2, 1 untuk ID = 4, 1 untuk ID = 5, 1 untuk ID = 6. Dengan demikian, satu entri Modbus TCP diterjemahkan menjadi empat entri Modbus RTU, menyebabkan sedikit kemacetan pada bus serial.



gambar

Satu perintah TCP untuk menulis sel berubah menjadi empat perintah RTU.



Perhatikan bahwa amplifikasi ini tidak akan menyebabkan Denial of Service (DoS), tetapi bus RS-485 yang kelebihan beban masih dapat menyebabkan perilaku abnormal.



Eskalasi hak istimewa



Pada MGate 5105-MB-EIP, kami menemukan kerentanan eskalasi hak istimewa CVE-2020-885 yang memungkinkan pengguna yang tidak memiliki hak istimewa untuk menjalankan perintah dengan hak istimewa yang lebih tinggi.



Sumber masalahnya adalah kurangnya pemfilteran input pengguna di antarmuka web utilitas Ping.



gambar

Antarmuka Utilitas Ping Mgate



Dengan pengetahuan teknis minimal, pengguna yang tidak memiliki hak istimewa dapat memulai daemon Telnet dalam konteks pengguna root dengan permintaan HTTP GET sederhana dan mendapatkan akses jarak jauh penuh dengan shell root.



Rekomendasi kami



Setelah memeriksa secara spesifik pengoperasian berbagai gateway protokol industri, kami telah mengembangkan sejumlah rekomendasi untuk pemasok, pemasang, atau pengguna akhir.



  1. - . . .
  2. — , , . ICS- . Trend Micro — TXOne Networks, OT .
  3. , — /, . , , , MQTT.
  4. OT , .



All Articles