Quand il y a un bug sous Windows, tout le code de Windows est analysé, dans toutes les dll ?
Quand tu insères du code dans un binaire, ça décale tout le code de diffèrentes manières. Si qq'un rapporte un bug dans ce binaire, ou un binaire relatif, et qu'un développeur charge le schmilblick dans un debugger pour voir ce qu'il se passe, il verra que les lignes de code sont décalées par rapport à l'assembleur indiqué par le debugger, voire même le debugger lui dira directement que le binaire ne correspond pas aux symboles de debuggage si l'attaquant n'a pas fait l'effort/réussi à modifier les symboles de debuggage en même temps.
Et oui, ca n'a rien de spécifique à Windows, c'est vrai pour Linux aussi.
Et tout les développeurs ont systématiquement tout le code dans toutes les versions distribuées, qu'ils recompilent parallèlement entièrement ?
Compilent-ils tous sur exactement la même machine ? Avec un compilateur et une machine qui ont exactement le même état ?
Cela n'a rien à voir avec le problème. Le problème est la correspondance entre lignes de code (que les développeurs ont évidemment), et ce que les symboles de debug disent. Si ton debugger à un moment te dit qu'il y a un appel de fonction, et tu vois une ligne de code disant "int a = 4+20;", tu sais qu'il y a qqe chose qui foire.
Et tout ça c'est évidemment sans parler du fait que les binaires sont signés d'habitude(du moins pour Windows, Office et autres softs), faudrait que le gars arrive à faire son changement dans l'intervalle entre la génération des binaires et leur signature, sinon il devra poser lui même une requête de signature(ça demande typiquement 2-3 personnes, donc il devra avoir des complices déjà), et inutile de dire que ça va tout de suite alerter tout le monde. Ça va pas être du gâteau.
En ce qui concerne l'accès au code source: s'il est si restreint et contrôlé, cela pose les mêmes problèmes d'avoir un petit nombre de personne y ayant accès / contrôle (remplace "de haut niveau administratif" par "de haut niveau de contrôle de l'accès").
Non du tout, c'est très différent. Si tu prends le cas de Microsoft, ou Amazon, ou Google, … t'as des centaines et centaines (voire milliers selon les projets hein) de développeurs/testeurs, t'as quelque dizaines de managers de 1-2ème niveau, et au dessus c'est le "haut management".
Ces sociétés ont toutes des permissions sur leur code source, géré par groupe, avec un pare-feu humain pour joindre le groupe. Tu regardes typiquement qui est la personne, pour qui il bosse et quel est le titre de son job pour décider quand tu reçois la requête, il y a une automatisation pour expédier les requêtes ou c'est super évident (le gars est dans la hiérarchie du VP du bon groupe, son titre est développeur, …). Ça te dit si il bosse dans le bon département, si il est sensé avoir accès au code, … et il y a toujours le manager de la personne en CC: sur l'email histoire qu'il soit au courant. C'est au final très simple et une requète "bizarre" se voit très vite.
Façile ? Non justement. La force de la NSA ce sont ces informaticiens, leur spécialité est tout ce qui est technique. Des gars derrière leur écran, dans les bureaux de la NSA.
Se faire passer pour quelqu'un d'autre en public, mentir de manière efficace pendant des semaines et des mois, … devant des gens, c'est pas forcément leur spécialité.
Pas forcèment plus qu'en interne à la boite, car oh grande nouvelle, plusieurs personnes lisent le même code en interne aussi, et tout le monde n'est pas employé par la NSA.
Parce que le jour ou un bug est rapporté, les développeurs chargent le binaire publié, et se rendent très vite compte que le code (et les symboles de débuggage si l'effort est fait de les modifier aussi) ne correspondent pas au code qu'ils ont.
Sans parler du fait qu'être placé très haut ne signifie pas que la personne a accès aux machines.
Tu peux être sur que les VPs et autres de Windows n'avaient pas accès aux machines de build et aux dépots de code source par exemple, car tout le monde doit faire la demande. Et une demande de leur part d'avoir un accès, surtout en écriture, vu leur job, aurait été vue avec énormement de suspicion par les gens en charge d'autoriser la requète.
Tout a fait, c'est possible, c'est par contre légèrement plus complique que ce que tu écris :
Faut qu'il y ait un poste disponible la ou tu veux mettre la backdoor. Te faire engager dans le team marketing ou vente ça va pas aider
Faut que tu passes l'interview quand même
Faudra que tu insères la backdoor dans la partie de code qui t'es assignée point de vue boulot, sinon ça va amener des questions…
T'as typiquement un background check dans nombre de boites, et ça force le fait que la personne qui est engagée soit un développeur, tu peux pas envoyer n'importe quel agent de terrain. En remote c'est évidemment plus facile car pas d'interactions face à face et 8h par jour.
Bref, la barre est quand même plus élevée qu'apparaître de nulle part et envoyer des patchs à un projet.
Hardware
- ECS EXEC/BASIC ROM, containing the built-in BASIC programming language and additional BIOS routines to handle the added hardware features
- additional 2kB of system RAM (supposedly, the system could be further expanded to as much as 64kB with add-on memory modules, but no such modules ever made it to production)
- additional AY-3-8910 sound chip (this was the same sound chip used in the Intellivision)
- a cassette recorder/printer interface (used the same peripherals as the Mattel Aquarius)
- two additional input ports for the alphanumeric Computer Keyboard, the Music Synthesizer keyboard, or two additional Intellivision Game Controllers.
Un code open source ne veut pas dire que tu dois accepter du code de n'importe qui. Ou meme en accepter tout cours.
Un code proprio ne veut pas dire que tu vas mettre des backdoors dedans.
Mais bien sur que si qu'il y a une difference. On ne peut jamais avoir une garantie à 100%, ca ne veut pas dire qu'il n'y a pas de difference.
C'est quoi la différence alors ? Faire un code open source sans accepter de changement ? Ca laisse toujours la porte ouverte à l'auteur d'y insèrer ses backdoors, comme un auteur proprio.
Et en pratique, dans la vraie vie, combien de projets ayant une valeur sont dans ce cas ? Linux ? Apache ? OpenOffice ? KDE ? Gnome ? … Ah oui, aucun.
Si moi demain, je veux insérer une backdoor dans Linux, je peux. J'envoies qqe patches qui sont bien, je gagnes la confiance, et au bout d'un moment j'insères ma backdoor discrètement. Au pire, les gens la verront, croiront que c'est un bug innocent, je réessaierai un peu plus tard et je finirai par y arriver.
Si je veux aller insèrer une backdoor dans iOS ou Windows par contre, ah ben merde, j'ai pas accès… Seule la société elle-même peut le faire.
Ces 2 phrases sont vraies pour n'importe qui. Moi, toi, TImaniac, ta grand-mère, …
Eh oui, il n'est pas si évident que ce soit plus simple d'un coté que de l'autre.
T'auras du mal, bcp de mal, à faire mieux que les gros providers de "cloud computing" en terme de fiabilité et étiquette environnement vu qu'ils optimisent un max l'utilisation de leurs ressources (pour raisons monétaires), ce qui permet justement de limiter le nombre de systèmes consommant au maximum en placant de manière optimisée les VMs sur les serveurs, alors que toi, au final ta machine continuera de bouffer de l'énergie alors que tu ne l'utiliseras probablement que très rarement.
C'est absolument pas comparable. Dans un cas on a un evenement heureusement assez rare, un bug critique qui n'a pas été reperé pendant plusieurs années. Dans l'autre, le dev du logiciel proprietaire peut rajouter une backdoor en 5 minutes dans n'importe quelle release sans que personne ne puisse le savoir.
Tu me fais bien marrer. Qu'est ce qui te dit que ce bug Shellshock n'était pas une backdoor ? Tu n'en sais absolument rien. Tu t'amuses à assumer que n'importe quelle vulnérabilité trouvée dans un soft libre est juste ça : une vulnérabilité innocente, alors que tu mets le doute sur le proprio, on va dire que c'est sacrément gonflé.
Dans l'autre, le dev du logiciel proprietaire peut rajouter une backdoor en 5 minutes dans n'importe quelle release sans que personne ne puisse le savoir.
Ca doit bien être pour ça que plein de backdoor ont été trouvées dans divers produits (firmwares de routeurs notamment) ? Ah ben non, visiblement elles se trouvent, même dans du code binaire.
Word 2007 je sais pas, mais Word 2013 (laptop maison, p-e que 2010/2007 l'ont aussi) a une option "premiere page differente" dans le ruban du footer.
Tu choisis ca, enleves le numero du de page de la 1ere page, et tu clique droit sur le numero de page du footer dans la page 2 pour changer le numero de depart a 0, ca amene ta 2eme page a etre la 1ere.
CreateObject ca crée une instance de l'objet COM représentant l'application Word, Visible ça le met en visible oui, mais évidemment il suffit de le mettre en false, et tout se passera en background sans que cela soit visible.
Word, Excel, IE, SQL Server… ont tous des objets COM exposant leur fonctionnalité, avec un objet COM en haut de l'arborescence qui représente l'application elle-même, que tu peux réutiliser à bon vouloir à travers n'importe quel langage qui supporte l'appel d'objets COM.
Quand tu vois un installer faire tout un tas de registrations à l'installation, c'est souvent pour ça : enregistrer les interfaces des objets COM dans le système (une GUID) et l'associer à un dll/exe sur le disque. Ca permet ensuite à un script ou autre de simplement instancier un objet par son nom ou son GUID.
Bref, tu peux automatiser ton Word ou Excel ou autre en C#, VBScript, C++, Python,… très simplement.
Ce qui est marrant vu le poste du haut, c'est qu'il est bien plus facile de créer une table de manière automatisée avec Word qu'avec LaTeX, il y a tout un tas d'APIs pour ça.
Tout a fait, il faut se mettre dans la tête que pour Win32, le chemin de path maximum est MAX_PATH (255) caractères. Le truc '\\?\' revient à faire un bypass de Win32, faut pas espérer que les softs Windows vont gérer cela vu que l'objectif de la chose est justement un bypass.
Vraiment ? Et quand tu as des objets de type fondamentalement différent, avec un nom de méthode identique et potentiellement des arguments totalement différents, ca donne quoi ?
C'est pas une limitation, c'est un effet tout a fait normal. '\\?\' signifie au système: " n'essaye pas d'interpréter le chemin, envoie le directement au FS". Ca empêche évidemment toute résolution de chemins relatifs.
Ben non. Le boulot de la NSA est aussi de protèger, notamment l'infrastructure du gouvernement. Ils sont juste bcp plus connus pour leur coté James Bond que pour l'autre.
[^] # Re: Et pourtant une autre révolution est en marche
Posté par pasBill pasGates . En réponse au journal Tesla Motors VS the rest of the world. Évalué à 7.
L’épisode est qu'il a décidé une fois pour toute que les voitures ne seraient pas autonomes avec 100 ou 200 ans, et rien ne le fera changer d'avis.
[^] # Re: Compléments
Posté par pasBill pasGates . En réponse au journal tor et la nsa. Évalué à 2.
Quand tu insères du code dans un binaire, ça décale tout le code de diffèrentes manières. Si qq'un rapporte un bug dans ce binaire, ou un binaire relatif, et qu'un développeur charge le schmilblick dans un debugger pour voir ce qu'il se passe, il verra que les lignes de code sont décalées par rapport à l'assembleur indiqué par le debugger, voire même le debugger lui dira directement que le binaire ne correspond pas aux symboles de debuggage si l'attaquant n'a pas fait l'effort/réussi à modifier les symboles de debuggage en même temps.
Et oui, ca n'a rien de spécifique à Windows, c'est vrai pour Linux aussi.
Cela n'a rien à voir avec le problème. Le problème est la correspondance entre lignes de code (que les développeurs ont évidemment), et ce que les symboles de debug disent. Si ton debugger à un moment te dit qu'il y a un appel de fonction, et tu vois une ligne de code disant "int a = 4+20;", tu sais qu'il y a qqe chose qui foire.
Et tout ça c'est évidemment sans parler du fait que les binaires sont signés d'habitude(du moins pour Windows, Office et autres softs), faudrait que le gars arrive à faire son changement dans l'intervalle entre la génération des binaires et leur signature, sinon il devra poser lui même une requête de signature(ça demande typiquement 2-3 personnes, donc il devra avoir des complices déjà), et inutile de dire que ça va tout de suite alerter tout le monde. Ça va pas être du gâteau.
Non du tout, c'est très différent. Si tu prends le cas de Microsoft, ou Amazon, ou Google, … t'as des centaines et centaines (voire milliers selon les projets hein) de développeurs/testeurs, t'as quelque dizaines de managers de 1-2ème niveau, et au dessus c'est le "haut management".
Ces sociétés ont toutes des permissions sur leur code source, géré par groupe, avec un pare-feu humain pour joindre le groupe. Tu regardes typiquement qui est la personne, pour qui il bosse et quel est le titre de son job pour décider quand tu reçois la requête, il y a une automatisation pour expédier les requêtes ou c'est super évident (le gars est dans la hiérarchie du VP du bon groupe, son titre est développeur, …). Ça te dit si il bosse dans le bon département, si il est sensé avoir accès au code, … et il y a toujours le manager de la personne en CC: sur l'email histoire qu'il soit au courant. C'est au final très simple et une requète "bizarre" se voit très vite.
[^] # Re: Compléments
Posté par pasBill pasGates . En réponse au journal tor et la nsa. Évalué à 0.
Façile ? Non justement. La force de la NSA ce sont ces informaticiens, leur spécialité est tout ce qui est technique. Des gars derrière leur écran, dans les bureaux de la NSA.
Se faire passer pour quelqu'un d'autre en public, mentir de manière efficace pendant des semaines et des mois, … devant des gens, c'est pas forcément leur spécialité.
[^] # Re: Compléments
Posté par pasBill pasGates . En réponse au journal tor et la nsa. Évalué à 0.
Pas forcèment plus qu'en interne à la boite, car oh grande nouvelle, plusieurs personnes lisent le même code en interne aussi, et tout le monde n'est pas employé par la NSA.
[^] # Re: Compléments
Posté par pasBill pasGates . En réponse au journal tor et la nsa. Évalué à 1.
Ben non, ca ne marche pas.
Parce que le jour ou un bug est rapporté, les développeurs chargent le binaire publié, et se rendent très vite compte que le code (et les symboles de débuggage si l'effort est fait de les modifier aussi) ne correspondent pas au code qu'ils ont.
Sans parler du fait qu'être placé très haut ne signifie pas que la personne a accès aux machines.
Tu peux être sur que les VPs et autres de Windows n'avaient pas accès aux machines de build et aux dépots de code source par exemple, car tout le monde doit faire la demande. Et une demande de leur part d'avoir un accès, surtout en écriture, vu leur job, aurait été vue avec énormement de suspicion par les gens en charge d'autoriser la requète.
[^] # Re: Compléments
Posté par pasBill pasGates . En réponse au journal tor et la nsa. Évalué à -1.
Tout a fait, c'est possible, c'est par contre légèrement plus complique que ce que tu écris :
Bref, la barre est quand même plus élevée qu'apparaître de nulle part et envoyer des patchs à un projet.
[^] # Re: Deux autres...
Posté par pasBill pasGates . En réponse au journal ARM: Etat des lieu dans la communauté linux. Évalué à 4.
http://en.wikipedia.org/wiki/Entertainment_Computer_System
Hardware
- ECS EXEC/BASIC ROM, containing the built-in BASIC programming language and additional BIOS routines to handle the added hardware features
- additional 2kB of system RAM (supposedly, the system could be further expanded to as much as 64kB with add-on memory modules, but no such modules ever made it to production)
- additional AY-3-8910 sound chip (this was the same sound chip used in the Intellivision)
- a cassette recorder/printer interface (used the same peripherals as the Mattel Aquarius)
- two additional input ports for the alphanumeric Computer Keyboard, the Music Synthesizer keyboard, or two additional Intellivision Game Controllers.
[^] # Re: Compléments
Posté par pasBill pasGates . En réponse au journal tor et la nsa. Évalué à -3.
Probablement. Richard de la NSA fera ça car Michael de la NSA est déjà occupé à faire de même avec Redhat.
[^] # Re: Compléments
Posté par pasBill pasGates . En réponse au journal tor et la nsa. Évalué à 0.
Un code proprio ne veut pas dire que tu vas mettre des backdoors dedans.
C'est quoi la différence alors ? Faire un code open source sans accepter de changement ? Ca laisse toujours la porte ouverte à l'auteur d'y insèrer ses backdoors, comme un auteur proprio.
Et en pratique, dans la vraie vie, combien de projets ayant une valeur sont dans ce cas ? Linux ? Apache ? OpenOffice ? KDE ? Gnome ? … Ah oui, aucun.
[^] # Re: Compléments
Posté par pasBill pasGates . En réponse au journal tor et la nsa. Évalué à -4.
"beaucoup plus complique" ?
Vraiment ?
Si moi demain, je veux insérer une backdoor dans Linux, je peux. J'envoies qqe patches qui sont bien, je gagnes la confiance, et au bout d'un moment j'insères ma backdoor discrètement. Au pire, les gens la verront, croiront que c'est un bug innocent, je réessaierai un peu plus tard et je finirai par y arriver.
Si je veux aller insèrer une backdoor dans iOS ou Windows par contre, ah ben merde, j'ai pas accès… Seule la société elle-même peut le faire.
Ces 2 phrases sont vraies pour n'importe qui. Moi, toi, TImaniac, ta grand-mère, …
Eh oui, il n'est pas si évident que ce soit plus simple d'un coté que de l'autre.
[^] # Re: Pour être plus clair
Posté par pasBill pasGates . En réponse au journal Méfiez-vous des applications de courriel sur mobile. Évalué à -4.
Ben oui, avoir et pouvoir lire les sources c'est une sacrée garantie qu'il n'y a pas de failles/backdoors.
Shellshock et Heartbleed l'ont très bien montré.
# Amazon, Azure, Google, ...
Posté par pasBill pasGates . En réponse au journal I had a dream : des pingouins verts !. Évalué à 9.
T'auras du mal, bcp de mal, à faire mieux que les gros providers de "cloud computing" en terme de fiabilité et étiquette environnement vu qu'ils optimisent un max l'utilisation de leurs ressources (pour raisons monétaires), ce qui permet justement de limiter le nombre de systèmes consommant au maximum en placant de manière optimisée les VMs sur les serveurs, alors que toi, au final ta machine continuera de bouffer de l'énergie alors que tu ne l'utiliseras probablement que très rarement.
[^] # Re: Deux autres...
Posté par pasBill pasGates . En réponse au journal ARM: Etat des lieu dans la communauté linux. Évalué à 1.
Pfff petit jeune…. moi je sauvais mes premières lignes de code sur cassette audio avec mon Intellivision !
[^] # Re: Compléments
Posté par pasBill pasGates . En réponse au journal tor et la nsa. Évalué à 0.
Ca c'est une bonne question.
Combien de développeurs Linux bossent pour Redhat, Google, IBM, … déjà ?
Merci de nous confirmer toi-même ce que TImaniac dit.
[^] # Re: Compléments
Posté par pasBill pasGates . En réponse au journal tor et la nsa. Évalué à -2.
Tu me fais bien marrer. Qu'est ce qui te dit que ce bug Shellshock n'était pas une backdoor ? Tu n'en sais absolument rien. Tu t'amuses à assumer que n'importe quelle vulnérabilité trouvée dans un soft libre est juste ça : une vulnérabilité innocente, alors que tu mets le doute sur le proprio, on va dire que c'est sacrément gonflé.
Ca doit bien être pour ça que plein de backdoor ont été trouvées dans divers produits (firmwares de routeurs notamment) ? Ah ben non, visiblement elles se trouvent, même dans du code binaire.
[^] # Re: Numérotation de page
Posté par pasBill pasGates . En réponse au journal Word vs TeX. Évalué à 4.
Word 2007 je sais pas, mais Word 2013 (laptop maison, p-e que 2010/2007 l'ont aussi) a une option "premiere page differente" dans le ruban du footer.
Tu choisis ca, enleves le numero du de page de la 1ere page, et tu clique droit sur le numero de page du footer dans la page 2 pour changer le numero de depart a 0, ca amene ta 2eme page a etre la 1ere.
[^] # Re: Mais si tout le monde s'y met, ça devient difficile
Posté par pasBill pasGates . En réponse au journal tor et la nsa. Évalué à 7.
De ce que je lis, ils 'cassent' principalement à travers :
- des failles software
- des certificats 'volés'
Ce n'est pas des failles de protocole/algorithme crypto ou une puissance de calcul dingue
Partant de la, je ne trouves pas cela si inquiétant que cela. Il n'y a pas grand chose de nouveau.
[^] # Re: Numérotation de page
Posté par pasBill pasGates . En réponse au journal Word vs TeX. Évalué à -2. Dernière modification le 29 décembre 2014 à 22:58.
Word 2010 (en anglais) :
Tab "Insert" du ruban, choisir "Footer" -> Blank (ou autre, ça ne change rien à la suite…)
Une fois dans la tab du Footer, cliquer sur l’icône "Page Number" dans le ruban, et choisir le modèle approprié.
Ouh lala c'était compliqué !
[^] # Re: Pourquoi pas
Posté par pasBill pasGates . En réponse au journal Word vs TeX. Évalué à 4.
CreateObject ca crée une instance de l'objet COM représentant l'application Word, Visible ça le met en visible oui, mais évidemment il suffit de le mettre en false, et tout se passera en background sans que cela soit visible.
Word, Excel, IE, SQL Server… ont tous des objets COM exposant leur fonctionnalité, avec un objet COM en haut de l'arborescence qui représente l'application elle-même, que tu peux réutiliser à bon vouloir à travers n'importe quel langage qui supporte l'appel d'objets COM.
Quand tu vois un installer faire tout un tas de registrations à l'installation, c'est souvent pour ça : enregistrer les interfaces des objets COM dans le système (une GUID) et l'associer à un dll/exe sur le disque. Ca permet ensuite à un script ou autre de simplement instancier un objet par son nom ou son GUID.
Bref, tu peux automatiser ton Word ou Excel ou autre en C#, VBScript, C++, Python,… très simplement.
[^] # Re: Pourquoi pas
Posté par pasBill pasGates . En réponse au journal Word vs TeX. Évalué à 2.
Ah VBScript (ou Powershell, ou n'importe quel language supportant OLE en fait…)
Exemple volé sur un des blogs de MS :
Ce qui est marrant vu le poste du haut, c'est qu'il est bien plus facile de créer une table de manière automatisée avec Word qu'avec LaTeX, il y a tout un tas d'APIs pour ça.
[^] # Re: Linux power!
Posté par pasBill pasGates . En réponse à la dépêche Vulnérabilité dans Git et Mercurial sur certains systèmes de fichiers (FAT, NTFS, HFS+, etc.). Évalué à 1.
Tout a fait, il faut se mettre dans la tête que pour Win32, le chemin de path maximum est MAX_PATH (255) caractères. Le truc '\\?\' revient à faire un bypass de Win32, faut pas espérer que les softs Windows vont gérer cela vu que l'objectif de la chose est justement un bypass.
[^] # Re: méthode
Posté par pasBill pasGates . En réponse au journal Indication de type pour Python. Évalué à 3.
Vraiment ? Et quand tu as des objets de type fondamentalement différent, avec un nom de méthode identique et potentiellement des arguments totalement différents, ca donne quoi ?
[^] # Re: Linux power!
Posté par pasBill pasGates . En réponse à la dépêche Vulnérabilité dans Git et Mercurial sur certains systèmes de fichiers (FAT, NTFS, HFS+, etc.). Évalué à -1.
C'est pas une limitation, c'est un effet tout a fait normal. '\\?\' signifie au système: " n'essaye pas d'interpréter le chemin, envoie le directement au FS". Ca empêche évidemment toute résolution de chemins relatifs.
[^] # Re: Doutes
Posté par pasBill pasGates . En réponse au journal Sony pictures et la Corée du Nord. Évalué à 2.
Snowden a publié ce qu'il trouve scandaleux : les capacités offensives et comment ils les utilisent.
Leurs capacités défensives, Snowden n'a rien contre, vu que justement c'est de la défense. Faut pas s'attendre à le voir les lister.
[^] # Re: Doutes
Posté par pasBill pasGates . En réponse au journal Sony pictures et la Corée du Nord. Évalué à 0.
Ben non. Le boulot de la NSA est aussi de protèger, notamment l'infrastructure du gouvernement. Ils sont juste bcp plus connus pour leur coté James Bond que pour l'autre.