Envenenando a fonte


  Share  
|

Assim, nós vimos uma variedade do uso dos guys maus das técnicas espremer a funcionalidade do Trojan Horse em nossos sistemas. Entretanto, talvez o vetor o mais worrisome do Trojan Horse envolve introduzir o código malicioso em um produto de software antes que esteja liberado mesmo. Os atacantes poderiam programas de Trojanize durante os processos do desenvolvimento e testar do vendedor do software. Suponha hires de um atacante sobre como um empregado em uma loja principal do desenvolvimento do software ou voluntários para contribuir o código a um projeto aberto do software da fonte. O alvo podia ser qualquer coisa; um sistema operando-se principal, uma ferramenta extensamente usada do planeamento do recurso da empresa, ou mesmo um programa muito esoteric usado por bancos controlar sua transferência dos fundos todos os alvos suculentos do make. Como um colaborador ou mesmo um verificador, o atacante podia introduzir um backdoor relativamente pequeno de menos do que 100KB do código dentro das centenas das megabytes do código legitimate. Aquela é realmente uma agulha em um haystack! Todos os usuários que compram o produto então unwittingly estariam comprando um Trojan Horse e estariam instalando-o em seus sistemas. O produto de software inteiro próprio transforma-se o Trojan Horse, fazendo algo útil (que é porque você o compra ou download), contudo mascarando este backdoor.

Ken Thompson, cocreator notável de UNIX e de programação de C guru da língua, discutido a importância de controlar o código de fonte e a possibilidade de plantar backdoors nele em seu papel 1984 famoso intitulou "reflexões em confiar na confiança." Nesse papel clássico, Thompson descreveu modificar o código de fonte para um compilador de modo que construísse um backdoor em todo o código que compila. O ataque proposto era particularmente insidious, como mesmo um compilador brandnew que fosse compilado com uma versão de Trojan do compilador velho teria o backdoor nele, demasiado. Esta avenida do ataque tem sido por muito tempo um interesse, e é um problema potencial mesmo mais grande hoje.

Este interesse é mesmo perturbando do que o Trojaning dos locais da distribuição do software que nós discutimos na última seção. Quando um atacante Trojanizes um local da distribuição do software, os colaboradores do software tiver ao menos uma versão limpa do software a que podem comparar de encontro para detectar o subterfuge. Suportar para fora dos problemas é relativamente mais fácil após a descoberta, porque uma versão limpa do software pode ser colocada no Web site para a distribuição. Na outra mão, se um atacante encaixasse um Trojan Horse durante o processo do desenvolvimento do software, o vendedor não pôde mesmo ter uma cópia limpa. Se os atacantes forem particularmente inteligentes, intertwine um backdoor pequeno, inconspicuous durante todo o código normal, fazendo o eradication extremamente difícil. O colaborador do software teria que fazer a varredura de quantidades enormes do código para assegurar a integridade de um produto inteiro. Maior o produto de software, mais difícil a deteção e o eradication tornam-se. Deixe-nos analisar porque isto é assim.

Codifique O Ataque Dos Makes Da Complexidade Mais fácil

A maioria de ferramentas modernas do software são vastas no espaço. Detectar desinseta no código, deixa backdoors sozinhos, é muito difícil e caro. A Trojanize um produto de software, um empregado evil não tem que mesmo realmente escrever um backdoor inteiro no produto. Instead, o colaborador malicioso poderia purposefully escrever o código que contem uma falha exploitable, tal como um excesso do amortecedor, que deixe um atacante fazer exame sobre da máquina. Eficazmente, uma falha tão purposeful age justa como um backdoor. Se a falha sneaks após a equipe testando do software, o colaborador seria único quem sabe sobre o furo inicialmente. Explorando essa falha, o colaborador podia controlar todos os sistemas usando seu ou seu código.

Para começar uma sensação para como fàcilmente uma falha tão intencional ou mesmo um Trojan Horse cheio poderiam ranger após processos da qualidade do desenvolvimento do software, deixe-nos consideram o registro de trilha da qualidade da indústria da tecnologia de informação sobre o tempo. Os problemas da qualidade do software flagelaram-nos por décadas. Com a introdução de umas microplaquetas mais elevadas da densidade, da tecnologia fiber-optic, e de movimentações duras melhores, a ferragem continua a começar um tempo excedente mais de confiança. O software, na outra mão, remanesce flawed stubbornly. Os watts de Humphrey, um guru da qualidade do software e o investigador da universidade de Carnegie Mellon, conduziram exames no número dos erros os colaboradores do software que fazem geralmente ao escrever o código. As várias análises revelaram que, na média, um colaborador típico introduz acidentalmente entre 100 e 150 defeitos por 1.000 linhas do código. Estas edições são inteiramente acidentais, mas uma única falha intencional poderia sneaked dentro também.

Embora muitos destes erros sejam problemas sintáticos simples descobertos fàcilmente por um compilador, um negócio bom dos defeitos restantes resulta frequentemente em furos gaping da segurança. No fato, essencialmente, um vulnerability da segurança é realmente justo a exploração muito controlada de um erro para conseguir o objetivo específico de um atacante. Se o atacante puder fazer a falha do programa em uma maneira que beneficie o atacante (deixando de funcionar o sistema, rendendo o acesso, ou indicando a informação confidential), o atacante ganha. Estimando muito conservadora, se somente um em 10 dos defeitos no software tiver implicações da segurança, que as folhas entre 10 e 15 defeitos da segurança por 1.000 linhas do código. Estes números apenas não olham muito heartening.

Um sistema operando-se complexo como Microsoft Windows XP tem aproximadamente 45 milhão linhas do código, e este número gigantesco está crescendo enquanto as características e os remendos novos são liberados. Outros sistemas operando-se e aplicações têm quantidades enormes de código também. Fazendo a multiplicação para XP, pôde haver aproximadamente 450.000 defeitos da segurança em Windows.xp sozinho. Mesmo se nosso cálculo do para trás-$$$-$$$-ENVELOPE é demasiado elevado por um fator de 100, aquele poderia falhas de segurança imóveis do meio 4.500. Ouch! Certamente, muito o mesmo dia que Windows.xp estêve lançado em outubro 2001, Microsoft liberou umas 18 megabytes whopping dos remendos para ele.

Não me comece errado; Eu amo Windows.xp. É mais de confiança distante e mais fácil usar-se do que liberações precedentes de Windows. É definitivamente um movimento no sentido correto destes perspectives. Entretanto, isto é justo uma ilustração do problema da segurança inerente em projetos grandes do software. Não é justo uma edição de Microsoft tampouco; a indústria inteira do software é introduzir maior, uns programas mais complexos, ultra-característica-mais ricos (e às vezes característica-feature-laden) com toneladas de falhas de segurança. Durante todo a indústria do software, nós vemos o solo muito fértil para um atacante para plantar um Trojan Horse subtle.

Teste? Que Teste?

Apesar destes erros da segurança, alguns povos pensam ainda de que o processo testando empregado por colaboradores nos conservará e o encontrará cavalos de Trojan antes que os produtos tainted batam as prateleiras. Eu usei-me assuage também meus interesses com esse argumento. Ajudou-me dormir mais melhor na noite. Mas há uma outra dimensão aqui a manter-se na mente para destruir seu slumber calmo: Ovos de easter. De acordo com o arquivo do ovo de easter™, um ovo de easter é definido como:

Algum tidbit divertindo que os criadores esconderam em suas criações. Podiam estar no software de computador, nos filmes, na música, na arte, nos livros, ou mesmo no seu relógio. Há uns milhares delas, e podem completamente entertaining, se você souber onde olhar.

