image

De Raadt: integer overflows zijn volgende grote dreiging

woensdag 27 oktober 2004, 14:46 door Redactie, 4 reacties

Het volgende grote probleem waar de IT-security gemeenschap mee te maken zal krijgen zijn integer overflow aanvallen, zo heeft Theo de Raadt, oprichter en leider van het OpenBSD project, gewaarschuwd. Volgens de Raadt is er geen duidelijke methode die toekomstige lekken, die door integer overflows ontstaan, kan omzeilen. Integer overflows kunnen resulteren in verschillende problemen, zoals buffer overflows en informatie lekken. Een van de problemen met dit type lek is dat ze niet makkelijk gevonden kunnen worden, zelfs niet na een audit van de broncode, zo gaat de Raadt in dit artikel verder.

Reacties (4)
28-10-2004, 10:00 door raboof
Integer overflows zijn in veel talen inderdaad een probleem,
maar waarom dat nu opeens belangrijk zou moeten worden is me
niet duidelijk.

Ik denk dat we de oplossing voor het vinden van dit soort
fouten in de formele-methoden-hoek moeten zoeken.
28-10-2004, 21:23 door Anoniem
Jammer dat hier nu zo weinig reacties zijn, want dit is een
kern aspect waar IT security om gaat. De buffer overflow (op
30 jarige leeftijd) heeft het moeilijk met voortbestaan
(lijkt er soms niet bepaald op ;-) ), daarom wordt er door
kwaadwillende gezocht naar alternatieve overflow
methodieken. Waaronder de heap, integer en formatting. En
dat het zorgwekkend is dat het lastig is om aan te tonen of
dit soort programmeer fout-constructie in code zit. En dat
de meeste programmeurs zich niet eens bewust zijn van dit
soort overflow technieken. En dus vrolijk kwestbare code
blijven genereren.
29-10-2004, 02:58 door raboof
Ik denk dat het een illusie is dat we alle programmeur
kunnen `opvoeden' tot het schijven van fatsoenlijke code.
Zelfs relatief ervaren coders zullen bepaalde fouten maken -
sommige dingen zijn nu eenmaal makkelijk te missen.

Ik zie 2 mogelijke oplossingen: betere talen of betere tools.

C/C++ staat eigenlijk belachelijk dicht bij machinetaal, je
zou kunnen zeggen dat een fatsoenlijke moderne taal een
programmeur beter in staat moet stellen op te schrijven wat
hij bedoelt en adequaat op fouten te reageren. Vanuit deze
kant gezien is Java puur als taal gezien aardige
verbetering, maar in de praktijk is het nog nauwlijkelijks
wat als je het mij vraagt.

Hoewel er al behoorlijk wat research is gedaan naar allerlei
statische checkers (onder andere array bounds checking,
overflow checking, double-free/memoryleakdetectie e.d.) heb
ik niet het idee dat er al veel van dit soort tools hun weg
hebben gevonden naar de mainstream-programmeurs. Valgrind en
LCLint hooguit, maar daar houdt het al snel mee op.

Het doet me in ieder geval goed dat de statische checker van
Stanford tegenwoordig met groot succes wordt ingezet bij het
zoeken van fouten in de Linux en FreeBSD kernels. Bovendien
wordt de linux kernel door een eigen tool gechecked, maar
dat staat geloof ik nog nogal in de kinderschoenen.
01-11-2004, 10:26 door Anoniem
Door raboof
Ik zie 2 mogelijke oplossingen: betere talen of betere tools.

C/C++ staat eigenlijk belachelijk dicht bij machinetaal, je
zou kunnen zeggen dat een fatsoenlijke moderne taal een
programmeur beter in staat moet stellen op te schrijven wat
hij bedoelt en adequaat op fouten te reageren.

Ik ben het volledig met je eens. Helaas zijn programmeurs vaak (in hun
werk) arrogant en behoudend. Als je iets 'verkeerds' zegt over C/C++ dan
staat iedereen meteen klaar met kruis en spijkers...
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.