Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 65 reacties
Bron: New Scientist

Onderzoekers van de Amerikaanse universiteit Stanford hebben vastgesteld dat wachtwoorden en persoonlijke informatie soms jarenlang op een harde schijf bewaard blijven, zo meldt New Scientist. Zoals bekend worden dergelijke gegevens tijdens gebruik opgeslagen in het RAM-geheugen, om kort daarna weer overschreven te worden. Echter, omdat zo nu en dan het RAM in zijn geheel gekopieerd wordt naar de harde schijf, kunnen de gegevens op de harde schijf belanden, waar ze oneindig bewaard kunnen worden. Uit simulaties blijkt nu dat veelgebruikte software zoals Apache, Internet Explorer en het Windows login-programma, geen enkele poging doen om dat kopiëren van intern geheugen te voorkomen, en ook geen tijdslimiet voor het opslaan van data hanteren. Hierdoor staan gebruikers volgens het team bloot aan onnodige risico's, omdat het niet denkbeeldig is dat de informatie door kwaadwillenden boven water gehaald kan worden.

EncryptieDe onderzoekers hopen dan ook dat programmeurs in de toekomst maatregelen treffen om persoonlijke informatie in het intern geheugen beter te beveiligen, bijvoorbeeld door gegevens in het RAM met nullen te overschrijven zodra ze niet meer nodig zijn, of door encryptie toe te passen op gevoelige data. Hoewel dergelijke aanpassingen makkelijk door te voeren zijn, wordt dat nu niet vaak gedaan omdat de processorkracht volgens het onderzoeksteam liever voor meer interessante dingen wordt gebruikt.

Moderatie-faq Wijzig weergave

Reacties (65)

Op zich kun je er zelf ook al wat aan doen:

---
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\ClearPageFileAtShutdown

change value to '1' Hex (instead of '0')
---

Hiermee verwijder je elke keer de pagefile.sys als je je systeem afsluit, waar dergelijke informatie in zou kunnen staan.
Overschrijft hij dan werkelijk de hele page file of doet hij net als bij een delete alleen de eerste pointer weg halen? Bij het laatste is dit probleem nog steeeds van toepassing. Zelfde geldt voor bestanden verwijderen die daarna op een makkelijke wijze meestal gedeeltelijk of zelfs in het geheel terug zijn te halen.
als je opnieuw opstart word de pagefile opnieuw aangemaakt en dus weer overschreven. Bij normaal gebruik word vrij snel dus de data overschreven.
Ik weet niet exact hoe het allocatie algorithme op een harddisk werkt, maar ik meen me te herinneren dat er iets bestond als least-recent-used-memory-space-block. Hetgeen zoveel betekent als: het besturingssysteem vraagt 'de diskdrive' om een pointer naar een voldoende groot stuk diskspace (bij voorkeur ongefragmenteerd) om data weg te schrijven. De drivecontroller zal dan op zoek gaan naar een deel van de disk dat al het langst niet meer is gebruikt en daarnaar een pointer teruggeven.

Juist door dit algorithme is het mogelijk om gewiste bestanden nog enige tijd later terug te vinden, tenzij je een vrij volle harddisk hebt: de diskruimte wordt dan eerder hergebruikt.

Volgens mij is een pagefile niet gebonden aan een specifieke locatie op de harde schijf. Dus als je de page file wist, en daarna reboot, dan is de kans klein dat de pagefile op exact dezelfde plek wordt aangemaakt. Da's dus geen veilige methode.
@Rembert:

