Mostrando postagens com marcador Artigos. Mostrar todas as postagens
Mostrando postagens com marcador Artigos. Mostrar todas as postagens

quinta-feira, 30 de abril de 2015

Neste artigo vamos explorar o gerenciamento de memória no Linux para entendermos como funciona a paginação e explorar as funções de acesso a memória do espaço do usuário que usam estes conceitos. Movimentar dados entre espaço de usuário e kernel. Vamos usar tmb APIs.

Liguem suas VMs!

Uma introdução à memória e APIs de espaço do usuário do Linux

Como o kernel e o espaço do usuário existem em espaços de endereço virtuais diferentes, existem considerações especiais para movimentar dados entre eles. Explore as ideias por trás dos espaços de endereço virtuais e as APIs do kernel para movimentar dados do e para o espaço do usuário, e aprenda algumas das outras técnicas de mapeamento usadas para mapear memória. Embora o byte seja a menor unidade de memória que pode ser endereçada no Linux, é a página que serve como a abstração gerenciada da memória. Este artigo começa com uma discussão sobre o gerenciamento da memória no Linux e, em seguida, explora os métodos para manipular o espaço de endereço a partir do kernel.

Memória no Linux

No Linux, a memória do usuário e a memória do kernel são independentes e implementadas em espaços de endereço separados. Os espaços de endereço são virtualizados, ou seja, os endereços são abstraídos da memória física (por meio de um processo que será detalhado mais adiante). Como os espaços de endereço são virtualizados, podem existir vários deles. Na verdade, o kernel reside em um espaço de endereço, e cada processo reside em seu próprio espaço. Esses espaços consistem em endereços de memória virtual, permitindo que vários processos com espaços de endereço independentes se refiram a um espaço de endereço físico consideravelmente menor (a memória física da máquina). Isso não é apenas conveniente, como também é seguro, pois cada espaço de endereço está isolado e, consequentemente, protegido.

Mas essa segurança tem um preço. Como cada processo (e o kernel) pode ter endereços idênticos que se referem a regiões diferentes da memória física, não é imediatamente possível compartilhar memória. Felizmente, existem algumas soluções. Processos do usuário podem compartilhar memória por meio do mecanismo de memória compartilhada da Portable Operating System Interface for UNIX® (POSIX) (shmem), com a advertência de que cada processo pode ter um endereço virtual diferente que se refere à mesma região da memória física.

O mapeamento da memória virtual para a memória física ocorre por meio de tabelas de página, implementadas no hardware subjacente. O próprio hardware fornece o mapeamento, mas é o kernel que gerencia as tabelas e sua configuração. Observe que, como mostrado aqui, um processo pode ter um grande espaço de endereço, mas é esparso, ou seja, pequenas regiões (páginas) do espaço se referem à memória física através das tabelas de página. Isso permite que um processo tenha um enorme espaço de endereço que é definido apenas para as páginas necessárias em um dado momento.


Figura 1. Tabelas de página fornecem o mapeamento de endereços virtuais para endereços físicos

A capacidade de definir memória para processos de maneira esparsa significa que a memória física subjacente pode ser confirmada em excesso. Por meio de um processo chamado paginação (embora, no Linux, seja geralmente chamado de troca), páginas pouco usadas são movidas dinamicamente para um dispositivo de armazenamento mais lento (por exemplo, um disco) para acomodar outras páginas que precisam ser acessadas (veja a Figura 2). Isso permite que a memória física do computador forneça páginas que um aplicativo precisa imediatamente, e migre páginas menos necessárias para o disco para melhor uso da memória física. Observe que algumas páginas podem se referir a arquivos, caso no qual os dados podem ser descarregados se a página estiver suja (por meio do cache de página) ou, se a página estiver limpa, simplesmente descartados.

 

Figura 2. A troca permite melhor uso do espaço da memória física ao migrar páginas pouco usadas para armazenamento mais lento e menos caro

O processo pelo qual uma página é selecionada para ser descarregada para o armazenamento é chamado de algoritmo de substituição de página e pode ser implementado usando alguns algoritmos diferentes (como, por exemplo, usado menos recentemente). Esse processo pode ocorrer quando é solicitado um local de memória cuja página não está na memória (não há mapeamento presente na memory management unit [MMU]). Esse evento é chamado de falha de página e é detectado pelo hardware (a MMU) e gerenciado pelo firmware após uma interrupção de falha de página ocorrer. A Figura 3 contém uma ilustração dessa pilha.

O Linux apresenta uma implementação interessante da troca, que oferece algumas características úteis. O sistema de troca do Linux permite a criação e uso de várias partições e prioridades de troca, o que permite uma hierarquia de troca para dispositivos de armazenamento que fornecem diferentes características de desempenho (por exemplo, uma troca de primeiro nível em uma unidade de estado sólido [SSD] e um espaço de troca maior, de segundo nível, em um dispositivo de armazenamento mais lento). Designar uma prioridade maior à troca em SSD permite que ele seja usado até estar cheio; só então as páginas seriam gravadas na partição de troca de baixa prioridade (mais lenta).


Figura 3. Espaços de endereço e elementos de mapeamento de endereço virtual para físico

Nem todas as páginas podem ser descarregadas para a área de troca. Por exemplo, código do kernel que responde a interrupções, ou código que gerencia as tabelas de página e a lógica de troca. Essas são páginas que, obviamente, não devem ser descarregadas para a área de troca, e portanto são fixadas, ou residentes permanentemente na memória. Embora páginas do kernel não possam ser descarregadas, páginas do espaço do usuário podem, mas é possível fixá-las através da função mlock (ou mlockall) para bloquear a página. Esse é o propósito das funções de acesso à memória do espaço do usuário. Se o kernel achasse que um endereço passado por um usuário é válido e acessível, ocorreria por fim um pânico do kernel (por exemplo, porque a página do usuário foi descarregada para a área de troca, resultando em uma falha de página no kernel). Essa interface de programação de aplicativo (API) assegura que tais casos sejam tratados corretamente.

APIs do Kernel

Agora, vamos explorar as APIs do kernel para manipular a memória do usuário. Observe que esta seção cobre a interface do kernel e do espaço do usuário, mas a próxima explora mais algumas APIs de memória. As funções de acesso à memória do espaço do usuário que iremos explorar estão listadas na Tabela 1.

Tabela 1. A API de acesso à memória do espaço do usuário

Função Descrição

access_ok             Verifica a validade do ponteiro de memória do espaço do usuário

get_user                 Obtém uma variável simples do espaço do usuário

put_user              Envia uma variável simples para o espaço do usuário

clear_user              Limpa ou zera um bloco no espaço do usuário

copy_to_user      Copia um bloco de dados do kernel para o espaço do usuário

copy_from_user      Copia um bloco de dados do espaço do usuário para o kernel

strnlen_user      Obtém o tamanho de um buffer de cadeia de caractere no espaço do usuário

strncpy_from_user    Copia uma cadeia de caractere do espaço de usuário para o kernel



Como seria de se esperar, a implementação dessas funções depende da arquitetura. Em arquiteturas x86, é possível achar essas funções e símbolos definidos em ./linux/arch/x86/include/asm/uaccess.h, com origem em ./linux/arch/x86/lib/usercopy_32.c e usercopy_64.c.

O papel das funções de movimentação de dados é mostrado na Figura 4 em relação aos tipos envolvidos na cópia (simples vs. agregado). 


Figura 4. Movimentação de dados usando a API de acesso à memória do espaço do usuário

A função access_ok

A função access_ok é usada para verificar a validade do ponteiro no espaço do usuário que deverá ser acessado. O responsável pela chamada fornece o ponteiro (que se refere ao início do bloco de dados), o tamanho do bloco e o tipo de acesso (se a área deve ser lida ou gravada). O protótipo de função é definido como:

access_ok( type, addr, size );

O argumento type pode ser especificado como VERIFY_READ ou VERIFY_WRITE. O simbólico VERIFY_WRITE também identifica se a região da memória é legível, além de gravável. A função retorna diferente de zero se a região for provavelmente acessível (mas o acesso ainda pode resultar em -EFAULT). Essa função simplesmente verifica se o endereço é provável no espaço do usuário, não no kernel.

A função get_user

Para ler uma variável simples do espaço do usuário, usa-se a função get_user. Ela é usada para tipos simples, tais como char e int, mas tipos de dados maiores, como estruturas, devem usar a função copy_from_user. O protótipo aceita uma variável (para armazenar os dados) e um endereço no espaço do usuário para a operação de leitura:

get_user( x, ptr );

A função put_user

A função put_user é usada para gravar uma variável simples do kernel para o espaço do usuário. Assim como get_user, ela aceita uma variável (que contém o valor a ser escrito) e um endereço no espaço do usuário como destino da gravação: 

put_user( x, ptr );            

Assim como get_user, a função put_user é mapeada internamente para a função put_user_x, e retorna 0 em caso de sucesso ou -EFAULT em caso de erro.

A função clear_user

A função clear_user é usada para zerar um bloco de memória no espaço do usuário. Ela toma um ponteiro no espaço do usuário e um tamanho para zerar, definido em bytes:


