РБС/Јануар 2026 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
(Dopunjeno po secanju zadataka iz januarskog roka)
 
(Није приказана једна међуизмена другог корисника)
Ред 4: Ред 4:


=== 1. zadatak ===
=== 1. zadatak ===
U ''Heartbeat'' protokolu koristi se bibliotečka funkcija ''memcpy'' iz jezika '''C''' i njeno korišćenje je dovelo do ranjivosti ''Heartblead''. Objasniti kako je ova funkcija dovela do toga i kako se ovo može prevazići.
 
U okviru ''Heartbeat'' protokola korišćena je ''memcpy'' bibliotečka funkcija programskog jezika '''C''' koja je dovela do ''Heartblead'' sigurnosnog propusta. U čemu je bio problem i kako ga je moguće izbeći?


'''Odgovor:'''
'''Odgovor:'''
Ред 12: Ред 13:


=== 2. zadatak ===
=== 2. zadatak ===
Šta od navedenog ne spada u principe bezbednog dizajna:
Da li se kod ''NIST SSDF'' okvira za razvoj bezbednog softvera primenjuje statička analiza i ukoliko se primenjuje , u kojoj grupi praksi?
<div class="abc-list" data-solution="single">
<div class="abc-list" data-solution="single">
# Razdvojiti odgovornosti
# Ne primenjuje se
# Osigurati najslabiju kariku
# Odgovoriti na ranjivost (Respond to Vulnerabilities)
# <span class="solution">Dodeliti najveće potrebne privilegije</span>
# Zaštititi softver (Protect the Software)
# Koristiti jednostavna rešenja
# <span class="solution">Proizvesti dobro zaštićen softver (Produce Well Secured Software)</span>
# Beležiti osetljive događaje
# Pripremiti organizaciju (Prepare the Organization)
# Ne oslanjati se na nejasnost
# Implementirati odbranu u dubinu
# Ne izmišljati bezbednosnu tehnologiju
# Oprezno dodeljivati poverenje:
</div>
</div>


=== 3. zadatak ===
=== 3. zadatak ===
Postoje eksplicitni i kvalitativni sigurnosni zahtevi. Odakle potiču eksplicitni sigurnosni zahtevi. Navesti primer eksplicitnog zahteva i objasniti kako je dobijen.
Prema izvoru sigurnosni zahtevi se dele na eksplicitne i kvalitativne. Kako se dobijaju eksplicitni sigurnosni zahtevi? Dati primer nekog eksplicitnog sigurnosnog zahteva i objasniti kako je dobijen.


'''Odgovor:'''
'''Odgovor:'''
Ред 34: Ред 31:


=== 4. zadatak ===
=== 4. zadatak ===
Ako u sistemu imamo 5 objekata i 5000 subjekata, koju kontrolu pristupa je bolje koristiti?
Koji od sledećih principa ne pripada listi principa bezbednog dizajna?
<div class="abc-list" data-solution="single">
<div class="abc-list" data-solution="single">
# <span class="solution">Kontrola pristupa zasnovana na ulogama</span>
# Oprezno dodeljivati poverenje
# Liste za kontrolu pristupa
# Ne oslanjati se na nejasnost
# Koristiti jednostavna rešenja
# Osigurati najslabiju kariku
# Obezbediti greške i koristiti sigurne podrazumevane akcije
# Implementirati odbranu u dubinu
# <span class="solution">Dodeliti najveće moguće privilegije</span>
# Razdvojiti odgovornosti
# Ne izmišljati bezbednosnu tehnologiju
# Beležiti osetljive događaje
</div>
</div>


=== 5. zadatak ===
=== 5. zadatak ===
U ''NIST SSDF'' da li se koristi statičko testiranje i ako da, u kojoj fazi?
Ako u sistemu imamo 5 objekata i 5000 subjekata, koju kontrolu pristupa je bolje koristiti?
<div class="abc-list" data-solution="single">
<div class="abc-list" data-solution="single">
# Priprema organizacije
# <span class="solution">Liste za kontrolu pristupa</span>
# Zaštita softvera
# Kontrola pristupa zasnovana na ulogama.
# <span class="solution">Produkcija dobro zaštićenog softvera</span>
# Odgovor na ranjivosti
# Ne primenjuje se
</div>
</div>


