Content area
Full Text
Povzetek. PIVO (programerjevo interaktivno vadbeno okolje) je sistem za interaktivni studij algoritmičnega razmišljanja in programiranja, razvit na Fakulteti za elektrotehniko Univerze v Ljubljani. Uporabljamo ga za spodbujanje samostojnega studija pri predmetih, kjer se poučuje programiranje, primeren paje tudi za izvajanje izpitov in tekmovanj. Studentje v sistemu prevzamejo nalogo, rešitev zanjo razvijejo v svojem okolju, na streznik pa oddajo zaključeno izvorno kodo. Uporabnikova koda se na centralnem strezniku prevede, zazene in preizkusi. Oddana izvorna koda je pogosto nepopolna in potencialno škodljiva za neprekinjeno delovanje streznika. V članku podrobno opisujemo načine za varen zagon nepreverjene kode, ki temeljijo na varnostnih mehanizmih jedra operačijskega sistema Linux. Z uporabo teh mehanizmov lahko streznik varno in hitro souporablja več uporabnikov. Sistem PIVO so študentje dobro sprejeli, pozitivni učinki pri studiju pa so bili merljivi ze po prvih semestrih uporabe.
Kljucne besede: poučevanje na daljavo, programiranje, programska koda, vsebnik, Seččomp, škodljiva koda
(ProQuest: ... denotes formulae omitted.)
A secure run of an untrusted program code in the PIVO system
PIVO (Programmer's Interačtive Exčerčise Environment) is an interačtive online pračtičing tool for algorithmičal thinking and programming developed at the Fačulty of Elečtričal Engineering, University of Ljubljana, Slovenia. It is used for independent study, exčerčising and examination in programming čourses. Through the sistem, a student aquires a task, develops a solution in his/hers personal working environment and submits the sourče čode to the server. The čode is čompiled, run and tested in real time. The submitted čode čan be inčomplete and potentially harmful to the server. This paper proposes tečhniques for untrusted čode sandboxing based on built-in Linux sečurity mečhanisms. Using the tečhiques, PIVO serves multiple users safely and fast. Among the students, the PIVO environment is well aččepted, its impačts and positive study improvements are measurable already after only a few semesters of usage.
Keywords: distanče learning, programming, program čode, čontainer, Seččomp, maličious čode
1 Uvod
Računalniški sistemi so za sodobnega človeka skoraj neizogibni spremljevalči. Računalnik nam v različnih oblikah ne sluzi le kot način zabave, temveč je tudi močno, velikokrat nenadomestljivo delovno orodje. Da lahko to orodje v polnosti izkoristimo, ni dovolj le poznavanje prednalozšene programske opreme. Za resševanje nekonvenčionalnih problemov in koriščenje vseh računskih moznosti je potrebno znanje programiranja.
V tehniških, naravoslovnih in poslovodskih pokličih je programiranje postalo skorajda...