clear_user( ptr, n );

Internamente, a função clear_user verifica primeiramente se o ponteiro do espaço do usuário é gravável (via access_ok), e em seguida chama uma função interna (escrita em assembly sequencial) para realizar a operação de Limpeza. Essa função está otimizada como um loop muito rígido usando instruções de cadeia de caractere com o prefixo de repetição. Ela retorna o número de bytes que não puderam ser limpos, ou zero caso a operação tenha tido sucesso.

A função copy_to_user

A função copy_to_user copia um bloco de dados do kernel para o espaço do usuário. Ela aceita um ponteiro para um buffer no espaço do usuário, um ponteiro para um buffer no kernel e um comprimento definido em bytes. A função retorna zero em caso de sucesso, ou diferente de zero para indicar o número de bytes que não foram transferidos.

copy_to_user( to, from, n );
Após verificar a possibilidade de gravar no buffer do usuário (através de access_ok), é chamada a função interna __copy_to_user, que, por sua vez, chama __copy_from_user_inatomic (em ./linux/arch/x86/include/asm/uaccess_XX.h, no qual XX é 32 ou 64, dependendo da arquitetura). A função (depois de determinar deve-se realizar cópias de 1, 2 ou 4 bytes) chama por fim __copy_to_user_ll, que é responsável pelo trabalho de verdade. Em hardware quebrado (antes do i486, quando o bit WP não era honrado em modo de supervisor), as tabelas de página podiam mudar a qualquer momento, exigindo que as páginas desejadas fossem fixadas na memória, de modo que não fossem descarregadas para a área de troca enquanto estavam sendo endereçadas. Depois do i486, o processo nada mais é que uma cópia otimizada.

A função copy_from_user

 A função copy_from_user copia um bloco de dados do espaço do usuário para um buffer do kernel. Ela aceita um buffer de destino (no espaço do kernel), um buffer de origem (no espaço do usuário) e um comprimento definido em bytes. Assim como copy_to_user, a função retorna zero em caso de sucesso, e diferente de zero para indicar o fracasso em copiar certo número de bytes.

copy_from_user( to, from, n );

A função começa por verificar a possibilidade de ler o buffer de origem no espaço do usuário (via access_ok), e em seguida chama __copy_from_user e, por fim, __copy_from_user_ll. A partir daí, dependendo da arquitetura, uma chamada é feita para copiar do buffer do usuário para um buffer do kernel zerando (os bytes indisponíveis). As funções de assembly otimizadas incluem a capacidade de gerenciar.

A função strnlen_user

A função strnlen_user é usada da mesma maneira que strnlen, mas ela considera que o buffer está disponível no espaço do usuário. A função strnlen_user aceita dois parâmetros: o endereço do buffer no espaço do usuário e o comprimento máximo a ser verificado.

strnlen_user( src, n );

A função strnlen_user verifica primeiramente se o buffer do usuário é legível, por meio de uma chamada para access_ok. Se for acessível, a função strlen é chamada, e o argumento max length é ignorado.

A função strncpy_from_user

A função strncpy_from_user copia uma cadeia de caractere do espaço do usuário para um buffer do kernel, dados um endereço de origem no espaço do usuário e um comprimento máximo.

strncpy_from_user( dest, src, n );

Como se trata de uma cópia do espaço do usuário, a função primeiramente verifica se o buffer é gravável por meio de access_ok. De forma semelhante a copy_from_user, essa função é implementada como uma função assembly otimizada (em ./linux/arch/x86/lib/usercopy_XX.c).

Outros esquemas para mapeamento de memória


A seção anterior explorou métodos para movimentar dados entre o kernel e o espaço do usuário (com o kernel iniciando a operação). O Linux oferece outros métodos que podem ser usados para movimentação de dados, tanto no kernel como no espaço do usuário. Embora esses métodos possam não apresentar funcionalidade igual à das funções de acesso à memória do espaço do usuário, eles são semelhantes em sua capacidade de mapear memória entre os espaços de endereço.

Observe que, no espaço do usuário, como os processos do usuário aparecem em espaços de endereço separados, a movimentação de dados entre eles deve ocorrer por meio de algum tipo de mecanismo de comunicação interprocessos. O Linux oferece vários esquemas (tais como filas de mensagens), mas o mais notável é a memória compartilhada POSIX (shmem). Esse mecanismo permite que um processo crie uma área de memória e compartilhe essa região com um ou mais processos. Observe que cada processo pode mapear a região de memória compartilhada para diferentes endereços em seus respectivos espaços de endereços. Portanto é necessário um certo deslocamento de endereços.

A função mmap permite que um aplicativo do espaço do usuário crie um mapeamento no espaço de endereço virtual. Essa funcionalidade é comum em algumas classes de drivers de dispositivo (para desempenho), permitindo que a memória física do dispositivo seja mapeada para o espaço de endereço virtual do processo. Em um driver, a função mmap é implementada através da função do kernel remap_pfn_range, que fornece um mapeamento linear da memória do dispositivo para o espaço de endereço do usuário.



Conteúdo retirado do developerworks da IBM.
Publicado no Fórum da Brutal Security por Natan

sexta-feira, 10 de abril de 2015

ThroughPut é a palavra modernosa americana para a taxa de transferência de dados de uma rede. É a medida de banda que sua rede (ou sua máquina) irá consumir. É importante saber qual o throughput máximo de sua rede por vários motivos, dentre eles, os provavelmente mais importantes são:

Revisão do plano de internet:

Existem duas possibilidades, ou sua rede está estourando a capacidade do seu link (Throughput maior, igual ou quase chegando na capacidade máxima do link), ou você tem um link muito maior que a sua necessidade (Throughput menor que 50% da capacidade do link).

A primeira possibilidade é bem óbvia. Você tem uma rede grande, em termos de utilização, e um link chinfrim. Claro, é sempre bom usar o bom senso nessas horas para saber se sua rede tem condições de consumir o que está consumindo. Se sua rede está com o Throughput elevado demais para o tamanho e a utilização que ela teoricamente deveria ter, você pode estar com máquinas bichadas na sua rede. Vamos ver isto mais abaixo.

A Segunda possibilidade pode parecer neurose, mas é importante. Porque deveria me preocupar se meu link está acima de minha necessidade? Porque, como diria Tio Sam, Link is Money, Oh yeah! Você esta pagando por algo que não esta utilizando! A não ser que hajam planos de expansão da rede (ou que você curta deixar aqueles torrents baixando na madrugada usando o link da firma... HÁ!), não há porque ter um link maior que sua necessidade. Quem sabe economizando na conta de internet não sobra pra trocar aquele K6-II quinhentão que tá lá de Samba server há 12 anos hein? #FIKDIK

Revisão do hardware de firewall:

Muito importante. As vezes o seu link está OK, sua rede está OK, mas seu firewall não está dando conta do recado. Isto irá agargalar a sua rede. Mesmo que você tenha um link de fibra ótica de 50 Gbps ligado ponto-à-ponto com a US NAVY, se seu firewall não aguentar o tranco, pode parecer que você está navegando pelo 3G da TIM. Firewalls Profissionais (UTMS, Appliances e bla bla bla) geralmente informam em suas páginas oficiais seus Throughputs máximos. Se seu firewall é em cima de Linux, com IPtables, você vai ter que monitorar a carga média (Load Average) dele. Não vou entrar em detalhes aqui sobre como fazer isto, mas deixo a dica: Firewall é firewall, servidor web é servidor web, servidor de e-mail é servidor de e-mail e assim por diante. Nunca é bom misturá-los na mesma máquina OK? 

Detecção de máquinas "bichadas" na sua rede:

É muito comum de se ver redes pequenas que deveriam ter baixas taxas de transferência de dados consumindo uma quantidade enorme de banda. Isto pode acontecer por vários motivos. Um deles, bem provável de ocorrer em redes windows, é o aparecimento de vírus. Vírus, Spammers, DDOS são coisas que quando infectam uma máquina ou uma rede, aumentam muito o Throughput dela. Outro causa pode ser uma placa de rede com problemas, enviando pacotes repetidos, por exemplo, dobrando seu throughput. Ainda pode haver máquinas com placas de rede defeituosas, não respondendo às conexões que fazem com que todo o pacote enviado à ela seja enviado novamente, aumentando a latência da rede.

Como calcular o Throughput?

O Throughput médio de uma rede é calculado pelo tamanho da janela TCP das máquinas (No Windows, o padrão é 64k, veja na Wikipedia) dividido por sua latência. Numa rede comum, temos uma janela TCP de 64KB, precisamos converter isto para bits para poder calcular, o que vai nos dar, mais ou menos 524,288. dividimos isto pela latência da conexão (O "time" que aparece no ping, lembre-se de fazer o teste de uma máquina da rede, e não do firewall). Numa conexão comum, em uma rede 10/100, o ping para o google me retornou 15ms de latência, então, o calculo ficaria 524.288/0.015 = 34952.53, dividimos isto por 1KK (um milhão, se você não joga, ou não conhece ninguém que jogue tíbia) para termos o resultado em megabits por segundo. 34952.53/1000000 = 0.035Mbps (arredondado). Este é o throughput de uma máquina de sua rede. Multiplique este valor pelo total de máquinas de sua rede e você terá o Throughput total dela, por exemplo, se sua rede tem 150 máquinas, 0.035*100 = 3.5Mbps.