=== 6. zadatak ===
=== 6. zadatak ===
U '''STRIDE''' metodologiji, šta predstavlja pretnju Autorizaciji?
'''STRIDE''' je mnemonik koji definiše šest kategorija pretnji. Koja od njih je pretnja za autorizaciju?
<div class="abc-list" data-solution="single">
<div class="abc-list" data-solution="single">
# Skrivanje identiteta
# Odbijanje usluge
# Neautorizovana izmena podataka
# Sakrivanje identiteta
# Osporavanje
# Poricanje
# Neautorizovan pristup podacima
# Onemogućavanje pristupa
# <span class="solution">Podizanje privilegija</span>
# <span class="solution">Podizanje privilegija</span>
# Izmena
# Otkrivanje informacija
</div>
</div>


=== 7. zadatak ===
=== 7. zadatak ===
U '''OSSTMM''', šta predstavlja slepo testiranje?
Kada kažemo da nam je strategija izbegavanja rizika '''deljenje rizika''', to onda znači:
<div class="abc-list" data-solution="single">
<div class="abc-list" data-solution="single">
# <span class="solution">Analitičar nema predznanje o sistemu, a meta je spremna i unapred upoznata sa testiranjem.</span>
# Da se neće ništa preduzimati
# Analitičar nema predznanje o sistemu, a meta nije spremna niti upoznata sa testiranjem.
# <span class="solution">Angažovanje treće strane da se izbegne pretnja ili informisanje klijenta da je njegova obaveza da se pozabavi rizikom</span>
# Analitičar poznaje kanale napada i delimično odbrane, a meta je spremna i unapred upoznata sa svim detaljima.
# Izbacivanje modula koji uvodi rizik
# Analitičar poznaje kanale napada i delimično odbrane, a meta je upoznata sa okvirom testiranja, ali ne i sa kanalima i vektorima napada.
# Promenu dizajna modula, dodavanje novih radnih zadataka, kupovinu dodatnih alata
# Analitičar poznaje sve detalje o mogućim napadima, a meta je spremna i unapred upoznata sa svim detaljima.
# Analitičar poznaje sve detalje o mogućim napadima, a meta nije spremna niti upoznata sa testiranjem.
</div>
</div>


=== 8. zadatak ===
=== 8. zadatak ===
Šta predstavlja '''deljenje rizika'''?
U '''OSSTMM''', šta predstavlja slepo testiranje?
<div class="abc-list" data-solution="single">
<div class="abc-list" data-solution="single">
# Promena dizajna modula, dodavanje novih radnih zadataka, kupovina dodatnih alata?
# Analitičar poznaje sve detalje o mogućim napadima, a meta je spremna za testiranje i zna unapred sve detalje testiranja.
# Uklanjanje modula koji uvodi rizik
# Analitičar poznaje kanale napada i delimično odbrane sistema, a meta je obaveštena o napadu i okvirom testiranja, ali ne i sa kanalima i vektorima napada.
# <span class="solution">Angažovanje treće strane da se izbegne pretnja ili informisanje klijenta da je njegova obavaza da se pozabavi pretnjom</span>
# Analitičar nema predznanje o sistemu koji testira, a meta nije unapred upoznata sa testiranjem.
# Prihvatanje rizika
# <span class="solution">Analitičar nema predznanje o sistemu koji testira, a meta je spremna za testiranje i zna unapred sve detalje testiranja.</span>
# Analitičar poznaje sve detalje o mogućim napadima, a meta nije unapred upoznata sa testiranjem.
# Analitičar poznaje kanale napada i delimično odbrane sistema, a meta je spremna za testiranje i zna unapred sve detalje testiranja.
</div>
</div>


=== 9. zadatak ===
=== 9. zadatak ===
Koji mehanizam validacije je primenjen u sledećem primeru koda?
<syntaxhighlight lang="python">
<syntaxhighlight lang="python">
LOG_FILE_LIST = ["data_log", "system", "access"]
LOG_FILES = ["auth.log", "syslog", "access.log"]
def read_logs(log_file_name):
def display_log(log_file_name):
if log_file_name not in LOG_FILE_LIST:
if log_file_name not in LOG_FILES:
return "Invalid log file name"
return "Invalid log file selection"
result = subprocess.run(["cat", f"/var/log/{log_file_name}.log"], capture_output=True, text=True)
    result = subprocess.run(["cat", f"/var/log/{log_file_name}"], capture_output=True, text=True)
     return result.stdout
     return result.stdout
