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 , , 80 reacties
Bron: Informatiseringsgids

Aan de vooravond van de introductie van Visual Studio.net, die deze week plaatsvond, werd er opnieuw een veiligheidslek gevonden. Dit is een nieuwe teleurstelling voor Microsoft, die drie jaar aan het product werkte. De compiler van Visual C++.net blijkt niet veilig zegt een onderzoeker van de Amerikaanse beveiligingsfirma Cigital. De aanpassingen die Microsoft heeft gedaan om buffer overflows tegen te gaan blijken opnieuw een probleem op te leveren. Het bedrijf gebruikte hiervoor technologie vanuit Linux waarin een lek bleek te zitten:

Visual Studio.NETHet probleem is ontstaan door de maatregelen die Microsoft heeft genomen om het probleem van de buffer overflows te pareren. Lang niet altijd wordt voor communicatie tussen programma's en programma-onderdelen een controlemechanisme meegeprogrammeerd, om te garanderen dat vragen en antwoorden binnen de geheugenruimte passen die daarvoor gereserveerd is. Dat biedt hackers de mogelijkheid eigen programmacode binnen te smokkelen nadat ze eerst de gereserveerde geheugenruimte hebben overvoerd met non-informatie.

Microsoft heeft in de compiler van Visual C++.net maatregelen genomen om dat probleem te helpen tegengaan. Ongelukkig genoeg heeft het softwarebedrijf daarbij gebruik gemaakt van technologie uit het Linux-kamp waarvan inmiddels is aangetoond dat daarin een lek schuilt. In plaats van een middel om buffer overflows tegen te gaan, is de compiler nu een middel om beveiligingslekken te verspreiden.

TweakerWannabe stuurde ons als eerste dit nieuwtje.

Moderatie-faq Wijzig weergave

Reacties (80)

Hier staan de technische details van het probleem:
http://www.cigital.com/news/mscompiler-tech.html
<i>Note that the new feature is meant to protect any program compiled with the "protected" compiler feature.</i>

het gaat dus om een bug in de unmanaged code. Dus daar kan je (en moet je) het dus zelf afvangen
Idd, maar het gaat er volgens mij om dat de /GS optie een vals gevoel van veiligheid geeft. Het gaat om deze optie:
The new /GS compiler option in Visual C++.NET (Visual C++ 7.0) allows developers to build their applications with a so-called 'buffer security check'. In 2001, there were at least two Microsoft-written articles, one by Michael Howard and one by Brandon Bray, published to introduce the option [1,2]. Based on reading the documentation of the /GS option and examining binary instructions generated by the compiler with the option, Cigital researchers have determined that the /GS option is in essence a Win32 port of StackGuard.

Note that the new feature is meant to protect any program compiled with the "protected" compiler feature. In other words, the idea is that using this feature should help developers build more secure software. However, in its current form, the Microsoft feature leads to a false sense of security because it is easily defeated.
Het 'grappige' is dat het mechanisme wel goed schijnt te werken, maar de te 'mooie' oplossing voor ernstige problemen zorgt:
Microsoft's feature includes the ability to set a "security error handler" function to be called when a potential attack is underway. Because of the way this was implemented, the Microsoft security feature is itself vulnerable to attack. An attacker can craft a special-purpose attack against a "protected" program, defeating the protection mechanism in a straightforward way.
Dit hebben ze dus in de praktijk gebracht:
If the program is compiled with the /GS option, it is not possible to alter the program's execution path by overflowing the return address of the function 'decode'. But it is possible to overflow the parameter 'user_id' of the function 'decode' to make it point to the aforementioned variable 'user_handler' first! So when 'strcpy(user_id, p_str + 3 );' is called, we can assign a desired value to 'user_handler'. For example, we can make it point to the memory location of 'printf("Welcome!\n");', so that when the buffer overflow is detected, there would appear to be a user installed security handler and the program will execute "printf("Welcome!\n");"
Iedereen die een beetje kritisch t.o.v. Microsoft wordt gelijk gemod. Ik vraag me wel eens af welk soort publiek hier op tweakers komt.

