Vulnerabilitetet në GnuPG, të cilat lejojnë kalimin e vërtetimit dhe ekzekutimin e kodit tuaj

Në konferencën 39C3 (Chaos Communication Congress) që po zhvillohet në Gjermani, janë zbuluar detaje mbi 12 vulnerabilitete të panjohura deri tani dhe të pa rregulluar (0-day) në instrumentin GnuPG (GNU Privacy Guard), që ofron mjete të përputhshme me standardet OpenPGP dhe S/MIME për enkriptimin e të dhënave, punën me nënshkrime elektronike, menaxhimin e çelësave dhe qasjen në depo publike çelësh. Vulnerabilitetet më të rrezikshme lejojnë kalimin e verifikimit të nënshkrimit digjital dhe mundësinë e ekzekutimit të kodit gjatë përpunimit të të dhënave të enkriptuara në prezantim ASCII (ASCII Armor). Prototipet funksionalë të eksploitëve dhe patch-et pritet të publikohen në një të ardhme.

Vulnerabilitetet shkaktohen nga gabimet në kodin për përpunimin e të dhënave dhe analizen e formateve, dhe nuk lidhen me defekte në algoritmet kriptografike. Për shembull, një gabim në parser çon në dështim gjatë përcaktimit të të dhënave të nënshkruara në të vërtetë dhe krijon kushte ku të dhënat e verifikuara mund të mos përputhen me të dhënat e nënshkruara, duke lejuar sulmuesin të zëvendësojë tekstin e hapur pa pasur qasje në çelësin privat.