</syntaxhighlight>
</syntaxhighlight>


Koja tehnika je primenjena?
Izaberite jedan odgovor:
<div class="abc-list" data-solution="single">
<div class="abc-list" data-solution="single">
# Blackisting
# Upotreba sigurnih api poziva
# Blacklisting
# <span class="solution">Whitelisting</span>
# <span class="solution">Whitelisting</span>
# Bezbedan poziv API
# Dokumentovan je očekivan unos
# Beleženje korisničkih akcija
</div>
</div>


=== 10. zadatak ===
=== 10. zadatak ===
Za isti kod iz prethodnog zadatka unosi se
Objasniti šta se događa ukoliko se u istom isečku koda kao log_file_name prosledi sledeći niz karaktera:


<syntaxhighlight lang="python">
<syntaxhighlight lang="python">
system; rm -rf /
"syslog; rm -rf"
</syntaxhighlight>
</syntaxhighlight>
Objasniti kako će biti obrađen ovaj unos.


<syntaxhighlight lang="python">
<syntaxhighlight lang="python">
Ред 117: Ред 118:
</syntaxhighlight>
</syntaxhighlight>


Dodatno ukratko objasniti ovaj mehanizam zaštite.
Dodatno, ukratko objasniti mehanizam validacije primenjen u ovom primeru.


'''Odgovor:'''
'''Odgovor:'''

Тренутна верзија на датум 12. март 2026. у 22:38

Ispit u januarskom ispitnom roku 2026. godine održan je 18. februara, trajao je sat vremena i radio se preko platforme Moodle u Secure browser.

  • За питања са више одговора, тачни одговори су подебљани и уоквирени
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
  • Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:

1. zadatak

U okviru Heartbeat protokola korišćena je memcpy bibliotečka funkcija programskog jezika C koja je dovela do Heartblead sigurnosnog propusta. U čemu je bio problem i kako ga je moguće izbeći?

Odgovor:

Funkcija ima potpis memcpy(bp, pl, payload) koja kopira payload bajtova iz bafera pl u bp. Ovo se koristi u Heartbeat za proveru da li je server aktivan. Klijent šalje poruku i dužinu poruke serveru, i server odgovara istom porukom. Ranjivost nastaje jer se ne radi provera da li je payload veći od veličine pl, pa klijent može da pošalje poruku veličine 4B, a payload da postavi na 128KB, i samim tim da pročita osetljive informacije - lozinke, podatke o brojevima kreditnih kartica i slično - buffer overread. Ovo se može prevazići jednostavnom proverom da li je payload veći od veličine pl, i ako da da se prijavi greška.

2. zadatak

Da li se kod NIST SSDF okvira za razvoj bezbednog softvera primenjuje statička analiza i ukoliko se primenjuje , u kojoj grupi praksi?

  1. Ne primenjuje se
  2. Odgovoriti na ranjivost (Respond to Vulnerabilities)
  3. Zaštititi softver (Protect the Software)
  4. Proizvesti dobro zaštićen softver (Produce Well Secured Software)
  5. Pripremiti organizaciju (Prepare the Organization)

3. zadatak

Prema izvoru sigurnosni zahtevi se dele na eksplicitne i kvalitativne. Kako se dobijaju eksplicitni sigurnosni zahtevi? Dati primer nekog eksplicitnog sigurnosnog zahteva i objasniti kako je dobijen.

Odgovor:

Eksplicitni zahtevi potiči iz regulativa i standarda. Regulative propisuju zaštitu IKT i zaštitu od napada (zakoni). Moraju se ispoštovati. Standardni su dokumenta odobrena od strane prepoznatih ili priznatih tela za standardizaciju. Ne moraju se ispoštivati. Primer eksplicitnog zahteva - zakon propisuje da nalozi na eUpravi moraju imati lozinku od najmanje 10 karaktera, i to bar 1 veliko slovo, bar 1 broj i bar 1 specijalni karakter iz određenog skupa. Ovo je dobijeno jer je pokazano da se primenom ovih kriterijuma otežava provaljivanje lozinke poznatim tehnikama.

4. zadatak

