Skip to content

Threat Model

Aleksandar Bosnjak edited this page Sep 16, 2016 · 17 revisions

Receipt Yourself Threat Model

Threat Model Information

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

External Dependencies

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

Entry Points

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
## Assets
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

Trust Levels

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

External Entities Dependencies Rating

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 identification and ranking

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.

Data Flow Diagrams

Izveštaj Microsoft Threat Modeling Tool-a Data Flow Diagram

Threat identification and analyze

security_diagrams sql_injection untitled diagram unauthorized_resource_access