Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Razlike

Slijede razlike između dviju inačica stranice.

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
racfor_wiki:blockchain:rowhammer_napad [2020/01/03 15:08]
bnovkovic [Izvori]
racfor_wiki:blockchain:rowhammer_napad [2024/12/05 12:24] (trenutno)
Redak 17: Redak 17:
 Moderne memorijske module dijelimo u (većinom) dvije skupine: **DRAM ** (//dynamic// RAM) i **SRAM ** (//static// RAM). Obzirom da //Rowhammer// napad iskorištava mane u **DRAM** modulima, u nastavku neće biti dan opis **SRAM** modula. Moderne memorijske module dijelimo u (većinom) dvije skupine: **DRAM ** (//dynamic// RAM) i **SRAM ** (//static// RAM). Obzirom da //Rowhammer// napad iskorištava mane u **DRAM** modulima, u nastavku neće biti dan opis **SRAM** modula.
  
-Osnovna komponenta svakog DRAM memorijskog modula jest memorijska ćelija. Njena izvedba je vrlo jednostavna i sastoji se od jednog tranzistora i jednog kondenzatora. Ćelija pohranjuje jedan bit informacije pomoću naboja pohranjenog u kondenzatoru. VIše ćelija povezano je na dvije iste linije, //word line //koji služi za pristup pojedinom nizu ćelija i //digit line //koji služi dohvaćanju sadžaja pojedinog niza ćelija. Kada se na //word line //dovede napon tranzistor u ćeliji propušta naboj iz kondenzatora na //digit line//, čime se na toj liniji postavlja vrijednost koja je bila u ćeliji. Upisivanje podataka u ćeliju ide obrnutim redoslijedom, potrebno je dovesti željenu vrijednost na //digit line// i potom dovesti napon na //word line// i održavati ga dovoljno dugo kako bi se kondenzator unutar ćelije napunio ili ispraznio.+Osnovna komponenta svakog DRAM memorijskog modula jest memorijska ćelija. Njena izvedba je vrlo jednostavna i sastoji se od jednog tranzistora i jednog kondenzatora. Ćelija pohranjuje jedan bit informacije pomoću naboja pohranjenog u kondenzatoru. Više ćelija povezano je na dvije iste linije, //word line //koji služi za pristup pojedinom nizu ćelija i //digit line //koji služi dohvaćanju sadržaja pojedinog niza ćelija. Kada se na //word line //dovede napon tranzistor u ćeliji propušta naboj iz kondenzatora na //digit line//, čime se na toj liniji postavlja vrijednost koja je bila u ćeliji. Upisivanje podataka u ćeliju ide obrnutim redoslijedom, potrebno je dovesti željenu vrijednost na //digit line// i potom dovesti napon na //word line// i održavati ga dovoljno dugo kako bi se kondenzator unutar ćelije napunio ili ispraznio.
  
 {{:racfor_wiki:blockchain:dramcell.png?320x320|Struktura DRAM ćelije}} {{:racfor_wiki:blockchain:dramcell.png?320x320|Struktura DRAM ćelije}}
  
-Važno je naglasiti da naboj pohranjen u kondenzatoru isčezava kroz određeno vrijeme. Ta činjenica uzrokuje određene probleme pri implementaciji takvih sklopova. Zbog potrebe za velikim memorijskim kapacitetima, kondenzatori u današnjim modulima moraju biti jako maleni što dodatno pospješuje probleme uzrokovane isčezavanjem naboja iz kondenzatora. Zbog male količine naboja pohranjene u ćelijama potrebno je na izlaz //digit line//-a dodati pojačalo koje će moći razlikovati vrijednosti 0 i 1 iz malih ulaznih napona.\\+Važno je naglasiti da naboj pohranjen u kondenzatoru čezava kroz određeno vrijeme. Ta činjenica uzrokuje određene probleme pri implementaciji takvih sklopova. Zbog potrebe za velikim memorijskim kapacitetima, kondenzatori u današnjim modulima moraju biti jako maleni što dodatno pospješuje probleme uzrokovane čezavanjem naboja iz kondenzatora. Zbog male količine naboja pohranjene u ćelijama potrebno je na izlaz //digit line//-a dodati pojačalo koje će moći razlikovati vrijednosti 0 i 1 iz malih ulaznih napona.\\
 Nadalje, brzina čitanja i pisanja u ćelije ograničena je brzinom punjenja i pražnjenja kondenzatora što ima velike posljedice za performanse **DRAM** modula. Nadalje, brzina čitanja i pisanja u ćelije ograničena je brzinom punjenja i pražnjenja kondenzatora što ima velike posljedice za performanse **DRAM** modula.
  
Redak 28: Redak 28:
 {{:racfor_wiki:blockchain:cap_charge.png?400x235|Graf nabijanja i pražnjenja kondenzatora}} {{:racfor_wiki:blockchain:cap_charge.png?400x235|Graf nabijanja i pražnjenja kondenzatora}}
  
-Najčešća organizacija **DRAM**-a jest grupiranje više nizova (odnosno redova) ćelija u polje odnosno tzv. //bank. //Međutim, takva polja se rijetko upotrebljavaju samostalno obzirom na njihov malen kapacitet te se tako više polja grupira u tzv. //rank. //Upravljanje stanjem memorije prepuštenoj je memorijskom kontroleru, sklopu koji se tipično nalazi unutar procesora. Standard **DDR**, danas najzastupljeniji, propisuje nekoliko vrsta naredbi koje memorijski kontroler može koristiti kako bi upravljao **DRAM** modulom od kojih su najvažnije one za čitanje, pisanje i osvježavanje ćelija. Dodatno, standard garantira da će sadržaj memorije ostati konzistentan u periodu od barem 64 milisekunde. Tijekom tog perioda sve ćelije u svim poljima moraju biti osvježene.+Najčešća organizacija **DRAM**-a jest grupiranje više nizova (odnosno redova) ćelija u polje odnosno tzv. //bank. //Međutim, takva polja se rijetko upotrebljavaju samostalno obzirom na njihov malen kapacitet te se tako više polja grupira u tzv. //rank. //Upravljanje stanjem memorije prepuštenoj je memorijskom kontroleru, sklopu koji se tipično nalazi unutar procesora. Standard **DDR**, danas najzastupljeniji, propisuje nekoliko vrsta naredbi koje memorijski kontroler može koristiti kako bi upravljao **DRAM** modulom od kojih su najvažnije one za čitanje, pisanje i osvježavanje ćelija. Dodatno, standard garantira da će sadržaj memorije ostati konzistentan u periodu od barem 64 milisekunde. Tijekom tog perioda sve ćelije u svim poljima moraju biti osvježene.
  
 {{:racfor_wiki:blockchain:dramarray.png?400x400|Polje DRAM ćelija}} {{:racfor_wiki:blockchain:dramarray.png?400x400|Polje DRAM ćelija}}
  
 Pristupanje sadržaju //rank//-a se odvija u tri koraka:\\ Pristupanje sadržaju //rank//-a se odvija u tri koraka:\\
-^DRAM nareba^Opis|+^DRAM naredba^Opis| 
 |ACTIVATE|Podiže napon na //word line//-u željene memorijske lokacije| |ACTIVATE|Podiže napon na //word line//-u željene memorijske lokacije|
-|READ|Isčitava vrijednost pojedinog stupca| +|READ|čitava vrijednost pojedinog stupca| 
-|PRECHARGE|Osvježava sadržaj ćelije sa prethodno pročitanom vrijednošću|+|PRECHARGE|Osvježava sadržaj ćelije prethodno pročitanom vrijednošću|
  
 \\ \\
Redak 59: Redak 60:
 |jmp code1a|Preusmjerava tok izvođenja programa nazad na prvu naredbu u tablici| |jmp code1a|Preusmjerava tok izvođenja programa nazad na prvu naredbu u tablici|
  
-Adrese **X**  i **Y **posebno su odabrane da odgovaraju nizovima ćelija unutar istog //bank//-a kako bi memorijski kontroler morao ispoštovati proceduru čitanja i "zatvaranja" niza ćelija. Nakon pokretanja navedenog programa kroz više milijuna iteracija, autori su primjetili veliku količinu ćelija čiji je sadržaj promijenjen. Kako bi produbili razumijevanje o ovoj vrsti napada, autori su testirali 129 **DRAM **modula od tri neimenovana proivođača. Testiranja su ispitivala učestalost promjene sadržaja ćelija u ovisnosti o tri parametra:+Adrese **X**  i **Y **posebno su odabrane da odgovaraju nizovima ćelija unutar istog //bank//-a kako bi memorijski kontroler morao ispoštovati proceduru čitanja i "zatvaranja" niza ćelija. Nakon pokretanja navedenog programa kroz više milijuna iteracija, autori su primijetili veliku količinu ćelija čiji je sadržaj promijenjen. Kako bi produbili razumijevanje o ovoj vrsti napada, autori su testirali 129 **DRAM **modula od tri neimenovana proizvođača. Testiranja su ispitivala učestalost promjene sadržaja ćelija u ovisnosti o tri parametra:
  
   - Aktivacijski interval - vrijeme čekanja između ponovnog adresiranja niza ćelija   - Aktivacijski interval - vrijeme čekanja između ponovnog adresiranja niza ćelija
Redak 65: Redak 66:
   - Uzorak podataka - inicijalni sadržaj ćelija prije nego što se test pokrene   - Uzorak podataka - inicijalni sadržaj ćelija prije nego što se test pokrene
  
-Utvrđeno je da broj uočenih pogrešaka pada sa rastom aktivacijskog intervala, a raste sa povećanjem intervala osvježavanja. \\ Autori navode da na svakih 10^9 ćelija otprilike 10^5 ćelija promijene sadržaj tokom provođenja testova te da je otprilike 70% testiranih ćelija promijenilo sadržaj prilikom svih provođenja testova.+Utvrđeno je da broj uočenih pogrešaka pada rastom aktivacijskog intervala, a raste povećanjem intervala osvježavanja. \\ Autori navode da na svakih 10^9 ćelija otprilike 10^5 ćelija promijene sadržaj tijekom provođenja testova te da je otprilike 70% testiranih ćelija promijenilo sadržaj prilikom svih provođenja testova.
  
 \\ \\
Redak 72: Redak 73:
 ===== Obrana od napada Rowhammer ===== ===== Obrana od napada Rowhammer =====
  
-Napad Rowhammer predstavlja veliku opasnost zbog činjenice da se može izvršavati neprimjećeno i pomoću neprivilegiranog korisničkog računa. Zbog velike raširenosti **x86** arhitekture i sve većih **DRAM** modula broj korisnika koji su ranjivi na ovaj napad drastično raste.+Napad Rowhammer predstavlja veliku opasnost zbog činjenice da se može izvršavati neprimijećeno i pomoću neprivilegiranog korisničkog računa. Zbog velike raširenosti **x86** arhitekture i sve većih **DRAM** modula broj korisnika koji su ranjivi na ovaj napad drastično raste.
  
-**ECC** (//Error-Correcting Code//) memorija nameće se kao potencijalno riješenje problema obrane. **ECC** **DRAM** moduli opremljeni su sa dodatnim memorijskim čipovima kako bi mogli ispravljati jednostruke i detektirati dvostruke pogreške unutar jedne memorijske "riječi". Međutim, napad //Rowhammer // često izaziva više pogrešaka unutar jedne riječi čime ovakva vrsta zaštite postaje beskorisna.+**ECC** (//Error-Correcting Code//) memorija nameće se kao potencijalno rješenje problema obrane. **ECC** **DRAM** moduli opremljeni su dodatnim memorijskim čipovima kako bi mogli ispravljati jednostruke i detektirati dvostruke pogreške unutar jedne memorijske "riječi". Međutim, napad //Rowhammer // često izaziva više pogrešaka unutar jedne riječi čime ovakva vrsta zaštite postaje beskorisna.
  
-U radu .. autori navode nekoliko potencijalnih riješenja koja su vezana uz parametre rada **DRAM** modula. Smanjivanje intervala osvježavanja uklonilo bi veliku većinu pogrešaka ali bi uvelike povećalo potrošnju energije i smanjilo performanse modula. Također bi bilo moguće provesti otkrivanje ćelija koje uzrokuju većinu pogrešaka i mapirati njihove adrese na druge, rezervne ćelije. Taj proces može provesti proizvođač ili krajnji korisnik. Međutim, dugotrajnost takvog procesa spriječava bilo kakvu praktičnu primjenu.+U radu u kojem je prvi put objavljen napad //Rowhammer// autori navode nekoliko potencijalnih rješenja koja su vezana uz parametre rada **DRAM** modula. Smanjivanje intervala osvježavanja uklonilo bi veliku većinu pogrešaka ali bi uvelike povećalo potrošnju energije i smanjilo performanse modula. Također bi bilo moguće provesti otkrivanje ćelija koje uzrokuju većinu pogrešaka i mapirati njihove adrese na druge, rezervne ćelije. Taj proces može provesti proizvođač ili krajnji korisnik. Međutim, dugotrajnost takvog procesa sprječava bilo kakvu praktičnu primjenu.
  
-Kao najbolje rješenje autori predlažu novu tehniku, **PARA** (eng. //Probabilistic Adjacent Row Activation//). Tehnika se zasniva na probabilističkom osvježavanju susjednih nizova ćelija prilikom svakog pristupa nekom od nizova ćelija. Prilikom svakog pristupa nizu ćelija se uz neku malu vjerojatnost //p //osvježava sadržaj susjednog niza ćelija. Tako bi prilikom opetovanog pristupanja nizu ćelija vjerojatnost osvježavanja susjednih nizova ćelija rasla. Prednost ove tehnike je da ne zahtijeva nikakvo posebno sklopovolje za praćenje stanja ćelija već je dovoljno napraviti male izmjene unutar memorijskog kontrolera.+Kao najbolje rješenje autori predlažu novu tehniku, **PARA** (eng. //Probabilistic Adjacent Row Activation//). Tehnika se zasniva na probabilističkom osvježavanju susjednih nizova ćelija prilikom svakog pristupa nekom od nizova ćelija. Prilikom svakog pristupa nizu ćelija se uz neku malu vjerojatnost //p //osvježava sadržaj susjednog niza ćelija. Tako bi prilikom opetovanog pristupanja nizu ćelija vjerojatnost osvježavanja susjednih nizova ćelija rasla. Prednost ove tehnike je da ne zahtijeva nikakvo posebno sklopovlje za praćenje stanja ćelija već je dovoljno napraviti male izmjene unutar memorijskog kontrolera.
  
  
Redak 92: Redak 93:
 ===== Zaključak ===== ===== Zaključak =====
  
-Napad //Rowhammer// ozbiljna je prijetnja velikom broju uređaja koja je pokrenula lavinu nove vrste napada koje se temlje na uzrokovanju neželjenih promjena stanja ćelija. Iako postoje tehnike obrane od takvih napada, one su često beskorisne ili produljuju vrijeme napada. Daljnjim proučavanjem raznih platformi iz perspektive ovakvih napada doći će do još više napada temeljenih na napadu //Rowhammer//.+Napad //Rowhammer// ozbiljna je prijetnja velikom broju uređaja koja je pokrenula lavinu nove vrste napada koje se temelje na uzrokovanju neželjenih promjena stanja ćelija. Iako postoje tehnike obrane od takvih napada, one su često beskorisne ili produljuju vrijeme napada. Daljnjim proučavanjem raznih platformi iz perspektive ovakvih napada doći će do još više napada temeljenih na napadu //Rowhammer//.
  
-===== Sources =====+ 
 +===== Izvori =====
  
 [1] [[https://users.ece.cmu.edu/~yoonguk/papers/kim-isca14.pdf|Y. Kim et al., "Flipping bits in memory without accessing them: An experimental study of DRAM disturbance errors," 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA), Minneapolis, MN, 2014, pp. 361-372.]] [1] [[https://users.ece.cmu.edu/~yoonguk/papers/kim-isca14.pdf|Y. Kim et al., "Flipping bits in memory without accessing them: An experimental study of DRAM disturbance errors," 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA), Minneapolis, MN, 2014, pp. 361-372.]]
  
-[2] [[http://www.google.com/books?id=duWx8fxkkk0C&printsec=frontcover#v=onepage&q&f=false|MayerRichard E. The Cambridge handbook of multimedia learningCambridge University Press2005.]]+[2] [[https://people.freebsd.org/~lstewart/articles/cpumemory.pdf|Drepper, Ulrich. (2007). What Every Programmer Should Know About Memory. ]] 
 + 
 +[3] [[https://download.vusec.net/papers/throwhammer_atc18.pdf|Throwhammer: Rowhammer Attacks over the Network and Defenses. Tatar, A.; Konoth, R. K.; Athanasopoulos, E.; Giuffrida, C.; Bos, H.; and Razavi, K. In USENIX ATC, July 2018.]] 
 + 
 +[4] [[https://vvdveen.com/publications/drammer.pdf|Drammer: Deterministic Rowhammer Attacks on Mobile Platforms. van der Veen, V.; Fratantonio, Y.; Lindorfer, M.; Gruss, D.; Maurice, C.; Vigna, G.; Bos, H.; Razavi, K.; and Giuffrida, CIn CCSOctober 2016. ]]
  
-[3] [[http://www.cogtech.usc.edu/publications/kirschner_Sweller_Clark.pdf|KirschnerP. ASwellerJ. and ClarkR. E. Why minimal guidance during instruction does not work: An analysis of the failure of constructivist, discovery, problem-based, experiential, and inquiry-based teaching. Educational psychologist 41, no. 2, pp 75-86, 2006]]+[5] [[https://rambleed.com/docs/20190603-rambleed-web.pdf|RAMBleed: Reading Bits in Memory Without Accessing ThemKwongAndrew and GenkinDaniel and GrussDaniel and YaromYuval in 41st {IEEE} Symposium on Security and Privacy (S\&P) ]]
  
  
racfor_wiki/blockchain/rowhammer_napad.1578064138.txt.gz · Zadnja izmjena: 2024/12/05 12:23 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0