Maar ook niet onveilig, want je moet dan dus de hele harddisk gaan afzoeken als je de data wilt hebben die in de oude pagefile stond...
Da's niet echt dé oplossing, dit is namelijk een van de vele plaatsen waarop deze zooi opgeslagen wordt ben ik bang.
Toch wel de oplossing, het RAM geheugen kopieert zichzelf naar het pagefile bestand en nergens anders naartoe. Daar gaat het hier om.
Als een programmeur van een stuk software nog eens besluit om wachtwoorden e.d. in een andere file op te slaan, dan komt dat niet uit het RAM geheugen maar rechtstreeks uit die file en wordt na te zijn opgeslagen ook weer vanuit die file opgevraagd.
Volgens mij wordt de pagefile niet overschreven, wat dus inhoud dat alle gegevens nog gewoon op de hardeschijf staan. Of zoals Qwerty het zeg, dat de pointer alleen maar weg is.
Wachtwoorden mogen gewoon nooit zomaar on-encrypted in het geheugen geladen worden.

Dit staat -dacht ik- ook in het boek 'Writing Secure Code'. Iedere werknemer /programmeur van MS krijgt zo'n boek en er wordt dan ook verwacht dat ie dat leest natuurlijk.
Het probleem is hier niet dat ze unencrypted in het geheugen worden gezet, maar dat het in het geheugen blijft staan. Een memory dump met encrypted passwords is ook te kraken nl.
Wachtwoorden mogen gewoon nooit zomaar on-encrypted in het geheugen geladen worden
Ik vraag me toch af hoe je wilt voorkomen dat het ingevoerde wachtwoord niet in het geheugen komt te staan. Vooral met de nieuwe -hogere- programmeer talen kun je er niet zeker van zijn dat je waarde alleen maar op het stackframe blijft staan.
(of wordt je stackframe ook weggeswapped?)
k vraag me toch af hoe je wilt voorkomen dat het ingevoerde wachtwoord niet in het geheugen komt te staan. Vooral met de nieuwe -hogere- programmeer talen kun je er niet zeker van zijn dat je waarde alleen maar op het stackframe blijft staan.
Je kan ervoor zorgen dat het wachtwoord niet meer in het geheugen staat van zodra je het niet meer nodig hebt:

[code]
string pwd = getPwd();
// perform some stuff
pwd = string.Empty;[/code]
het gaat hier om applicaties die niet van MS zijn, kunnen ze niks aan doen!
applicaties die niet van MS zijn???

waar is Internet Explorer dan van???? |:(
Ik draai nu al een aantal jaren OpenBSD (een zeer secure variant van de *BSD OS'sen), en dit OS biedt al die tijd al *STANDAARD* de mogelijkheid om strong-crypto op de swap-partities te activeren.

Hierdoor wordt 'uitgeswapte' data (dus ook mogelijke clear text passwords) altijd cryptographisch opgeslagen (en dus onleesbaar voor raw disk-sniffers). De sleutel van de swapdisk (waarmee de data wordt versleuteld) bestaat alleen in een gereserveerd stukje RAM (wat nooit wordt uitgeswapt), en kan niet door user-processen (of andere kernel processen) worden uitgelezen. Alleen de swap-drivers hebben toegang tot deze key.

Als het systeem ooit uitvalt, zal het bij een reboot een nieuwe swap-key genereren, waarmee het de oude swap-data overschrijft.

Op deze manier is 'gelekte' data dus nooit en te nimmer van de disk te halen (althans, niet zonder een 128-bits crypto cipher te kraken, en da's onbegonnen werk). Zelfs niet als deze data er na jaren nog steeds ergens staat.

Dit lijkt me een ideale oplossing voor bedrijven of particulieren die ECHT om security geven.
Dit lijkt een variant te zijn op de beveiligingsproblemen in windows 9x en ME. Daar werd het SWAP-geheugen namelijk in een bestand op de Harddisk opgeslagen (ik dacht win386.swp). De informatie die daarin stond (zoals wachtwoorden), kon daar jaren in blijven staan.
Is het zelfde als de pagefile in win2000/winXP etc etc etc...
alleen daar word ie pagefile.sys genoemd.
Hmm, interessant. Modernere Windows varianten gebruiken de harde schijf natuurlijk niet meer voor de swap file.

Geniaal van de jongens van Microsoft, ben benieuwd hoe ze dat voor elkaar hebben gekregen ;)
Maar is het nou werkelijk een HEEL groot probleem? Ik bedoel, zodra iemand je harde schijf kan doorzoeken is ie toch al binnen? Volgens mij heb je onder *nix dan zelfs root toegang nodig. En dan kan je zoiezo al alles doen wat je wil.
"Maar is het nou werkelijk een HEEL groot probleem? Ik bedoel, zodra iemand je harde schijf kan doorzoeken is ie toch al binnen? Volgens mij heb je onder *nix dan zelfs root toegang nodig. En dan kan je zoiezo al alles doen wat je wil."
Op zich een hele goede vraag. Je zou in eerste instantie inderdaad denken dat het kwaad al geschied is, zodra iemand al de permissies heeft om op laag niveau disks en "ongealloceerd" RAM te scannen. Pas wanneer je je verdiept in de verschillende security mechanismen en lagen die je, zelfs als je root hebt, doorheen moet om bij je data te komen, kom je erachter dat je niet zo simpel te stellen is. Ik denk hierbij bijvoorbeeld aan global descriptor tables die bijv. op een i386-compatible CPU ervoor zorgen dat data niet in code-segmenten kan worden geschreven, en andersom. Ook zorgen deze voorzieningen in de CPU er op zeer laag niveau al voor dat afzonderlijke processen (mits correct aangestuurd door de kernel) niet zomaar bij elkaars geheugen (virtueel of RAM) kunnen komen (dit is de alom bekende 'protected mode' van i386-compatible processoren).

Het gaat te diep om hier een goede top-down (of bottom-up) uitleg van *WAT* security nu precies inhoudt en *HOE* het in de praktijk geimplementeerd wordt. Maar ik denk dat ik 't aardig kan samenvatten met hetvolgende:

Security is een kwestie van 'muurtjes' opwerpen. Elk muurtje afzonderlijk is altijd 'overklimbaar'. Maar het doel van security is, een dusdanige hoeveelheid muurtjes op te werpen, dat een mogelijke aanvaller er voor kiest om een *ander* (of nog beter: geen) slachtoffer te kiezen, omdat de moeite die hij/zij moet doen om zijn/haar doel te bereiken, de uiteindelijke beloning (dan wel financieel, dan wel qua kick, wraak of nieuwsgierigheid) niet meer waard is.

En zorgen dat je swap-files beveiligd zijn, is nu precies 1 van die muurtjes die je kunt opwerpen. Waarom dan niet, als je weet dat 't kan? Elk extra muurtje is er weer een. Zelfs voor iemand die al root heeft.
...omdat de processorkracht volgens het onderzoeksteam liever voor meer interessante dingen wordt gebruikt....

Persoonlijk denk ik dat beveiliging voorop moet staan en pas daarna de 'leukere' dingen

:? Overbodig? :?
Om de gegevens in het RAM te overschrijven met nullen kan toch nooit veel rekenkracht van de processor vragen, of zie ik dit verkeerd?
Dat zie je verkeerd, want:

Je RAM-geheugen zit vol met gegevens van tientallen programma's. Het is dus even werk om na te gaan welke programma's effectief dat geheugen nog nodig hebben en de lege gaten te vinden die nog niet zijn gebruikt (omdat het echt gaten worden zoals bij een defragmentatieprogramma te zien is). Het afspeuren op zich duurt niet zo lang, maar het zou je pc toch even vertragen, zeker als die vaker gebeurd per uur/minuut.
Het zou niet zo fijn zijn om zo een clean-up mee te maken tijdens een game ofzo, want dan mis je wel wat frames :p
Het zou ook een heel ander geheugenbeheer vragen, omdat er dan een tijdslimiet zou worden geplaatst op elk stukje ram-geheugen. Die tijdslimieten bijhouden en controleren is dus tijdrovend (lees: cpu-rovend).
Maar veiligheid staat boven alles! Je zou gewoon een soort sweap-optie in de kernel van windows moeten hebben die bij het afsluiten van beveiligde sites of programma's zo'n secure sweap doet vind ik.
wel nu, ik weet niet in hoeverre compilers en programma's met elkaar te vergelijken zijn, maar vroeger (lees vele jaren terug) was er in verschillende programmeertalen een automatische trash-collector die geheugen dat niet meer gebruikt werd vrijgaf. lijkt me niet zo'n grote ingreep om dat vrijgeven gelijk te laten scramblen
dit is allemaal niet nodig denk ik, als de genoemde programma's ZELF de gegevens overschrijven eens ze niet meer nodig zijn/afgesloten worden, is het probleem direct opgelost
Dat zie je niet verkeerd, want:

Als de genoemde programma's zelf zodanig aangepast worden dat ze hun eigen (password)buffers met nullen overschrijven alvorens dit geheugen vrij te geven gaat het wel goed, maar kost het weinig resources.
er staat een bestand van 256MB op mijn schijf even analyseren zodat ik de eventuele wachtwoorden er uit kan halen, heb je effe?
Zoiets heet je swap file, en 256 MB is niet zo'n probleem. Ik denk dat je wel op bepaalde reeksen kan zoeken die kenmerkend zijn voor bepaalde programma's.
Ja hoor, als het maar genoeg oplevert!
Het gaat erom dat er word gesproekn over de gemiddelde consuent en die heeft over het algemeen niet publiekelijk bekend interessante data en daarom lijkt mij een dergelijke op-de-hoogte-stelling een beetje nietszeggend
Dus je vind het nietszeggend dat iemand anders via deze methode jouw inloggegevens van je telebankieren zou kunnen achterhalen? En dat dit ook kan mbv de computer in het internetcafe in Spanje waar je vorig jaar je saldo hebt gecontroleerd?
Die code is al verlopen zodra je uitlogd, dus daar heb je al niets meer aan.

Magoed, ik heb toch liever performance op m'n computer waar ik alleen op zit, dan dat m'n ramgeheugen met een complete 512 kbit (of wathever) encrypty m'n processor staat vol te stampen.

Als de buitendeuren maar dicht zitten vind ik het als consument zijnde wel best. Voor grote organisaties waar het mogelijk is om achter meerdere werkplekken te gaan zitten en waar ze ook nog eens gevoelige informatie hebben kan ik me wel wat anders indenken.
en dan nog ? Kunnen ze je saldo zien woepiee....
Er bestaat ook zoiets als een Tan-code.
Heel even dan, maar meer is ook meestal niet nodig als men de namen van gezinsleden of uit het woordenboek gebruikt in het wachtwoord.

En ik kan me ook voorstellen dat de plaats in het geheugen wat wil/kan zeggen over de plaats in het bestand waar ze ongeveer moeten staan.
}>
Hmm overschrijven met 0000-len heeft ook geen enkele zin. Als die 0000-len niet uitgeswapped worden naar dezelfe swap lokatie dan blijkt rustig je oude data staan.
Je maakt de kans kleiner dat een page wordt weggeschrijven naar de swapfile terwijl het wachtwoord er nog in staat.
en dus is het geen 'echte' oplossing maar een lapmiddel wat de kans verkleint.
Het is niet on-denkbaar :)
Dit lijkt een variant te zijn op de beveiligingsproblemen in windows 9x en ME. Daar werd het SWAP-geheugen namelijk in een bestand op de Harddisk opgeslagen (ik dacht win386.swp). De informatie die daarin stond (zoals wachtwoorden), kon daar jaren in blijven staan.
Haha, grap nummer een was vroeger altijd om die swap file read-only te maken: de systeembeheerder kreeg toen zoveel wazige meldingen..... :7

Nu eens kijken wat de inhoud is..... :Y)

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True