Este valor é o máximo que sua rede poderá consumir de banda, é lógico, se as máquinas forem todas iguais. Tudo em uma rede pode aumentar a latência de uma máquina e assim, aumentar seu throughput, cabeamento confuso, com mal contato, etc. Fique atento a isto!           


Belo post feito pelo Natan, colaborador aqui do blog. Postado lá no antigo fórum da BS.     

terça-feira, 4 de novembro de 2014

5 - Comparação entre iOS e Android


5.1 - iOS


O iOS ainda se mantém fechado, o único local para obter softwares é da loja oficial. Também existe uma loja alternativa para usuários que fazem o desbloqueio não autorizado do aparelho, mas este não será considerado por desabilitar todos os sistemas de segurança do aparelho e ser considerado não autorizado pela Apple. Exploits e falhas de desenvolvimento são raramente encontrados devido ao tempo de desenvolvimento do sistema e cuidado o cuidado extra que a Apple toma.

Para uma parte maliciosa disponibilizar um aplicativo com código malicioso na loja diversas camadas de proteção devem ser contornadas. Atualmente diversos pesquisadores de segurança tentam burlar essas proteções, praticamente todos sem sucesso, e os que obtém sucesso tem suas contas bloqueadas e o aplicativo é removido em poucos instantes.

A loja oficial tem diversas proteções que inviabilizam o ataque direcionado a dispositivos Apple. A primeira barreira é a conta de desenvolvedor, onde a Apple cobra uma taxa anual de 99 dólares para o uso da conta. Além do pagamento é necessário encaminhar para a Apple diversos documentos comprovando a identidade do desenvolvedor, entre eles documento de identificação, enderço, documento com foto, entre outros.

Caso o desenvolvedor seja aprovado ele pode enviar aplicativos para a verificação da Apple. Todos os aplicativos submetidos são encaminhados a uma bateria de testes por desenvolvedores da própria Apple e raros aplicativos maliciosos ou com falhas de desenvolvimento passam pelo teste. Caso um aplicativo mal intencionado seja encaminhado para a loja em poucos instantes ele é removido da loja e se necessário de todos os dispositivos. É praticamente impossível um aplicativo sobreviver a um reboot do sistema, atualmente na ultima versão do sistema alguns aplicativos podem ter complementos instanciáveis como Widgets que possivelmente podem sobreviver a reboots, mas ainda não foram implementados e testados completamente.

5.2 - Android


O Google escolheu um modelo diferente nas versões posteriores e manteve o sistema livre e aberto para a instalação de softwares de qualquer fonte. É possível executar executar qualquer código no Android, mas é necessário remover algumas limitações nas configurações do dispositivo, o que pode levar a diversas falhas de segurança, mas ainda assim o aplicativo a ser instalado tem que informar suas permissões e necessidades para a execução e o usuário tem de aceitá-las.

O processo de verificação de aplicativos e desenvolvedor do Google é similar ao da Apple, mas é mais simples e automatizado, ou seja, é mais simples de burlar a verificação e passar um malware. Do mesmo modo que a Apple, o Google também pode remover aplicativos da loja e dos aparelhos, mas o processo é um pouco mais lento, o que da uma janela maior para infecção.

Exploits e falhas de segurança também são raros no Android e aplicativos também não sobrevivem a reboots, do mesmo modo que o iOS, dispositivos modificados podem causar que aplicativos sejam auto executados.

6 - Malwares


Levando em consideração que os dispositivos e sistemas operacionais estão íntegros, a quantidade de ameaças e aplicativos maliciosos são poucas comparado com computadores. Em quanto nos computadores existem milhões de ameaças e malwares, no Android já foram encontrados e catalogados cerca de 50 mil ameaças e malwares, e 5 em iOS. Esta diferença entre os dois sistemas operacionais móveis está no modelo das lojas, onde o Android tem diversas lojas e a possibilidade de instalação de código e fora das lojas oficiais e autorizadas, mas mesmo assim, são poucas ameaças comparado a computadores.

Boa parte das ameaças e falhas encontradas foram geradas por pesquisadores de segurança apenas como prova de conceito, e normalmente usando o sistema Android pela facilidade de instalação para os testes.

Mesmo esses aplicativos maliciosos ou provas de conceito tem a necessidade de mostrar suas permissões na instalação e o usuário tem que autorizar o acesso ao aplicativo.

7 - Previsões para o futuro


Por mais alguns anos os sistemas operacionais móveis não serão alvo de ataques pela complexidade e necessidade de recursos que esses tipos de ataques demandam, o principal foco de ataque e ameaças ainda será os computadores.

Pode-se afirmar que os sistemas de checagem e proteção não vão perder qualidade, pelo contrário, só tendem a melhorar, o que dificultaria mais ainda os ataques aos dispositivos móveis. Pesquisas apontam que os sistemas operacionais para computadores estão ficando cada vez mais complexos e seguros, isso quer dizer, comparando-se com os sistemas de dispositivos móveis.

Os maiores problemas encontrados hoje que causam essas falhas e ameaças são decorrentes de dois grandes fatores: fragmentação e desconhecimento de usuários. A fragmentação dos dois sistemas pode causar problemas de segurança já que rapidamente os dispositivos perdem o suporte do fabricante e vulnerabilidades encontradas não serão corrigidas. No caso de desconhecimento dos usuários a única coisa que pode ser feita é diminuir ou remover a possibilidade do usuário remover as proteções de segurança ou treinar de alguma forma os usuários para aumentar a atenção em relação a segurança da informação.

Um exemplo de falta de conhecimento dos usuários é um aplicativo recentemente removido da loja do Android. O aplicativo em questão era uma lanterna, sua função era apenas ligar o flash da câmera do aparelho, e na instalação o aplicativo solicitava acesso a contatos, GPS, contas, informações pessoais, chamadas, etc. Milhares usuários Android fizeram o download do aplicativo para usá-lo como lanterna e acabaram tendo suas informações roubadas e enviadas ao servidor de um atacante.
E ai pessoal! Como muitos leitores estavam com dúvidas sobre como está o mundo da segurança da informação e para onde está indo, resolvi fazer esse texto explicando basicamente como está o mundo mobile. Separei o texto em duas partes e vou postar as duas hoje no decorrer do dia.

Para mais informações e discussões sobre o tema acesse o grupo do Facebook da Brutal Security.

1- Mídia


Atualmente as mídias especializadas estão focando em noticiar informações sobre novos ataques, malwares e vulnerabilidades sobre sistemas operacionais móveis. Com títulos como “Sistema Operacional iOS da Apple foi hackeado”, “Diversas novas ameaças para dispositivos móveis estão aparecendo”, entre outras, as notícias tendem a chamar a atenção por seus títulos um tanto quanto equivocados. Lendo os detalhes das notícias e fontes, quando não omitidas, mostram que boa parte desses ataques são provas de conceito de especialista da área e pesquisadores de segurança. Este estudo é sobre isso, não necessariamente todas as falhas encontradas são usadas para um ataque real.

Muito é noticiado de vazamento de informações, comprometimento de serviços e outras ameaças, mas ao contrário do que a mídia desinformada noticia estes ataques não tem origem em dispositivos móveis e nem foram direcionados aos mesmos. Todos os documentos, fotos e demais informações que vieram a público nos últimos meses tem pouca relação com dispositivos móveis.

2- Comparativo dos primeiros anos dos dispositivos móveis com os primeiros anos dos computadores pessoais


Na década de 80, quando os computadores pessoais começaram a se tornar mais acessíveis eles ainda eram apenas máquinas que podiam interpretar comandos e executar códigos escritos para auxiliar ou automatizar uma tarefa, não existia nenhum conceito de segurança desses equipamentos. Com isso falhas começaram a aparecer, e com a criação da internet e intercomunicação dos computadores iniciaram os ataques com fins maliciosos a essas máquinas indefesas que já carregavam uma grande quantidade de informação. Cerca de uma década depois que a segurança desses computadores e dessas informações começaram a ser levadas em consideração e medidas começaram a ser tomadas em relação a isso e a correção das falhas. Hoje em dia ainda temos diversas falhas de segurança em nossos computadores pessoais, mas nem comparado com as décadas anteriores, é um movimento natural os sistemas ficarem cada vez mais robustos e protegidos.

Já no caso dos sistemas operacionais para dispositivos móveis, foi usado todo esse conhecimento prévio da evolução e aperfeiçoamento dos sistemas operacionais dos computadores pessoais. Como os desenvolvedores já tinham conhecimento de boa parte dos erros críticos que os sistemas tinham, muitas falhas de segurança foram evitadas já no dia 1 de vida do sistema operacional para dispositivos móveis. Outras medidas foram tomadas para evitar que novas ameaças surjam nestes dispositivos.

2.1 - Impossibilidade de executar códigos de qualquer fonte


Nos anos iniciais dos dois sistemas principais do mercado, iOS da Apple e Android OS do Google, era impossível a execução de códigos que não fossem e fontes confiáveis da empresa desenvolvedora, ou seja, a empresa faria uma curadoria de tudo que pudesse chegar até o aparelho, o que impedia que códigos maliciosos fossem executados. Nos dias atuais a Apple ainda mantém essa mesma política, onde a única fonte de softwares e aplicativos é a própria loja da Apple. No caso do Google a empresa optou por um modelo mais aberto. Diversas lojas podem disponibilizar aplicativos para os aparelhos, sendo estes de responsabilidade da loja que os disponibiliza. Os dispositivos com sistema operacional Android vem por padrão com configurações para impedir a execução de aplicativos de fora das lojas, mas estas configurações podem ser desabilitadas pelo usuário facilmente no painel de configurações do aparelho, o que pode comprometer a segurança.

2.2 - Sandboxing


O sandboxing é outra medida de segurança implementada em todos os sistemas operacionais para dispositivos móveis. O sandboxing é um sistema de proteção, onde o aplicativo é executado em um compartimento isolado de todo o resto do sistema e não tem acesso a nada que não seja criado por ele. Os aplicativos podem acessar algumas áreas comuns do sistema, mas estas áreas não são acessadas diretamente pelo aplicativo, a requisição é entregue ao sistema operacional que age como intermediário. Outro ponto que deve ser destacado é que o aplicativo sempre deve solicitar e informar ao usuário que recurso que ele necessita antes da solicitação ao sistema operacional.

3 - Possíveis ameaças


Normalmente a entrada de ameaças nos sistemas operacionais móveis ocorre nos mesmos padrões dos sistemas operacionais dos computadores pessoais. O download direto do malware por parte do usuário ou o comprometimento do dispositivo por alguma falha de segurança do sistema previamente identificada.

3.1 - Download direto de malware


As lojas oficiais oferecem uma proteção contra esse tipo de ameaça. Todo o código que é submetido a loja passa por uma verificação em busca de falhas ou comportamento mal intencionado e caso seja encontrado é descartado automaticamente. Sistemas como o Android que permitem a execução de código de outras lojas ou fontes desconhecidas sofrem com esse tipo de ameaça. Nestes casos o ataque ocorre quando um usuário mal informado faz o download de um arquivo já infectado ou malicioso e executa em seu aparelho comprometendo todo o sistema e suas informações.
Não é uma função direta do sistema operacional detectar e impedir a execução de um código malicioso, mas todos os sistemas tem algoritmos básicos de análise para identificar se a aplicação a ser executada pode causar algum mal ao sistema. Para contornar esse problema, foram desenvolvidos diversas ferramentas para detectar e impedir que códigos maliciosos sejam executados nos dispositivos. Estes softwares são similares aos anti-virus e anti-malware encontrados nos computadores.

3.2 - Execução de código (exploit) devido a uma falha


Este tipo de ataque é muito comum em computadores pessoais, pelo fato de nenhum sistema ser perfeito e a prova de falhas, quando uma falha é descoberta, seja por um pesquisador de segurança ou um agente mal intencionado, são criados os chamados exploits, códigos maliciosos com o objetivo de usar a falha encontrada para tomar controle do dispositivo. Em sistemas operacionais para dispositivos móveis esse tipo de falha é raro, tanto pelo fato dos sistemas serem mais bem trabalhados do que os dos computadores convencionais, quanto a falta de recursos e acesso que um atacante tem em um dispositivo móvel.
Normalmente estas falhas não estão ligadas ao uso do dispositivo ou alguma ação do usuário, estas falhas são originadas por erros de programação dos desenvolvedores dos aplicativos ou do próprio sistema operacional.

4 - Diferença entre ataque a plataformas móveis e computadores


Por mais que os sistemas operacionais móveis sejam similares e derivados dos sistemas operacionais dos computadores, o nível de ataque é completamente diferente. Ataques direcionados a dispositivos móveis são muito difíceis e altamente complexos, por esse motivo que todas ou boa parte das falhas de segurança são encontradas pela própria empresa ou por pesquisadores de segurança, e não por partes mal intencionadas. No cenário móvel atualmente existem muito mais barreiras do que um computador comum. Para um ataque ser direcionado a um dispositivo móvel, indiferente do sistema operacional, o atacante tem de contornar todas as barreiras para comprometer o sistema, como por exemplo a barreira do sandboxing.

4.1 - Assinatura por partes confiáveis


Hoje me dia para um aplicativo ou software ser executado em um sistema operacional seu código tem de ser assinado digitalmente por uma ou mais partes confiáveis. Isso quer dizer, um atacante com intenção de executar um código malicioso precisa autenticar esse código perante um órgão autenticador. Esta proteção é válida mas facilmente contornada, mas demanda de conhecimento e tempo do atacante.

4.2 - Nenhum código sobrevive a um reboot


Os sistemas operacionais para dispositivos móveis foram construídos de tal forma que nenhuma aplicação pode se inicializar automaticamente após o sistema ser reiniciado, o que impede que os códigos maliciosos sejam executados novamente, sendo necessário que o usuário execute novamente a aplicação maliciosa. Modificações de sistema não autorizado como por exemplo o Jailbreak nos dispositivos Apple e os mods e customizações do Android (root) podem ignorar essa proteção.

4.3 - Funções conhecidamente problemática


Diversas funções e aplicações já conhecidas como altamente vulneráveis não estão disponíveis em sistemas para dispositivos móveis. Pode-se usar como exemplo o Java e o Flash, que constantemente tem atualizações e correções de falhas, e são hoje em dia as maiores ameaças e ponto de entrada de diversos malwares em computadores, normalmente através dos navegadores. Os navegadores dos dispositivos móveis por padrão não vem com suporte a essas ferramentas mas a desejo do usuário, navegadores com suporte estão disponíveis para intalação.

4.4 - Auto execução


Nenhum aplicativo, em nenhuma plataforma móvel, tem a permissão de auto execução. Todos os aplicativos instalados nos dispositivos necessitam da execução do usuário para poder rodar. Além disso o aplicativo necessita mostrar suas permissões e o usuário tem de aceitar.

quarta-feira, 27 de agosto de 2014

Como os endereços de email são obtidos


Existem diversas formas dos spammers conseguirem endereços de email válidos. Spammers e outros tipos de criminosos podem usar de ferramentas para vasculhar pela internet endereços válidos. A técnica mais comum é procurar pelo caractere “@“ em todos os sites da internet. Se seu email está público em algum lugar certamente você receberá algum spam.

Outro modo é gerar emails válidos através de ferramentas utilizadas para quebrar senhas. Diversos emails são gerados com diversas combinações de domínios e posteriormente testados.

Mesmo não tendo o email público cyber criminosos podem obter listas de email através de outras pessoas, roubando suas listas de contatos usando engenharia social ou ataque de malware. Neste caso provavelmente serão obtidos listas menores do que os dois primeiros modos, mas possivelmente com maior quantidade de endereços válidos.

O modo mais comum hoje em dia para obtenção de lista de emails é através da compra de listas prontas com milhares ou até milhões de endereços. Existem mercados legais e ilegais para compra e venda de dados pessoais, além do próprio endereço de email. Seu email pode estar sendo disponibilizado para um terceiro de modo legal. Por isso é importante sempre ler as políticas de privacidade dos serviços usados.

Também podem ser usados, listas de discussão por email, perfis em redes sociais, contatos em registros de domínios, em anúncios, invasão de sites e banco de dados e etc.


Como os spams são propagados


Do mesmo modo que existem diversos meios para obter os endereços válidos, a propagação também acontece de formas variadas, uma delas é usando open relays. Open relays acontecem por causa de uma propriedade do protocolo SMTP. Spammers podem atacar servidores SMTP ou encontrar servidores abertos e desprotegidos e usar estes servidores para mandar seus spams. Pesquisas indicam que se um servidor replay for colocado no ar em qualquer lugar do mundo, em cerca de uma hora este servidor já estará enviando milhares de spam.

Outro método usado é através de botnets. Botnet é uma rede de computadores zumbis. Alguns tipos de malwares tem como objetivo apenas colocar os computadores infectados em uma dessas redes. O malware se instala na máquina e fica aguardando comandos do seu dono/criador. Estas redes gigantes de computadores são utilizadas para mandar spam entre outras atividades maliciosas. Usuários que tem suas máquinas infectadas raramente sabem ou conseguem detectar o malware.

O que faz o spam ser lucrativo


O spam é uma atividade criminosa muito lucrativa atualmente, na casa dos milhões de dólares por campanha. De acordo com uma pesquisa da Universidade de Santa Barbara da Califórnia (UCSB), o sucesso do spam é devido a diversos fatores relacionados aos vendedores desses serviços de botnet, entre eles suporte 24 horas, manual de instruções sobre o uso e configuração da rede zumbi, listas de email de demonstração, números, equações e gráficos para auxiliar no uso das campanhas e outros. Pode-se notar que hoje em dia spam é um mercado muito poderoso mesmo sendo ilegal e o nível de atenção e desenvolvimento da operação como um todo é o que a mantém ativa a tantos anos, sempre evoluindo.

