OVH Cloud OVH Cloud

Microsoft offre un demi-million de dollars pour la tete de l'auteur de MSBlast

406 réponses
Avatar
Guillermito
Comme au temps du far-west:

En anglais:
http://www.theregister.co.uk/content/55/33792.html

En français:
http://www.zdnet.fr/actualites/technologie/0,39020809,39128871,00.htm

Pathétique. Ils devraient utiliser cet argent pour embaucher des
programmeurs qui savent éviter les buffer overflow.

--
Guillermito
http://www.guillermito2.net

10 réponses

Avatar
Laurent Wacrenier
Fred Serves écrit:

On a vu l'extrait de code de cette personne.
Il est clairement mauvais.



Le code cité est clairement mal cité et les commentaires clairement
malhonnêtes.

Avatar
Frederic Bonroy
Jean-Francois Billaud a écrit:

http://www.google.fr/search?hl=fr&ie=UTF-8&oe=UTF-8&q=%22Alan+Cox%22&btnG=Recherche+Google&meta > (environ 520000 réponses, contre 6180 pour Steve Balmer)


Pas étonnant, il s'appelle Steve Ballmer avec deux "l". Ça fait
102000 avec deux "l". M'enfin, il y a certainement plus d'une
personne portant ce nom dans cet univers...

Avatar
Frederic Bonroy
Misterjack a écrit:

On en revient toujours là : à quel prix ? Un code de qualité moyenne ?
On parlait exactement de ça. Il y a 2 choix : un code sûr mais long à
écrire et cher (logiciels industriels), ou un code correct écrit
rapidement mais sujet à failles (logiciels grand public).


Dans la catégorie logiciels grand public il y a pourtant d'énormes
différences de qualité, ce qui prouve qu'un logiciel appartenant à
cette catégorie n'est pas obligatoirement sujet à failles.

Si vous comparez les failles trouvées dans IE et celles dans les
navigateurs alternatifs, la différence de qualité saute tout de suite
à l'oeil. Et quand on considère que Microsoft n'est parfois même pas
foutu de sortir des correctifs qui fonctionnent, on se rend compte que
cette différence n'est pas un simple fruit du hasard.

C'est trop facile de dire "c'est un logiciel grand public, c'est normal
qu'il y ait tant de failles". Les navigateurs alternatifs montrent que
c'est une très piètre excuse.

Avatar
Laurent Wacrenier
Frederic Bonroy écrit:
C'est trop facile de dire "c'est un logiciel grand public, c'est normal
qu'il y ait tant de failles". Les navigateurs alternatifs montrent que
c'est une très piètre excuse.


D'autant que leur dévellopement peut être alourdi pour être
bug-compatible avec les navigateurs "canoniques".

Avatar
Misterjack
Misterjack écrit:
Et je parlais de code de qualité industrielle, puisque je répondais à
une remarque sur la qualité du code de Windows(r). Je voulais dire qu'un
code reconnu fiable et maintenable prend beaucoup de temps. Je me
re-cite : "Je parle de faire reconaître un logiciel comme fiable et
maintenable."


MS-Windows, qualité "industrielle" ?


Je n'ai pas dis ça. On me dit que le code de Windows est pourri, alors
je compare avec la réalisation d'un code de qualité industrielle.

Un logiciel est fiable et maintenable quand il fait ce qu'on lui
demande et qu'il est maintenu. Ce sont des qualités qui s'aquierent
avec l'usage et non pas avec le temps passé à sa préparation.


Un logiciel ne peut pas être reconnu comme fiable uniquement s'il fait
ce qu'on lui demande.
Le code est maintenable s'il est maintenu ? Original comme concept.

Des qualités qui s'aquièrent avec l'usage ? Donc on sort un code non
fiable, et on corrige au fur et à mesure que les problèmes sont découverts ?
Quand on me dit "Microsoft c'est de la m**** parce que failles, patchs,
etc.", et qu'après on me dit "je fais du code fiable avec le temps qui
passe : problème alors on patche...", et bien je me pose des questions...

