PplWare Mobile

Pwn2Own 2011 – 20 mil dólares para ‘hackear’ o Chrome

                                    
                                

Este artigo tem mais de um ano


Autor: Vítor M.


  1. Marcos Correia says:

    Vai ser interessante saber os resultados, embora 30 minutos para hackear não seja muito tempo.

  2. Hugo says:

    Gostava de saber se o Opera já foi sujeito a estes testes. É o meu browser de eleição desde que me lembro e nunca me deu problemas.

    • O Opera é realmente um excelente browser. Mas devido ao Market Share baixo, não é nenhuma ameaça para os concorrentes.
      Este concurso, infelizmente, está rodeado de jogadas mediáticas. Isto foi dito pelo próprio Charlie Miller.
      Não tenhas dúvidas que se o Opera tirasse Market Share a um dos browsers dos patrocinadores do evento (agora Google, antes Microsoft), era mais um dos “hackeados” em poucos minutos.

  3. tiago says:

    Não me considero um expert mas sei programar algumas coisas em algumas linguagens de programação e sou sincero: não percebo como é que é possível hackear sites, browsers, inclusive criar cracks para jogos e outras coisas do género…será que existe por aqui alguma alma caridosa que me possa responder à minha dúvida?

    AFINAL COMO ELES FAZEM ISSO???

    • kekes says:

      Eu sei como é… com os dedos e com um computador… heheheh na brinca 😀

      Os Cracks creio que é com engenheria reversa, mas de facto nada sei sobre isso 🙂

    • Feliz says:

      Uma das primeiras lições que podes tirar de algoritmia, é de que programaticamente tudo se resume a condições lógicas booleanas, dessas condições podem surgir ciclos ou rotinas e isso é assim até à linguagem máquina o assembly… Quando se diz que um código está em estado binário quer dizer que o seu código fonte já foi compilado e gerado por sua vez, em linguagens não interpretadas como java, o código binário que pode ser interpretado por debugers para código assembly, agora o verdadeiro truque dos “cracks” está em interpretar as condições lógicas referentes às validações dos jogos, como serial numbers ou validações online…
      O truque é portanto, procurar em milhares de linhas de código às condições de validação e adultera-las, tornando um Não em um Sim incondicional… 🙂

      • Feliz says:

        Lembrei-me com isto, que podiamos fazer umas brincadeiras engraçadas…
        Fazer uma espécie de concurso aqui no pplware, criava-mos um programa nosso, e tentávamos adultera-lo depois de compilado…
        Uma brincadeira simples, em que o vencedor receberia algum reconhecimento… 🙂

        Imaginem uma aplicação consola em C++, em que ao inserir a password correcta era mostrado um link para uma página web, o primeiro a entrar nessa página e a escrever o seu email ganhava! 😀

    • a Friend® says:

      Na realidade não há uma forma “padrão” para crackar algo… existem muitas variaveis.. desde diferentes níveis de segurança (hardware, software..etc.)…a diferentes bugs… sistemas de segurança implementados, etc…

      Tudo é estudado primeiro através do codigo fonte (normalmente através de engenharia reversa) e ver os possíveis “bypasses” e “bugs”.

      A exploração de “bugs” normalmente é a forma mais eficaz de se “crackar” algo, por essa razão é que os updates depois fazem os “cracks” ficarem obsoletos.. 😉

    • Ricardo Elias says:

      Uma falha de seguranca e’ um bug no software que permite alterar registos do processador e aponta-los para dados que sao depois executados pelo processador como se fossem instrucoes do proprio programa.

      Quando o software crasha, um utilizador normal olha para essa falha como irritante. Os seus autores, como uma falha no software que precisa de ser corrigida, usando debuggers (executam o codigo fonte passo a passo). Mas para um especialista em falhas… bingo! Agora so’ precisam saber se conseguem injectar dados e terem acesso a privilegios anteriormente inacessiveis.

      Uma das tecnicas de minimizar os exploit, implementados no Windows com o ASLR e DEP, consiste em detectar uma falha no software e terminar a aplicacao antes que o exploit consiga mudar os registos.

      Ao contrario do que muitos utilizadores pensam, raramente se olha para o codigo fonte para encontrar falhas de seguranca. Se fosse o caso, seria dificil encontrar falhas em software proprietario que nao disponibiliza o codigo fonte; os autores sao os que melhor conhecem o seu software mas nao sao os que encontram a maioria das falhas (tambem nao estao preocupados em encontra-los; o objectivo deles e’ resolver falhas e nao saber se o bug e’ exploravel ou nao. Nenhum deles receberia uma “promocao/reconhecimento” porque gastaram horas, ou dias, a tentar explorar bug). Um programador para saber se o codigo que escreveu funciona, executam-no. Olhar para o codigo, nao lhes da’ a seguranca de que funciona. E se querem testar, dao a outros para executarem-no, nao para olhar o codigo e ver se funciona.

      Ha’ um tempo atras, foi encontrado uma falha no Linux Kernel que apenas acontecia em execucao. Isto acontecia porque o compilador removia um IF por considerar desnecessario. Algo semelhante aconteceu com o Windows, em que a Microsoft deu o alerta para se ter cuidado com optimizacoes.

      Outro ponto: o codigo executavel que se resume a 10 megas, pode ocupar 50 megas de codigo fonte. Isso pode traduzir-se em milhares de linhas de codigo, em varios ficheiros, etc…

      Dos reports de varias falhas de seguranca que li, a maioria dos que encontram as falhas, apenas o fizeram por acaso. A vantagem deles e’ que e’ impossivel criar software complexo como sistemas operativos, browsers, servidores, etc, e o programador nao ter-se esquecido ou nunca ter pensado numa situacao muito picular.

      “Buffer Overflow Attacks and Their Countermeasures”
      http://www.linuxjournal.com/article/6701

      Fiquem Bem!

      • phoenux says:

        @Ricardo Elias Excelente explicação!

        @tiago a resposta do Ricardo explica bem o tipo de ataques baseados em buffer overflow onde, com os bits certos, é possível redireccionar o fluxo de execução de aplicações e assim contornar proteções ou executar blocos de código não autorizados.

        Os cracks, como o @feliz referiu funcionam mais ao nível da lógica booleana e da interpretação de código assembly; ao fazer o disassembler de um ficheiro executável ou de uma biblioteca é possível aceder ao seu código assembly e, por exemplo, interpretando o código é possível perceber onde é que um número de série de uma aplicação está a ser validado (deve existir uma instrução de comparação de valores de registos que foram modificados por instruções cálculo anteriores) e alterar essa instrução para validar sempre o número de série. Depois desta alteração estar feita ou é publicado o executável ou biblioteca alterada (o conhecido crack) ou é disponibilizado uma aplicação que contém um patch com as alterações que devem ser efectuadas ao(s) ficheiro(s) origina(l/is) para que alterar o fluxo de execução da aplicação e desbloquear a aplicação. Um keygen é geralmente feito através da interpretação das instruções de validação da chave de uma aplicação e replicando o mecanismo numa outra aplicação que irá gerar um número de série que cumpra as regras de validação da aplicação original.

        Do ponto de vista da web existem outros tipos de ataques, como o SQL injection onde conseguimos inserir, alterar ou eliminar registos por instruções que são passadas a determinadas páginas e que não são processadas antes de serem enviadas a uma base de dados.

        Existem muitos outros ataques, mas creio que isto já dá para ter uma ideia da quantidade de técnicas que é possível utilizar para derrotar os mecanismos de protecção. O problema da informática é que existem existe uma grande distância entre a linguagem binária e a linguagem humana, o que leva a grandes erros de interpretação. Através destes erros será sempre possível explorar uma falha e conseguir fazer algo que o programador original não pensou ou não se preocupou.

  4. quark says:

    Levanto também a questão feita pelo Hugo, então e o Opera???

  5. Rui "ALL" Sousa says:

    “O único que **consegui** resistir foi o Google Chrome.” Façam a devida correcção ai.

    Vamos ver em Março se o Chrome permanece no 1º lugar. De louvar a atitude da Google.

    • a Friend® says:

      Mesmo assim teria que ser o titulo, já que no “passado” o Chrome “resistiu” porque ninguém pegou nele.. lol

      Mas este concurso é só para inglês ver e é rodeado de sensacionalismo. O próprio Charlie Miller assumiu isso quando foi pago para quebrar o Safari.

      Os 10…20.. 30 min faz parte da sensação. Eles levam o trabalho de casa.
      Depois são pagos por empresas para quebrar os “rivais”… só este ano é que pelos vistos a Google quis mudar a figura e desafiar a quebra do próprio browser… será de louvar? Não sei… se os “esquemas” forem como os do passado, eles vão dizer que o Chrome foi o que mais se aguentou…

      Ps. Não acredito em concursos patrocinados.

      Defcon FTW.. o resto é conversa… 😉

      • RCS says:

        Seja como for, depois desta publicidade, as outras empresas vão querer que o chrome seja batido.
        Se realmente há valores pagos por fora para bater os concorrentes, o pagamento para bater o chrome também deve aumentar. Vamos ver se o chrome se aguenta à bronca.

  6. Já ganhei!
    O Chrome em si é uma falha autentica 🙂

    • canelas says:

      Se calhar o IE é melhor?! olha k esta…

    • brunobola says:

      lol, o ie é do pior em nivel de exploits…

      • Ricardo Elias says:

        TODOS os browsers teem falhas de seguranca. Mas de uns anos para ca’, o IE7+ e’ o unico que impede que os exploit sejam executados na vasta maioria dos casos. E mesmo quando conseguem executar, os privilegios sao tao poucos (a nao ser que desactivem todas as medidas de seguranca no SO e no browser) que a Microsoft nem corre a corrigir a falha.

        Uma falha semelhante no Firefox, Opera, provavelmente no Safari (nao o uso), significa acesso equivalente ao utilizador normal e e’ muito improvavel que consigam parar o exploit. O chrome e’ o que se aproxima ao IE.

        Fiquem Bem!

        • phoenux says:

          Concordo quando dizes que todos os browsers têm falhas, mas daí a dizer que o Internet Explorer 7+ é o melhor no que diz respeito à questão da segurança parece-me algo muito exagerado. O isolamento de processos e a sandbox do Google Chrome disponibilizam alguns dos mecanismos de segurança que a meu ver são muito superiores aos utilizados pelo Internet Explorer. Podes contrapor dizendo que a integração com o Windows e com os mecanismos de segurança ASLR e DEP tornam este browser mais seguro, mas está provado que é possível contornar estas barreiras de segurança. Sim, se desactivares javascript, activex e aumentares o nível de segurança para o mais alto (e restritivo) terás um browser bastante seguro (apesar de ainda não ser invulnerável). No entanto nestas condições é quase como se passasses a ter um browser de texto sem grandes potencialidades.

          A meu ver o Google Chrome fornece um melhor compromisso segurança-funcionalidades. O Internet Explorer está demasiado integrado no sistema operativo para o podermos considerar um interface seguro.

          • Ricardo Elias says:

            “O isolamento de processos e a sandbox do Google Chrome disponibilizam alguns dos mecanismos de segurança que a meu ver são muito superiores aos utilizados pelo Internet Explorer.”

            O IE7+ tambem tem isolamento de processos. Tambem restringue o que cada processo consegue fazer no sistema Operativo. O ActiveX e’ executado num processo ‘a parte. O Javascript, se nao me engano, tambem o separa no IE9.

            O metodo do Chrome e’ correr o primeiro processo com os privilegios do utilizador actual. Todos os sub-processos sao iniciados com os privilegios do utilizador actual negado. Mesmo que exista um exploit num sub-processo a correr com o Administrador, esse subprocesso nao consegue criar sub-processos, escrever em praticamente nenhuma area no disco ou registos pertencentes ao utilizador, ou mesmo ler, etc, o que limita o ataque. Basicamente o que o IE7+ faz, com Integrity Levels.

            Provavelmente, o IE7 e/ou IE8 usam os mesmo metodos de negar os acessos no XP, mas nao o posso confirmar. Se nao o fizer, pode ser por outros motivos nao relacionados ao SO, visto o Chrome consegui-lo.

            “IE7 Protected Mode usando IL no Vista”
            http://msdn.microsoft.com/en-us/library/bb250462(v=vs.85).aspx#upm_intro

            Nao confundas os componentes que o IE7+ utiliza, que fazem parte do SO, e o browser em si. E mesmo esses componentes so’ por fazerem parte do SO, nao significa que tenham mais privilegios do que o Chrome, como aplicacao, ou que o IE nao limite as suas capacidades.

            A Microsoft cometeu grandes erros no passado com o IE6, mas tambem aprenderam e melhoraram com o XP SP2 e teem melhorado a cada versao do IE.

            Uso maioritariamente o Chrome e o Firefox; o IE, tavez 1% do tempo desde 2003, quando comecou o desenvolvimento do Firefox. Se tiver que mexer no computador de outros, instalo sempre o Firefox ou o Chrome dependendo da pessoa em questao.

            O IE7+ nao e’ prefeito, mas nao tao mal como alguns gostam de pinta-lo. Em alguns casos, talvez perdendo para o Chrome, e’ ate’ melhor que os demais.

            Fiquem Bem!

          • phoenux says:

            @Ricardo Elias: Admito que após ter tido tantos problemas durante tantos anos com o IE, que possa ser um pouco preconceituoso no que diz respeito à segurança deste browser.

            É um facto que nas versões mais recentes a Microsoft tem feito um esforço significativo no que diz respeito à segurança e têm-se assistido a algumas melhorias. No entanto são vítimas do seu sucesso pois a sua base (ainda) grande de utilizadores tornam este browser o alvo preferencial dos ataques que fragilizam o aspecto da segurança deste software. Como tal é normal que surjam ataques que deitem por terra estes mecanismos de protecção (como o protect mode que referiste: http://securityblog.verizonbusiness.com/2010/12/02/evaluating-protected-mode-in-internet-explorer/). Eu penso que o maior problema do Internet Explorer continuará a serão os plugins que são instalados automaticamente (ou a pedido), como os de integração com o Office, Messenger, etc, que aumentam significativamente os vectores de ataque ao sistema.

            No caso da integração que referi, estava a pensar nos componentes do Internet Explorer que estão instalados no Windows XP e anteriores e que não podem ser removidos. De facto no IE7+ notou-se que houve uma separação do browser do sistema o que poderá limitar alguns (graves) problemas de segurança que eram muito comuns à uns anos.

            Tal como tu raramente utilizo o Internet Explorer. Optei mesmo por ir mais longe e raramente utilizar Windows.

            Obrigado pelo teu comentário.

          • Ricardo Elias says:

            “Tal como tu raramente utilizo o Internet Explorer. Optei mesmo por ir mais longe e raramente utilizar Windows.”

            Desde o ano passado que uso “exclusivamente” o Kubuntu. O meu uso do Windows XP resume-se a 1 a 2 horas por semana no maximo, apenas para poder usar o microfone da webcam.

            Obrigado tambem pelos teus comentarios.

            PS: A Google teve que corrigir dois bug que permitiam sair da Sandbox nos ultimos dois meses. Mesmo assim, continua a ser o melhor em termos de seguranca, devido ‘as barreiras que implementam.

            http://seekingalpha.com/news-article/552831-google-fixes-9-bugs-in-chrome-including-sandbox-escape-flaw-google-on-thursday-patched-nine-bugs-in-chrome-and-upgraded-the-most-stable-edition-of-the-browser-to-version-9

            Fiquem Bem!

    • anon says:

      Epá o layout desse teu site é que uma falha do caraças…

      On-topic: o chrome é de longe o melhor browser, só perdendo para o FF em termos de add-ons – o que com o tempo se dissipará.

  7. jose says:

    Bem meus caros, acabei de receber 2o mil dolares-

  8. Hugo Costa says:

    “…utilizando unicamente vulnerabilidades presentes no código escrito pela Google.” Pois… Problema maior é quando nos pomos a usar os addons de terceiros…

    • a Friend® says:

      São “macacos” …

      Não é que seja utilizador do Safari, porque até uso o Chrome (à espera que o Firefox me traga boas surpresas) mas o Safari quando foi quebrado (a tal historia dos 10 segundos…) foi através de um exploit do Java, ou seja, codigo de terceiros.

      São factos que foram bem omitidos…por essa razão é que independentemente do resultado desta brincadeira, para mim perderam credibilidade.

      Para a Google o Chrome será sempre o melhor.. para a Apple o Safari, para a MS o IE, e assim sucessivamente.. e vivem em constante FUD entre eles para endrominar os clientes..

      Quanto têm que cair.. se houver dedicação… caem todos. O chrome para mim só leva a vantagem perante os outros porque está em constante desenvolvimento e isso é um “atrofio” para os hackers criarem exploits.

Deixe um comentário

O seu endereço de email não será publicado.

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. A administração deste site reserva-se, desde já, no direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.