Gå till innehåll

Den ultimata säkerhetstråden


Gäst al6

Recommended Posts

Windows är ett operativsystem som designats för att vara så bakåtkompatibelt det bara går, man kan faktiskt köra originalspel från Windows 3.1 i Windows 7 (SkiiFree). Detta är både bra och dåligt, det dåliga är att Microsoft inte alltid använder den senaste tekniken som standard för att man ska vara bakåtkompatibel.

Kärnan i denna tråden är buffertöverskridningar (ja, igen) fast nu som upplysning istället för diskussion. Det finns ett inbyggt skydd i Windows Vista och Windows 7 som faktiskt är fantastiskt, kallat DEP, eller Data Execution Prevention. Dock kommer återigen det faktum att Microsoft gör Windows bakåtkompatibelt och då inte använder den nyaste tekniken som standard. Vad som hindrat DEP från att visa sin briljans är simpelt att förklara: den är avstängd som standard <_<. Eller rättare sagt ligger den i ett läge kallat "OptIn", alltså "frivilligt inträde". Detta betyder att DEP endast skyddar de program som uttryckligen ber om skydd.

Comodo BO Tester ber alltså inte om skydd från DEP, och resultatet blir då dåligt. Man kan väl både säga att detta är medvetet för att framställa Comodos produkter som bättre, men även är ju detta ett realistiskt test eftersom inte många program i dagsläget ber om skydd från DEP.

En ironisk sak är dock att jag gjorde en egen BO Tester som hela tiden kraschade och jag förstod inte varför. Svaret är en kedja av misstag:

1. Jag gjorde den i Visual Studio 2008, vilket tydligen automatiskt gör så ens program ber om DEP.

2. Jag använde ett inofficiellt bygge av Windows 7, där uppenbarligen DEP fungerade lite knasigt, då den fick programmet att krascha när det stoppades av DEP, istället för att visa ett meddelande om att DEP stoppat ett program. Jag visste alltså inte vad som var fel och kunde då inte fortsätta, nu vet jag :)

Okej så nu till det roliga: Det finns ett läge till att välja, kallat OptOut, alltså "frivilligt undantag" där alla program i hela systemet skyddas av DEP, med undantag för en "vitlista" man kan bestämma. Allt detta finns med i Windows Vista och 7.

För att se till att ni är skyddade av DEP trycker ni WIN + R och skriver in systempropertiesperformance och trycker enter, sen går ni till fliken Data Execution Prevention och väljer alternativet Turn on DEP for all programs and services except those I select sen får ni, som det även står, starta om datorn för att verkställa det nya läget.

Här kommer resultaten från Comodo BO Tester, med OptIn och OptOut på Windows 7 RC x86, som ni ser skyddas man inte från ret2libc, men det är i alla fall ett enormt steg framåt av Microsoft att nu kunna skydda mot 70% av alla typer av säkerhetshål, självklart kör jag själv nu med OptOut:

<se bilderna>

Edit: som jag skriver senare i tråden är man även skyddad mot ret2libc i och med ASLR (Windows Vista och senare), så man har alltså kommit väldigt långt i säkerhetsutvecklingen.

Länk till kommentar
Dela på andra webbplatser

  • Svar 73
  • Skapat
  • Senaste svar

Toppostare i den här tråden

Toppostare i den här tråden

Bilder i tråden

2. Jag använde ett inofficiellt bygge av Windows 7, där uppenbarligen DEP fungerade lite knasigt, då den fick programmet att krascha när det stoppades av DEP, istället för att visa ett meddelande om att DEP stoppat ett program. Jag visste alltså inte vad som var fel och kunde då inte fortsätta, nu vet jag

Tydligen är det såhär även i Windows 7 RC, men det är ju bara att lära sig.

Jag har en teori varför det helt enkelt står att programmet har kraschat när DEP stänger det: Om DEP har stängt ett program betyder det att ett säkerhetshål har utnyttjats, vilket betyder att programmet har en programmeringsmiss. Det finns en knapp "Send Information" och jag antar då att man kommer kunna upptäcka säkerhetshål och fixa dem extremt mycket lättare när Microsoft får info skickad om var, hur och när ett säkerhetshål utnyttjades. Då kan man även dra nytta av virusmakarnas kunskap: någon sitter och letar säkerhetshål och hittar ett och gör ett virus som man sen kör på en dator med DEP, som då upptäcker säkerhetshålet och skickar info till Microsoft. Då har man helt plötsligt blivit hjälpt av virusmakaren, riktigt smart :D

Edit: Fan ibland kommer det upp att programmet kraschat och ibland kommer det inte upp något, men i alla fall stoppas viruset alla gånger :), jag vet inte om det ska vara så men det verkar vara en simpel sak att fixa om det skulle visa sig vara ett fel, det är ju trots allt RC och själva skyddet fungerar ju alltid så vem bryr sig ;)

Länk till kommentar
Dela på andra webbplatser

Jag gjorde ett simpelt script som sätter på DEP som jag visade innan, kör det som administratör och starta om datorn så har du en säkrare dator :D

Länk till kommentar
Dela på andra webbplatser

Du har verkligen tänt på det här! :D

Några kommentarer och frågor:

  1. Dataexekveringsskydd finns också i Windows XP, från och med SP2.
  2. Med dataexekveringsskydd aktiverat för alla program och tjänster i XP SP3 (x32), ger det inget skydd då jag testar med BO Tester. (Min processor stöder inte ”dataexekveringsskydd genom maskinvaran”.)
  3. Stöder din processor ”dataexekveringsskydd genom maskinvaran”?
  4. Om 3. = Ja, kan man avgöra om det är Windows eller processorn som skyddar mot buffertöverskridningen?
  5. Nedanstående Wikipedia-citat stämmer med ditt testresultat:

Unlike similar protection schemes available on other operating systems, DEP provides no address space layout randomization (ASLR, a feature now available in Windows Vista), which may allow return-to-libc attacks that could feasibly be used to disable DEP during an attack. The possibility has now been demonstrated against Windows Hardware-enforced DEP by authors "skape & Skywing" in the following Uninformed article which relies on a return-to-libc style attack. This technique relies on directly pointing the EIP register to the known service-pack-dependent location which applies the OptIn/OptOut mechanism. It is reliant on the boot-time option of OptOut/OptIn being available. If all pages are strictly enforced, then this attack will not succeed. The PaX documentation further elaborates on why ASLR is necessary.
Länk till kommentar
Dela på andra webbplatser

3. Ja, men jag kör x86 Windows :huh:

4. Vet inte

5. Även om man är öppen för eventuella ret2libc så är ju DEP ivägen och skyddar en från alla gamla / inte lika hightech attacker. Sen så är det samma sak med ASLR som det är med DEP; programmet måste uttryckligen vilja bli skyddat, vilket autoamtiskt sätts på när programmet görs i Visual Studio 2008, så även ret2libc är stoppat för de program som ber om det (Opera 9.64 ber om ASLR och DEP, så den läsaren är i stort sett helt säker)

Källa: http://www.opera.com/docs/changelogs/windows/964/

;)

Undrar om man kan sätta på ASLR för alla program, det hade varit fett bra :D

Länk till kommentar
Dela på andra webbplatser

Har testat massa saker hela dan och kommit fram till att resultatet som Comodo BO Tester ger egentligen är ren bullshit eftersom den totalt ignorerar både DEP och ASLR. Jag länkade om programmet så det använde DEP, och satte om till OptIn och vipps fick jag protected på två. Sen länkade jag om så det använde ASLR, men det gick inte för programmet var länkat att uttryckligen inte stödja ASLR, alltså inte bara hade dom låtit bli ASLR utan dom har verkligen gjort så det inte ska fungera med ASLR. Enligt vad jag läst ska DEP + ASLR skydda mot alla dessa tre attacker, inklusive ret2libc och hela Windows Vista och 7 är ju skrivet för att använda DEP och ASLR så bara för att just Comodo BO Tester låter bli dessa skyddstekniker betyder det ju inte att hela systemet är öppet för attacker.