quarta-feira, 25 de junho de 2014

E ai pessoal!

Estou dando uma passada rápida por aqui para compartilhar um achado que passou pelo meu RSS. Trata-se de uma série de posts de boas práticas e cuidados na internet.

Na minha opinião todos deveriam ver isso, até aquela sua tia chata que pede pra você formatar o PC pra ela. Este conteúdo deveria ser traduzido, virar cartilha e ser distribuído no Brasil todo.

Fiquem ai com a série.

Link do site.

quinta-feira, 5 de junho de 2014

Antes de ler esse post não esqueça da parte 1 e 2 aqui na página de guias!


msfconsole



Como já falamos anteriormente, o Metasploit Console, mais conhecido como msfconsole é a interface mais utilizada e conhecida por seus usuários. Vamos ver os principais comandos do msfconsole:

help: Informações de ajuda

use / back: Selecionar um módulo e sair dele, respectivamente

info / show: Obter informações do módulo

check: Testa se o alvo é vulnerável ao exploit selecionado sem executar o exploit no alvo.

exploit / run: Executar o módulo, normalmente utilizado o exploit para exploit e o run para todos os outros módulos.

connect: Similar ao telnet ou netcat.

banner: Muda o banner do Metasploit (imagem acima)

irb: interpretador ruby para testar scripts.

jobs: Módulos rodando em background.

load / unload: Carrega plugins.

resource ou flag -r: carrega instruções pré-prontas de um determinado arquivo de configuração.

set / unset: Seta valores aos parâmetros. Se estiver com um módulo selecionado seta apenas para o módulo, se não tiver nenhum módulo selecionado seta globalmente.

sessions: Interagir com sessões abertas.

search: Buscar por nome, expressão, tipo, cve, etc.

quinta-feira, 15 de maio de 2014

Olá! Vamos seguir em frente com a série. Se você não viu o primeiro post da série clique aqui!


Arquitetura e Sistema de Arquivos


A arquitetura e organização do Metasploit é um tanto complexa, o framework em si é bem grande. Você não necessariamente precisa conhecer o Metasploit a fundo para usar ele, somente para um caso de desenvolvimento, mas sempre é bom saber como as coisas funcionam.


Pode-se ver na imagem acima que os módulos são chamados pela base do sistema (MSF Base), enviados para o core para processamento (MSF Core). Junto ao core temos a chamada as ferramentas de desenvolvimento e bibliotecas. Entre essas ferramentas e bibliotecas temos por exemplo, sockets, protocolos, XOR, Base64 e muitos outros.

O MFS Base também abre para as interfaces pro usuário. São elas Console, CLI, Web e GUI.

A interface Console é a que conhecemos e usamos normalmente, linha de comando, iniciada pelo comando msfconsole. A interface CLI é a que chamamos e executamos diretamente com todos os parâmetros, a que usamos para automatizar algum script, como por exemplo, os comandos msfcli, msfpayload e msfencode.

As interfaces Web e GUI, foram oficialmente descontinuadas pela equipe do Metasploit, mas a GUI teve um sucessor independente, a ferramenta chamada Armitage

O sistema de arquivos do Metasploit é divido nos seguintes diretórios: lib, data, tools, modules, plugins, scripts e external.

lib: A base de códigos do Metasploit Framework
data: Arquivos editáveis
tools: utilitários
modules: a base de módulos
plugins: plugins que podem ser carregados
scripts: Meterpreter e outros scripts
external: Códigos e bibliotecas de terceiros.


Vou me focar aqui na interface mais utilizada, a console. Caso tenha interesse cheque também o Armitage. Em alguns exemplos pode ser que seja necessário o uso da interface CLI, mas normalmente usarei a console mesmo.

sexta-feira, 9 de maio de 2014

E ai galera!

Estou fazendo uma série de posts sobre segurança da informação em geral, algo bem prático e de simples entendimento. Você pode acompanhar post a post aqui e no final deles irei disponibilizar um paper gigante (quase um livro) e bem estruturado com todo o conteúdo. Basicamente o conteúdo destes posts serão exatamente o mesmo conteúdo que alguns sites não muito legais por ai vem cobrando para ensinar. Vou começar com metasploit. Se você não conhece absolutamente nada sobre Segurança da Informação de uma olhada no guia que postei a algum tempo atrás. Pela busca usando a tag "indicação" você também pode encontrar diversas indicações de livros, papers, vídeos, palestras e etc para aprender mais.

E vamos a ele!

Introdução

O Metasploit é uma das soluções mais completas para teste de invasão que temos hoje em dia, indo desde o básico de levantamento de informações até exploração de vulnerabilidades em dispositivos remotos e servidores. Outro atrativo dessa solução é  o fato de ser Open Source e gratuita, até um certo ponto.