Net zoals dat ene artikel waaruit bleek dat Microsoft medewerkers zelf de hele dag door stemmen uitbrachten op zichzelf op internet. Zoiets is hier op tweakers ook aan de gang.

sorry erg offtopic maar anders leest niemand het!
dit is ook wel grappig; er staat dat M$ een stuk software van linux gebruikt waarvan aangetoond is dat er een lek inzit. Ik vind dit een beetje vaag, hebben ze zelf geen goede software meer, en stappen ze daarom over op Linux??
Begrijp me goed ik wil niet Flamen maar ik vind dit erg raar, het grootste softwarehuis van de wereld moet software van een concurent gebruiken waarvan aangetoond is dat er een lek inzit.
dan moeten ze wel heel wanhopig zijn, maar als dit lukt is het een grote overwinning van linux :*)
het lek is pas gevonden nadat ms de source gebruikte
... maar als dit lukt is het een grote overwinning van linux ...
ja, was dat maar waar; je zult echter zien dat als VS.Net eenmaal een succes is Linux allang vergeten is ...
Microsoft heeft bij monde van Brandon Bray gereageerd op de press release van Cigital. Het belangrijkste statement in de mail die hij aan BugTraq stuurde is:

---
The Cigital press release itself says it, "This security feature is meant to protect potentially vulnerable source code automatically from _some_ forms of buffer overflow attacks." The expectation is right
there, some forms of buffer overflow attacks can evade the compiler injected security checks. This understanding makes the following statement in the Cigital press release questionable:

The protection afforded by the new feature allows
developers to continue to use vulnerable string
functions such as strcpy() as usual and still be
"protected" against some forms of stack smashing.

No where that I know of has Microsoft suggested this is a wise strategy for writing secure applications. So far, the only place I have seen such a statement has been in the Cigital press release.
---
Zie voor de volledige reactie:
http://www.securityfocus.com/archive/1/256365
dat krijg je met een .NET heh...daar zitten .MAZEN in :P
Als je iets jat, jat het dan goed... imho boontje komt om zijn loontje!
Het probleem zit hem niet alleen in het niet goed jatten, maar vooral in het claimen wat ze kunnen. Dat de protectie zelf in de microsoft uitvoering vulnerable is, dat is gewoon stom. Maar op:
http://www.trl.ibm.com/projects/security/ssp/node4.html#SECTION0004400 0000000000000
kun je al lezen dat de makers van gcc (de meest gebruikte Linux compiler) al voorbeelden geven wanneer de protectie niet werkt. Dus microsoft claimt dat de techniek afdoende protectie biedt, de gcc groep laat zien dat de techniek niet altijd protectie biedt.
Staat dit nu ook als Open Source in die compiler? Hoe kan Microsoft anders die code gebruiken?
Er staat niks voor niks techniek, MS zou wel stom zijn als ze rucksichtloss de code overschreven, dan zouden ze immers in de problemen zitten.

Er was blijkbaar al bekend dat met deze techniek het probleem niet volledig weg is...

Dit is ook niet zomaar een veiligheidslek, dit zit in het hart van de compiler, en dus ook in het hart van .NET...

Als MS dit echt dicht zou willen timmeren moeten ze de hele .NET structuur en denoods Win32 structuur herzien en dat kan helemaal niet.
En maar rpeopen dat de open source community gevaarlijk is maar wel pikken . wie een kuil graaft voor een ander valt er zelf in ;)
En maar roepen dat Linux zo goed is...

als je we zo gaan beginnen dan kunnen we nog wel even doorgaan.

Lees nou eerst een het artikel waar hier nou eigenlijk om gaat, ok? het gaat om unmanaged code die je sowieso als developer zelf zal moeten verifieeren en die nooit zomaar mag laten draaien.
En maar roepen dat Linux zo goed is...
als je we zo gaan beginnen dan kunnen we nog wel even doorgaan.
Lees nou eerst een het artikel waar hier nou eigenlijk om gaat, ok? het gaat om unmanaged code die je sowieso als developer zelf zal moeten verifieeren en die nooit zomaar mag laten draaien.
Ik stel voor dat je dat zelf eens doorleest. het heeft namelijk helemaal niks met Linux te maken, maar alles met de GNU C compiler (gcc) die op vele Unix machines wordt gebruikt, ook op Linux machines.
Van die technologie die daarin gebruikt wordt, was notabene la bekend dat het niet egr veilig was. ofwel: Microsoft is een beetje dom geweest ;)
Ik zette een ongenuanceerde uitspraak tegenover een ongenuanceerde uitspraak...dat noemt men wel eens sarcasme.

