Fuite dans le code de Windows
Une partie des secrets des systèmes d´exploitation Microsoft se propage sur Internet. Il s´agirait, entre autres, du premier service pack 1 de Windows 2000.
C´est LE fichier du moment. Depuis hier circulent discrètement sur Internet des quantités importantes du code source de Windows. Une première pour un produit dont le contenu était jusque-là sévèrement tenu au secret par Microsoft.
La diffusion du code source a d´abord été signalée jeudi par le site d´amateurs de Windows NeoWin . Ce que Microsoft a confirmé officiellement : « nous savons que des portions du code source de Windows 2000 et Windows NT 4.0 ont été illégalement rendues disponibles sur Internet » . Gêné, l´éditeur n´en dit pas plus.
Ce qui n´est pas le cas de ceux, visiblement déjà nombreux, qui ont eu ce code sous les yeux. BetaNews le décrit comme un ensemble de librairies, d´exécutables, de fichiers texte, de scripts. La partie concernant Windows 2000 pèserait 203 Mo au téléchargement et 660 Mo une fois décompressée, avec en son sein 30 915 fichiers représentant 13,5 millions de lignes de code.
Une enquête très officieuse aurait même permis d´dentifier la source de la fuite. En regardant de près le code, des développeurs ont découvert des fichiers propres à un ordinateur équipé de Linux. Celui-ci aurait appartenu à un certain Eyal Alaluf, directeur technique d´un éditeur du nom de Mainsoft. C´est cet ordinateur qui aurait été piraté. Or Mainsoft est un partenaire de longue date de Microsoft, engagé par exemple par l´éditeur pour porter Internet Explorer et Windows Media Player sur Unix, et qui a eu en sa possession le code source de Windows.
Dernier indice à ce jour : la date. Les fichiers diffusés auraient été finalisés le 25 juillet 2000, soit après la sortie de Windows 2000. Il pourrait donc s´agir du premier service pack ( un ensemble de correctifs et de mises à jour) de ce système d´exploitation, proposé à ses utilisateurs à la fin du même mois de juillet.
Les découvertes devraient se multiplier. Avec 13,5 millions de lignes mises à leur disposition, les amateurs de code vont passer un long week-end.
oui je l´ai téléchargé ya qq jours de ca.
La première chose a remarquer c´est que ca n´est pas du tout un fake comme pour Half-Life 2.
Le code est propre, c´est du bon C, les peu de modules que j´ai lus sont bien agencés, ya des commentaires partout, apparament la sécurité est pas si mauvaise que ca, ya des hash, des cryptages... un peu partout.
je pense pas apres lecture de certaines partie du code qu´il soit justifié de critiquer Windows comme étant une merde parce que le jour ou vous serez en mesure de pondre un code comme celui-la ben vous pouvez directement vous engager chez SCO ou Dassault, ou bien Alias studios ou Discreet et joindre les meilleurs programmeurs du monde.
Je vais y jeter un coup d´oeil !
Ca m´interesse de voir ce " beau code en C".
et c´est ou qu´on le trouve, bon je pense bien que vous aller pa me le dire mais on sais jamais
jour ou vous serez en mesure de pondre un code comme celui-la ben vous pouvez directement vous engager chez SCO ou Dassault,
parce que tu crosi qu´il y a eu q´une seule personne qui a bosse sur le fichier que tu as sous les yeux?
et tu crosi que les ingenieuzs en info ils sont engage chez sco ( ah merde c vrai que sco engage que des avocats en ce moment
) ou dassault? pour dassault il y a de fortes chances que ce soit sous traites; et en plus c de l´embarque donc rien a voir...
et si je me rapelle bien il y a avait aussi des lignes
/ /BUG BUG : i don´t know what is use to int * framenopoint
bien entendu c pas la ligne exacte mais c dans l´esprit
Critique bête et méchante de briaeros007, qui démontre une fois de plus sa capacité à ne pas faire avancer le monde. Vous me dire, au moins, il ne le fait pas reculer...
Je ne doute pas que plusieurs centaines de codeurs peuvent faire du code propre. En revanche l´utilisation qu´ils en font et le prix qu´il en demandent peut etre discuté.
Mais c´est bizzare... juste quant Microsoft " laisse tomber" la serie NT, les sources qui etaient jusqu´alors surprotégées se retrouvent sur le net.
Enfin, ca n´interressera probablement les createurs de virus.
headcutter: Pourtant, la plupart de tes interventions sont destinées à juger et critiquer les personnes fréquentant ce forum... un comble non ? Guignole.
Bon sinon, j´ai toujours pas chargé ces sources...
http://www.pcinpact.com/actu/news/13075.htm
deja...
headcutter
Posté le 17 février 2004 à 14:29:53
Critique bête et méchante de briaeros007, qui démontre une fois de plus sa capacité à ne pas faire avancer le monde. Vous me dire, au moins, il ne le fait pas reculer...
tu eput me dire ou est ma critique bete et mechante?
j´ai vu qu´il y avait des lignes / /bug bug sur zataz!
je l´ai pas invente ( si c une invention c pas moi en tout cas ! !! )
sco ; ben oui a part dire que iostream.h leurs appartient et apres avoir lu la letter de retour de linux torvald; on peut dire qu´ils embauche plus que des avaocats!
dassault leurs boulot c´est de faire des aviosn pas de aire un os ou un systeme informatique complet =>
1 c´est un systeme embarque!
2 ils sous traitent : c´est pas leurs boulot ; ils vont pas perdre le temps de selectionner; former verifier les ingenieurs pour tel code puis ensuite pour tel autre.
je ne doute pas qu´ils ont des ingenieurs a postes en info; mais a mon avis ils sous traitent pas mal; ce qui est largement comprehensible.
tu peut me dire qui entre une communaute ouverte et dispensant son savoir et une communaute ferme se faisant payer seulement pour que tu puisse utiliser leur savoir sans savoir lesquel; qui fait avancer le monde et qui empeche le monde d´avancer?
merci jarose ; )
buz l´orage ; pour la faille ; en tant que ( mauvais) programmeur j´aimerais comprendre comment ils peivent reussir a lancer une application dans le bitmap(plutot comment nepas considerer le bitmap juste comme des donnees ) ; une buffer overflow?
possible avec un buffer overflow mais je n´ai rien lu de plus que le lien dc j´ai pas grd chose a me mettre sous la dent pour le moment lol, et puis je suis pas un codeur fou lol a par ce que je fais en cours je fais pas grd chose.
´Faut écrire dans le buffer, de façon à en deborder. Une fois dépassé, on a alors accès à la partie " call" de la sous-pile, cette partie contient une adresse pointant vers un autre endroit de la pile, il faut alors remplacer cette adresse, par celle du buffer en question, pour pouvoir executer son contenu.
C´est pas une technique de pd, parcequ´il faut connaitre l´adresse exacte de la pile, pour pouvoir executer le buffer...
Et je vois vraiment pas comment, executer du code " illégale" d´une autre manière qu´avec un " buffer overflow" ! !
Bon, je pense pas avoir dit de connerie, mais si c´est le cas, merci de me corriger =)
Question de newbie : est-ce que ça pourrait servir à faire évoluer certains projets comme WINE ?
salut, pour ce qui est de la faille en question, voilà la partie du code concernée:
/ / Before we read the bits, seek to the correct location in the file
while ( _bmfh.bfOffBits > ( unsigned)cbRead)
{
BYTE abDummy[1024];
int cbSkip;
cbSkip = _bmfh.bfOffBits - cbRead;
if ( cbSkip > 1024)
cbSkip = 1024;
if ( !Read(abDummy, cbSkip))
goto Cleanup;
cbRead += cbSkip;
}
en fait il s´agit d´un integer overflow, en utilisant un bfOffBits supérieur à la taille d´un entier non signé on parvient à modifier la valeur de cbSkip, ce qui débouche ensuite sur un buffer overflow banal, on peut en effet faire déborder abDummy et donc modifier l´adresse de retour de la fonction Read, pour la faire pointer sur l´adresse d´un code extérieur...
( source: adviso original sur full-disclosure)
@+
jarose> il existe d´autres méthodes, comme l´exploitation de bug de format, par exemple quand on a un snprintf(buffer, sizeof(buffer), argv[1]) il est possible de passer un argument utilisant un indicateur de format spécial, %n, qui permet d´écrire le nombre de caractères affichés jusqu´ici dans le buffer, ce qui en fait conduit à une situation de buffer overflow
il y aussi d´autres types de vulnérabilité, du genre race condition ( le plus souvent dues à la mauvaise utilisation d´un fichier temporaire), ou escape shell ( qui consiste le plus généralement à " sortir" d´un system()), etc . . ( l´avenir nous en apportera sûrement de nouvelles
)
@+
pardon pour l´opacité de mon premier post, la partie du code sert à lire dans le bmp l´offset où commence l´image, il suffit donc ensuite de placer un offset d´image trafiqué dans le bmp pour exploiter la vuln
maintenant c confirme : on a vraiment pas le meme niveau ; )
ben merci en tout cas; je vais essayer de comprendre
ackeur: Hum, On en revient toujours à un dépassement de tampon pour executer un code ( soit dans le buffer précédemment écrasé, soit autre part...).
Un integer overflow est considéré comme un buffer overflow hein.
Bon en tout cas, c´est un exemple convainquant que c´est du BEAU C. ![]()
ouip, le code est pas bo partout, en particulier il est moche dans le code de IE.
mais je vous rappelle que je parlait du code qui gère les log-in, pas d´un code sattelite comme IE qui ne devrait pas en soi etre intégré a l´OS.