Koji od sledećih principa ne pripada listi principa bezbednog dizajna?

  1. Oprezno dodeljivati poverenje
  2. Ne oslanjati se na nejasnost
  3. Koristiti jednostavna rešenja
  4. Osigurati najslabiju kariku
  5. Obezbediti greške i koristiti sigurne podrazumevane akcije
  6. Implementirati odbranu u dubinu
  7. Dodeliti najveće moguće privilegije
  8. Razdvojiti odgovornosti
  9. Ne izmišljati bezbednosnu tehnologiju
  10. Beležiti osetljive događaje

5. zadatak

Ako u sistemu imamo 5 objekata i 5000 subjekata, koju kontrolu pristupa je bolje koristiti?

  1. Liste za kontrolu pristupa
  2. Kontrola pristupa zasnovana na ulogama.

6. zadatak

STRIDE je mnemonik koji definiše šest kategorija pretnji. Koja od njih je pretnja za autorizaciju?

  1. Odbijanje usluge
  2. Sakrivanje identiteta
  3. Poricanje
  4. Podizanje privilegija
  5. Izmena
  6. Otkrivanje informacija

7. zadatak

Kada kažemo da nam je strategija izbegavanja rizika deljenje rizika, to onda znači:

  1. Da se neće ništa preduzimati
  2. Angažovanje treće strane da se izbegne pretnja ili informisanje klijenta da je njegova obaveza da se pozabavi rizikom
  3. Izbacivanje modula koji uvodi rizik
  4. Promenu dizajna modula, dodavanje novih radnih zadataka, kupovinu dodatnih alata

8. zadatak

U OSSTMM, šta predstavlja slepo testiranje?

  1. Analitičar poznaje sve detalje o mogućim napadima, a meta je spremna za testiranje i zna unapred sve detalje testiranja.
  2. Analitičar poznaje kanale napada i delimično odbrane sistema, a meta je obaveštena o napadu i okvirom testiranja, ali ne i sa kanalima i vektorima napada.
  3. Analitičar nema predznanje o sistemu koji testira, a meta nije unapred upoznata sa testiranjem.
  4. Analitičar nema predznanje o sistemu koji testira, a meta je spremna za testiranje i zna unapred sve detalje testiranja.
  5. Analitičar poznaje sve detalje o mogućim napadima, a meta nije unapred upoznata sa testiranjem.
  6. Analitičar poznaje kanale napada i delimično odbrane sistema, a meta je spremna za testiranje i zna unapred sve detalje testiranja.

9. zadatak

Koji mehanizam validacije je primenjen u sledećem primeru koda?

LOG_FILES = ["auth.log", "syslog", "access.log"]
def display_log(log_file_name):
	if log_file_name not in LOG_FILES:
		return "Invalid log file selection"
    result = subprocess.run(["cat", f"/var/log/{log_file_name}"], capture_output=True, text=True)
    return result.stdout

Izaberite jedan odgovor:

  1. Upotreba sigurnih api poziva
  2. Blacklisting
  3. Whitelisting
  4. Dokumentovan je očekivan unos

10. zadatak

Objasniti šta se događa ukoliko se u istom isečku koda kao log_file_name prosledi sledeći niz karaktera:

 "syslog; rm -rf"
LOG_FILE_LIST = ["data_log", "system", "access"]
def read_logs(log_file_name):
	if log_file_name not in LOG_FILE_LIST:
		return "Invalid log file name"
	result = subprocess.run(["cat", f"/var/log/{log_file_name}.log"], capture_output=True, text=True)
    return result.stdout

Dodatno, ukratko objasniti mehanizam validacije primenjen u ovom primeru.

Odgovor:

Unos pored dozvoljene niske sadrži i nedozvoljene karaktere, pa će program vratiti Invalid log file name. Ovde se koristi tehnika whitelisting, za sprečavanje Command injection napada - do kog dolazi usled Improper input validation. Postoji lista dozvoljenih unosa, ako naš unos nije među njima, on se odbacuje i prijavljuje se greška. Ovo je proaktivan pristup, smanjuje značajno mogućnost za napad i samim tim je bolja tehnika od blackistinga.

Napomene

  • Ovaj rok je napisan isključivo po sećanju studenata.
  • U određenim zadacima eksplicitne vrednosti ili ponuđeni odgovori možda nisu isti kao u originalnoj postavci, međutim u svim zadacima gde je to slučaj, očuvana je suština zadatka.