Problemet e zbuluara:

  • NjĂ« gabim nĂ« kodin e parser-it tĂ« tĂ« dhĂ«nave tĂ« enkriptuara, tĂ« shpĂ«rndara nĂ« formatin ASCII-Armor (skedarĂ« tekstualĂ« me bllokun 'BEGIN/END PGP ARMORED FILE'), qĂ« çon nĂ« shkruarje nĂ« njĂ« zonĂ« tĂ« kujtesĂ«s jashtĂ« kufijve tĂ« tamponit. Problemi mund tĂ« çojĂ« nĂ« ekzekutimin e kodit gjatĂ« pĂ«rpunimit nĂ« gpg tĂ« tĂ« dhĂ«nave tĂ« shqiptuara posaçërisht. Vulnerabiliteti shfaqet nĂ« funksionin armor_filter() dhe shkaktohet nga njĂ« rritje e dyfishtĂ« e numĂ«ruesit 'n' nĂ« ciklin 'for' – pavarĂ«sisht nga nĂ«nshkrimi 'n++' nĂ« vetĂ« ciklin, numĂ«ruesi rritet gjithashtu nĂ« trupin e ciklit kur shkruhen tĂ« dhĂ«nat nĂ« tamponin 'buf[n++]'. Si rezultat, njĂ« bajt i tepĂ«rt shkruhet pĂ«rtej kufijve tĂ« tamponit, dhe dukuria me madhĂ«sinĂ« 'ret_len' vendoset nĂ« njĂ« vlerĂ« qĂ« tejkalon tĂ« vĂ«rtetĂ«n.
  • MundĂ«sia pĂ«r tĂ« krijuar ose pĂ«r tĂ« mbivendosur çdo skedar, sa i lejojnĂ« tĂ« drejtat aktuale tĂ« qasjes, pĂ«r shkak tĂ« trajtimit tĂ« papĂ«rshtatshĂ«m tĂ« pĂ«rmbajtjes sĂ« fushĂ«s 'filename' nĂ« paketĂ«n e tĂ« dhĂ«nave. Vulnerabiliteti mund tĂ« pĂ«rdoret pĂ«r tĂ« organizuar ekzekutimin e kodit nĂ« sistem gjatĂ« ekzekutimit tĂ« komandave 'gpg --decrypt poc.enc' dhe 'gpg poc.enc' pĂ«r tĂ« parĂ« skedarin e dĂ«rguar nga sulmuesi poc.enc. Ekzekutimi i kodit mund tĂ« arrihet, pĂ«r shembull, duke krijuar skedarĂ« ~/ .bash_completion ose ~/ .ssh/authorized_keys.
  • MundĂ«sia pĂ«r tĂ« zĂ«vendĂ«suar tekstin e hapur qĂ« i tregohet pĂ«rdoruesit kur shĂ«nohet opsioni «—decrypt» dhe verifikimi duke pĂ«rdorur nĂ«nshkrime digjitale tĂ« ofruara veçmas (Detached Signature, krijohen me opsionin «—detach-sig» dhe ofrohen nĂ« njĂ« skedar sig). Problemi qĂ«ndron tek fakti se, kur dĂ«rgohet veçmas mesazhi dhe skedari sig, njĂ« sulmues qĂ« kontrollon trafikun ndĂ«rmjetĂ«s (MITM) mund tĂ« bĂ«jĂ« ndryshime nĂ« skedarin sig, pas tĂ« cilave verifikimi mbetet i suksesshĂ«m, por kur mesazhi shikohet nga skedari sig duke pĂ«rdorur opsionin «—decrypt», do tĂ« shfaqet njĂ« pĂ«rmbajtje tjetĂ«r. echo Plaintext > plaintext gpg —detach-sig plaintext # ndryshimi plaintext.sig nga sulmuesi duke shtuar tekst shtesĂ« gpg —verify plaintext.sig plaintext # e verifikuar gpg —decrypt plaintext.sig # e verifikuar, por shfaqet njĂ« tekst tjetĂ«r
  • MundĂ«sia pĂ«r tĂ« shtuar tĂ« dhĂ«na tĂ« rastĂ«sishme nĂ« njĂ« mesazh tĂ« nĂ«nshkruar pa humbur verifikimin e suksesshĂ«m tĂ« nĂ«nshkrimit. Problemi lind pĂ«r shkak tĂ« prerjes sĂ« tĂ« dhĂ«nave nĂ« kufirin prej 20000 karakteresh gjatĂ« llogaritjes sĂ« hash-it.
  • Kontrolli i pasaktĂ« i kodave tĂ« enkriptimit tĂ« autentikuar (MDC — Modification Detection Codes), duke lejuar manipulimin e paketave tĂ« enkriptuara nĂ« mĂ«nyrĂ« qĂ«, gjatĂ« dekodimit, pĂ«rmbajtja e marrĂ« tĂ« trajtohet si njĂ« lloj tjetĂ«r pakete (p.sh., tĂ« perceptohet si e destinuar pĂ«r publikim kyçi i hapur).
  • MundĂ«sia pĂ«r tĂ« futur tĂ« dhĂ«na shtesĂ« nĂ« nĂ«nshkrimet CS (Cleartext Signature), tĂ« krijuara duke pĂ«rdorur flagun «—not-dash-escaped» ose tĂ« konvertuara nga nĂ«nshkrime tĂ« ofruara veçmas (Detached Signature). Kjo dobĂ«si mund tĂ« pĂ«rdoret pĂ«r tĂ« krijuar te pĂ«rdoruesi njĂ« pĂ«rshtypje tĂ« gabuar se cilat tĂ« dhĂ«na janĂ« nĂ«nshkruar nĂ« tĂ« vĂ«rtetĂ«. PĂ«r shembull, pĂ«rdoruesi mund tĂ« shkarkojĂ« nga burime tĂ« besueshme njĂ« çelĂ«s tĂ« saktĂ« pĂ«r verifikimin e nĂ«nshkrimit digjital, por njĂ« sulmues gjatĂ« njĂ« sulmi MITM mund tĂ« zĂ«vendĂ«sojĂ« imazhin iso qĂ« pĂ«rdoruesi shkarkon dhe tĂ« shtojĂ« njĂ« hash shtesĂ« nĂ« nĂ«nshkrimin e imazhit nĂ« njĂ« mĂ«nyrĂ« qĂ« verifikimi i imazhit tĂ« zĂ«vendĂ«suar tĂ« kalojĂ« me sukses nĂ« prani tĂ« njĂ« çelĂ«si korrekt verifikues nĂ« sistem.
  • Shtimi i tĂ« dhĂ«nave shtesĂ« nĂ« pĂ«rfaqĂ«simin ASCII tĂ« nĂ«nshkrimit CS (Cleartext Signature) pĂ«rmes futjes sĂ« simbolit me kod zero. Kjo dobĂ«si, pĂ«r shembull, lejon qĂ« tĂ« shtohet tekst tĂ« rastĂ«sishĂ«m nĂ« titullin Hash.
  • Interpretim i gabuar i formatit OpenPGP, i cili bĂ«n qĂ« mesazhi "One-Pass Signed Message" nĂ« formatin ASCII tĂ« trajtohet si mesazhi "Cleartext Signature" nĂ« rastin e njĂ« ndryshimi tĂ« caktuar tĂ« titullit. Ky dikaster lejon zĂ«vendĂ«simin e tĂ« dhĂ«nave origjinale tĂ« nĂ«nshkruara me pĂ«rmbajtje tĂ« dĂ«mshme, duke ruajtur dukshmĂ«rinĂ« e verifikimit tĂ« suksesshĂ«m.
  • Mungesa e ndarjes eksplicite nĂ« daljen e informacionit mbi suksesin e kontrollit tĂ« nĂ«nshkrimit digjital dhe pĂ«rmbajtjes sĂ« mesazhit, qĂ« lejon krijimin e mesazheve tĂ« falsifikuara, tĂ« pa nĂ«nshkruara, tĂ« cilat gjatĂ« ekzekutimit tĂ« "gpg --decrypt" duken si autentike.
  • MundĂ«sia pĂ«r tĂ« krijuar mesazhe OpenPGP, tĂ« cilat nĂ« gpg do tĂ« trajtohen ndryshe nga implementimet e tjera tĂ« OpenPGP. Problemi shkaktohet nga karakteristikat e trajtimit tĂ« vargjeve shumĂ« tĂ« gjata nĂ« ASCII-nĂ« e tĂ« dhĂ«nave OpenPGP.
  • Krijimi i kushteve nĂ« procesin e verifikimit tĂ« nĂ«nshkrimit digjital pĂ«r tĂ« rrokullisur algoritmin e kontrollit tĂ« hash-it nĂ« SHA1 tĂ« pasigurt.
  • MundĂ«sia pĂ«r tĂ« futur çelĂ«sat e mi dhe tĂ« ndihmĂ«s (subkey) pa autorizimin e tyre duke pĂ«rdorur komponentin privat tĂ« çelĂ«sit kryesor. Sulmi realizohet pĂ«rmes shtimit tĂ« njĂ« depoje çelĂ«sh false duke pĂ«rdorur opsionin "--keyring".

Përveç kësaj, janë zbuluar dy vulnerabilitete në minisign, një mjet të thjeshtëzuar për krijimin dhe verifikimin e nënshkrimeve digjitale. Të dy vulnerabilitetet (1, 2) lejojnë përdorimin e sekuencave të kontrollit të terminalit ("\e[1E") ose karaktereve speciale ("\r") në fushën e komentit për modifikimin e daljes së programit, për shembull, për të zëvendësuar informacionin mbi rezultatin e verifikimit.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster