Avvelenamento della fonte
Così, abbiamo visto una varietà di uso dei tipi difettosi di tecniche comprimere la funzionalità di Trojan Horse nei nostri sistemi. Tuttavia, forse il vettore di Trojan Horse più worrisome coinvolge inserire il codice cattivo in di prodotto software prima che persino sia liberato. I attackers potrebbero programmi di Trojanize durante i processi di sviluppo e di prova del fornitore del software. Supponga i noleggi del attacker sopra come un impiegato ad un negozio importante di sviluppo del software o volontari per contribuire il codice ad un progetto aperto del software di fonte. L'obiettivo ha potuto essere qualche cosa; un sistema operativo importante, un attrezzo ampiamente utilizzato di pianificazione delle risorse di impresa, o persino un programma molto esoterico usato dalla banca per controllare il loro trasferimento dei fondi monetari tutti gli obiettivi sugosi di marca. Come uno sviluppatore o persino tester, il attacker ha potuto inserire un backdoor relativamente piccolo di di meno che 100KB del codice all'interno delle centinaia dei megabyte del codice legittimo. Quello è realmente un ago in un haystack! Tutti gli utenti che comprano il prodotto allora stavano comprando unwittingly un Trojan Horse e stavano installandolo sui loro sistemi. Di prodotto software intero in se si transforma in nel Trojan Horse, facente qualche cosa di utile (ecco perchè lo comprate o trasferite dal sistema centrale verso i satelliti), tuttavia mascherante questo backdoor. Ken Thompson, cocreator celebre di UNIX e guru di linguaggio di programmazione di C, discusso l'importanza di controllo il codice sorgente e della possibilità di piantatura dei backdoors in esso in sua carta famosa 1984 ha intitolato "le riflessioni sul fidarsi della fiducia." In quell'articolo classico, Thompson ha descritto modificare il codice sorgente per un compilatore in modo che costruisse un backdoor in tutto il codice che compila. L'attacco proposto era particolarmente insidious, come persino un compilatore brandnew che è compilato con una versione del Trojan di vecchio compilatore gli avrebbe il backdoor, anche. Questo viale dell'attacco lungamente è stato una preoccupazione ed è un problema potenziale ancora più grande oggi. Questa preoccupazione è disturbantesi del Trojaning dei luoghi di distribuzione del software che abbiamo discusso nell'ultima sezione. Quando un attacker Trojanizes un luogo di distribuzione del software, gli sviluppatori del software ha almeno una versione pulita del software che possono confrontare contro per rilevare il subterfuge. Ritirare i problemi è relativamente più facile dopo la scoperta, poichè una versione pulita del software può essere disposta sul Web site per distribuzione. D'altra parte, se un attacker include un Trojan Horse durante il processo di sviluppo del software, il fornitore non potrebbe neppure avere una copia pulita. Se i attackers sono particolarmente intelligenti, intertwine un piccolo, backdoor inconspicuous durante il codice normale, rendente l'estirpazione estremamente difficile. Lo sviluppatore del software dovrebbe esplorare le quantità enormi di codice per accertare l'integrità di un prodotto intero. Più grande di prodotto software, più difficile la rilevazione e l'estirpazione diventano. Analizziamo perchè questo è così. Codifichi L'Attacco Di Marche Di Complessità Più facileLa maggior parte dei attrezzi moderni del software sono ampi nella portata. La rilevazione ostacola nel codice, e tanto meno backdoors, è molto difficile e costosa. A Trojanize di prodotto software, un impiegato diabolico neppure non deve realmente scrivere un intero backdoor nel prodotto. Invece, lo sviluppatore cattivo potrebbe scrivere espressamente il codice che contiene un difetto utilizzabile, quale un trabocco dell'amplificatore, che lascerebbe un attacker assumere la direzione della macchina. Efficacemente, così difetto utile si comporta giusto come un backdoor. Se il difetto sneaks oltre la squadra difficile del software, lo sviluppatore sarebbe quello unico chi sa inizialmente circa il foro. Sfruttando quel difetto, lo sviluppatore ha potuto controllare tutti i sistemi usando il suo codice. Otteniamo un tatto per quanto facilmente così difetto intenzionale o persino un Trojan Horse completo potrebbe stridere oltre i processi di qualità di sviluppo del software, considerano l'annotazione di pista di qualità dell'industria di tecnologia dell'informazione col tempo. I problemi di qualità del software li hanno contagiati per le decadi. Con l'introduzione di più alti circuiti integrati di densità, di tecnologia fiber-optic e di azionamenti duri migliori, i fissaggi continuano ad ottenere col tempo più certo. Il software, d'altra parte, rimane incrinato testardo. I watt di Humphrey, un guru di qualità del software ed il ricercatore dall'università di Carnegie Mellon, ha eseguito le indagini nel numero di errori gli sviluppatori del software che fanno comunemente quando scrive il codice. Le varie analisi hanno rivelato che, in media, uno sviluppatore tipico introduce casualmente fra 100 e 150 difetti per 1.000 linea del codice. Queste edizioni sono interamente accidentali, ma un singolo difetto intenzionale potrebbe sneaked dentro pure. Anche se molti di questi errori sono problemi sintattici semplici scoperti facilmente da un compilatore, un buon affare dei difetti restanti provoca spesso i fori gaping di sicurezza. Infatti, essenzialmente, una vulnerabilità di sicurezza è realmente giusta lo sfruttamento molto controllato di un insetto per realizzare l'obiettivo specifico del attacker. Se il attacker può fare il venire a mancare di programma in un senso che avvantaggia il attacker (arrestando il sistema, rendendo accesso, o visualizzando le informazioni confidenziali), il attacker vince. Valutando molto conservativamente, se soltanto uno in 10 dei difetti nel software ha implicazioni di sicurezza, che fogli fra 10 e 15 difetti di sicurezza per 1.000 linea del codice. Questi numeri non osservano appena molto heartening. Un sistema operativo complesso come Microsoft Windows XP ha circa 45 milione linee del codice e questo numero gigantesco sta sviluppandosi mentre le nuove caratteristiche e zone sono liberate. Altri sistemi operativi ed applicazioni hanno importi enormi del codice pure. Facendo la moltiplicazione per XP, ci hanno potuto essere circa 450.000 difetti di sicurezza in Windows.xp da solo. Anche se il nostro calcolo della indietro-de-$$$-BUSTA è troppo alto da un fattore di 100, quello potrebbe difetti di sicurezza tranquilli di media 4.500. Ouch! Effettivamente, molto lo stesso giorno che Windows.xp è stato lanciato nel mese di ottobre del 2001, Microsoft ha liberato i 18 megabyte whopping delle zone per esso. Nonlo ottenga errato; Amo Windows.xp. È molto più certo e più facile da usare che i rilasci precedenti di Windows. È definitivamente un movimento nel giusto senso da queste prospettive. Tuttavia, questo è giusto un'illustrazione del problema di sicurezza inerente ai grandi progetti del software. Non è giusto un'edizione del Microsoft neanche; l'intera industria del software è introdurre più grande, programmi più complessi, ultra-caratteristica-più ricchi (ed a volte caratteristica-carichi) con le tonnellate di difetti di sicurezza. Durante l'industria del software, vediamo il terreno molto fertile per un attacker per piantare un Trojan Horse sottile. Prova? Che Prova?Malgrado questi insetti di sicurezza, qualche gente ancora pensa che il processo difficile impiegato dagli sviluppatori li conservi e trovi i cavalli di Trojan prima che i prodotti alterati colpiscano le mensole. Ho usato assuage le mie preoccupazioni per quella discussione pure. Lo ha aiutato a dormire più meglio alla notte. Ma ci è un'altra dimensione qui da tenere presente distruggere il vostro slumber pacifico: Uova di Pasqua. Secondo l'archivio dell'uovo di Pasqua™, un uovo di Pasqua È definito come:
Le uova di Pasqua Sono quelle "caratteristiche" piccole goofy impreviste squirreled via nel vostro software (o in altri prodotti) quei schioccano in su in circostanze molto speciali. Per esempio, se fate funzionare il programma mentre la tenuta giù le chiavi di E, di F e di S, voi potrebbe ottenere vedere un'immagine dorky dello sviluppatore di programma. L'archivio dell'uovo di Pasqua Effettua una lista matrice di queste gemme piccole a www.eeggs.com, con più di 2.775 uova di Pasqua Del software sull'annotazione a partire da questa scrittura. Che cosa le uova di Pasqua Riguardano i cavalli di Trojan nel software? Mólto, in effetti. Un uovo di Pasqua È realmente una forma del Trojan Horse, anche se della a (tipicamente) quello benigno. Tuttavia, se gli sviluppatori del software possono sneak un uovo di Pasqua Benigno oltre le squadre di prova del software e di garanzia della qualità, ci è senza dubbio nella mia mente che potrebbero passare similmente un Trojan Horse o un trabocco intenzionale dell'amplificatore pure. Infatti, il attacker ha potuto persino mettere il backdoor all'interno di un uovo di Pasqua Incastonato nell'ambito del programma principale. Se le squadre di garanzia della qualità e di prova non notano l'uovo di Pasqua O persino non lo notano ma lo lasciano attraverso, probabilmente non lo controlleranno per vedere se c'è tale funzionalità nascosta. A me, l'esistenza delle uova di Pasqua Dimostra abbastanza chiaro che uno sviluppatore o un tester cattivo potrebbe mettere la funzionalità nascosta nasty all'interno del codice di prodotto ed ottenerlo attraverso il rilascio di prodotto senza essere notato. Per ottenere un tatto per un uovo di Pasqua, guardiamo uno ha incastonato all'interno di un prodotto popolare, Microsoft eccellono il foglio elettronico. Eccella è abbastanza famoso per le relative uova di Pasqua. Una versione più iniziale del programma, eccelle 97, incluso un gioco del simulatore di volo. Una versione più recente, eccelle 2000, include un gioco automobile-movente denominato Dev Hunter. Affinchè questo uovo di Pasqua Funzioniate, dovete avere eccellere 2000 (pre rilascio di servizio 1), Internet Explorer e DirectX installati sul vostro calcolatore. Per attivare l'uovo di Pasqua E per giocare il gioco, dovete fare quanto segue:
Se il gioco non è invocato sul vostro sistema, è probabile perché fate il rilascio 1 di servizio o eccellere una versione successiva di Microsoft installato sulla vostra macchina, che non include l'uovo di Pasqua. Potreste cercare giù una versione più iniziale di Microsoft eccellete, o introito giusto la mia parola per esso. Ora, seli occupi, questa "caratteristica" è in un foglio elettronico, un programma di rendimento dell'ufficio. Secondo il vostro mindset, ha potuto essere quirky e divertimento. Tuttavia, come una tal cosa ottiene oltre il processo di qualità del software (che dovrebbe includere le revisioni di codice) e squadra difficile? I personali forse della qualità di garanzia e di prova non la hanno notata. O, forse la gente ed i tester di garanzia della qualità erano nei cahoots con gli sviluppatori per vedere che il gioco ha ottenuto incluso nel rilascio di produzione. Il uno o il altro senso, mi preoccupo dei prospetti di un Trojan Horse che è inserito in un senso simile ad altri fornitori. Di nuovo, non sto selezionando su Microsoft giusto qui. Infatti, Microsoft ha ottenuto migliore sopra le coppie passate degli anni riguardo a queste preoccupazioni. I nuovi pacchetti di servizio o le difficoltà calde frequentemente e schiacciano rapidamente tutte le uova di Pasqua Incluse nei rilasci più in anticipo. L'iniziativa di calcolo di fiducia del Microsoft, anche se derided spesso, sta cominciando a sopportare una certa frutta come meno e le poche vulnerabilità di sicurezza ed uova di Pasqua Sembra venire introdurre nei programmi del Microsoft. Tuttavia, dico questo con l'esitazione grande, poichè un altro uovo gaping enorme potrebbe essere scoperto tutto il giorno. Eppure, sottolineando che questa non è un'edizione del Microsoft-only-soltanto, molti altri negozi di sviluppo del software hanno uova di Pasqua Incluse nei loro prodotti, compreso il calcolatore Apple, Norton, adobe, Quark, il web browser aperto di Mozilla di fonte ed il browser di opera. La lista va senza sosta ed è spiegata affinchè il mondo veda a www.eeggs.com. Il Movimento Verso Sviluppo InternazionaleUna zona di preoccupazione finale per quanto riguarda gli sviluppatori del software ed i cavalli di Trojan cattivi è associata con il codice che è diventato intorno al mondo. I fornitori del software sempre più stanno contando sulle squadre altamente distribuite intorno al pianeta per generare il codice. E perchè non? Da una prospettiva economica, i paesi numerosi hanno cittadini con le abilità di sviluppo del software della parte-tacca e molto abbassano i tassi di lavoro. Anche se l'economia ha il significato, il problema di sicurezza di Trojan Horse appare in lontananza molto più grande con questo tipo di sviluppo del software. Suppongali di comprare o trasferire una parte dal sistema centrale verso i satelliti di software dal fornitore X. Quel fornitore, a sua volta, si contrae con i fornitori Y e Z per sviluppare determinate parti del codice. Subcomponenti differenti dei subappalti del fornitore Z del lavoro a tre paesi differenti intorno al globo. Per il momento in cui il prodotto si sieda sul vostro azionamento duro, le migliaia delle mani distribuite attraverso il pianeta potrebbero partecipare a svilupparlo. Alcune di quelle mani potrebbero piantare un backdoor nasty. Più difettoso ancora, la stessa analisi si applica ai sistemi finanziari posteriori usati dalla vostra banca e dai programmi della base di dati che alloggiano le vostre annotazioni mediche. Le regole di leggi di sicurezza delle informazioni e di responsabilità del prodotto variano significativamente dal paese al paese, con molte nazioni che non hanno regolazioni molto robuste affatto. Questa preoccupazione non è associata con la moralità degli sviluppatori in diversi paesi. Invece, la preoccupazione si occupa del livello di controllo di qualità che può essere applicato con il contratto limitato e le strutture portanti regolarici. Inoltre, gli stessi effetti economici che stanno guidando lo sviluppo ai paesi con i personali meno costosi di sviluppo potrebbero esacerbare il problema. Un attacker ha potuto potere corrompere uno sviluppatore che trasforma $100 un una settimana o il mese mettere un backdoor nel codice per soldi pochissimi. "qui è uno stipendio di 10 anni … prego cambia due linee del codice per me" potrebbe essere tutto che abbia preso. Non desideriamo essere xenophobic qui; lo sviluppo internazionale del software è una realtà con i benefici significativi nell'odierno commercio di tecnologia dell'informazione. Tuttavia, dobbiamo anche riconoscere che aumenta i rischi di sicurezza di cavalli di Trojan o di difetti intenzionali del software. Difese contro l'avvelenamento della fonteCome potete difendersi da un Trojan Horse piantato da un impiegato della vostra casa di sviluppo del software? Ciò è una domanda particolarmente dura, poichè avete poco controllo sopra lo sviluppo della vasta maggioranza del software sui vostri sistemi. Eppure, ci sono cose che possiamo tutti fare come Comunità per migliorare questa situazione. In primo luogo, potete consigliare ai vostri fornitori commerciali avere regimi robusti di comandi e di prova di integrità per i loro prodotti. Se non, batterli in su e minacciare di usare altri prodotti. Non significo batterlo in su letteralmente. Non desidero incite la violenza, per i sakes di qualità. "dal battimento loro in su," significo dò loro un tempo duro. Sfidili. Urli loro. Lasci i vostri fornitori di sviluppo del software sapere il codice sicuro importante è ai vostri funzionamenti. Quando il mercato comincia richiedere il codice più sicuro, cominci gradualmente spostare lentamente in quel senso. Ulteriormente, se voi usate il software aperto molto di fonte, supporto che Comunità con il vostro tempo e sforzo nei difetti capenti del software. Se avete le abilità, aiuti fuori rivedendo il codice sorgente aperto per assicurarsi che è sicuro. Dopo, quando comprate o trasferite il nuovo software dal sistema centrale verso i satelliti, verifichilo in primo luogo per assicurarsi esso non include alcuna possibilità evidente di Trojan Horse. Con una prova del software e un processo completi di valutazione in casa, potreste trovare appena alcuni cavalli di Trojan nei vostri prodotti prima di chiunque avvisi altri loro. Comunichi queste informazioni al fornitore per contribuire a risolvere il problema. Se la vostra organizzazione sviluppa qualunque codice in casa, assicurisi che la vostra squadra difficile del software è informata dei problemi delle uova di Pasqua, dei cavalli di Trojan e dei difetti intenzionali. Tristemente, i tester del software sono osservati spesso come la fila inferiore stessa di importanza nella gerarchia di sviluppo del software, ottenente solitamente poco il rispetto, il riconoscimento, o la paga. Tuttavia, la loro importanza alla sicurezza dei nostri prodotti è preminente. Addestri questa gente in moda da poterle macchiare rapidamente il codice che non osserva la destra e non la segnala al personale dirigente adatto. Ricompensi i vostri tester quando trovano i problemi importanti di sicurezza prima che spediate il software. Faccia attenzione, comunque. Non desiderate avere tester lavorare con gli sviluppatori al gioco il sistema ed i cimici in modo da possono fare più soldi. Quello è come avere un lottery dove la gente può stampare i loro propri biglietti di vincita. Controlli con attenzione tutti i programmi che della ricompensa dell'insetto generate per tale subterfuge. Ancora, accertisi che i vostri tester e sviluppatori possano segnalare le preoccupazioni di sicurezza senza reprisals dai responsabili disperati che provano a venire a contatto di una scadenza rigorosa del software. Secondo il formato della vostra organizzazione e della relativa coltura, potreste persino dovere introdurre un tipline anonimo affinchè i vostri sviluppatori segnaliate tali preoccupazioni. Prestando questa attenzione supplementare tanto necessaria ai vostri tester del software, potete aiutare bene ai problemi di squelch con i cavalli di Trojan quanto migliorate la qualità generale dei vostri prodotti. Per infondere questo mindset durante la coltura delle vostre squadre di sviluppo del software, studii la possibilità di trasformare la vostra organizzazione di prova in un'esperta funzione di garanzia della qualità. L'organizzazione di garanzia della qualità dovrebbe essere istituita con la responsabilità di sicurezza del software come sfaccettatura di qualità. Sviluppi il vostro processo di garanzia della qualità nell'intero ciclo di sviluppo del software, compreso il disegno, le revisioni di codice ed esaminare. Dovreste anche imporre i comandi attenti al vostro codice sorgente, richiedente agli sviluppatori di autenticare prima di lavorare a tutti i moduli. Tutti i cambiamenti dovrebbero essere rintracciati e rivisti da un altro sviluppatore. Soltanto con qualità completa i processi ed il controllo di codice sorgente possono noi migliorare la situazione connessa con il codice sorgente untrustworthy. ciò è un articolo aggiunto da Greg McKlein
|
|||||
|