SI Intrebari P1

An illustrated representation of cybersecurity concepts, including buffer overflow vulnerabilities, cryptography, and secure programming, with a modern and high-tech background.

Buffer Overflow and Cryptography Quiz

Test your knowledge on critical concepts related to buffer overflows, digital signatures, and cryptography. This quiz dives deep into security practices and programming vulnerabilities, ideal for those interested in cybersecurity.

Engage with topics such as:

  • Hash Functions
  • Return-Oriented Programming
  • Asymmetric Cryptosystems
  • Secure Software Development
41 Questions10 MinutesCreated by ExploringCyber42
Cum obtinem cea mai mica valoare pentru adresa de return in contextul unui atac bazat pe buffer overflow avand adr_buf adresa de inceput a buffer-ului tinta si adr_ebp valoarea frame pointer-ului curent?
Adr_ebp-adr_buf+2
Adr_ebp+2
Adr_ebp+8
Adr_ebp-adr_buf+8
Care e efectul executiei urmatorului cod sursa : extern char ** environ bla bla
Cand argv[1][0] ==1 nu se transmit variabilele de mediu catre noul proces
Cand argv[1][0] ==1 noul proces mosteneste variabilele de mediu din procesul parinte
Cand argv[1][0] ==2 se transmite un set nou de variabile de mediu catre noul proces
Cand argv[1][0] ==3 nu se transmit variabilele de mediu catre noul proces
Daca o functie hash are output pe 32 de biti, ne asteptam la a gasi un input pentru un anume output dupa aproximativ cati pasi:
2^31
2^16 nuj exact cat e
2^64
2^32
Cum acceseaza functia printf argumentele optionale?
Prin intermediul stivei pornind de la locatia pe stiva a variabilelor locale
Prin intermediul stivei pornind de la locatia pe stiva a argumentului ce contine informatia de formatare
Prin intermediul stivei pornind de la locatia pe stiva a adresei de return
Direct prin valoare
Urmatoarele afirmatii despre return-oriented programming sunt adevarate?
Return-oriented programming se poate implementa doar folosind apeluri catre functia system()
Return-to-libc reprezinta un caz particular de return-oriented porgramming
Return-oriented programming se poate implementa prin apeluri inlantuite catre mai multe blocuri de cod
Return-oriented programming se poate implementa prin apeluri inlantuite catre mai multe functii
Functia execve()
Primeste ca parametru un string ce contine intreaga comanda fara separarea datelor de intrare pentru comanda
Primeste 3 parametrii
Primeste ca parametru comanda ,datele de intrare pentru comanda si variabilele de mediu
Primeste un singur parametru
. La sistemul one-time pad, fie blocul de mesaj 0xFF si cel de cheie 0xFF cat este criptotextul:
0xEF
0x00
0XF0
0XEE
Care din urmatoarele afirmatii sunt adevarate?
Modificarea valorii unei variabile shell afecteaza variabilele de mediu corespunzatoare
Variabilele de mediu si cele de shell au intotdeauna valori identice
Modificarile variabilelor shell nu se reflecta asupra variabilelor de mediu
Variabilele de mediu sunt copiate ca variabile shell la pornirea unei aplicatii shell
. Ce pasi presupune atacul return-to-libc?
Stocarea in memorie a stirngului bin sh
Identificarea adresei functiei system()
Obtinerea adresei stringului bin sh
Construirea argumentului pentru functia system()
Nivelele de fraudare asupra semnaturilor digitale include:
Fals universal
Fals existential
Spargere partiala
Fals colectiv
Care dintre urmatoarele afirmatii este adevarata cu privire la primitiva HMAC:
Are o cheie secreta
Este un cod MAC
Consta in aplicarea unui Hash urmat de o criptare
Consta in aplicarea de 2 ori a unei functii hash
Care din urmatoarele afirmatii despre contextul unei functii (stack frame) sunt adevarate?
Zona de pe stiva in care se aloca spatiu pentru variabilele statice
Zona de pe stiva in care se stocheaza parametrii functiei, adresa de return si frame pointerul precedent
Reprezinta zona din stiva ce contine informatiile necesare executiei functiei
Zona de pe stiva in care se aloca spatiu pentru variabilele locale
Din descrierea formala a unui criptosistem asimetric fac parte:
Un cuplu input-output intre plaintext si ciphertext
O colectie de mesaje si criptarea acestora
Un cuplu de exact 2 algoritmi:criptare-decriptare
Un triplet de algoritmi
Intre blocurile constructive ale codurilor bloc sunt incluse:
Casete produs pentru multiplicarea rezultatului
Casete de substitutie pentru confuzie
Chei asimetrice pentru decriptarea asimetrica
Casete de permutare pentru difuzie
Problemele la utilizarea practica a sistemului one-time pad sunt:
Este prea randomizat
Necesita o cheie prea mare
Este nesigur
Criptotextul creste prea tare
Despre valoarea IV a structurii Merkle Damgard este adevarat ca:
Daca se pierde nu s emai poate decripta niciunul din blocurile ce urmeaza
Este o constanta fixa
Este primul bloc de plaintext
Trebuie sa fie random
Variabilele de mediu sunt:
Disponibile atat in sisteme UNIX cat si in sisteme windows
Disponibile doar in sisteme windows
Disponibile doar in sisteme unix
Un set de valori cu nume dinamic
Algoritmul de decriptare asociat unui criptosistem simetric poate returna:
Mesajul m care se afla sub criptotext
Cheia
Un criptotext
Nimic, prin aceasta intelegand un mesaj de eroare daca nu se respecta paddingul
Care este ordinea in care se stocheaza pe stiva elementele necesare pentru apelul unei functii?
Adresa de return, frame pointerul precedent, argumente
Adresa de return, argumente, frame pointerul precedent
Frame pointerul precedent, adresa de return, argumente
Argumente, adresa de return, frame pointer precedent
Ca obiective de securitate au mai fost enuntate
Prospetime
Secretabilitate
Anonimitate
Trasabilitate
. Cu privire la PRNG-ul bazat generatorul de congruente lineare (ax + c mod n) este adevarat:
Este nesigur in practica
Necesita un seed aleator
Tot timpul are cicluri
Daca seed-ul este random, e sigur
Despre paddingul OAEP este adevarat ca:
Este o structura cu cheie publica
Este un padding randomizat
Este o structura cu cheie asimetrica
Previne atacuri cpa si cca
Care din urmatoarele afirmatii sunt adevarate?
Functia system() invoca aplicatia shell
Functia system() nu invoca aplicatia shell
Functia execve() invoca aplicatia shell
Functia execve() nu invoca aplicatia shell
Care din urmatoarele conditii sunt necesare pentru a face posibil un atac de tip return-to-libc?
Programul tinta trebuie sa fie compilat cu optiunea "-z execstack"
Programul tinta trebuie sa fie de tip set-uid
Programul tinta trebuie sa contina un apel catre functia system()
Programul tinta trebuie sa contina vulnerabilitatea la buffer overflow
Care dintre urmatoarele descriu corect capabilitati ale adversarului:
CCA-adversarul poate alege criptotextul si obtine plaintextul
CPA- adversarul poate alege plaintextul si obtine criptotextul
IND-adversarul alege un ciphertext si obtine plaintextul
RoR- adversarul alege un plaintext random si obtine decriptarea lui
Care dintre urmatoarele afirmatii este adevarata cu privire la notiunile IND, RoR si SS:
SS le implica pe celelalte doua
RoR<=>IND
RoR <=IND
IND=> RoR
Care din urmatoarele vulnerabilitati asupra programelor Set-UID se pot exploata prin input transmis de catre utilizator?
Return-to-libc
Conditia de race
Formatul stringurilor
Buffer overflow
Ce este un daemon?
Un program Set-UID
Un program care ruleaza in background
Un program folosit in sistemele UNIX
Un program cu drepturile unui utilizator privilegiat
Una dintre conditiile fundamentale de securitate pentru criptosisteme cu cheie publica este:
Din cheia privata nu se poate calcula cheia publica
Din criptotext nu se poate ajunge la plaintext
Din plaintext nu se poate ajunge la criptotext
Din cheia publica nu se poate calcula cheia privata
La masina Enigma prin setarea inelului considerand 5 rotoare se pot obtine cate variante de cheie:
11881378
11881382
11881380
11881376
Ce rezultate se pot obtine prin exploatarea vulnerabilitatii date de formatarea stringurilor?
Injectarea de cod malitios
Afisarea unor valori secrete localizate pe stiva
Crash-ul programului
Modificarea codului executat in cadrul programului atacat
Cum obtine un proces nou create variabilele de mediu?
Se mostenesc din procesul parinte daca este creat din procesul parinte folosind fork()
Se mostenesc de la procesul parinte atunci cand noul proces este creat folosinf functia execve()
Noul proces este creat folosind functia execve() nu primeste variabile de mediu daca apelul execve() se face fara transmiterea unui pointer catre variabilele de mediu
Noul proces creat folosind functia execve() primeste variabilele de mediu indicate un parametru dedicat
Despre modelul uzual de comunicare intre doi participanti se presupune ca are:
Un canal de comunicare
O parte de incredere
Un adversar
Participanti onesti
Care sunt caile de atac asupra programelor Set-UID?
Variabile de mediu
Procese non-privilegiate controlate de atacator
Input din partea utilizatorului
Input din partea sistemului, controlat de atacator
Care este utilitatea programelor Set-UID?
Permit afisarea parolei oricarui utilizator
Permit schimbarea parolei
Permit accesul direct la fisiere protejate
Permit utilizatorului sa execute operatii ce necesita anumite privilegii
Care este motivul pentru care introducerea ca input a unei secvente lungi de specificatori de format ā€œ%sā€ poate duce la crash-ul programului?
Datorita accesului la adrese nepermise sau inexistente
Datorita lipsei unui numar corespunzator de parametrii optionali
Datorita vulnerabilitatilor la buffer overflow
Datorita limitarilor de lungime pentru specificatorul de format
Un padding determinist la criptarea RSA in fata unui adversar IND ar putea:
Preveni atacurile CCA
Nu exista paddinguri deterministe
Fiind determinist nu e suficient de sigur
Preveni atacurile cpa
Principiul privilegiilor minimale (least privilege) presupune
Dezactivarea privilegiilor atunci cand un program privilegiat nu are nevoie de acestea
Executia aplicatiilor set-uid cu nivelul de privilegii al utilizatorului curent
Mentinerea acelor privilegii strict necesare pentru executia unei operatii
Separarea codului de datele de intrare
Invocarea programelor externe unei aplicatii Set-UID
Se poate face in mod sigur folosind functia system()
Se poate face in mod sigur folosind functia execve()
Nu se poate face in mod sigur folosind functia system()
Nu se poate face in mod sigur folosind functia execve()
Despre programul de generare a cheii de runda la DES este adevarat:
Aplica o permutare initiala asupra cheii
Nu exista un astfel de program, DES cripteaza mesajele
Foloseste transformarea AddRoundKey
Genereaza 16 chei de runda
CBC este:
O metoda de padding
Un criptosistem
Un mod de functionare al codurilor bloc
Acronimul descris in curs al Codurilor Bloc Comutative
{"name":"SI Intrebari P1", "url":"https://www.quiz-maker.com/QPREVIEW","txt":"Test your knowledge on critical concepts related to buffer overflows, digital signatures, and cryptography. This quiz dives deep into security practices and programming vulnerabilities, ideal for those interested in cybersecurity.Engage with topics such as:Hash FunctionsReturn-Oriented ProgrammingAsymmetric CryptosystemsSecure Software Development","img":"https:/images/course6.png"}
Powered by: Quiz Maker