Som sagt använder Opera både DEP och ASLR så den läsaren är ju väldigt säker för alla dessa attacker, och hela Windows 7 använder det och alla moderna program använder det.

Länk till kommentar
Dela på andra webbplatser

Eftersom jag tidigare försökt göra en egen BO Tester men misslyckats eftersom jag, vilket jag då inte visste, hade testat den med DEP påslaget, har jag nu fixat fram en som fungerar fint som attan här. Som jag tidigare sagt så är egentligen sånna här tester lite åt bullshit-hållet, men det kan ändå vara kul att testa lite. ;)

Har jobbat fram en testare, lite av en parodi; al6's BO Tester :) Vill veta om den fungerar och om den får Memory Firewall med flera att agera.

Länk till kommentar
Dela på andra webbplatser

Har jobbat fram en testare, lite av en parodi; al6's BO Tester :) Vill veta om den fungerar och om den får Memory Firewall med flera att agera.

Testade med CIS 3.9 RC1, som innehåller en uppdaterad version av Memory Firewall. Ingen reaktion. Är det en skalkodsinjektion?

post-7701-1240900901_thumb.png

Länk till kommentar
Dela på andra webbplatser

Testade med CIS 3.9 RC1, som innehåller en uppdaterad version av Memory Firewall. Ingen reaktion. Är det en skalkodsinjektion?

Alltså jag är beredd att säga ja, jag har kollat på definitionen av shellcode; http://en.wikipedia.org/wiki/Shellcode och jag tycker att jag gör detta.

Det enda sättet du kunde ha fått de där meddelandet är om en buffer överskrids, returnerar till data-segmentet, kör shellcode som hoppar tillbaka till kod-segmentet som då returnerar en kod (13 som i otur). Saken är den att:

* En buffer overflow har skett på stacken

* Returneringsadressen har ändrats

* Kod i data-segmentet har körts ("shellcode")

Hade någon del av denna historian falerat på något sätt hade programemt kraschat och då returnerat en annan kod än 13, vilket den inte gjorde. När jag sätter DEP på OptOut (tvinga alla program till DEP) får jag godkänt på provet, och utan får jag underkänt som du. Jag skulle säga att jag gjort rätt, dessutom har jag ju lyckats få fram varningar från Memory Firewall innan, och då har jag använt lika sorts "shellcode" (shellcode är ju bara en kort bit kod som körs från en buffer).

this one goes to the judges

Men jag är ändå glad att det fungerade hos dig, det betyder ändå att jag fått till det denna gången ;)

Länk till kommentar
Dela på andra webbplatser

Hm…

Vill du gå vidare kanske du skulle fråga på Comodos forum om ditt program påvisar en brist i deras skydd, eller om deras skydd visar att ditt program inte utför en attack som skulle kunna vara skadlig.

Länk till kommentar
Dela på andra webbplatser

Har mixtrat en hel del nu utan att få fram någon varning från Memory Firewall, egentligen är allt detta arbetet helt onödigt men jag gillar att pilla med sånt här så jag vill gärna slutföra de så den fungerar bra med Memory Firewall. Hur får ja kontakt med dom då? Vad är forumet?

Länk till kommentar
Dela på andra webbplatser

Här är Comodos forum: https://forums.comodo.com/index.php

Avdelningen om Memory Firewall: https://forums.comodo.com/comodo_memory_fir...otection-b97.0/

BO Tester finns i Beta Corner.

Ska ta en titt på detta eftersom man lär sig nya saker genom att lösa problem ;)

Har fipplat lite med min BO Tester och den är riktigt elegant nu, synd bara att den inte får Memory Firewall att reagera men den fungerar utmärkt för att kolla om man har DEP påslaget för hela systemet. Har fixat så den bara är en fil nu och man behöver inte köra den som admin som man behöver med Comodos BO Tester ;) Jag ska höra med grabbarna bakom Memory Firewall om varför den inte reagerar på mitt test.

EDIT: Såja nu har man sparkat iväg ett meddelande på forumet ;)

Länk till kommentar
Dela på andra webbplatser

Kommer jag få svar av någon som kan eller kommer tråden bara att rinna ut i sanden? Finns där utvecklarna bakom Memory Firewall att snacka med?

Som sagt är allt detta inte ett problem utan bara övning, med det hade ju varit ballt att göra en portabel BO Tester på svenska som körs utan admin. :D

Länk till kommentar
Dela på andra webbplatser

Kommer jag få svar av någon som kan eller kommer tråden bara att rinna ut i sanden? Finns där utvecklarna bakom Memory Firewall att snacka med?

Som sagt är allt detta inte ett problem utan bara övning, med det hade ju varit ballt att göra en portabel BO Tester på svenska som körs utan admin. :D

Utvecklarna lär nog se inlägget, men vem/vilka som kommer att svara vet man ju inte. Kan ju dröja något…

Jag tror att de håller på att utveckla en ersättare till BO Tester, som är från 2007. Jag har föreslagit att de testen skall ingå i Comodo Leak Test, som är portabelt. ;) Har inte sett något om det på ett tag.

Länk till kommentar
Dela på andra webbplatser

Okej men jag väntar på ett svar då så jag kan få det att fungera ordentligt, under tiden har jag förbättrat det lite mer så att det nu är helt portabelt och kan köras direkt från zip-filer utan att packas upp till hårddisken. Den är faktiskt riktigt bra att testa DEP med, jag funderar på att fråga om användaren vill sätta på OptOut på DEP om man får underkänt på testet, fast att frågan är mer användarvänlig i stil med "du fick underkänt på testet, vill du att säkerhetsinställningarna i datorn ska justeras"?

Det är ju lite ballt ändå :D

Länk till kommentar
Dela på andra webbplatser

Bara de inte misstänker att du vill utveckla ett program för verkliga attacker. :o;)

Jag vill nog veta en del om ett program som frågar vill du att säkerhetsinställningarna i datorn ska justeras? B) Kanske bättre med Vill du aktivera DEP för alla program? ;)

Länk till kommentar
Dela på andra webbplatser

Har fipplat en del och insett att Memory Firewall bara reagerar på anrop som ShellExecute, WinExec och andra i den stilen (därav namnet shellcode ;)). Tycker det är riktigt missvisande att säga att den stoppar BO-attacker, när den egentligen är aktiv först långt långt senare i "attacken". Håller på att skriva lite mer finurliga shellcodes nu och nu jävlar reagerar Memory Firewall men jag måste fippla ihop det hela så att min tester inte kraschar sig själv, utan visar ett meddelande. Hittar hela tiden nya inställningar i Visual Studio som jag inte visste fanns, till exempel att man skulle stänga av DEP ;)

Jag pratar på som attan i denna tråden men whatever - detta är kul, här kommer bild:

Länk till kommentar
Dela på andra webbplatser

Har löst alla problem nu; testet kraschar inte och Memory Firewall reagerar. Jag håller bara på att skriva om texterna i mitt test lite eftersom jag tycker det istället borde heta i stil med "minneshanteringssäkerhet" långt ord dock ;)

Länk till kommentar
Dela på andra webbplatser

Okej, här kommer en tester som bara MÅSTE fungera. Har testat den typ hundra gånger på min dator och den fungerar alltid...

Funderar på att göra en vanlig ruta där jag kan skriva lite mer detaljerat istället för o använda sånna här dialogrutor?

Länk till kommentar
Dela på andra webbplatser

Delta i dialogen

Du kan skriva svaret nu och registrera dig senare, Om du har ett konto, logga in nu för att svara på inlägget.

Gäst
Svara i detta ämne...

×   Du har klistrat in innehåll med formatering.   Ta bort formatering

  Only 75 emoji are allowed.

×   Din länk har automatiskt bäddats in.   Visa som länk istället

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Skapa nytt...