3. Architektúra tervek - SoosSarolta/ITSecHW_Virucid GitHub Wiki
A követelmények ismeretében elkezdhetjük az online áruház tervezését, mely többféle UML-diagram segítségével is vizualizálható. Jelen dokumentumban a rendszer struktúráját komponens diagramon, viselkedését pedig szekvencia diagramon mutatjuk be.
6. ábra: Az online webáruház komponens diagramja
A rendszer több komponensből áll, melyeket a 6. ábra szemléltet. A rendszer összesen 9 interfészt nyújt a felhasználók számára:
- Felhasználói fiók létrehozása: Ezen az interfészen keresztül lehet létrehozni új felhasználói fiókot, mellyel a webáruházban elérhetővé válnak a fájlok.
- Bejelentkezés: A regisztrált felhasználók ezen az interfészen keresztül tudnak bejelentkezni a rendszerbe.
- Felhasználói adat módosítása: A regisztrált felhasználók ezen az interfészen keresztül tudják módosítani személyes adataikat és jelszavukat. Az adminisztrátorok szintén ezen interfész segítségével képesek a felhasználói adatok megváltoztatására, a felhasználói fiók törlésére.
- Felhasználói adat lekérdezése: Ezen az interfészen keresztül lehet lekérni egy-egy felhasználó adatait.
- CAFF fájl feltöltése: Ezen az interfészen keresztül tudnak a regisztrált felhasználók CAFF fájlokat feltölteni a rendszerbe.
- CAFF fájl letöltése: Ezen az interfészen keresztül tudnak a regisztrált felhasználók CAFF fájlokat letölteni a rendszerből.
- CAFF fájlhoz megjegyzés fűzése: Ezen az interfészen keresztül tudnak a regisztrált felhasználók megjegyzést írni az egyes CAFF fájlokhoz.
- CAFF fájl törlése: Az adminisztrátorok ezen interfész segítségével törölhetnek CAFF fájlokat.
- CAFF fájl - felhasználó összerendelése: Ezen az interfészen keresztül történik a felhasználók és az általuk feltöltött fájlok, illetve az általuk írt hozzászólások összerendelése.
A felhasználói és személyes adatokat a felhasználói adatbázis tárolja. Az adatok kezeléséhez szükség van egy különálló logikai komponensre, a felhasználói adatkezelőre. A CAFF fájlok tárolása és kezelése is hasonló módon lesz implementálva. Mivel a CAFF fájl - felhasználó összerendelés interfész megvalósításához szükség van a felhasználók azonosítóira, ennek átadására külön interfészt hozunk létre a két logikai komponens között. A CAFF fájlokat kezelő komponensnek szerepkörhöz kötötten kell döntenie az egyes tevékenységek engedélyezéséről vagy tiltásáról. Ehhez ismernie kell a felhasználók szerepköreit, melyet az erre dedikált interfészen keresztül kérdezhet le. Mindkét logikai komponens naplózza az elvégzett tevékenységeket.
Ahhoz, hogy a rendszer komponens diagramján biztonsági követelményeket is megjeleníthessünk, az UMLsec kiterjesztést használtuk, ahogy az a 7. ábrán is látható. A rendszer szempontjából kritikus fontosságú erőforrások az adatbázisok és a napló, ezért ezeket a 'critical' sztereotípiával láttuk el. Mindkét adatbázis esetén ún. tagged value-k segítségével jeleztük a kritikus fontosságú aspektusokat. Az adatbázisokat és naplót felhasználó komponensek dependenciákon keresztül mutatják függésüket az erőforrásoktól. A dependenciákon szintén sztereotípiák alkalmazásával jeleztük a felhasználás során biztosítandó biztonsági követelményeket. A felhasználók számára elérhető interfészeken is tagged value-k mutatják, hogy az azt megvalósító komponenseknek a rendszer milyen aspektusait kell megvédeniük.
7. ábra: Az online webáruház komponens diagramja UMLsec kiterjesztéssel
A rendszer viselkedésének bemutatásához minden use-case-hez külön-külön szekvenciadiagramot készítettünk. Esetünkben az 1. ábrán bemutatott szcenáriókat kellett modelleznünk, amelyek két csoportra oszthatók: felhasználói és adminisztrátori műveletekre. Az ábrák értelmezéséhez fontos megjegyezni, hogy a komponensdiagramon látható felhasználói adatkezelő komponens, valamint a korábbi adatfolyam diagramon ábrázolt autentikációs adatkezelő ugyanazt az egységet jelöli!
A rendszer viselkedését az admin műveletek során a 8-10. ábrák, a felhasználói műveletek során pedig a 11-14. ábrák szemléltetik.
- CAFF fájlok törlésekor a CAFF fájlkezelő komponens lekérdezi a kérés kezdeményezőjének szerepkörét. Amennyiben adminisztrátor volt a kezdeményező, úgy végrehajtja a kívánt műveletet, melynek során megszünteti az összerendelést a fájl és a tulajdonos felhasználó között, majd eltávolítja a fájlt. Az auditálási követelmények szerint minden tevékenységet naplózni kell; ezt a követelményt UML megjegyzésként vettük fel a diagramra.
- Felhasználói adatok törlése során szintén szükséges validálni a kezdeményező felet. Ha adminisztátor, akkor végrehajthatjuk a fiók eltávolítását. Ehhez először megszüntetjük az összerendeléseket az eltávolítandó fiók és a fájljai között, töröljük a fájlokat, majd magát a fiókot is.
- Felhasználói adatok módosításakor nem feltétlenül szükséges, hogy a kezdeményező fél admin legyen, viszont kikötés, hogy a felhasználók csak saját adataikon eszközölhetnek változtatást. Ehhez szükséges egy plusz validációs lépést vinni a rendszerbe, melynek során ellenőrizzük, hogy a kezdeményező fél hozzáférhet-e a módosítandó fiókhoz. Ha a validáció sikeres - azaz a kérést adminisztrátor indította, vagy egy felhasználó saját adatait kívánja módosítani -, a rendszer végrehajtja a módosításokat.
- CAFF fájl le-, ill. feltöltésekor ellenőriznünk kell, hogy felhasználó, vagy adminisztrátor indította-e el a kérést, mivel adminisztrátor nem tölthet le, vagy fel CAFF fájlokat. Ha felhasználó indította, akkor végrehajtjuk a kérést, majd visszatérünk egy, a sikerességet megerősítő üzenettel, vagy letöltés esetén magával a CAFF file-al. Hogy a kérést el tudják indítani, feltételezzük, hogy az autentikáció megtörtént, így már csak autorizációs lépés van hátra. Minden ilyen tevékenységet naplózunk.
- CAFF fájl keresésekor nem szükséges feltétlenül ellenőrizni, hogy adminisztrátor, vagy normál felhasználó indította a kérést, azonban miután a rendszer megtalálta a keresett fájlt, még ellenőrzi, hogy az adott felhasználó hozzáférhet-e a fájlhoz. Minden felhasználó csak a saját fájljait törölheti le, kivéve az adminisztrátorokat, akik bármelyik fájlt törölhetik. Minden autentikációs és autorizációs lépést naplózunk.
- CAFF fájl kommentelésekor ellenőrizni kell a tevékenység kezdeményezőjének szerepét, ugyanis adminisztrátor nem változtathat meg fájlokat, csak törölhet, így az ő kérését ebben az esetben el kell utasítani. Amennyiben felhasználó indította a kérést, ki kell keresni a fájlt, ellenőrizni, hogy az adott felhasználóhoz tartozik-e, majd ha a hozzáférést jóváhagyta a rendszer, engedélyezi a komment írást. Itt is minden autentikációs és autorizációs lépést naplózunk.
8. ábra: A rendszer viselkedése CAFF fájlok törlésekor
9. ábra: A rendszer viselkedése felhasználói adatok törlésekor
10. ábra: A rendszer viselkedése felhasználói adatok módosításakor
11. ábra: A rendszer viselkedése egy CAFF fájl feltöltésekor
12. ábra: A rendszer viselkedése egy CAFF fájl letöltésekor
13. ábra: A rendszer viselkedése CAFF fájl keresésekor
14. ábra: A rendszer viselkedése CAFF fájl kommentelésekor