Os ovos de easter são aquelas "características pequenas goofy unanticipated" squirreled afastado em seu software (ou em outros produtos) esse estalam acima sob circunstâncias muito especiais. Para o exemplo, se você funcionasse o programa ao manter abaixadas as chaves de E, de F, e de S, você pôde começar ver um retrato dorky do colaborador do programa. O arquivo do ovo de easter mantem uma lista mestra destes gems pequenos em www.eeggs.com, com os mais de 2.775 ovos de easter do software no registro como desta escrita.

Que os ovos de easter têm que fazer com os cavalos de Trojan no software? Muito, no fato. Um ovo de easter é realmente um formulário do Trojan Horse, albeit do a (tipicamente) o benigno. Entretanto, se os colaboradores do software puderem sneak um ovo de easter benigno após equipes testar do software e de garantia de qualidade, não há nenhuma dúvida em minha mente que poderiam similarmente passar um Trojan Horse ou um excesso intencional do amortecedor também. No fato, o atacante podia mesmo pôr o backdoor dentro de um ovo de easter encaixado dentro do programa principal. Se as equipes testar e de garantia de qualidade não observarem o ovo de easter nem não o observarem mesmo mas o deixarem completamente, provavelmente não o verificarão para ver se há tal funcionalidade escondida. A, a existência de ovos de easter prova-mim completamente claramente que um colaborador ou um verificador malicioso poderiam pôr a funcionalidade escondida nasty dentro do código de produto e a começar através da liberação de produto sem ser observado.

Para começar uma sensação para um ovo de easter, deixe-nos olhar um encaixou dentro de um produto popular, Microsoft excel o programa de spreadsheet. Excel é completamente famoso para seus ovos de easter. Uma versão mais adiantada do programa, excel 97, incluído um jogo do simulador de vôo. Uma versão mais recente, excel 2000, inclui um jogo carro-dirigindo chamado Colaborador Caçador.

Para que este ovo de easter trabalhe, você deve ter excel 2000 (pre liberação do serviço 1), Internet Explorer, e DirectX instalados em seu computador. Para ativar o ovo de easter e para jogar o jogo, você deve fazer o seguinte:

  • Funcione Excel 2000.

  • Sob o menu de lima, selecione excepto como o Web page.

  • Na relação de salvaguarda, seleta publique e estale então a caixa do interactivity da adição.

  • O clique publica para conservar a página resultante do htm em sua movimentação.

  • Em seguida, abra a página que do htm você criou apenas com o Internet Explorer. O spreadsheet em branco aparecerá no meio de sua janela de browser do Internet Explorer.

  • Está aqui a parte complicada. Enrole para baixo para enfileirar 2000, e excesso ao WC da coluna.

  • Agora, selecione a totalidade da fileira 2000 estalando nos 2000 números na esquerda da fileira.

  • Bata a chave de aba para fazer a WC a coluna ativa. Esta coluna será branca, quando as outras colunas na fileira serão escurecidas.

  • Mantenha abaixado Shift+Ctrl+Alt e, ao mesmo tempo, estale o logo do escritório de Microsoft no canto esquerdo superior do spreadsheet.

  • Em um segundo ou em dois, o jogo funcionará.

  • Use as chaves de seta dirigir e dirigir e a barra espaçadora atear fogo. As gotas chaves de O oleiam slicks para confundir os outros carros. Quando começa a obscuridade, você pode usar a chave de H girar sobre seus faróis.

Se o jogo não for invocado em seu sistema, é provável porque você manda a liberação 1 do serviço ou uma versão mais atrasada de Microsoft excel instalado em sua máquina, que não inclui o ovo de easter. Você poderia caçar abaixo uma versão mais adiantada de Microsoft excel, ou tomada justa minha palavra para ela.

Agora, ocupe-se de você, esta "característica" está em um spreadsheet, um programa da produtividade do escritório. Dependendo de seu mindset, pôde ser quirky e divertimento. Entretanto, como tal coisa começa após o processo da qualidade do software (que deve incluir revisões de código) e equipe testando? O pessoal talvez de qualidade de garantia e testar não a observou. Ou, talvez os povos e os verificadores da garantia de qualidade estavam nos cahoots com os colaboradores para ver que o jogo começou incluído na liberação da produção. Uma ou outra maneira, eu sou concernido com os prospetos de um Trojan Horse que está sendo introduzido em uma maneira similar em outros vendedores.

Outra vez, eu não estou escolhendo em Microsoft justo aqui. No fato, Microsoft começou melhor sobre os pares passados dos anos com respeito a estes interesses. Os blocos novos do serviço ou os reparos quentes freqüentemente e squash rapidamente todos os ovos de easter incluídos em umas liberações mais adiantadas. A iniciativa computando confiada de Microsoft, embora derided frequentemente, está começando a carregar alguma fruta como menos e poucos vulnerabilities da segurança e ovos de easter parece vir introduzir no mercado em programas de Microsoft. Entretanto, eu digo este com hesitação grande, porque um outro ovo gaping enorme poderia ser descoberto todo o dia. Ainda, underscoring que esta não é uma edição de Microsoft-only-somente, muitas outras lojas do desenvolvimento do software têm os ovos de easter incluídos em seus produtos, including o computador de Apple, o Norton, adôbe, o Quark, o web browser aberto de Mozilla da fonte, e o browser da ópera. A lista vai sobre e sobre, e é soletrada para fora para que o mundo v em www.eeggs.com.

O Movimento Para O Desenvolvimento Internacional

Uma área de interesse final a respeito dos colaboradores do software e dos cavalos de Trojan maliciosos é associada com o código que está sendo tornado em torno do mundo. Os fabricantes do software estão confiando cada vez mais em equipes altamente distribuídas em torno do planeta para criar o código. E por que não? De um perspective econômico, os países numerosos têm cidadãos com habilidades do desenvolvimento do software do alto-entalhe e abaixam muito taxas labor. Embora a economia faça o sentido, a edição de segurança do Trojan Horse aparece muito maior com este tipo de desenvolvimento do software.

Suponha-o comprar ou download uma parte de software do vendedor X. Esse vendedor, por sua vez, contrai-se com vendedores Y e Z para desenvolver determinadas partes do código. Subcomponents diferentes dos subcontracts do vendedor Z do trabalho a três países diferentes em torno do globo. Pelo tempo onde o produto se senta em sua movimentação dura, milhares das mãos distribuídas através do planeta poderia ter sido envolvido em desenvolvê-lo. Algumas daquelas mãos puderam ter plantado um backdoor nasty. Mais mau ainda, a mesma análise aplica-se aos sistemas financeiros back-end usados por seu banco e pelos programas da base de dados que abrigam seus registros médicos. As réguas das leis de segurança da informação e da responsabilidade de produto variam significativamente do país ao país, com muitas nações que não têm regulamentos muito robust em tudo.

Este interesse não é associado com o morality dos colaboradores em vários países. Instead, o interesse trata do nível do controle de qualidade que pode ser aplicado com contrato limitado e estruturas suportando regulatory. Também, os mesmos efeitos econômicos que estão dirigindo o desenvolvimento aos países com pessoal mais menos caro do desenvolvimento poderiam exacerbate o problema. Um atacante pôde poder bribe um colaborador que faz $100 um uma semana ou o mês em pôr um backdoor no código para o dinheiro muito pequeno. "está aqui um salário de 10 anos … muda por favor duas linhas do código para mim" pôde ser tudo de que faria exame. Nós não queremos ser xenophobic aqui; o desenvolvimento internacional do software é uma realidade com benefícios significativos no negócio de hoje da tecnologia de informação. Entretanto, nós devemos também reconhecer que aumenta os riscos da segurança de cavalos de Trojan ou de falhas intencionais do software.

Defesas de encontro a envenenar a fonte