On en revient toujours là : à quel prix ? Un code de qualité moyenne ?
On parlait exactement de ça. Il y a 2 choix : un code sûr mais long à
écrire et cher (logiciels industriels), ou un code correct écrit
rapidement mais sujet à failles (logiciels grand public).


Non, la qualité d'un programme ne dépend pas de son coût.


Je n'ai pas dis ça. Je schématise ce que j'ai dis :
- Code sûr => long travail => cout élevé

Ne pas renverser les implications !!!
On peut très bien faire un code pourri pour un cout monstrueux ;-)
Peut-être est-til possible de dire ça aussi :

Les programmes que j'utilise, pour moi et pour mes serveurs, ont un
coût d'achat nul, ce n'est pas pour celà qu'ils sont de qualité nulle.


Cout d'achat... Je parle de cout de développement en milieu commercial.
Vous imaginez le cout de linux s'il avait été développé par une
entreprise privée ? Estimez le nombre d'hommes-heures de travail et
calculez. Comme quoi un produit commercial fiable a un coût... que les
entreprises se refusent à prendre en charge.

Cordialement,
--
Mister Jack (MJ)
Pour me répondre souriez et cliquez sur "Répondre".


Avatar
Jean-Francois Billaud
scripsit Frederic Bonroy :

Pas étonnant, il s'appelle Steve Ballmer avec deux "l".


Oh pardon. On comprendra que j'ai rarement l'occasion de lire
ce qu'écrit ce Mr Ballmer.


JFB

--
"Wagner's music is better than it sounds."
-- Mark Twain

Avatar
AMcD
Puisque tu me traites de guignol, permets- moi de te dire que tu n'es qu'un
personnage risible.

Désolé de te contredire, mais j'ai laissé mon code un an sans y
toucher puis l'ai modifié pour tenir compte de nouvelles librairies et
pour ajouter de nouvelles fonctionalités.


La maintenance n'est pas forcémment assurée par la personne qui a écrit le
code original. Je souhaite bien du courage à quelqu'un qui doit reprendre
ton code.

Visiblement tu as des problèmes pour écrire du code que tu peux relire
toi même et tu généralises ton problème.


On peut passer sans problème après moi sur mon code. Suivant le type de
code, ça peut aller juqu'à plusieurs lignes de commentaires par ligne
d'instruction.

Dans un milieu de production, on ne passe pas des mois à se triturer
le cerveau en équipe avant de coder 1000 lignes. Ça c'est une hérésie.


Je comprends le fond de ton analyse, mais tel n'était pas le sujet. Le
sujet, et tu en es la preuve, c'est que les méthodes employées "en
production" comme tu dis, ne sont pa sfiables, malgré les beaux discours.
Dont le tien.

Vous avez oublié de recopier les indentations.


Pas faux. Le copier-coller à effectivement fait voler en éclats la
mini-indentation de ton code. Mais comme tu es loin d'être un idiot, tu sais
très bien ce que ma remarque signifiait : qu'elle ne vaux rien. C'est
illisible! Exemples :

- char *key est plus souvent recommandé d'être écrit en char* key. On
comprend que le type est char* du premier coup.
- if ( salt=NULL){
return NULL;
}

est plus avantageusement remplacé par

if ( NULL == salt )
{
return NULL;
}

ou la parenthèse de fin de bloc n'apparaît pas avant (visuellement) celle du
début.

Variables non initialisées,


ha ?


Eh oui, c'est nul car dangereux. Déjà ça prouve que tu débuggues pas ton
code, puisque tout bon débuggeur brame après ça et ensuite c'est très risqué
car suivant la qualité de code, tu peux très bien engendrer des crashes avec
un pointeur non initialisé (par exemple).

indentation inexistante,


Après que vous les ayez effacées, c'est normal.


J'en ai parlé plus haut.

noms de variables absolument pas explicite,


La longueur du nom d'une variable est proportionnelle à sa portée.


