Posted on Leave a comment

Félidőnél tart a SETIT projekt

Buttyán Levente, BME
Ferenc Rudolf és Nagy Gábor Péter, SZTE
Huszti Andrea, DE

Az Internet ma már több beágyazott eszközt köt össze, mint hagyományos PC-t és szervert. A beágyazott eszközökkel kiterjesztett Internetet nevezzük Internet-of-Things-nek, vagy röviden IoT-nek. Az IoT számos alkalmazási területen biztosíthatja az új megoldások és a dinamikus fejlődés lehetőségét. IoT technológiákat használva otthonainkat okos otthonokká, városainkat okos városokká, gyárainkat okos gyárakká, és közlekedési rendszereinket intelligens közlekedési rendszerekké alakíthatjuk. Mindez azonban alakulhat máshogyan is, ha nem gondoskodunk arról, hogy az a technológia, amire a jövőnket építjük, kellően biztonságos és megbízható legyen. „Okos” otthonaink személyes szokásaink és adataink kiszivárogtatójává, „okos” városaink és „intelligens” közlekedési rendszereink masszív megfigyelési platformmá válhatnak.

A fenti problémákat az IoT rendszerek biztonságossá tételével kerülhetjük el. Ezt a célt tűzte ki a SETIT (Security Enhancing Technologies for the Internet of Things) projekt (2018-1.2.1-NKP-2018-00004), melyben a Budapesti Műszaki és Gazdaságtudományi Egyetem, a Szegedi Tudományegyetem és a Debreceni Egyetem együttműködésében olyan új biztonsági megoldások kutatása és fejlesztése folyik, melyek jelentősen csökkentik az IoT rendszerek biztonsági kockázatait. A 4 éves projekt 2018 őszén indult és a „Nemzeti Kiválósági Program: 2018-1.2.1-NKP” pályázati program keretében, a Nemzeti Kutatási és Innovációs Alapból biztosított támogatással valósul meg. Az elmúlt 2 évben számos érdekes és hasznos új eredmény született a projektben; ezekről adunk rövid tájékoztatást az alábbiakban.

IoT eszközök platform szintű biztonsága

A teljes projekt koordinálása mellett, a BME CrySyS Lab vezeti azt a munkacsomagot, ami maguknak a beágyazott IoT eszközöknek, valamint az eszközökön megvalósított program végrehajtási környezetnek a biztonságával foglalkozik. Ez alapvető fontosságú terület, mert az eszköz és a végrehajtási környezet sikeres támadása az IoT eszköz feletti teljes uralom átvételét teszi lehetővé, és ez egyben hatással van minden azon futó vagy azt használó alkalmazásra is.

A projektben intenzíven foglalkozunk malware detekciós módszerek és a malware mentes állapot igazolására használható protokollok fejlesztésével. Olyan új rootkit detekciós módszert javasoltunk1, ahol a detekciót végző ellenőrző algoritmusok futtatása egy izolált, megbízható végrehajtási környezetben történik, melyben a rootkit nem tudja befolyásolni az ellenőrző algoritmusok működését. Kidolgoztuk továbbá az első, erőforrás korlátozott IoT eszközökön futó anti-vírus megoldást2, amit SIMBIoTA-nak neveztünk el. A SIMBIoTA anti-vírus rendszer bináris hasonlóság alapján dönti el egy fájlról, hogy az vírust tartalmaz vagy nem. A módszer gyors és – méréseink alapján – 90%-nál jobb hatékonysággal felismer korábban nem látott vírusokat is. Ugyanakkor, az ehhez szükséges erőforrás felhasználás az IoT eszközön meglepően alacsony. Ezek a tulajdonságok kifejezetten alkalmassá és versenyképessé teszik a SIMBIoTA rendszert az IoT világban. Javasoltunk továbbá egy elemző módszert3 a már azonosított kártékony programok analízisére, melynek segítségével automatizált módon megállapítható, hogy bizonyos rosszindulatú viselkedési minták milyen környezeti feltételek teljesülése mellett aktiválódnak a programban.