Como pode você se defender de um Trojan Horse plantado por um empregado de sua casa do desenvolvimento do software? Esta é uma pergunta particularmente resistente, porque você tem pouco controle sobre o desenvolvimento da maioria vasta do software em seus sistemas. Ainda, há umas coisas que nós podemos todos fazer como uma comunidade para melhorar esta situação.

Primeiramente, você pode incentivar seus vendedores comerciais ter regimens robust dos controles e testar da integridade para seus produtos. Se não , para batê-los acima e para ameaçá-los usar outros produtos. Eu não significo batê-los acima literalmente. Eu não quero incite a violência, para sakes do goodness. Pela "batida eles acima," eu significo dou-lhes uma estadia dura. Desafie-os. Grite neles. Deixe seus vendedores do desenvolvimento do software saber o código seguro importante é a suas operações. Quando o marketplace começa exijir um código mais seguro, nós começaremos gradualmente avançar nesse sentido. Adicionalmente, se você usarem muitos do software aberto da fonte, sustentação que comunidade com seu tempo e esforço em falhas compreensivas do software. Se você tiver as habilidades, ajude para fora revendo o código de fonte aberto para certificar-se que é seguro.

Em seguida, quando você compra ou download o software novo, teste-o primeiramente para certificar-se ele não inclui nenhuma potencialidade óbvia do Trojan Horse. Com um teste do software e um processo completos da avaliação na casa, você pôde apenas encontrar alguns cavalos de Trojan em seus produtos antes de qualquer um observações outras eles. Comunique esta informação ao vendedor para ajudar resolver a edição.

Se sua organização desenvolver qualquer código na casa, certifique-se que sua equipe testando do software está ciente dos problemas de ovos de easter, de cavalos de Trojan, e de falhas intencionais. Sadly, os verificadores do software são vistos frequentemente como o tier inferior very da importância na hierarquia do desenvolvimento do software, começando geralmente pouco o respeito, o recognition, ou o pagamento. Ainda, sua importância à segurança de nossos produtos é paramount. Treine estes povos de modo que possam rapidamente manchar o código que não olha a direita e não a relata ao pessoal de gerência apropriado. Recompense seus verificadores quando encontram problemas principais da segurança antes que você envíe o software. Tenha cuidado, though. Você não quer ter verificadores trabalhar com colaboradores ao jogo os erros do sistema e de planta assim que podem fazer mais dinheiro. Isso é como ter um lottery onde os povos possam imprimir seus próprios bilhetes ganhando. Monitore com cuidado todos os programas que da recompensa do erro você criar para tal subterfuge.

Além disso, assegure-se de que seus verificadores e colaboradores possam relatar interesses da segurança sem represálias dos gerentes desesperados que tentam se encontrar com um fim do prazo estrito do software. Dependendo do tamanho de sua organização e de sua cultura, você pôde mesmo ter que introduzir um tipline anonymous para que seus colaboradores relatem tais interesses. Dando esta atenção adicional tão necessária a seus verificadores do software, você pode ajudar aos problemas do squelch com cavalos de Trojan tão bem quanto melhora a qualidade total de seus produtos.

Para infuse este mindset durante todo a cultura de suas equipes do desenvolvimento do software, considere transformar sua organização de teste em uma função desenvolvida da garantia de qualidade. A organização da garantia de qualidade deve ser fretada com responsabilidade da segurança do software como um facet da qualidade. Construa seu processo da garantia de qualidade no ciclo inteiro do desenvolvimento do software, including o projeto, as revisões de código, e testar. Você deve também impo controles cuidadosos em seu código de fonte, requerendo colaboradores authenticate antes de trabalhar em todos os módulos. Todas as mudanças devem ser seguidas e revisto por um outro colaborador. Somente com qualidade completa os processos e o controle do código de fonte podem nós melhorar a situação associada com o código de fonte untrustworthy.

este é um artigo adicionado por Greg McKlein


Share  

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