MDR. C'est du n'importe quoi là.

non codage de
chaînes répétitives (genre "crypt") en constantes,


C'est déjà des constantes (c'est comme ça que ça s'appelle en C). Vous
pensez obscurcir le code en ajoutant des macros pour un usage limité ?


Non Monsieur 100% sûr. Je pense surtout à la portabilité ou à la mise à
jour. Si dans ton fratras tu écris mal "crypt" tu risques de ne aps t'en
apercevoir. Via une constante, une macro :

1) tu évites les erreurs (d'autant plus que codé en chaîne le compilo
bronchera pas).
2) tu permets un mis à jour facile le jour ou tu dois remplacer une valeur
par une autre...

utilisation très étrange
(et non optimisée) de l'append de l'octet NULL avec strncpy()
(pourquoi copier x si le xeme est mis à NULL ensuite ?)


L'octet NUL (et non pas NULL). Vous ne savez manistestement pas
utiliser strncpy(), ce qui entraine votre étrange remarque. Quand à
l'optimisation en n'affectant pas un octet, c'est ridicule : l'appel à
crypt() plus haut fait du DES. Modifier une bonne habitude de
programmation pour un gain relativement nul montre votre niveau
scolaire.


Oops, oui j'ai écrit NULL qui vaut 0 sous Windows au lieu de NUL. Il n'en
reste pas moins que je maintiens que ton emploi de strncpy() est étrange.
Mettre des -1 partout est certainement génial, oui...

et, à moins d'un effet de
style très hors de portée d'un débutant (genre je sors de l'école)
qui aurait à maintenir ce code, erreur à if (salt=NULL). Erreur
facilement évitable en affectant les variables à l'envers,


En quoi ?


Dis, tu me prends pour un con ? entre salt == NULL et salt = NULL il y a un
gouffre non ? Tu te ridiculises tout seul mon pauvre ami.

Il y a certe une erreur, mais,


Oui, et une lamentable !

si vous aviez lu le programme, ce
morceau est sans incidence,


Ben voyons ! Dans un débat sur le code sûr ! LOL. Tu es ridicule.

même si, comme ce n'est jamais le cas
sémantiquement ou opérationnellement, salt pouvait NULL. Le fonction
est d'ailleurs sensée planter dans ce cas, ce qu'elle fait plus haut.


Ha, ha, ha. L'excuse à deux balles !

Guignol, va.


Tu t'es vu ? Tu te ridiculises tout seul.

Mais oui, tu as appris le C à l'école il y a plus de 20 ans et tu te
rappelles encore de tes notes et de ton prof. Tu as fais l'école du
rire ?


Continuons dans le sarcasme pour couvrir son incompétence... Je te rassure,
à part tes quelques supporters, tu ne tromperas pas grand monde avec ta
mauvaise foi. Et pour les cours de C c'est quand tu veux.

--
AMcD

http://arnold.mcdonald.free.fr/


Avatar
Nicob
On Sat, 08 Nov 2003 20:19:25 +0100, Olivier Aichelbaum wrote:

Parler du délai avant de publier une faille de sécurité serait donc
hors charte sur fr.comp.securite ?


Normalement, les modérateurs de fcs donnent dans le mail de notification
la raison du refus. Pas dans ton cas ?


Nicob

Avatar
Nicob
On Sat, 08 Nov 2003 15:17:57 +0100, Olivier Aichelbaum wrote:

Combien de temps avant publication ici ils ont été prévenus ? (pour
pouvoir corriger avant qu'une personne mal intentionnée n'exploite cela)


Bon ...

Je veux bien qu'on parle de "diffusion responsable" de failles de
sécurité, avec communication avec l'admin du site ou le responsable du
programme, mais il ne faut pas en abuser.

Ces failles sont trouvables en 5 minutes, maximum ...