Szoftverhibák előrejelzése

Az IoT eszközök biztonságossá tételében kitüntetett szerepet tölt be a rajtuk futó szoftverek minőségének és biztonságának kérdése. A fejlesztők által akaratlanul elkövetett programozási hibák biztonsági réseket nyithatnak a szoftvert futtató IoT eszközön, melyeket rosszindulatú támadók kihasználhatnak. Az SZTE Szoftverfejlesztés Tanszék vezetésével olyan módszerek kidolgozásán fáradozunk, amelyek segíthetnek az IoT eszközökre szánt szoftverekben előforduló hibák mesterséges intelligenciával támogatott automatikus előrejelzésében azok forráskódjának analizálásával. Mivel az IoT eszközök programozása már egyáltalán nem csak a hardver közeli, alacsonyszintű programnyelvekhez kötött, ezért kutatásainkban első sorban a JavaScript programokban levő hibák előrejelzésére koncentráltunk. Annál is inkább, mert ezen technológia népszerűsége robbanásszerűen nő az olyan JavaScript futtató-környezetek megjelenésével, mint a NodeJS, vagy a kifejezetten IoT környezetre szánt JerryScript, illetve Espruino.

Kutatásunk során létrehoztuk a BugsJS JavaScript hibaadatbázist,4,5 amely kézzel validált valós JavaScript programhibákat, azokhoz tartozó unit teszteket, valamint a hibákat javító kódmódosításokat tartalmaz. Ezt az adathalmazt felhasználva gépi tanuló modellek segítségével automatikus szoftverhiba előrejelző módszert6 dolgoztunk ki. Külön is foglalkoztunk a sérülékenységekkel, melyek jellegükben sokszor eltérnek a klasszikus szoftver-hibáktól. Több gépi tanuláson alapuló előrejelző modellt dolgoztunk ki, amelyeket kifejezetten a szoftverhibák ezen speciális típusára finomhangoltunk. Az előrejelzés pontosságának növelése érdekében a statikus programanalízisből származó programjellemzőket ún. folyamat metrikákkal egészítettük ki,7 melyek jelentősen megnövelték az előrejelző modellek hatékonyságát. A sérülékenység előrejelző modellek hatékonysága mellett fontos szempont volt a gépi tanuló modellek által adott előrejelzések alátámasztása megfelelő magyarázattal,8 amely alapján a fejlesztők a javasolt forráskód részeket javítani tudják.

Kriptográfiával kapcsolatos eredmények

Az IoT eszközökről származó adatok többnyire a felhőben tárolódnak vagy ott kerülnek feldolgozásra. Elengedhetetlen az IoT eszközök és a felhőszolgáltatás közötti biztonságos kommunikáció és a felhő oldali biztonságos adatkezelés. A Debreceni Egyetem Informatikai Karának kutatócsoportja az IoT eszközök kriptográfiai algoritmusaival, valamint kriptográfiai protokollok tervezésével és elemzésével foglalkozik. Egy olyan felhasználó hitelesítési protokollt9 terveztünk, amivel a felhasználók egy token segítségével és jelszavukkal férhetnek az adataikhoz. Az általunk javasolt protokollban azonban a felhasználó hitelesítését több felhő szerver együttesen végzi el, a sikeres támadáshoz ezért több szervert kell egyszerre kompromittálni. Kidolgoztunk továbbá egy olyan hitelesítő protokollt,10 melyben a felhasználó PIN kódját vagy jelszavát bilineáris leképezés segítségével tároljuk, ami ellehetetleníti a jól ismert off-line szótár alapú támadásokat. A protokoll megvalósítását segítendő, elkészítettük a bilineáris leképezések egy platform független implementációját.11 Az implementáció az általunk fejlesztett CryptID programcsomag része. A programcsomag nyílt forráskódú és további, az identitás-alapú kriptográfiához szükséges primitíveket is megvalósít.