Juist het ongenuanceerde geblaat OSS=goed M$=sucks is uitermate irritant en neemt hand over hand toe op tweakers.

Ik heb het artikel wel gelezen en ook het Ars artikel over .NET, ik heb ook de reactie van MS op Cigital gelezen waarin duidelijk gesteld wordt dat de manier waarop dit 'lek' aan te spreken is bepaald niet als een correcte programmeer methode aanbevolen wordt, integendeel zelfs.

Als je dat bugs/lekken gaat noemen (programmeer slordigheden of fouten) dan is iedere compiler 'lek'.
\[Off-Topic]
Een standaard ge´nstalleerde Linux distro is nog altijd stukken veiliger dan een standaard windows installatie.
\[/Off-Topic]
Je hebt het over een OS, snap je dan ook wel 1 woord van dit hele artikel ? Allemachtig zeg, het niveau van de gemiddelde poster ligt echt onder 0

kan je er wel leuk \[off-topic] omheen zetten, maar post het dan gewoon niet.... sjies
:?

ik had 't 2 secs geleden over ctrl-c en ctrl-v
deze heb jij zeker ergens anders gevonden en even hier naartoe gekopieerd.

niets meer dan een schaap ben je!
nog rare [offtopic] tags er omheen ook, alsof het dan gerechtvaardigd is!
Sorry hoor, wat reageer jij geiiriteerd zeg! Ik heb niets kunnen lezen bij Ben Hesling dat Linux zo goed is.

Ik vind het eigenlijk wel een goed punt wat hij maakt. Microsoft die code pikt van de Open Source community. Da's pas lachen!

"Ongelukkig genoeg heeft het softwarebedrijf daarbij gebruik gemaakt van technologie uit het Linux-kamp waarvan inmiddels is aangetoond dat daarin een lek schuilt."

Als het aangetoont was dat er een lek inschuilt waarom hebben ze het dan gebruikt.

Ze kunnen zelf niet iets veiligers verzinnen. C# lijkt verdacht veel op Java. En nu ook nog dit.

Wat ontwerpt en engineered Microsoft nou eigenlijk zelf. Dit geeft echt een suffe indruk!

M$ :Z :Z :Z
Microsoft die code pikt van de Open Source community.
Volgens mij heb je niet helemaal door wat Open Source betekent.
Als je technologie jat, waarvan de code beschikbaar is, kun je mij niet wijs maken dat je dan niet even in de code gaat kijken. Dus lach maar lekker door....
Hehehehe, ik wil ook ff lachen...

Jij denkt zeker dat programmeren ctrl-c en ctrl-v is en dat dan alles werkt? Dan ga ik MetalGearSolid2 van de PSX de-compilen, doe ik een ctrl-c en ctrl-v naar m'n notepad en dan compileer ik de boel weer en dan heb ik 't op m'n pc! Da's verrekte handig! :z
Er staat geen code, er staat technologie, als je het verschil tussen die twee begrippen niet weet dat kan ik niet anders als lachen.

C# is een programmeertaal, als je het artikel over .NET op ArsTechnica nu eens gaat lezen dan weet je ook wat C# is en wat het niet is, het is dus geen Java en C# is geen .NET.

Maar ja, mensen die M$ zeggen kun je sowieso niet erg serieus nemen.
Ok, ik ging een beetje te snel...

Als je technologie jat, waarvan de code beschikbaar is, kun je mij niet wijs maken dat je dan niet even in de code gaat kijken. Dus lach maar lekker door....


Ik zeg niet dat C# Java is, maar dat het er verdacht veel op lijkt. Lach maar lekker door...

