-
Notifications
You must be signed in to change notification settings - Fork 1
Threat Model
Aleksandar Bosnjak edited this page Sep 16, 2016
·
17 revisions
Information related to the threat model and application.
Threat Model Information | |
---|---|
Application name | Receipt Yourself |
Application version | 1.0 |
Description | Receipt Yourself je web aplikacija namenjena manjim kompanijama za manipulaciju ulaznih i izlaznih faktura. Ovo se radi preko izvoda koji se prima od banke i na osnovu stavki izvoda se zatvaraju fakture. Glavna grupa korisnika sistema - Poslodavci unutar kompanije. Poslodavci će moći da: - se uloguju, - eksportuju razne dokumente, - importuju ulazne fakture i izvode. Aplikaciju ce koristiti vise manjih kompanija (preduzeca), sa dosta poslodavaca unutar njih. |
Document Owner | Nikola Đuza |
Participants | Vladimir Besermenji, Aleksandar Bošnjak |
Reviewer | Nikola Luburic |
ID | Description |
---|---|
1 | Aplikacija će raditi na Linux serveru na Heroku platformi. |
2 | Baza podataka će biti PostgreSQL i konekciju sa aplikacijom će vršiti sama Heroku platforma. |
3 | Komunikacija sa aplikacijom će se vršiti preko HTTPS-a. |
4 | Komunikacija Rails aplikacija sa Angular aplikacijom će se vršiti unutar jednog servera. |
5 | Komunikacija Rails aplikacija sa aplikacijom poslovnog partnera i banke će se vršiti putem HTTPS-a |
6 | Genrisanje izveštaja će se vršit putem Sinatra apliacije za generisanje izveštaja. Komunikaija sa aplikacijom se odvija putem HTTPS-a |
ID | Name | Description | Trust Levels |
---|---|---|---|
1 | HTTPS port | Sve stranice će biti dostupne preko HTTPS-a | (1) Anonimni korisnik (2) Korisnik sa validnim kredencijalima (3) Korisnik sa invalidnim kredencijalima |
1.1 | Landing page aplikacije | Kad se pristupi aplikaciji, prvo što se vidi je glavna strana. | (1) Anonimni korisnik (2) Korisnik sa validnim kredencijalima (3) Korisnik sa invalidnim kredencijalima |
1.2 | Login stranica | Pre nego što korisnik može bilo šta da uradi, mora prvo da se uloguje u aplikaciju. | (1) Anonimni korisnik (2) Korisnik sa validnim kredencijalima (3) Korisnik sa invalidnim kredencijalima |
1.2.1 | Logika logovanja | Logika uzima kredencijale i šalje ih backendu gde se proveravaju sa postojećim kredencijalima u bazi. | (2) Korisnik sa validnim kredencijalima (3) Korisnik sa invalidnim kredencijalima |
1.3 | Import dokumenata | Korisnik će moći da importuje JSON fajlove u aplikaciju za dalju analizu. | (2) Korisnik sa validnim kredencijalima |
1.3.1 | Import ulaznih faktura | Korisnik bira iz fajl sistema fakturu koju želi da importuje u aplikaciju | (2) Korisnik sa validnim kredencijalima |
1.3.2 | Import izvoda | Korisnik importuje izvod koji je primio od banke | (2) Korisnik sa validnim kredencijalima |
ID | Name | Description | Trust Levels |
---|---|---|---|
1. | Korisnici | Informacije o korisnicima | |
1.1 | Korisnički kredencijali | Kredencijali za logovanje na sistem | |
1.2 | Pravila kompanije, planovi i procedure | Osnovna pravila planovi i procedure koje propisuje preduzeće. Na osnovu njih mogu se utvrditi uloge u firmi i kritični poslovni procesi. | |
1.3 | Lični podaci korisnika | Osnovne informacije o korisniku | |
1.4 | Informacije o finansijskom poslovanju firme | Transakcije povezane sa preduzećem. Bankovni računi preduzeća, poslovnih partnera, kao i preostali osetljivi podaci finansijske kartice preduzeća. | |
1.5 | Podaci o poslovnim partnerima | Detalji vezani za kupovinu/nabavku sa poslovnim partnerom (iznos, količina, dostupnost na tržištu). | |
2. | Aplikacija | ||
2.1 | Login sesija | Sesija koju dobija korisnik prilikom loginovanja | |
2.1.1 | Authentication token | Token koji mu se dodeljuje i pripaja sesiji | |
2.2 |
ID | Name | Description |
---|---|---|
1 | Anonimni Web korisnik | Korisnik koji se konektovao na aplikaciju ali nije uneo kredencijale |
2 | Korisnik sa validnim kredencijalima | Korisnik koji je uneo postojeće kredencijale |
3 | Korisnik sa invalidnim kredencijalima | Korisnik koji pokušava da se uloguje sa invalidnim kredencijalima |
4 | Administrator sajta | Korisnik koji ima administratorska prava |
Rank | Name | Description | Case of Failure |
---|---|---|---|
1 | Veza sa poslodavcem (korisnikom sa validnim kredencijalima) | Importovanje dokumenata potrebnih za poslovnu logiku | Aplikacija bi postala skoro beskorisna, nemogucnost importovanja dokumenata bi svela funkcionalnost aplikacije na minimum. |
2 | Veza sa bankom | Import dnevnog izvoda iz banke | Da se narusi veza sa bankom, korisnici ne bi mogli da izvrsavaju zakljucivanje faktura. |
3 | Veza sa anonimnim korisnikom | Mogucnost napada na Login formu | Veliki broj anonimnih korisnika mogu napasti Login formu i time dovesti do DOS-a ili DDOS-a. Ovo bi ucinilo aplikaciju neupotrebljivom neko vreme dok se ne resi overload. |
Threat rank | Threat identification | Possible attacker | Possible damage | Solution |
---|---|---|---|---|
1 | Modifikovane porudžbine eksternih klijenata | Maliciozan učesnik u komunikaciji između sistema i eksternih entiteta. | Porudžbine eksternih entiteta mogu da budu presretnute i modifikovane, i na taj način mogu da naruše celokupan proces poslovanja kao i odnose između preduzeća i samu reputaciju preduzeća. | Potpisivanje porudžbina od strane eksternih entiteta, i provera. HTTPS komunikacija. |
2 | Brisanje svih podataka iz baze podataka | Neovlašćeno eksterno lice, ili nestručan zaposleni | Sve informacije o dosadašnjem poslovanju firme bi se izgubile, firma ne bi mogla da potvrdi svoj legalan rad poreskoj inspekciji, i sledilo bi zatvaranje preduzeća. | Vremenski periodično formiranje backup-ova baze podataka kako bi sačuvali bar jedan glavni noseći deo informacija o poslovanju preduzeća. |
Izveštaj Microsoft Threat Modeling Tool-a