hacktricks/binary-exploitation/common-binary-protections-and-bypasses/cet-and-shadow-stack.md

3.9 KiB

CET & Shadow Stack

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Teknolojia ya Utekelezaji wa Mwelekeo wa Kudhibiti (CET)

CET ni kipengele cha usalama kilichotekelezwa kwenye kiwango cha vifaa, kimeundwa kuzuia mashambulizi ya kudhibiti mwelekeo kama vile Return-Oriented Programming (ROP) na Jump-Oriented Programming (JOP). Aina hizi za mashambulizi hufanya mabadiliko kwenye mwelekeo wa utekelezaji wa programu ili kutekeleza msimbo mbaya au kuunganisha vipande vya msimbo mzuri kwa njia inayotekeleza hatua mbaya.

CET inaleta vipengele viwili kuu: Ufuatiliaji wa Matawi Yasiyo ya Moja kwa Moja (IBT) na Stack ya Kivuli.

  • IBT inahakikisha kwamba kuruka na simu za moja kwa moja zinaelekezwa kwa malengo halali, ambayo yameainishwa wazi kama vituo halali vya matawi yasiyo ya moja kwa moja. Hii inafikiwa kupitia matumizi ya seti mpya ya maagizo ambayo huiweka alama malengo halali, hivyo kuzuia wadukuzi kuelekeza mwelekeo wa kudhibiti kwenye maeneo yasiyo ya kawaida.
  • Stack ya Kivuli ni mfumo unaotoa usalama kwa anwani za kurudi. Inaendelea nakala iliyolindwa, iliyofichwa ya anwani za kurudi tofauti na stack ya wito ya kawaida. Wakati kazi inarudi, anwani ya kurudi inathibitishwa dhidi ya stack ya kivuli, ikizuia wadukuzi kubadilisha anwani za kurudi kwenye stack ili kudhibiti mwelekeo.

Stack ya Kivuli

Stack ya kivuli ni stack maalum inayotumiwa kuhifadhi anwani za kurudi pekee. Inafanya kazi pamoja na stack ya kawaida lakini ni salama na imefichwa kutoka kwa utekelezaji wa kawaida wa programu, ikifanya iwe ngumu kwa wadukuzi kuingilia. Lengo kuu la stack ya kivuli ni kuhakikisha kuwa mabadiliko yoyote kwenye anwani za kurudi kwenye stack ya kawaida yanagunduliwa kabla ya kutumiwa, ikipunguza kwa ufanisi mashambulizi ya ROP.

Jinsi CET na Stack ya Kivuli Zinazuia Mashambulizi

Mashambulizi ya ROP na JOP yanategemea uwezo wa kudhibiti mwelekeo wa maombi kwa kutumia udhaifu unaowaruhusu kubadilisha pointa au anwani za kurudi kwenye stack. Kwa kuelekeza mwelekeo kwa vipande vya msimbo uliopo au vipande vya msimbo vinavyolenga kurudi, wadukuzi wanaweza kutekeleza msimbo mbaya.

  • Kipengele cha IBT cha CET kinafanya mashambulizi haya kuwa magumu sana kwa kuhakikisha kwamba matawi yasiyo ya moja kwa moja yanaweza kuruka tu kwenye anwani ambazo zimeainishwa wazi kama malengo halali. Hii inafanya iwe haiwezekani kwa wadukuzi kutekeleza vipande vya msimbo mbaya vilivyotapakaa kwenye faili.
  • Stack ya kivuli, kwa upande mwingine, inahakikisha kwamba hata kama muhusika anaweza kubadilisha anwani ya kurudi kwenye stack ya kawaida, tofauti itagunduliwa wakati wa kulinganisha anwani iliyoharibiwa na nakala salama iliyohifadhiwa kwenye stack ya kivuli wakati wa kurudi kutoka kwa kazi. Ikiwa anwani hazilingani, programu inaweza kusitisha au kuchukua hatua za usalama zingine, ikizuia shambulio kufanikiwa.