Wilde jij soms beweren dat het Microsoft niet om de cash gaat? Lach maar lekker door....

Ik vind dit hele verhaal een ronduit suffe indruk maken. Waarom moeten ze een protectie mechanisme jatten van de GNU C Compiler?

Het gaat helemaal niet om de details, het gaat er gewoon om dat ze technologie jatten van een ander. Omdat ze het blijkbaar niet zelf kunnen ontwikkelen. Lach maar lekker door...

Ik ben trouwens helemaal niet alleen maar voor Linux en alleen maar tegen Microsoft. Ik vind gewoon dat er volop keuze moet zijn, dus geen monopolen. Lach maar lekker door....

Enne niet te zereneus :?
Sensatie nieuws.
Het is geen lek, het is een bug. Het doet nl. niet goed wat het moet doen. 't Is wel erg makkelijk om het maar een lek te noemen, aangezien het van MS is, maar da's imho gewoon onzin. 't Is een bug, niet meer niet minder. Hooguit een vervelende bug, omdat het om een beveiligings-hulpje gaat. Maar aangezien het iets is wat er in vorige versies niet inzat (en ik denk in de meeste C++ compilers er niet in zit), is het dus gewoon een feature die niet naar behoren werkt. Een bug dus.
Huh? Een bug in een beveiligingsfunctie *is* toch een lek? Het is in elk geval een bug waar code lek van wordt :)
Het is een bug in iets wat code, die anders lek zou zijn, probeert te dichten. Wat dus niet goed werkt. Dus bug.
Lek vind ik meteen zo sensatiebelust. Zo kun je ook gaan koppen dat Visual C++ 6 lek is. Die compiler optie zit daar (bij mijn weten) niet in. Dat vind ik ff wat te makkelijk. Alsof nu meteen heel VS.net lek is omdat in de C++ compiler een optie niet helemaal naar behoren werkt. Dat vind ik sensatie...
(volgens mij klopt er iets niet helemaal in die zinnen...)
Ik dacht dat linux een kankergezwel was?
Volgens Microsoft dan.

En dan Code uit de Linux wereld overnemen :?
TCP in Winxp is toch een leech uit Freebsd?

[grapje]Toch wel een hele klus voor Ms om alles te vertalen van C naar Visualbasic[/grapje]
die in win2k trouwens ook. :)

moet zeggen, minder overhead tussen m'n FreeBSD server en de clients is altijd welkom :)
TCP in Winxp is toch een leech uit Freebsd?
.

De TCP/IP stack vanaf (ik dacht) Windows 2000 is gedeeltelijk gebasseerd op de BSD TCP/IP stack (dit is mogelijk omdat de BSD licentie dit gewoonweg toestaat, in tegenstelling tot de GPL licentie). Echter slaat jouw gehele reactie nergens op, want FreeBSD is GEEN Linux!
Lezen is een groot goed.

Het ging bij die (behoorlijk grove) uitspraak over het effect van GNU licenties op 'intellectual property'.
Sorry, ^Tijger^, maar ik erger me al een tijdje aan sommige van jouw reacties.
Het zal wel aan mij liggen hoor, maar je lult wel erg vaak recht wat krom is... deze keer bijvoorbeeld. Ik zal niet flauw zijn en deze beschuldiging ook even hard maken.

Lezen is een groot goed.
Het ging bij die (behoorlijk grove) uitspraak over het effect van GNU licenties op 'intellectual property'.


Dat is zo. Wat je er niet bij zegt is dat deze uitspraak gewoon niet waar is.
Op deze manier ben jij dus net zo fout bezig als de marketingafdeling van Microsoft.