N'importe quel neuneu voulant exploiter un XSS ou faire un DoS sur un
navigateur avec ces failles devra convaincre sa victime de suivre une
URL de son choix, ce qui semble une limitation assez importante. De plus,
je me vois mal avertir l'admin de chacun des sites vulnérables que je
croise, il me faudrait une 2ième vie, uniquement consacrée à ça.

Quand je trouve des bugs sérieux (*vraiment* sérieux) sur des softs
protégeant la Banque de France ou stockant le coeur de métier de
milliers de boîtes, je prends mes précautions. Mais pour des failles
pareilles, ça ne vaut pas le coup ...

N'importe quel stagiaire avec un intérêt en sécurité pourrait
identifier ces failles pour McAffe, qui ne me semble d'ailleurs pas être
en manque de moyens financiers (histoire de faire un audit avant la mise
en prod).

Bon, je vais me la jouer grand prince, je vais faire remonter ça à
McAffe France où j'ai de bons contacts. Mais s'ils ne répondent pas à
mon mail ou me disent de contacter untel aux US, je laisse tomber.


Nicob
/me is happy, Eva is born !

Avatar
Misterjack
Salut !

Laurent Wacrenier a tapoté :
AMcD écrit:
Bis repetita. Je ne le connais pas. Je ne le prends pas pour un neuneu. Je
réagis vis-à-vis de ses propos. Point. On n'écrit pas des applis de 22k
lignes sans beaucoup de commentaires. C'est inmaintenable par toute autre
personne que celle qui l'a écrit (et encore, faut-il qu'il n'y revienne pas
un an après).


Désolé de te contredire, mais j'ai laissé mon code un an sans y
toucher puis l'ai modifié pour tenir compte de nouvelles librairies et
pour ajouter de nouvelles fonctionalités.

Visiblement tu as des problèmes pour écrire du code que tu peux relire
toi même et tu généralises ton problème.


Il généralise tellement qu'il y a des boîtes spécialisées dans l'aide à
la création, maintenance, et gestion de la documentation... rien que
pour lui ? Tu rigoles là j'espère ?
(désolé si ça te choque, mais en général je tutoies les gens que je
supporte à peu près sur usenet).

Et à moins d'avoir une documentation et un cahier de charges
professionnels de plusieurs dizaines de pages (et encore !), on n'écrit pas
des applis professionnelles sans beaucoup de commentaires. C'est une
hérésie.


Dans un milieu de production, on ne passe pas des mois à se triturer
le cerveau en équipe avant de coder 1000 lignes. Ça c'est une hérésie.


J'ai déjà répondu sur ta déformation des "1000 lignes".
Sinon dans un milieu de production on passe plus de temps à réfléchir
qu'à coder. Et on code pas comem des bourrins, c'est pas le but.
Le but c'est que ça marche !

Je te convie à te renseigner sur la qualité logicielle. Si tu développes
réellement des logiciels de la manière dont tu le dis, tu pourras
toujours courir pour être certifié qualité.
Voir les normes ISO 9000, ISO 9000-3, ISO 9001, ISO 9004, ISO 9004-2.
Pour le processus de réalisation :
- ISO/CEI 12207 : Processus du cycle de vie.
- Z 67-111 : Modèle de cycle de vie du logiciel adapté au
maquettage/prototypage.

Pour information, un développeur qui entre dans une entreprise sérieuse,
les premiers jours on lui dit qu'il est tout petit, qu'il doit être
humble devant les problèmes posés.
Même un pauvre stagiaire sait qu'en passant 3 mois sur 6 à préparer
sérieusement son logiciel, il le finira dans les 3 mois restant. Alors
qu'en se lançant directement dans le codage il va très probablement échouer.

En général, les clients sérieux demandent des assurances. Il veulent un
logiciel adapté, sûr, fiable, maintenable par leurs propres services,
documenté, à temps, testé, validé, conforme aux exigences, disponible, etc.
Une entreprise qui n'a pas de réelle politique qualité n'aura jamais la
confiance de ces clients.

Cordialement,
--
Mister Jack (MJ)
Pour me répondre souriez et cliquez sur "Répondre".