Details

Razvoj abstraktnega stroja s preverjanjem kode
ID Poženel, Matic (Author), ID Mihelič, Jurij (Mentor) More about this mentor... This link opens in a new window

.pdfPDF - Presentation file, Download (485,03 KB)
MD5: E3AE0629BFE699B4C913C9A3DB1C0786

Abstract
Varno izvajanje programov zahteva strogo preverjanje kode, preden se program sploh izvede. Varnost lahko še dodatno okrepimo s sledenjem pretoku informacij, ki omogoča nadzor nad tem, kako se vrednosti prenašajo med različnimi deli sistema, predvsem standardnim vhodom in izhodom. V pričujočem delu je zasnovan eksperimentalni abstraktni stroj, katerega računski model združuje lastnosti skladovne in registrske arhitekture. Vrednosti na skladu so nespremenljive, nadzorni tok pa je omejen na pogojne stavke in klice funkcij. Stroj je implementiran kot knjižnica v jeziku Rust ter vsebuje izvajalnik za konkretno izvajanje programov in preverjalnik, ki pred izvajanjem opravi preverjanje kode z uporabo intervalov, ki predstavljajo možne vrednosti med izvajanjem. Oba dela stroja podpirata tudi sledenje pretoku informacij. Stroju je potrebno podati varnostno politiko, ki določa pravila za sledenje. Da se izognemo plazenju oznak, je s funkcijami za siromašenje mogoče spremeniti oznake podatkov iz strogih v ohlapne. Izdelani stroj uspešno preverja programe pred izvajanjem in izvaja sledenje pretoku informacij.

Language:Slovenian
Keywords:abstraktni stroj, preverjanje kode, enkratno prirejanje, sledenje pretoku informacij
Work type:Bachelor thesis/paper
Organization:FRI - Faculty of Computer and Information Science
Year:2026
PID:20.500.12556/RUL-187782 This link opens in a new window
Publication date in RUL:14.09.2026
Views:4
Downloads:1
Metadata:XML DC-XML DC-RDF
:
Copy citation
Share:Bookmark and Share

Secondary language

Language:English
Title:Development of an abstract machine with code verification
Abstract:
Safe execution of programs requires strict code verification before the program is executed at all. Security can be further enhanced by information flow tracking, which allows control over how values are transferred between different parts of the system, especially standard input and output. In this thesis, an experimental abstract machine is designed, whose computational model combines properties of stack-based and register-based architectures. Stack values are immutable, and control flow is restricted to conditional statements and function calls. The machine is implemented as a library in the Rust language and includes an executor for concrete program execution and a verifier that performs code verification before execution using intervals that represent possible values during execution. Both parts of the machine also support information flow tracking. The machine requires a security policy that defines the rules for tracking. To avoid tag creep, it is possible to change data tags from strict to loose using downgraders. The developed machine successfully verifies programs before execution and performs information flow tracking.

Keywords:abstract machine, code verification, single assignment, information-flow tracking

Similar documents

Similar works from RUL:
Similar works from other Slovenian collections:

Back