Voor het gemak zal ik het deel van het interview (http://www.suntimes.com/output/tech/cst-fin-micro01.html) waarin de uitspraak werd gedaan hier even plakken:

Open source is not available to commercial companies. The way the license is written, if you use any open-source software, you have to make the rest of your software open source. If the government wants to put something in the public domain, it should. Linux is not in the public domain. Linux is a cancer that attaches itself in an intellectual property sense to everything it touches. That's the way that the license works.

Het bedrog van Steve Ballmer, CEO van MS begint al in de eerste zin van deze quote... dat linux niet beschikbaar is voor bedrijven is niets minder dan een leugen... bedrijven mogen software die wordt gereleased onder de GPL (dit is de license waar Microsoft op doelt) gewoon gebruiken, zelfs MS mag dit.
Je mag open-source software ook gebruiken om commercieele software te ontwikkelen, zo zijn er genoeg ontwikkelaars die coden met GNU (X)emacs. De GPL verbied weliswaar het linken van niet-open-source software tegen GPL'ed-libraries (ongeveer: DLL's), maar niemand released zijn libraries onder de GPL... iedereen gebruikt hiervoor de LGPL, die linken wel toestaat.
Wat zeker niet in de GPL staat is dat je als je een stukje open-source software gebruikt, je opeens al je software open-source moet maken.
Ook is het niet zo dat je als origineel eigenaar van software je rechten helmaal kwijt bent... wat je een keer onder de GPL hebt gereleased blijft GPL, maar je mag wel besluiten op een gegeven moment nieuwe versies van je software weer onder een niet-open-source license te gaan releasen. Dan kun je er dus gewoon weer geld voor vragen. Addertje onder het gras is wel dat eventuele code waar je geen copyrights van hebt (code die anderen hebben geschreven dus), dan niet mee mag worden genomen. Op deze code heb je immers geen rechten.
Wat staat de GPL dan niet toe? Dat je GPL-software gaat zitten aanpassen en deze wijzigingen lekker voor jezelf houdt. Dit is een heel redelijke voorwaarde. Het voorkomt parasitisme: wel profiteren van programma XYZ, er vervolgens nieuwe functies aan toevoegd, die je vervolgens lekker voor jezelf houdt - mag dus niet.
Microsoft zelf heeft zo'n klaplopersstrategie meer dan eens toegepast; met de BSD TCP/IP stack bijvoorbeeld. Dit license waaronder dit stukje software is gereleased, de BSD, door de FSF erkend als open-source license, staat parasitisme wel toe. Het zou natuurlijk wel netjes zijn geweest van MS om ook wat terug te geven, maar het hoeft niet.

Dus beeeetje beter nadenken voordat je wat zegt, volgende keer. ;)

edit:
typo
Dat 'gezwel' is alleen een uitspraak van Steve Balmer, niet een statement van MS zelf.

De nieuwe strategie van MS lijkt trouwens ook de *nix/*bsd richting te gaan, CLI en C# zijn open standaarden, iedereen mag het gratis gebruiken en implementeren. Bill Gates gaf zelfs toe dat het mogelijk is om het .NET framework op FreeBSD te laten draaien.
Joh echt ? Dat is juist de complete bedoeling van .NET.. platformonafhankelijkheid, geen wonder dat Bill het toegaf.

Er komt voor ELK (bruikbaar) OS een .NET framework, zodat zonder veel geklooi elke app geport kan worden.
Zeker nu ms niet instaat is gebleken zelf goede software te maken pikken ze het links en rechts maar.

Immers beter goed gestolen dan slecht zelf geschreven. En ik moet ze nageven die bsd tcp/ip stack is al stukken beter dan wat ze eerst hadden.

Als je echter pikt moet je wel opleten wat je pikt en aangezien ms tijden bezig is met het implementeren van linux oplossingen heeft het linux kamp er dus al weer een fout in gevonden.

Ik vind het een wasse neus om te denken dat je in een paar maandjes je complete productie procedee veilig kan hebben. Dit gaat jaren en jaren duren, net zo als het unix / linux jaren gekost heeft op een beetje veiliger te worden.

Maar!, die hebben nu een efficient en snel systeem om fouten te melden + een patch te leveren.

Veelal maken de hackers zelf ook de patches. Dat zie ik bij ms software nog niet gebeuren.


Mijn 2 eurocent
Maar!, die hebben nu een efficient en snel systeem om fouten te melden + een patch te leveren.
Daar zijn de meningen nogal over verdeeld! Linus heeft namelijk nog steeds de supervisie, waardoor het soms erg lang duurt, ALS een patch het al haalt. Linux is dus ook niet alles.

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