Empoisonnement de la source


  Share  
|

Ainsi, nous avons vu une variété d'utilisation de mauvais types de techniques de serrer la fonctionnalité de Trojan Horse dans nos systèmes. Cependant, peut-être le vecteur de Trojan Horse le plus inquiétant implique d'insérer le code malveillant dans un produit de logiciel avant qu'il soit même libéré. Les attaquants pourraient des programmes de Trojanize pendant les procédés du développement et de l'essai du fournisseur de logiciel. Supposez les locations d'un attaquant dessus en tant qu'un employé à un magasin important de développement de logiciel ou volontaires pour contribuer le code à un projet ouvert de logiciel de source. La cible a pu être quelque chose ; un logiciel d'exploitation important, un outil largement répandu de planification de ressource d'entreprise, ou même un programme très ésotérique employé par des banques pour contrôler leur transfert de fonds feraient tout les cibles juteuses. En tant qu'un lotisseur ou même essayeur, l'attaquant a pu insérer un secret relativement petit de moins que 100KB de code à l'intérieur de des centaines de méga-octets de code légitime. C'est vraiment une aiguille dans une meule de foin ! Tous les utilisateurs achetant le produit achèteraient alors inconsciemment un Trojan Horse et l'installeraient sur leurs systèmes. Le produit de logiciel entier lui-même devient le Trojan Horse, faisant quelque chose de utile (qu'est à dire pourquoi vous l'achetez ou téléchargez), pourtant masquant ceci secret.

Ken Thompson, cocreator remarquable d'UNIX et gourou de langage de programmation de C, discuté l'importance de commander le code source et la possibilité de planter des backdoors dans lui en son papier 1984 célèbre a intitulé des "réflexions sur faire confiance à la confiance." En cet article classique, Thompson a décrit modifier le code source pour un compilateur de sorte qu'il ait construit un secret dans tout le code qu'il compile. L'attaque proposée était particulièrement insidieuse, comme même un compilateur nouveau qui est compilé avec une version de Trojan du vieux compilateur aurait le secret dans lui, aussi. Cette avenue d'attaque a longtemps été un souci, et est un problème potentiel encore plus grand aujourd'hui.

Ce souci est plus dérangeant que le Trojaning des emplacements de distribution de logiciel que nous avons discutés dans la dernière section. Quand un attaquant Trojanizes un emplacement de distribution de logiciel, les réalisateurs du logiciel ont au moins une version propre du logiciel contre lequel ils peuvent comparer pour détecter le subterfuge. Soutenir des problèmes est relativement plus facile après découverte, car une version propre du logiciel peut être placée sur l'emplacement de Web pour la distribution. D'autre part, si un attaquant inclut un Trojan Horse pendant le procédé de développement de logiciel, le fournisseur ne pourrait pas même avoir une copie propre. Si les attaquants sont particulièrement intelligents, ils entrelaceront un petit, inapperçu secret dans tout le code normal, rendant l'extirpation extrêmement difficile. Le réalisateur de logiciel devrait balayer d'énormes quantités de code pour assurer l'intégrité d'un produit entier. Plus le produit de logiciel sont grand, plus difficile la détection et l'extirpation deviennent. Analysons pourquoi c'est ainsi.

Codez L'Attaque De Marques De Complexité Plus facile

La plupart des outils modernes de logiciel sont vastes dans la portée. Détecter désinsectise en code, encore moins backdoors, est très difficile et coûteux. À Trojanize un produit de logiciel, un employé mauvais ne doit pas même réellement écrire un secret entier dans le produit. Au lieu de cela, le lotisseur malveillant pourrait à bon escient écrire le code qui contient une paille exploitable, telle qu'un débordement d'amortisseur, qui laisserait un attaquant succéder la machine. En fait, une paille si utile agit juste comme un secret. Si la paille part furtivement après l'équipe d'essai de logiciel, le réalisateur serait le seul qui sait le trou au commencement. En exploitant cette paille, le réalisateur a pu commander tous les systèmes en utilisant son code.

Obtenons une sensation pour la façon dont facilement une paille si intentionnelle ou même un plein Trojan Horse pourrait grincer après des processus de qualité de développement de logiciel, considèrent l'expérience professionnelle de qualité de l'industrie de technologie de l'information avec le temps. Les problèmes de qualité de logiciel nous ont infestés pendant des décennies. Avec l'introduction de plus hauts morceaux de densité, de la technologie de fibre optique, et de meilleures commandes dures, le matériel continue à obtenir un temps fini plus fiable. Le logiciel, d'autre part, demeure obstinément fêlé. Les watts de Humphrey, un gourou de qualité de logiciel et le chercheur de l'université de Carnegie Mellon, a conduit des aperçus dans le nombre d'erreurs que les réalisateurs de logiciel font généralement en écrivant le code. Les diverses analyses ont indiqué que, en moyenne, un réalisateur typique présente accidentellement entre 100 et 150 défauts par 1.000 lignes de code. Ces issues sont entièrement accidentelles, mais une paille intentionnelle simple pourrait être partie furtivement dedans aussi bien.

Bien que plusieurs de ces erreurs soient des problèmes syntactiques simples facilement découverts par un compilateur, une bonne affaire des défauts restants ont souvent comme conséquence les trous béants de sécurité. En fait, essentiellement, une vulnérabilité de sécurité est vraiment juste l'exploitation très commandée d'un bogue pour réaliser le but spécifique d'un attaquant. Si l'attaquant peut faire l'échouer de programme d'une manière dont bénéficie l'attaquant (en se brisant le système, en rapportant l'accès, ou en montrant l'information confidentielle), l'attaquant gagne. Estimant très conservativement, si seulement un dans 10 des défauts dans le logiciel a des implications de sécurité, que des feuilles entre 10 et 15 défauts de sécurité par 1.000 lignes de code. Ces nombres juste ne regardent pas très encourageants.

Un logiciel d'exploitation complexe comme Microsoft Windows XP a approximativement 45 millions de lignes de code, et ce nombre colossal se développe pendant que de nouveaux dispositifs et pièces rapportées sont libérés. D'autres logiciels d'exploitation et applications ont des quantités énormes de code aussi bien. Faisant la multiplication pour XP, il pourrait y avoir environ 450.000 défauts de sécurité dans seul Windows.xp. Même si notre calcul d'en arrière-de-le-enveloppe est trop haut par un facteur de 100, cela pourrait les pailles de sécurité immobiles du moyen 4.500. Aïe ! En effet, très le même jour que Windows.xp a été lancé en octobre 2001, Microsoft a libéré des 18 méga-octets battants à plat de couture de pièces rapportées pour lui.

Ne m'obtenez pas faux ; J'aime Windows.xp. Il est plus fiable bien et plus facile d'employer que les dégagements précédents de Windows. C'est certainement un mouvement dans la bonne direction de ces perspectives. Cependant, c'est juste une illustration du problème de sécurité inhérent à de grands projets de logiciel. Il n'est pas simplement Microsoft publient non plus ; l'industrie entière de logiciel est la présentation plus grande, des programmes plus complexes, ultra-dispositif-riches (et parfois dispositif-chargés) avec des tonnes de pailles de sécurité. Dans toute l'industrie de logiciel, nous voyons le sol très fertile pour un attaquant pour planter un Trojan Horse subtile.

Essai ? Quel Essai ?

En dépit de ces bogues de sécurité, quelques gens pensent toujours que le processus d'essai utilisé par des lotisseurs nous sauvera et trouvera des chevaux de Trojan avant que les produits corrompus frappent les étagères. J'avais l'habitude de soulager mes soucis avec cet argument aussi bien. Il m'a aidé à dormir mieux la nuit. Mais il y a une autre dimension ici à maintenir dans l'esprit pour détruire votre assoupissement paisible : Oeufs de pâques. Selon les archives de oeuf de pâques™, un oeuf de pâques est défini comme :

Toute friandise amusante que les créateurs se sont cachés dans leurs créations. Elles pourraient être dans le logiciel d'ordinateur, les films, la musique, l'art, les livres, ou même votre montre. Il y a des milliers d'elles, et elles peuvent tout à fait amuser, si vous savez où regarder.

Les oeufs de pâques sont ces petits "dispositifs" maladroits imprévus accumulé loin dans votre logiciel (ou d'autres produits) ces sautent vers le haut dans des circonstances très spéciales. Par exemple, si vous exécutez le programme tout en maintenant les clefs de E, de F, et de S, vous pourriez obtenir de voir une image dorky du réalisateur de programme. Les archives de oeuf de pâques maintiennent une liste principale de ces petites gemmes à www.eeggs.com, avec plus de 2.775 oeufs de pâques de logiciel sur le disque en date de cette écriture.

Que les oeufs de pâques doivent-ils faire avec des chevaux de Trojan dans le logiciel ? Beaucoup, en fait. Un oeuf de pâques est vraiment une forme du Trojan Horse, quoique du a (typiquement) le bénin. Cependant, si les lotisseurs de logiciel peuvent partir furtivement un oeuf de pâques bénin après le logiciel examinant et des équipes de garantie de la qualité, il n'y a aucun doute dans mon esprit qu'ils pourraient pareillement passer un Trojan Horse ou un débordement intentionnel d'amortisseur aussi bien. En fait, l'attaquant a pu même mettre le secret à l'intérieur d'un oeuf de pâques incorporé dans le programme principal. Si les équipes d'essai et de garantie de la qualité ne notent pas le oeuf de pâques ou même ne le notent pas mais le laissent à travers, elles probablement ne l'examineront pas pour assurer une telle fonctionnalité cachée. À moi, l'existence des oeufs de pâques prouve tout à fait clair qu'un lotisseur ou un essayeur malveillant pourrait mettre la fonctionnalité cachée méchante à l'intérieur de du code produit et l'obtenir par la mise en vente du produit sans l'communication préalable.

Pour obtenir une sensation pour un oeuf de pâques, regardons un a enfoncé dans un produit populaire, Microsoft excellent le tableau électronique. Excelez est tout à fait célèbre pour ses oeufs de pâques. Une version plus tôt du programme, excellent 97, inclus un jeu de simulateur de vol. Une version plus récente, excellent 2000, inclut un jeu deconduite appelé Dev Hunter.

Pour ce oeuf de pâques à travailler, vous devez prendre pour exceler 2000 (pré version de service 1), Internet Explorer, et DirectX installés sur votre ordinateur. Pour activer le oeuf de pâques et jouer le jeu, vous devez faire ce qui suit :

  • Courez Excellent 2000.

  • Sous le menu de dossier, choisissez économiser comme la Page Web.

  • Sur l'interface, choisie éditez et puis cliquez la boîte d'interactivité d'ajouter.

  • Le clic éditent pour sauver la page résultante de htm sur votre commande.

  • Après, ouvrez la page de htm que vous avez juste créée avec l'Internet Explorer. Le bilan blanc apparaîtra au milieu de votre fenêtre de navigateur d'Internet Explorer.

  • Voici la partie rusée. Faites défiler vers le bas pour ramer 2000, et excédent à la carte de travail de colonne.

  • Maintenant, choisissez l'intégralité de la rangée 2000 en cliquant sur les 2000 nombres à la gauche de la rangée.

  • Frappez la clef d'étiquette pour faire à carte de travail la colonne active. Cette colonne sera blanche, alors que les autres colonnes dans la rangée seront obscurcies.

  • Maintenez Shift+Ctrl+Alt et, en même temps, cliquez le logo de Microsoft Office dans le coin gauche supérieur du bilan.

  • Dans une seconde ou deux, le jeu fonctionnera.

  • Utilisez les touches de déplacement du curseur pour conduire et orienter et la barre d'espace pour mettre le feu. Les baisses principales de O huilent des slicks pour confondre les autres voitures. Quand il obtient l'obscurité, vous pouvez employer la clef de H pour mettre en marche vos phares.

Si le jeu n'est pas appelé sur votre système, il est probable parce que vous avez la version 1 de service ou une version postérieure de Microsoft Excel installée sur votre machine, qui n'inclut pas le oeuf de pâques. Vous pourriez chasser en bas d'une version plus tôt de Microsoft Excel, ou de la prise juste mon mot pour lui.

Maintenant, occupez-vous de vous, ce "dispositif" est dans un bilan, un programme de productivité de bureau. Selon votre mentalité, ce pourrait être bizarre et amusement. Est-ce que cependant, comment une telle chose obtient après le processus de qualité de logiciel (qui devrait inclure des revues de code) et équipe d'essai ? Le personnel peut-être de garantie de la qualité et d'essai ne l'a pas notée. Ou, peut-être les gens et les essayeurs de garantie de la qualité étaient dans les cahoots avec les réalisateurs pour voir que le jeu est devenu inclus dans le dégagement de production. L'une ou l'autre manière, je suis concerné par les perspectives d'un Trojan Horse étant inséré dans une manière semblable à d'autres fournisseurs.

Encore, je ne sélectionne pas sur Microsoft juste ici. En fait, Microsoft est devenu meilleur au-dessus des années passées en ce qui concerne ces soucis. Les nouveaux paquets de service ou les difficultés chaudes fréquemment et sirop rapidement tous les oeufs de pâques inclus dans des dégagements plus tôt. L'initiative de calcul de confiance de Microsoft, bien que derided souvent, commence à soutenir du fruit en tant que moins et peu de vulnérabilités de sécurité et oeufs de pâques semblent venir pour lancer sur le marché dans des programmes de Microsoft. Cependant, je dis ceci avec la grande hésitation, car un autre oeuf béant énorme pourrait être découvert n'importe quel jour. Toujours, soulignant que ce n'est pas une issue de Microsoft-only, beaucoup d'autres magasins de développement de logiciel ont des oeufs de pâques inclus dans leurs produits, y compris l'ordinateur Apple, le Norton, adobe, le Quark, le navigateur ouvert de Web de Mozilla de source, et le navigateur d'opéra. La liste va indéfiniment, et est définie pour que le monde voie à www.eeggs.com.

Le Mouvement Vers Le Développement International

Un sujet de préoccupation final concernant les réalisateurs de logiciel et les chevaux de Trojan malveillants est associé au code étant développé autour du monde. Les fabricants de logiciel se fondent de plus en plus sur les équipes fortement distribuées autour de la planète pour créer le code. Et pourquoi pas ? D'une perspective économique, les nombreux pays ont des citoyens avec des qualifications de développement de logiciel d'dessus-entaille et abaissent beaucoup des salaires. Bien que les sciences économiques se comprennent, la question concernant la sécurité de Trojan Horse apparaît indistinctement beaucoup plus grand avec ce type de développement de logiciel.

Supposez-vous acheter ou télécharger un morceau de logiciel de fournisseur X. Ce fournisseur, alternativement, se contracte avec les fournisseurs Y et Z pour développer certaines parties du code. Sous-composants de sous-contrats du fournisseur Z différents du travail à trois pays différents autour du globe. Avant que le produit se repose sur votre commande dure, des milliers de mains distribuées à travers la planète pourraient avoir été impliqués en la développant. Certaines de ces mains pourraient avoir planté un secret méchant. Plus mauvais encore, la même analyse s'applique aux systèmes financiers principaux employés par votre banque et les programmes de base de données logeant vos disques médicaux. Les règles de lois sur les valeurs mobilières de l'information et de responsabilité du fait des produits changent de manière significative d'un pays à l'autre, avec beaucoup de nations n'ayant pas des règlements très robustes du tout.

Ce souci n'est pas associé à la moralité des réalisateurs dans plusieurs pays. Au lieu de cela, le souci traite le niveau du contrôle de qualité qui peut être appliqué avec le contrat limité et les structures porteuses de normalisation. En outre, les mêmes effets économiques qui conduisent le développement aux pays avec le personnel moins cher de développement pourraient aggraver le problème. Un attaquant pourrait pouvoir suborner un réalisateur transformant $100 par semaine ou mois en mettre un secret dans le code pour l'argent très petit. "voici le salaire de 10 ans … changent svp deux lignes de code pour moi" pourrait être tout ce qu'il prendrait. Nous ne voulons pas être xénophobiques ici ; le développement international de logiciel est une réalité avec les avantages significatifs dans des affaires d'aujourd'hui de technologie de l'information. Cependant, nous devons également identifier qu'il augmente les risques de sécurité des chevaux de Trojan ou des pailles intentionnelles de logiciel.

Les défenses contre empoisonner la source

Comment pouvez-vous vous défendre d'un Trojan Horse planté par un employé de votre maison de développement de logiciel ? C'est une question particulièrement dure, car vous avez peu de contrôle du développement de la grande majorité du logiciel sur vos systèmes. Toujours, il y a des choses que nous pouvons tout faire en tant que communauté pour améliorer cette situation.

D'abord, vous pouvez encourager vos fournisseurs commerciaux à avoir des régimes robustes de commandes et d'essai d'intégrité pour leurs produits. S'ils pas , les battre vers le haut et menacer d'employer d'autres produits. Je ne veux pas dire pour les battre vers le haut littéralement. Je ne veux pas inciter la violence, pour des sakes de qualité. Par "battement ils vers le haut," je veux dire leur donne un moment difficile. Défiez-les. Hurlez à eux. Faites vos fournisseurs de développement de logiciel savoir le code bloqué important est à vos opérations. Quand le marché commence à exiger un code plus bloqué, nous commencerons graduellement à nous avancer dans petit à petit cette direction. En plus, si vous employez beaucoup de logiciel ouvert de source, appui qui la communauté avec du votre temps et effort dans des pailles de logiciel d'arrangement. Si vous avez les qualifications, aidez dehors en passant en revue le code source ouvert pour s'assurer qu'il est bloqué.

Après, quand vous achetez ou téléchargez le nouveau logiciel, examinez-le d'abord pour s'assurer il n'inclut pas n'importe quelles possibilités évidentes de Trojan Horse. Avec un essai de logiciel et un processus complets d'évaluation dans la maison, vous pourriez juste trouver quelques chevaux de Trojan dans vos produits avant n'importe qui les notices d'autre ils. Communiquez cette information au fournisseur pour aider à résoudre le problème.

Si votre organisation développe n'importe quel code dans la maison, assurez-vous que votre équipe d'essai de logiciel se rend compte des problèmes des oeufs de pâques, des chevaux de Trojan, et des pailles intentionnelles. Tristement, des appareils de contrôle de logiciel sont souvent regardés comme rangée inférieure même d'importance dans la hiérarchie de développement de logiciel, obtenant habituellement peu le respect, l'identification, ou le salaire. Cependant, leur importance pour la sécurité de nos produits est primordiale. Formez ces gens de sorte qu'ils puissent rapidement repèrer le code qui ne regarde pas la droite et ne la rapporte pas au personnel de gestion approprié. Récompensez vos appareils de contrôle quand ils trouvent des problèmes principaux de sécurité avant que vous embarquiez le logiciel. Faites attention, cependant. Vous ne voulez pas avoir des essayeurs travailler avec des réalisateurs au jeu le système et les capses ainsi ils peuvent faire plus d'argent. C'est comme avoir une loterie où les gens peuvent imprimer leurs propres billets de gain. Surveillez soigneusement tous les programmes de récompense de bogue que vous créez pour un tel subterfuge.

En outre, assurez-vous que vos essayeurs et lotisseurs peuvent rapporter des soucis de sécurité sans représailles des directeurs désespérés essayant de rencontrer une date-limite stricte de logiciel. Selon la taille de votre organisation et de sa culture, vous pourriez même devoir présenter un tipline anonyme pour que vos réalisateurs rapportent de tels soucis. En donnant cette attention additionnelle si nécessaire à vos appareils de contrôle de logiciel, vous pouvez aider aux problèmes de giclement avec des chevaux de Trojan aussi bien que vous améliorez la qualité globale de vos produits.

Pour infuser cette mentalité dans toute la culture de vos équipes de développement de logiciel, considérez transformer votre organisation d'essai en véritable fonction de garantie de la qualité. L'organisation de garantie de la qualité devrait être accordée une charte avec la responsabilité de sécurité de logiciel comme facette de qualité. Établissez votre procédé de garantie de la qualité dans le cycle entier du développement de logiciel, y compris la conception, les revues de code, et l'essai. Vous devriez également imposer des commandes soigneuses à votre code source, exigeant des lotisseurs d'authentifier avant de travailler sur tous les modules. Tous les changements devraient être dépistés et passés en revue par un autre réalisateur. Seulement avec la qualité complète les processus et la commande de code source peuvent nous améliorer la situation liée au code source peu fiable.

c'est un article supplémentaire par Greg McKlein


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions