A formális módszerek szerepe a rendszerek biztonságának növelésében Dr. Bartha Tamás BME Közlekedésmérnöki és Járműmérnöki Kar Közlekedés- és Járműirányítási Tanszék
A formális módszerek rövid bemutatása Mik ezek és mire lehet őket használni? 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 2
Fejlesztési megközelítés: MBE Modell: Egy koncepció, jelenség, kapcsolat, szerkezet vagy rendszer egyszerűsített leírása Grafikus, matematikai vagy fizikai reprezentáció A valóság absztrakciója a felesleges összetevők kiküszöbölésével A modell céljai közé tartozik a megértés megkönnyítése, segítségnyújtás a döntéshozatalban, a "mi van, ha" forgatókönyvek vizsgálatában, az események magyarázata, ellenőrzése és előrejelzése. A modellalapú fejlesztés (Model Based Engineering, MBE): olyan mérnöki megközelítés, amely modelleket használ a tervezés technikai alapja szerves részeként, magában foglalva egy képesség, rendszer és/vagy termék követelményeit, elemzését, tervezését, végrehajtását és ellenőrzését a megvalósítás teljes életciklusa alatt. [Zárójelentés, Modellalapú Fejlesztés Albizottság, NDIA, 2011. február] 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 3
Modellalapú rendszerfejlesztés A modellalapú rendszerfejlesztés (MBSE) a modellezés formalizált alkalmazása a rendszerkövetelmények, a tervezés, az elemzés, az ellenőrzés és a validálási tevékenységek támogatása érdekében, a koncepcionális tervezési fázistól kezdve, a fejlesztés és a későbbi életciklusok során folytatva. [INCOSE SE Vision 2020, 2007. nov.] Formalizálja a rendszerfejlesztés gyakorlatát a modellek használatán keresztül Széles tartományt lefed Több modellezési területet tartalmaz az életciklus során az komplex rendszerektől a komponensekig Minőség- és termelékenynövekedést eredményez a kockázat csökkentése mellett Rigorózus és precíz Fejlesztőcsapat és ügyfél közötti kommunikáció félreértések nélkül A komplexitás kezelése 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 4
Formális módszerek Formális módszer specifikáció (tulajdonságok/követelmények leírása) + modell (viselkedés leírása/végrehajtás) + analízis metódus/eszköz A formális specifikáció tulajdonságok olyan csoportjának kifejezése egy adott formális nyelven és adott absztrakciós szinten, amiket valamilyen rendszernek el kell látnia [Lamsweerde, 2000] A cél egy bizonyos (számítástechnikai) rendszer viselkedésének garantálása precíz/rigorózus megközelítés alkalmazásával" [Almeida et al., 2011] Kulcsszavak Egyértelmű, ellentmondásmentes leírások (szintakszis/szemantika) Matematikailag bizonyítható helyesség, teljesség és ellentmondás-mentesség 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 5
Formális módszerek alkalmazási területei Diszkrét (időzítetlen/időzített) modellek, kvalitatív leírások Verifikáció (helyességigazolás) A rendszerfejlesztés különböző fázisai megfelelnek-e a specifikációnak? A rendszert megfelelő módon építjük-e? Formális verifikáció: formális módszerrel végrehajtott ellenőrzés Sztochasztikus modellek Biztonsági elemzés, tranziensek és állandósult állapotbeli viselkedés Megbízhatósági analízis, teljesítőképességi elemzés dinamikus rendszerállapotokra, az FTA módszeren túl Prediktív vizsgálatok, előrejelzések 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 6
Formális modellek ellenőrzése Hogyan lehet felépíteni a formális modellt? Követelmény és forgatókönyv (szcenárió) modellezés Viselkedésmodellezés Automata, Petri hálók, időzített automata, állapottérképek,... Tulajdonság leíró nyelvek Object Constraint Language (OCL), temporális logika, Alloy Hogyan lehet formalizálni a követelményeket? Property Specification Language (PSL) Szekvencia diagramok Minta alapú követelmény formalizálás, Korlátozott Angol Temporális OCL, temporális logika Hogyan ellenőrizhető a követelmények teljesítése? Modellellenőrzés Automatikus tételbizonyítás 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 8
Automatizált formális verifikáció Informális tervek Formális modell Tervezett rendszer Informális követelmények Formalizált követelmények Alacsony szintű, magasabb szintű, vagy mérnöki modellek Automatikusan ellenőrizhető, precíz követelmények teljesült Automatikus modellellenőrző nem teljesült OK Ellenpélda 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 10
Tesztelés és modellellenőrzés összehasonlítása Modellellenőrző eszközök: algoritmusok annak ellenőrzésére, hogy egy globális modell (HW, SW, folyamat, stb.) teljesít-e adott követelményeket pl. NuSMV, UPPAAL, DFinder (BIP), SPIN, KRONOS, stb. Tesztelés / szimuláció 5 3 + Modellellenőrzés?? + o Bemenetet megadjuk, kimenetet ellenőrizzük o Adott viselkedést vizsgálunk? - 3 o Általában: kimeneti kombináció vagy a kimeneten megfigyelhető belső állapot ellenőrzése o Más módon is használható 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 11
Modellellenőrzés Előnyök Az összes lehetséges viselkedést felderíti lehetővé teszi olyan tulajdonságok ellenőrzését is, amelyeket szinte lehetetlen tesztelni Ellenpéldák Lehetőség van az automatizálásra így a formális módszerekhez nem értők is használhatják Hátrányok A modellt ellenőrzi, nem a valós rendszert hogyan lehetünk biztosak abban, hogy a valós rendszerre érvényesek az eredmények? Állapottér robbanás Formális specifikációra és formális modellre van szükség ezek más ábrázolásokból is előállíthatók de ezeknek is formálisnak kell lenniük 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 12
Formális módszerek ipari alkalmazása Mítoszok és sikertörténtek 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 13
Mítoszok a formális módszerekkel kapcsolatban Hét mítosz a formális módszerekről [Hall, 1990] A formális módszerek magasan képzett matematikusokat igényelnek A formális módszerek növelik a fejlesztés költségeit A formális módszereket nem használják valódi, nagyméretű szoftverekre További hét mítosz a formális módszerekről [Bowen and Hinchey, 1995] A formális módszerek késleltetik a fejlesztési folyamatot A formális módszereket nem támogatják eszközök A formális módszerek csak a szoftverekre alkalmazhatók A formális módszerek szakértői mindig formális módszereket használnak 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 14
Klasszikus alkalmazások USA TCAS-II ütközéselkerülő rendszer RSML nyelven specifikált; teljesség és ellentmondás-mentesség ellenőrzése Philips Audio Protocol 1994: manuális verifikáció, majd 1996: automatikus ellenőrzés (HyTech) Lockheed C130J repülési szoftvere Programfejlesztés helyességbizonyítással (CORE specifikációs nyelv + Ada kód) Költség nem nőtt a tesztelés egyszerűsödése miatt IEEE Futurebus+ szabvány Carnegie Mellon SMV: cache koherencia protokoll hibájának kiderítése Hardver projektek: ACL2 automatikus tételbizonyító alkalmazása Motorola DSP Complex Arithmetic Processor mag (250 regiszter): DSP algoritmusok ellenőrzése AMD 5K86 processzor: Lebegőpontos osztás algoritmusának ellenőrzése Intel Core i7 processzor For the recent Intel Core TM i7 design we used formal verification as the primary validation vehicle for the core execution cluster Szimbolikus szimuláció az adatutak teljes vizsgálatára (2700 mikroutasítás, 20 mérnökév) Modell alapú szoftverfejlesztéshez kapcsolódó eszközök IBM, Esterel, Prover, Mentor, Verum, Telelogic, 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 15
További sikertörténetek Formális módszerek egy valós légiforgalom-irányítási projektben, 1992 A Needham-Schroeder nyilvános kulcsú titkosítási protokoll feltörése és javítása, 1996 Párizsi metró Météor: A B nyelv sikeres alkalmazása egy nagy projektben, 1999 Mobil kommunikációs protokoll A formális leírási technikák sikertörténete: Estelle specifikáció és tesztelés a MIL-STD 188-220-hez, 2000 Verifikációs és validációs eszközök kísérleti értékelése a Martian Rover szoftverének vizsgálatával, 2004 Vasúti jelzés A formális módszerek adaptálása egy nagy vasúti jelzőberendezés gyártónál, 2006 Valós idejű operációs rendszer OpenComRTOS: egy ultra-kis, hálózati központú, beágyazott RTOS, amelyet formális modellezéssel terveztek, 2007 San Juan-i metró Daniel: automatizált tulajdonság ellenőrzés nagy méretű B modellekhez, 2009 Formális verifikációs tanulmány a rotterdami vihardagály gát elemzéséről, 2010 sel4: Az operációs rendszermag hivatalos verifikációja, 2010 New York-i metró Formai bizonyítások a NYCT Line 7 (Flushing) modernizációs projekthez, 2012 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 16
Prediktív alkalmazás MOSEL-2: Egyszerűsített formális módszer a nem-funkcionális rendszertulajdonságok előrejelzéséhez 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 19
A MOSEL-2 rendszer felső két szintje 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 20
A MOSEL-2 környezet alsó két szintje Alapmodell: diszkrét állapotú, folytonos idejű sztochasztikus folyamat 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 21
Egy határállomás áteresztőképességének elemzése Közlekedésmérnöki és Járműmérnöki Kar Közlekedés- és Járműirányítási Tanszék 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 22
Formális módszerek ipari alkalmazása Az elfogadás aktuális állapota és a következő lépések 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 23
A formális módszerek elfogadottsága az iparban "... bár az akadémiai szféra állítja, hogy a formális módszerek segíthetnek a szoftverek minőségének növelésében, ezek a módszerek az iparágban kevéssé elfogadottak" [Knight et al., 1997] Az elfogadás hiányának fő okai: A formális módszerek problémái: meredek tanulási görbe, szakértelmet és tapasztalatot igényel korlátozott hatókörű, ezért jellemzően több paradigmát is alkalmazó keretrendszerre van szükség korlátozott skálázhatóság Ipari helyzet: a szoftverfejlesztés a formális módszerek nélkül is sikeres a formális módszerek (megfelelő) képzésének hiánya erős elkötelezettség a piacra kerülési időre (fontosabb, mint a minőség!) folyamatosan változó követelmények 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 24
A nehézségek (egy részének) kezelése Rendszertervezés Mérnöki modell (pl. UML) Automatikus modellgenerálás Eredmények visszavezetése Formális ellenőrzés Formális modell Analízis Megvalósítás int main() { while (i<z){ a=x+x*b[i++]; } } Implementáció (felhasználó elől elrejtve) 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 26
Gyakorlati példa: a MODCHK rendszer A finn VTT kutatóközpont által kifejlesztett MODCHK eszköz lehetővé teszi a funkcióblokk diagramok grafikus modellezését és a (háttérben elvégzett modellellenőrzés által talált) ellenpéldák visszavetítését/megjelenítését. 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 27
A MODCHK rendszer által talált ellenpélda 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 28
V-től az Y fejlesztési modellig Szoftverfejlesztés a V-modell szerint Életciklus Megtakarítás 0% Kézi kódolás -20% Közönséges automatikus kódgenerátor használata -50% Minősített automatikus kódgenerátor használata -60% Formális verifikációval kiegészített tervezés * Adatok: Esterel Technologies 40 50 100% ráfordítás 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 29
Összefoglalás A formális módszerek Sokrétűen felhasználhatók Olyan (biztonsági) garanciákat nyújtanak, amit a tradícionális megközelítések nem tudnak Korai szakaszban segítik a hibák elkerülését és felfedését Ugyanakkor Elfogadottságuk még alacsony Ennek elsősorban a nem megfelelő eszközkészlet áll a hátterében De a fejlődés töretlen! Költséghatékonyság: hibák korai felfedése 2017.11.29. A formális módszerek szerepe a rendszerek biztonságának növelésében 30