Több évtizede ismert az az elméleti eredmény, mely szerint a jelenleg használt publikus kulcsú algoritmusok feltörhetők kvantum-számítógépen futó algoritmusokkal, de magának a kvantumszámítógépnek a megalkotása sokáig technikailag nem tűnt lehetségesnek. Ezen a téren azonban az utóbbi években több jelentős áttörés is történt. Ez irányította rá a figyelmet a poszt-kvantum kriptográfiára, mely a beágyazott IoT eszközök esetében is releváns, hiszen ezek az eszközök sokszor évtizedekig működnek egy alkalmazásban, és ennyi idő alatt a kvantum veszély reálissá válhat. Az SZTE Bolyai Intézet matematikus kutatói poszt-kvantum kriptográfiai algoritmusokhoz szükséges matematikai objektumok vizsgálatával foglalkoznak.12,13,14

A SETIT projekt megbeszélései és rendszeres találkozói adták a motivációt arra is, hogy közös BME-SZTE csapattal elinduljunk az NSUCRYPTO’2020 nemzetközi kriptográfiai olimpián. A felkészülés sikerét mutatja a professzionális kategóriában elért I. helyezésünk (Nagy Gábor Péter, Nagy V. Gábor, Győrffy Lajos), valamint a hallgató kategóriában és az egyéni fordulóban elért III. helyezéseink és dicséreteink. Jelen pillanatban is folyik a felkészülésünk NSUCRYPTO’2021 őszi versenyeire. Ugyanez a verseny motiválta egyik MSc hallgatónkat (Kiss Rebeka) két korábban kitűzött, de mindeddig megoldatlan NSUCRYPTO probléma megoldására.15

Kiemelt publikációk

  1. R. Nagy, K. Németh, D. Papp, L. Buttyán, Rootkit Detection on Embedded IoT Devices, accepted for publication in Acta Cybernetica, 2021.
  2. Cs. Tamás, D. Papp, L. Buttyán, SIMBIoTA: Similarity-Based Malware Detection on IoT Devices, International Conference on IoT, Big Data, and Security (IoTBDS), April 2021.
  3. D. Papp, T. Tarrach, L. Buttyán, Towards Detecting Trigger-based Behavior In Binaries: Uncovering the Correct Environment, International Conference on Software Engineering and Formal Methods (SEFM), Oslo, Norway, September 2019.
  4. P. Gyimesi et al., BugsJS: a Benchmark of JavaScript Bugs, 12th IEEE Conference on Software Testing, Validation and Verification (ICST), Xi’an, China, 2019.
  5. P. Gyimesi et al., BUGSJS: a Benchmark and Taxonomy of JavaScript Bugs, Journal of Software: Testing, Verification and Reliability, John Wiley & Sons, October 2020.
  6. G. Antal, Z. Tóth, P. Hegedűs, R. Ferenc, Enhanced Bug Prediction in JavaScript Programs with Hybrid Call-Graph Based Invocation Metrics, Technologies, 9(1):3, 2021.
  7. T. Viszkok. Sérülékenység előrejelzés JavaScript programokban folyamat metrikák segítségével, Student Scientific Conference (TDK), Szeged, September 2020.
  8. B. Mosolygó, N. Vándor, G. Antal, P. Hegedűs, R. Ferenc, Towards a Prototype Based Explainable JavaScript Vulnerability Prediction Model, accepted for publication at the 1st International Conference on Code Quality (ICCQ), 2021.
  9. A. Huszti, N. Oláh, Provably Secure Scalable Distributed Authentication for Clouds. In: Krenn S., Shulman H., Vaudenay S. (eds), Cryptology and Network Security (CANS), LNCS 12579, 2020.
  10. A. Huszti, Sz. Kovács, N. Oláh, Scalable, Password-based and Threshold Authentication for Smart Homes, submitted for publication
  11. Á. Vécsi, A. Bagossy, A Pethő, Cross-platform Identity-based Cryptography using WebAssembly, Infocommunications Journal, Vol. XI, No 4, December 2019.
  12. G. Korchmáros, G. P. Nagy, M. Timpanella, Codes and Gap Sequences of Hermitian Curves, accepted for publication in IEEE Transactions on Information Theory (doi:10.1109/TIT.2019.2950207)
  13. S. El Khalfaoui, G. P. Nagy, On the Dimension of the Subfield Subcodes of 1-point Hermitian Codes, accpeted for publication in Advances in Mathematics of Communications (doi:10.3934/amc.2020054, arxiv.org/abs/1906.10444)
  14. S. El Khalfaoui, G. P. Nagy, Estimating The Dimension Of The Subfield Subcodes of Hermitian Codes, Acta Cybernetica — online first paper version, 2020. (DOI: 10.14232/actacyb.285453, arXiv:2004.05896)
  15. R. Kiss, G. P. Nagy, On the Nonexistence of Certain Orthogonal Arrays of Strength Four, to appear in Prikladnaya Diskretnaya Matematika, 2021. (arXiv:2011.09935)