Hoje em dia, o Metasploit é mantido pela comunidade e pela Rapid7 (http://www.rapid7.com/) e conta com quatro versões: uma delas gratuita e livre, que é a que já vem pré-instalada e configurada nas mais diversas distribuições Linux para Pentest, outra gratuita mas limitada e as outras duas versões comerciais.

Versões

Metasploit Pro: Uma das versões comerciais do Metasploit. Como a própria Rapid7 coloca, é uma versão para profissionais de segurança, pentesters. Tem muita coisa ali que ajuda e agiliza o processo todo de um pentest. Desde o básico de automação de scans até suporte com módulos de engenharia social.

Metasploit Express: A outra versão comercial. Esta é para os profissionais de TI, com as varreduras um pouco mais simples e ataques mais comuns. Normalmente utilizada em auditorias internas feitas pela própria equipe de TI da empresa.

Metasploit Framework: A versão open source. Denominada pela empresa como versão para pesquisadores de segurança e desenvolvedores. Seu principal objetivo é o auxílio a criação e testes de exploits. Esta versão está sendo usada para os mais diversos fins, principalmente por Hackers, Crackers e iniciantes na área. Para voltar a ser o que foi pensado, a Rapid7 está cortando funcionalidades desta versão, para que ela volte a ser apenas para pesquisadores e desenvolvedores. Para que o resto do público não se sinta obrigado a comprar a licença (relativamente cara) das outras versões, foi criada a versão a seguir.

Metasploit Community: Sendo esta versão gratuita e com interface semelhante as comerciais, voltada para todo aquele público que não se encaixa nas outras, sendo eles pequenas empresas, estudantes e por ai vai. 

Vamos nos focar aqui na versão Framework, já que é a mais usada ainda e acessível.


Conceitos e termos básicos

Antes de seguir em frente vamos a alguns conceitos.

Exploit: Um exploit é um pedaço de código que prova um conceito de uma vulnerabilidade. É um código que gatilha uma falha de segurança.

Payload: É um código arbitrário que vai executar no alvo com o objetivo de usar a vulnerabilidade explorada pelo exploit para obter algum tipo de dado, seja um arquivo de senhas ou uma conexão direta com o alvo.

Módulo: Módulos são exploits prontos do Metasploit, você pode customizar os módulos com os payloads, nops e codificações para atingir seu objetivo. Algumas outros tipos de códigos entram na definição de módulos, veremos eles logo a frente.

Sabendo disso, vamos seguir em frente. Tudo que você pode encontrar dentro do Metasploit é testado e reescrito, isso quer dizer que, diferente de um exploit que você ache na internet, todos os módulos do Metasploit fazem realmente o que dizem fazer, nada de malicioso, como um malware ou mandar informações para um terceiro.

A organização do Metasploit é bem simples, ele é subdividido em 5 áreas, Payloads, Exploits, Encoders, Nops e Auxiliares.

Payloads como comentado acima são os códigos que vão rodar no alvo com o objetivo de obter algo. Exploits também comentados acima, são os códigos que ativam as vulnerabilidades. Encoders são módulos que basicamente codificam seu exploit e payload para evitar a detecção por um Firewall, IDS, IPS e etc. Nops são geradores de códigos nulos, por exemplo em um ataque de Buffer Overflow, é necessário ir escalando a pilha para poder executar seus códigos. Uma instrução no local errado pode fazer a aplicação atacada encerrar ou até causar problemas no sistema. Para isso que servem os Nops, preencher essa área com instruções nulas para evitar problemas. E por último mas não menos importante temos os módulos auxiliares, estes são similares aos exploits mas não necessitam de payload, e não necessariamente “invadem” o alvo. Nessa categoria que você encontra módulos de bruteforce, scans, falhas de disclosure, entre outros.

O Metasploit tem centenas de módulos de todos os tipos, mas nada impede que possa ser criado um módulo específico para um ataque específico, toda a framework funciona em cima de ruby.


quinta-feira, 8 de maio de 2014

Você sabia que o mercado de cheats em games, como por exemplo aim bots, wall hacks, XP hacks e outros, rende milhões de dólares?

Eu já tinha uma noção, sou gamer e em todo o jogo me deparo com isso e sei que muita coisa é paga para usar.

Achei este artigo muito interessante explicando mais a fundo como tudo isso funciona. Está em inglês, não traduzi porque é beem grande, mas recomendo muito a leitura. Se não consegue ler em inglês use o tradutor do Google para traduzir para português.

Link do artigo: PCGamer

terça-feira, 18 de fevereiro de 2014

Fala galera, quanto tempo sem aparecer por aqui..
Então, durante alguns meses, fiz levantamentos entre aplicativos para o sistema Android, testei o desempenho de cada um e suas atualizações mensais, alguns deixaram muito desejar, e outros, com toda a certeza se destacaram em suas funções. Vamos lá!

Navegador Web:

UC Browser

Foi o navegador gratuito que mais se destacou, tem uma interface otima e agradavel. Por ele, é possivel assim videos em Stream ou Baixá-los, o mesmo se aplica a músicas.
Uma grande função deste navegador é a opção de se adaptar a diferentes tipos de conexão, em sua configuração, é possivel alterar como você quer carregar a pagina web, de forma leve, celular ou desktop, fica a seu critério e a velocidade de sua conexão!

Confira as principais características:
1. AutoPager
Experimente ter a próxima página automaticamente carregada quando você chegar no final da página em uso. Funciona com a Versão Leve em sites como Google, Twitter, Facebook e muito mais.
2. Modo Rápido II
Um novo Modo Rápido que busca automaticamente a versão mais adequada para as páginas de acordo com a sua conexão de rede.
3. Download mais veloz
Melhora a eficiência da sua internet para dobrar a velocidade dos downloads.
4. Ainda mais rápido
Além da melhoria de desempenho, essa nova versão vem com mais velocidade e estabilidade.
5. Centro de aplicativos da web
Encontre os melhores aplicativos da web de um jeito fácil e sem se preocupar constantemente com o download, instalação e atualização.
6. Visualizador de imagem
Todas as imagens da página atual são colocadas em um mesmo local para facilitar a visualização.
7. UC Desktop Widget
Com esse complemento, você pode criar um widget na sua tela inicial e acessar facilmente os serviços do UC Browser.
8. Mais fontes e idiomas
Novas fontes e maior suporte a idiomas como Tâmil, Telugu, Malaiala e muito mais.
9. Melhorias gerais
Aperfeiçoamento da digitação, ajuste da fonte, movimento da tela, etc.


Link de Download: https://play.google.com/store/apps/details?id=com.UCMobile.intl&hl=pt_BR
Site oficial: http://www.ucweb.com/

Otimizador de sistema

Clean Master

Sem dúvida alguma, esse é o melhor aplicativo para otimização de um sistema. Suas principais funções, são baseadas em Limpeza de cache do sistema android, Limpeza de memoria ram do seu dispositivo, backup de aplicativos, desinstalação de aplicativos com remoção completa de logs entre outras. Com certeza esse é melhor aplicativo de otimização.

Confira mais sobre o Clean Master!

Link de Download: https://play.google.com/store/apps/details?id=com.cleanmaster.mguard&hl=pt_BR
Site oficial: http://www.ksmobile.com/


Firewal

Android Firewal

Vejamos, um firewal baseado no codigo fonte do IPTables(Firewal do Linux), e com interface de facil utilização, o que isso seria? Lógico que uma grande arma de defesa para seu dispositivo android! Vale ressaltar que, todo e qualquer aplicativo android mesmo que por meio indiscreto, acaba se conectando a internet, e esse firewal para android acaba sendo nosso grande herói nesse momento, pois com ele, é  possivel bloquear tais conexões de seus aplicativos com a internet, assim formando um escudo entre suas informações e a internet, além de não permitir um congestionamento na sua conexão. Vale lembrar que esse aplicativo está totalmente em inglês, porém, sua interface é de fácil entendimento.

Suas funções e caracteristicas;

Holo UI for all users.
Navigation Drawer.
Help section that is actually helpful now.
Profiles - up to 6 which are created from your exported rules files.
Ability to export and import rules to files. These store ALL settings for fine-grained control of your profiles.
Tasker/Locale Support.
Roaming Support.
VPN Support.
LAN Support.
SDCard Support for users who have a lot of apps installed on their SDCard.
Tethering Support.
Multiple languages and the ability to choose your language.
x86 Support for users with Intel based Android devices.
INPUT Chain support for Android 4.x. Older kernels do not support owner matching so INPUT chains will not work on older Android versions.
Multi-user support for Tablets.
Ability to log both rejected and accepted packets.
Send error reports to developer.
Application shortcuts for your homescreen. These shortcuts are for quickly enabling/disabling the firewall and swapping profiles.
Llama and Macrodroid support via the shortcuts.


Link de download: https://play.google.com/store/apps/details?id=com.jtschohl.androidfirewall&hl=pt_BR


Anti Virus

CM Security

Anti virus da mesma empresa do clean master, otimo reparador de vulnerabilidades, otimo scanner de malware entre outros servers maliciosos, rapido, leve e eficaz, com certeza está entre os melhores anti virus para android até hoje.

Destaques do CM (Cleanmaster):

Anti-vírus Nº1: Alimentado por núcleos locais e em nuvem em modo duplo com 16 anos de história, que é repetidamente classificado como primeiro pelo AV-TEST e AV-Comparatives. Detecta vírus, trojans, vulnerabilidades, adwares e spywares de modo abrangente em dispositivos móveis Android e em tablets.

Proteção de múltipla camada: Faça uma varredura em novos aplicativos, atualizações, sistemas de arquivo e páginas de internet para garantir a segurança de seu dispositivo em tempo real

Rápido e conveniente: A varredura leva apenas 5 segundos, 500% mais rápido do que os outros aplicativos anti-vírus pagos. CM (Cleanmaster) Security também é leve, ocupando metade da memória em comparação com seus concorrentes e o tamanho do arquivo APK é de apenas 2,1MB. Integrado com as características de limpeza e melhoria mais bem classificadas, seu dispositivo pode ficar mais leve, rápido e mais seguro.

Características do CM (Cleanmaster) Security:

► VERIFICAÇÃO DE SISTEMA E APLICATIVOS
Faça varreduras em aplicativos pré-instalados/instalados e no sistema de arquivos para manter seu celular protegido de vírus, trojan, vulnerabilidades, adware e spywayre
► VERIFICAÇÃO DE CARTÃO SD
Faça varreduras detalhadas de cartões SD externos para detectar e excluir ameaças
► VERIFICAÇÃO NA INSTALAÇÃO
Proteja seu dispositivo com varreduras em tempo real de novos aplicativos e atualizações
► VERIFICAÇÃO AGENDADA
As varreduras automáticas de rotina permitem uma segurança passiva
► LIMPEZA DE ARQUIVOS DESNECESSÁRIOS
O removedor de arquivos desnecessários mais bem classificado, capaz de limpar mais de 50% mais em comparação com os concorrentes.
► BLOQUEIO DE LIGAÇÕES
Bloqueie chamadas não desejadas conforme sua necessidade.
► NAVEGAÇÃO SEGURA
Bloqueie URLs maliciosas e se proteja contra páginas de phising com notificações de aviso instantâneos.
 

Link de Download: https://play.google.com/store/apps/details?id=com.cleanmaster.security&hl=pt-br 
Site oficial: http://www.ksmobile.com/

Gostou desse artigo? Veja esse e demais artigos em nosso fórum, visite;

http://forum.brutalsecurity.com.br/


Cadastre-se é de graça :D

quinta-feira, 3 de outubro de 2013

Olá Pessoal, vou postar aqui um artigo muito legal que encontrei sobre Hackers em especial Rodrigo Rubira Branco!

Bandidos não. Os hackers encontraram um nicho na economia legal: ajudam empresas e a polícia a combater o crime na Internet. E faturam com isso


Às 3 da manhã, a única luz acesa da casa é a do monitor. Os pais e a irmã de Rodrigo Rubira Branco já dormem há algumas horas. O computador é só dele agora. Na vida do rapaz, a máquina sempre teve um papel fundamental: ele escolheu o colégio técnico porque lá havia melhor conexão de internet e começou a trabalhar cedo – dando aulas num curso de informática, claro –, para ganhar dinheiro e investir em equipamento. Comprou seu primeiro computador aos 16 anos.
Como vários garotos, Rodrigo foi um hacker. E, antes que você torça o nariz para o garoto, vamos tentar desmistificar essa palavra. Hacker é aquele cara que manja muito de códigos de programação e sabe resolver qualquer problema que aparecer no computador. Tal conhecimento pode ser usado para o bem ou para o mal. O hacker que opta por servir o lado negro da força tem nome específico: cracker. Esse fulano invade sistemas, sabota e rouba dados. Não é o caso de Rodrigo, que se coloca no time dos hackers éticos: “É preciso seguir a lei, não importa o que você faça”.
Não só existem hackers benignos como eles têm uma grande importância para o aprimoramento da informática. “Eles desenvolveram e desenvolvem tecnologias e técnicas importantes, apontam falhas de segurança, erros de programação dos computadores”, afirma Adriano Cansian, coordenador do Laboratório de Pesquisas de Segurança da Unesp em Ribeirão Preto.
Profissão: hacker
Rodrigo acabou estudando sistemas de informação em uma faculdade pequena em Pederneiras, interior de São Paulo, mas sua aposta foi sempre os estudos paralelos. Ligado em congressos e discussões online, não demorou muito para ser descoberto. Aos 23 anos, ele trabalha em uma grande empresa multinacional – cujo nome nós não podemos mencionar aqui, mas que você com certeza conhece. Assim como ele, outros tantos hackers são os maiores especialistas em suas áreas. E as grandes empresas precisam deles.
Domingo Montanaro, que divide o apartamento com Rodrigo, sempre teve esse objetivo em mente. “Desde o começo eu era fascinado em trabalhar para o governo, grandes corporações – esse negócio de serviço secreto que aparece nos filmes”, diz. “Eu queria resolver os problemas. E também percebi que o mercado precisava dessa mão-de-obra, e que eu podia ganhar dinheiro com isso.” Ele começou fazendo uma série de trabalhos independentes, montando sites, criando portais, planejando a infra-estrutura de provedores. Um dia, fez um trabalho bem-feito de segurança para um grande banco (cujo nome – surpresa! – não podemos mencionar), e acabou contratado. Coordena uma equipe que apura fraudes, faz testes de intrusão, avalia a segurança de sistemas e faz todo tipo de investigação eletrônica.
A maioria, entretanto, não pensa tanto no futuro. Um dos hackers mais famosos do mundo, o americano Kevin Mitnick, começou do jeito mais inconseqüente possível. “Meu único objetivo, quando era um hacker, era ser o melhor hacker que existia”, conta. “Se eu roubei softwares, não foi porque eu queria vendê-los.” A gente entende, mas com a polícia não colou. Pego em 1995, Kevin passou 8 meses na solitária e ainda ficou proibido de usar qualquer computador por mais 3 anos.
Depois de cumprida a condicional, ele montou uma empresa de segurança, a Mitnick Security. Sem medo de ser feliz, Kevin não titubeou em pôr o próprio nome na empresa. “Os clientes conhecem meu passado e eles me procuram exatamente porque sabem que eu sou capaz de pensar como um hacker, porque eu já fui um.” Ele é consciente de que algumas empresas não aceitam comprar o seu serviço porque desaprovam os seus erros no passado, mas ele acha que o seu nome está mais ligado à especialização do que ao crime. “É óbvio que eu fiz coisas bem idiotas, mas agora atuo no outro lado – e não quero voltar para a cadeia”, afirma.
Mas será que dá pra confiar num ex-cracker? Adriano Cansian é cético. “Minha opinião particular é: não. Nós temos acesso a relatórios do FBI sobre perfis de criminosos, e esses estudos apontam que a reincidência de crimes eletrônicos é muito grande”, diz o pesquisador. “É o segundo maior índice de reincidência, só perde para pedofilia.” Ele faz o paralelo de contratar um profissional com antecedentes de roubo pra tomar conta de um cofre. O advogado criminalista Alvino Augusto de Sá discorda: “Acredito que é exatamente por não conseguir novos empregos que os criminosos podem voltar para o crime”.
Mitnick, acusam seus antagonistas, se promoveu em cima dos crimes que cometeu. A contratação de seu serviço funcionaria como uma espécie de recompensa por ter agido fora da lei. Para o advogado Renato Ópice Blum, um ex-cracker pode até ser contratado para funções educativas, mas não para lidar justamente com um setor que costumava prejudicar. “Não podemos prestigiar um sujeito que praticou um crime. O conhecimento dele foi obtido de forma ilícita, invadindo sistemas e a privacidade de pessoas, partindo para o lado antiético”, afirma. Mitnick, é claro, tem outra opinião. “Eu não estou faturando por causa do meu crime, estou faturando porque eu tenho muito conhecimento de segurança”, diz.
Se quiser ganhar dinheiro com um trabalho honesto, o cracker precisa ir além da obsessão por achar falhas no sistema alheio. “É importante estar preocupado em defender, não só em atacar, destruir”, explica Maurício Fiss, um dos coordenadores da ICTS, uma multinacional israelense de segurança de informação que presta serviços para várias grandes empresas (cujo nome não podemos revelar...). Há 10 anos no Brasil, a ICTS utiliza mão-de-obra hacker tanto local, do Brasil, quanto de Israel, fazendo testes de invasão.
Companhias industriais, de telecomunicações, bancos de investimentos, empresas de serviço e outras consultorias buscam a ICTS para testar a segurança de seus sistemas. “Fazemos testes de invasão até o limite seguro, para não interromper os trabalhos da empresa. Nós invadimos, encontramos as brechas, chegamos até a acessar informações, ver e-mails, mas não sabotamos”, diz Maurício. Eles então mostram ao cliente informações que só poderiam ser obtidas com o acesso ao sistema, para provar que há brechas na segurança – e se oferecem para eliminá-las. “Algumas vezes fazemos ataques durante uma palestra. Levamos hackers para mostrar como um ataque pode ser feito – e como pode ser fácil”, conta Maurício.
Hackers policiais
Bandidos também usam computadores – e deixam rastros digitais difíceis de ser recuperados por leigos. Assim, a ajuda de um especialista ­– como Rodrigo Branco, o rapaz que estudou para ser hacker – é bem-vinda na polícia. Ele já usou os conhecimentos de informática para dar cabo de um seqüestro. Com uma autorização judicial em mãos, examinou os e-mails trocados em um computador achado num cativeiro na região de Bauru. Neles, encontrou informações a respeito de um outro cativeiro, em que uma moça ainda estava presa. “Vários países estão investindo muito dinheiro na investigação de falhas de segurança, mas o Brasil tem pouco disso. A PF [Polícia Federal] e a Abin [Agência Brasileira de Inteligência] têm equipes de hackers, mas é pouco”, lamenta.
Por aqui, o detetive hacker que ganhou maior notoriedade foi Wanderley de Abreu Jr., que trabalhou com o Ministério Público do Rio de Janeiro para desmontar uma rede de pedofilia. Centenas de pessoas foram presas. Ainda assim, a pedofilia não é o maior campo de trabalho em investigações digitais. Segundo o advogado Renato Ópice Blum, há incidência ainda maior de crimes contra a honra – calúnia, injúria e difamação – e de fraudes. “Também ocorrem crimes de concorrência desleal, como roubo de segredos empresariais, e ameaças de extorsão: alguém invade e se apropria de dados e só os devolve mediante pagamento”, diz o advogado. Domingo Montanaro já investigou vários tipos de delitos eletrônicos, tanto em empresas privadas como em repartições públicas. Ele entrega o jogo: “Nos 3 anos em que eu trabalhei nessa área, vi tráfico de drogas, espionagem industrial e até marido que traía a mulher em sala de bate-papo”.
É muito difícil treinar uma equipe do zero para cuidar da segurança de sistemas. A mão-de-obra hacker, interessada e especializada, alia a juventude à experiência. É difícil competir. Contra os hackers, conta muitos pontos o preconceito. “Há um risco em divulgar que esse tipo de profissional é contratado para um banco, por exemplo. Os clientes podem perder a confiança”, lembra o pesquisador Marcelo Lau, da Escola Politécnica da USP. Assim fica fácil de entender por que não podemos divulgar onde trabalham Rodrigo e Domingo, ou para que empresas a ICTS presta serviço.
Grande parte dessa confusão se deve ao fato de não estar muito claro na cabeça das pessoas o conceito de crime virtual, qual é o limite do aceitável. Uma saída para essa falta de clareza é investir na formação de jovens hackers, para que sejam melhor estabelecidos os limites éticos da atividade. O professor Adriano Cansian cita a iniciativa do projeto HackerTeen (www.hackerteen.com.br), de São Paulo. Além de promover cursos para jovens de 12 a 17 anos, o projeto tenta informar melhor os pais sobre as possibilidades profissionais de quem é vidrado em informática.
Enquanto a formação dos hackers é feita na base da experimentação, o negócio é ter cuidado – mas não só com eles. “Qualquer pessoa pode cometer um crime”, diz Marcelo. Para proteger seus sistemas de informação, as empresas devem manter os olhos abertos e seguir o conselho do pesquisador da Poli: “Quando bits e bytes representam dinheiro, isso pode ser uma tentação para alguém com má índole”.

O currículo de um hacker

Formação:
Faculdade e cursos de informática não contam tantos pontos na hora da contratação se o hacker já tiver experiência nos teclados, mas depois de empregado as empresas cobram que ele continue os estudos em cursos mais formais.
Experiências anteriores:
Além das noites em claro fuçando em programas, são muito valorizados os hackers que abrem as próprias empresas ainda jovens. Publicar estudos sobre programas na internet e participar de conferências dá bastante visibilidade. Colaborar com investigações policiais sobre crimes virtuais também abre portas.
Oportunidades de emprego:
Existem vagas para avaliação de segurança (os testes de invasão simulada que mos­tram as fragilidades dos sistemas para as empresas), investigação de fraudes virtuais, além de pesquisa e desenvol­vimento de novas táticas para barrar as invasões. Hackers com mais tempo de carreira já podem coordenar equipes.
Empresas:
Os futuros patrões estão no setor de informática (principalmente as empresas terceirizadas, que oferecem serviços de segurança de informação e testes de invasão às grandes companhias), nas empresas de telecomunicações e nos bancos.
Salário:
Nas companhias que valorizam esse profissional, um analista júnior, em começo de carreira, ganha entre R$ 2 500 e R$ 3 mil. Hackers com grande experiência podem chegar ao patamar de R$ 8 500 em poucos anos.

Dicionário hacker

White hat:
O hacker de “chapéu branco” é o hacker ético, que só procura as falhas nos sistemas sem infringir a lei, seja por curiosidade, seja contratado por empresas para testar a segurança dos bloqueios contra invasores.
Gray hat:
O “chapéu cinza” vive numa fronteira nebulosa. Apesar de ter boas intenções, às vezes pode invadir sistemas sem autorização, o que é ilegal. Para eles, desde que um crime “de verdade” não ocorra (como vandalismo, roubo ou fraude), tudo é válido.
Black hat:
O chapéu negro que oculta o “cracker”, o hacker que usa seus conhecimentos para invadir, destruir e roubar. Não estão preocupados com limites legais nem com a pesquisa sobre programação: o importante é invadir, não importa como.
Newbie:
Novato, inexperiente, o jovem aprendiz de hacker.
Script kiddie:
O “garoto dos scripts” é um cracker inexperiente que não possui grandes conhecimentos de informática e, por isso, depende de programas alheios para encontrar brechas nas suas invasões. De modo geral, tem pouco interesse em tecnologia e está mais preocupado em ganhos materiais (roubo, fraude) ou fama (vandalismo).
Phreaker:
Hacker especialista em telecomunicações.

terça-feira, 10 de setembro de 2013


Videogames-rejuvenescem-cérebros-mais-velhos-discovery-noticias-

Envelhecer muitas vezes significa perder a acuidade mental. Alguns estudos indicam que é possível “exercitar” o cérebro para manter a mente afiada, mas é difícil definir o que de fato acontece e qual seu efeito real.

Uma equipe da Universidade da Califórnia, em São Francisco, liderada por Adam Gazzaley , professor-associado de neurologia, fisiologia e psiquiatria, abordou o problema utilizando um videogame. Eles testaram um grupo de adultos idosos com um game de corridas 3D, em que deveriam apertar um botão quando vissem uma placa específica. Os pesquisadores descobriram que o jogo, de fato, aumentava a capacidade cerebral de realizar tarefas simultaneamente.

O game era relativamente simples: o jogador dirige um carro em uma estrada usando um joystick para controlar seus movimentos. Quando uma placa específica aparecia, como um octógono vermelho ou uma placa de pare, os participantes deveriam apertar um botão. Quando outros objetos surgiram na tela, não deveriam fazer nada, e se apertassem o botão na placa errada, perdiam pontos.

Os pesquisadores analisaram o desempenho de um grupo de 16 pessoas, com idades entre 60 e 85 anos. Eles descobriram que apenas 12 horas de treinamento, ao longo de um mês, melhoraram drasticamente a capacidade dos indivíduos de escolher as placas corretas. Algumas pessoas se saíram melhor que jovens de 20 anos que jogaram pela primeira vez.

Para ter certeza de que o jogo era o responsável pelo aumento de desempenho, a equipe testou outros dois grupos de pessoas idosas. Um deles jogou um jogo em que só precisavam dirigir ou escolher as placas, enquanto outro não jogou nada. Nenhum dos dois grupos apresentou qualquer melhora na capacidade mental.

Uma descoberta interessante foi que o aumento da capacidade de jogar videogame também incluía outras habilidades cognitivas, como o reforço da memória operacional e a capacidade de detectar um objeto em um cenário enfadonho. Os benefícios duraram seis meses. Além disso, houve alterações significativas no cérebro dos jogadores, com mais e melhores ligações entre as diferentes regiões cerebrais.

Tudo isso confere alguma credibilidade à ideia de “exercício mental”, tanto que Gazzaley afirmou em uma coletiva que espera que este tipo de jogo se torne um recurso terapêutico. Os resultados foram publicados na última edição da revista Nature.

Por Jesse Emspak

Créditos: Discovery Brasil

quarta-feira, 28 de agosto de 2013

Sabe qual a parcela da população com acesso à Internet? 2,4 bilhões de pessoas , de acordo com estudo feito no final de junho de 2012.

Isso significa que tudo o que temos presenciado nos últimos tempos – de novas eras de informação, revoluções industriais e comerciais, regimes derrubados a construções de sociedades mais embasadas em ideias de (utópica) transparência – foi resultado de um modelo de comunicação restrito a apenas 33% da população mundial, estimada em 7,1 bilhões .

Isso também significa que testemunhamos apenas a ponta do iceberg da nossa era – talvez para o desgosto de tantos governos que se viram forçados a adaptar os seus status quo para continuarem vivos.
Se tantos inegáveis avanços já foram vistos quando apenas 33% dos mais privilegiados ficaram interconectados pela Web e pelas redes sociais, já imaginou em que patamar se estará quando todos os 7 bilhões de habitantes tiverem um poder de comunicação semelhante?

Quem dará o primeiro passo?

Dentre as respostas que costumam saltar quando essa pergunta é lançada, praticamente todas apontam para um futuro mais justo como decorrência de uma sociedade com poderes de comunicação que desconheçam fronteiras, limites ou mesmo regras impostas por alguma minoria.
Por outro lado, isso também coloca a humanidade em uma espécie de paradoxo sócio-político: afinal, quem poderia guiar o mundo para essa segunda fase da era da informação? Os governantes (eleitos ou não), que já perceberam que a informação ao alcance de todos os deixa em permanente estado de xeque?

Para que, exatamente, os governos mundiais efetivamente investirão na democratização plena da Internet?

Para se verem questionados, acuados e sob uma pressão que a História jamais testemunhou antes?
Se não aos governos, que já deram tantos sinais de ineficiência e alienação, caberia à própria população garantir o acesso às outras 5 bilhões de pessoas no mundo, realmente transformando a realidade em algo profundamente transparente? Sob esse aspecto, a sociedade em si (seja por meio de ONGs ou de iniciativas de poucos e honrados heróis) tem se mostrado ainda mais ineficiente do que o governo – em grande parte por depender do dinheiro dele para sequer existir.

O primeiro passo para essa nova fase já está sendo dado – só que justamente pelos considerados como grandes vilões do mundo: os “impérios capitalistas”. Sendo mais preciso: o Facebook e o Google.

A fase dois que já começou
Recentemente, o Facebook anunciou o Internet.org – uma espécie de consórcio capitaneado por ela e composto, dentre outros, por Samsung, Qualcomm, Ericsson e Opera Software, com o objetivo de garantir acesso à Web aos outros 5 bilhões de habitantes. Como? Por meio da produção de smartphones de baixíssimo custo e alta qualidade, atendendo assim às comunidades mais isoladas do mundo.
Por sua vez, o Google anunciou em junho o lançamento de uma rede de balões sobre o hemisfério sul que, movidos a energia solar, emanam sinais 3G de forma gratuita. A iniciativa, batizada de Project Loon, ainda está em fase de experimento, mas já é um indício mais do que claro de que a batalha entre Facebook e Google está se dando em territórios ainda inexplorados.

Obviamente, nenhuma das duas empresas tem como foco primário transformar o mundo em um lugar melhor – ideais utópicos, afinal, não costumam ter muito espaço em bolsas de valores.
Ambas estão em busca do óbvio: mais usuários para trafegar pelas suas redes e buscadores, somando mais audiência e mais retorno financeiro por meio de publicidade. Mas, no caminho dessa busca pouco altruísta, elas podem realmente acabar transformando o mundo em um lugar muito mais transparente e justo do que é hoje.

A boa notícia é que essa corrida evolucionária social já começou – e que, por não ter nenhum governo à frente, dificilmente terá interesses escusos para freá-la.
A má notícia é que interesses, por assim dizer, não precisam ser escusos para gerarem danos. Afinal, se duas empresas conseguirem, por meio de suas iniciativas, colocar 5 bilhões de novos usuários na Internet, elas terão um poder que nenhuma outra organização, pública ou privada, jamais sonhou em ter.

É hora de apertar os cintos
Se há uma coisa que a História já deixou claro é que heróis de hoje facilmente se transformam em vilões de amanhã aos olhos do público. Assim, caso essas (hoje) louváveis iniciativas vinguem, dificilmente Google e Facebook conseguirão sustentar por muito tempo uma posição de “líderes supremos”. Essa capacidade de governança mundial, no entanto, é algo ainda a ser debatido em outro momento.

Fato é que, seja qual for o desenrolar dessa nova fase, uma coisa pode-se ter como certa: o mundo em geral (e o mercado digital em particular) deve testemunhar, já em um futuro próximo, o crescimento mais explosivo que o próprio capitalismo já testemunhou.

Fonte: IDG Now
Subscribe to RSS Feed Follow me on Twitter!