Linux (et *BSD, OpenSolaris, Hurd ... ah, non pas Hurd, il est encore trop lent) ne sont pas à l'abri d'une faille comme celle-ci, et on annonce d'ailleurs très régulièrement des "dépassement de tampon", "escalade de droits" ou "deni de service" potentiels.
C'est évident.
En même temps pour le (D)DOS, à part faire du queuing, du load balancing, de la redondance, on ne peux pas faire grand chose pour diminuer son impact.
Mais le propos de départ était surtout que ces systèmes sont ("pour le moment" (ou pas)) très peu sensibles aux virus, vers, tojans, malwares, spywares, trucswares...
Pour ce qui est des "buffer overflow" et "privilege escalation", c'est pas près de s'arrêter. Petite recherche sur koders[1] nous donne[2] 18 758 gets et seulement 8 058 fgets (dans les sources C uniquement).
Pour rappel : theo@euler$ echo "int main(void){char *test; gets(test);}" >> /tmp/gets.c && gcc -Wall /tmp/gets.c
[...] AVERTISSEMENT: the `gets' function is dangerous and should not be used.
theo@euler$
Autre exemple[3] : 28 256 strcpy, 12 787 strncpy et seulement 1 078 strlcpy !
Ça ne me rassure pas de voir qu'il y a 25 fois plus de strcpy (et 10 fois plus de strncpy) que de strlcpy.
Pour rigoler : comment un gars (utilisateur d'OpenBSD, donc normalement sensibilisé à la sécu) réussi à écraser son buffer bien qu'il ai fait gaffe à éviter strcpy. http://groups.google.fr/group/lucky.openbsd.misc/browse_thre(...)
Le chemin est encore long...
Enfin ceci dit ce ne sont que des stats. Ça ne veut pas dire grand chose. Si ça se trouve la majorité des sources sont abandonées après un fork, un changement d'hébergeur, sont des vielles versions qui ne sont plus utilisés ou patchées et le projet est mort. Peut être qu'en fait il y a autant, voir plus de fonctions sûres utilisées (strlcpy, strlcat...) que de fonctions "unsafe" (scanf, gets...).
Mais bon avec des scies, on mettrais Paris en bouteille, toussa :)
Enfin pour moi, il reste quand même une culture pas forcément top, et il y a encore un boulot d'information à faire quand aux dangers de certaines fonctions (du moins en C).
(enfin même pas que sur les fonctions, plein d'autres trucs, comme certaines utilisations de pointeurs hasardeuses, utilisations de variables non initialisées etc., etc. etc...)
- Par contre, face à un logiciel propriétaire, fermé, breveté, comment faire valoir ses compétences et ses efforts de reverse-engineering ? Faire un rapport de bug sera au mieux traité dans la prochaine version, souvent dans plusieurs mois, selon la bonne volonté de l'éditeur. C'est marrant, plus c'est fermé, moins ils ont de bonne volonté, les éditeurs ... Mais au pire, celui qui divulgue une vulnérabilité peut se retrouver accusé de diffamation, et traîné devant les tribunaux ! (cf. l'affaire Guillermito). Alors certains passent carrément du côté obscur, décident de remuer le couteau dans la plaie, et développent la version moderne du poil à gratter. Ensuite, les vrais escrocs entrent dans la danse, et transforment un simple "exploit" en vrai virus bien méchant.
Je suis d'accord pour la partie Open Source, c'est motivant et gratifiant de contribuer toussa.
Par contre pour les logiciels proprios, on peut être tenté de faire des virus et toutes cette sorte de choses. Mais pas tout le temps. Il faut savoir que les 0 day exploits se vendent aux éditeurs de logiciels (qui payent pour pas qu'on dise que leur système est pourri) et aux éditeurs d'anti{virus|*ware} histoire de pouvoir dire qu'ils sont en avance sur les concurents en proposant des MAJ avant les autres.
Je n'arrive pas à trouver sur le site de MS ce genre d'infos. Mais il me semble que ça peut monter assez haut. (dans les milliers voire les dizaines de millieurs d'euros ou de dollards si je ne me trompe pas).
[^] # Re: quelques liens
Posté par theocrite . En réponse au journal grave faille de sécuritée dans toutes les versions de windows. Évalué à 10.
En même temps pour le (D)DOS, à part faire du queuing, du load balancing, de la redondance, on ne peux pas faire grand chose pour diminuer son impact.
Mais le propos de départ était surtout que ces systèmes sont ("pour le moment" (ou pas)) très peu sensibles aux virus, vers, tojans, malwares, spywares, trucswares...
Pour ce qui est des "buffer overflow" et "privilege escalation", c'est pas près de s'arrêter. Petite recherche sur koders[1] nous donne[2] 18 758 gets et seulement 8 058 fgets (dans les sources C uniquement).
Pour rappel :
theo@euler$ echo "int main(void){char *test; gets(test);}" >> /tmp/gets.c && gcc -Wall /tmp/gets.c
[...]
AVERTISSEMENT: the `gets' function is dangerous and should not be used.
theo@euler$
Autre exemple[3] : 28 256 strcpy, 12 787 strncpy et seulement 1 078 strlcpy !
Ça ne me rassure pas de voir qu'il y a 25 fois plus de strcpy (et 10 fois plus de strncpy) que de strlcpy.
Pour rigoler : comment un gars (utilisateur d'OpenBSD, donc normalement sensibilisé à la sécu) réussi à écraser son buffer bien qu'il ai fait gaffe à éviter strcpy.
http://groups.google.fr/group/lucky.openbsd.misc/browse_thre(...)
Le chemin est encore long...
Enfin ceci dit ce ne sont que des stats. Ça ne veut pas dire grand chose. Si ça se trouve la majorité des sources sont abandonées après un fork, un changement d'hébergeur, sont des vielles versions qui ne sont plus utilisés ou patchées et le projet est mort. Peut être qu'en fait il y a autant, voir plus de fonctions sûres utilisées (strlcpy, strlcat...) que de fonctions "unsafe" (scanf, gets...).
Mais bon avec des scies, on mettrais Paris en bouteille, toussa :)
Enfin pour moi, il reste quand même une culture pas forcément top, et il y a encore un boulot d'information à faire quand aux dangers de certaines fonctions (du moins en C).
(enfin même pas que sur les fonctions, plein d'autres trucs, comme certaines utilisations de pointeurs hasardeuses, utilisations de variables non initialisées etc., etc. etc...)
Je suis d'accord pour la partie Open Source, c'est motivant et gratifiant de contribuer toussa.
Par contre pour les logiciels proprios, on peut être tenté de faire des virus et toutes cette sorte de choses. Mais pas tout le temps. Il faut savoir que les 0 day exploits se vendent aux éditeurs de logiciels (qui payent pour pas qu'on dise que leur système est pourri) et aux éditeurs d'anti{virus|*ware} histoire de pouvoir dire qu'ils sont en avance sur les concurents en proposant des MAJ avant les autres.
Je n'arrive pas à trouver sur le site de MS ce genre d'infos. Mais il me semble que ça peut monter assez haut. (dans les milliers voire les dizaines de millieurs d'euros ou de dollards si je ne me trompe pas).
[1] http://www.koders.com/
[2] http://www.koders.com/?s=gets&_%3Abtn=Search&_%3Ala=(...)
http://www.koders.com/?s=fgets&_%3Abtn=Search&_%3Ala(...)
[3] http://www.koders.com/?s=strcpy&_%3Abtn=Search&_%3Al(...)
http://www.koders.com/?s=strncpy&_%3Abtn=Search&_%3A(...)
http://www.koders.com/?s=strlcpy&_%3Abtn=Search&_%3A(...)