Posted on 1 Comment

Enabling WiFi and converting the Raspberry Pi into a WiFi AP

This blog post, written by Márton Juhász, is the fifth in a series of blog posts on transforming the Raspberry Pi into a security enhanced IoT platform. This post specifically will explain how to convert the Raspberry Pi into a WiFi access point such that it can perform some gateway-like functionality. First, we describe how to enable WiFi and then how to enable other software components to make the Pi an access point. Continue reading Enabling WiFi and converting the Raspberry Pi into a WiFi AP

Posted on Leave a comment

OS hardening on the Raspberry Pi

This blog post, written by Márton Juhász, is the fourth in a series of blog posts on transforming the Raspberry Pi into a security enhanced IoT platform. Previous posts discussed building a custom Linux system with Buildroot, installing OP-TEE, and verified boot on the Raspberry Pi. This post will describe some OS hardening options you can use to reduce the attacks surface. Continue reading OS hardening on the Raspberry Pi

Posted on Leave a comment

Using Buildroot to create custom Linux system images

This blog post, written by Szilárd Dömötör, is the second post in a series of blog posts on transforming the Raspberry Pi into a security enhanced IoT platform. The first post explained how to build and install the default OP-TEE implementation for the Raspberry Pi 3. This one describes how you can build your own custom Linux system (with OP-TEE) using the Buildroot environment. Continue reading Using Buildroot to create custom Linux system images

Posted on Leave a comment

OP-TEE default build and installation on the Raspberry Pi

This blog post, written by Márton Juhász, is the first in a series of blog posts on transforming the Raspberry Pi into a security enhanced IoT platform.

This blog post explains how to build and install the default OP-TEE implementation for the Raspberry Pi 3. The easiest way is to follow the steps described in the corresponding git repo of OP-TEE. However, for the sake of completeness (and because some steps may actually be a bit confusing in the original description), we provide a comprehensive description here. Continue reading OP-TEE default build and installation on the Raspberry Pi

Posted on Leave a comment

Enhancing the Security of the Internet of Things

The Internet has grown beyond a network of laptops, PCs, and large servers: it also connects millions of small embedded devices. This new trend is called the Internet of Things, or IoT in short, and it enables many new and exciting applications. At the same time, IoT also comes with a number of risks related to information security. The lack of security, however, cannot be tolerated in certain applications of IoT, including connected vehicles and smart factories. In those applications, security failures may lead to substantial physical damage or monetary loss. Therefore, one of the biggest challenges today, which hinders the application of IoT technologies in certain application areas, is the lack of security guarantees. Continue reading Enhancing the Security of the Internet of Things