quinta-feira, 31 de agosto de 2017

Ataques contra empresas usam serviços da Microsoft


Em 23/08/2017 no site Kaspersky Lab

Hackers estão se aproveitando de softwares legítimos. Diversas apresentações da conferência Black Hat 2017 demonstraram que as soluções empresariais da Microsoft podem ser bem úteis nas mãos de pessoas mal-intencionadas.
Empresas que usam clouds híbridas precisam adotar diferentes considerações de segurança das que usam sistemas de nuvem tradicionais. Contudo, na prática, as atualizações não são feitas rápido o suficiente, e o resultado são inúmeros pontos cegos que hackers podem explorar, como demonstrado em julho na conferência hacker a Black Hat 2017. Estudos mostraram o quanto a infraestrutura de negócios pode de fato ajudar cibercriminosos a se manter invisíveis para a maioria das soluções de segurança.
Assim que os hackers se infiltram na rede corporativa, sua maior dificuldade é encobrir a troca de dados entre máquinas infectadas. Essencialmente, seu objetivo é impelir máquinas infectadas a receberem comandos e transmitir informações roubadas sem alertar sistemas de detecção de invasores (sigla em inglês IDS) e sistemas de prevenção de perda de dados (DLP). Favorecendo esses ataques, os serviços da Microsoft às vezes não funcionam em zonas de restrição de segurança, de modo que os dados transmitidos por esses eles não são verificados profundamente.
Estudo desenvolvido por Ty Miller e Paul Kalinin, da Threat Intelligence, mostra como bots podem se comunicar por meio de serviços de diretórios ativos (AD em inglês) em uma rede corporativa. Pois todos os clientes – incluindo dispositivos móveis –  e a maioria dos servidores, tem de acessar o AD para autenticação, e seus servidores são o “ponto central de comunicação” -bem conveniente para gerenciar uma botnet. Além disso, os pesquisadores dizem que a integração do Azure AD com servidores de AD garantem acesso direto do lado de fora.
Como o AD pode auxiliar uma botnet a extrair dados? O conceito é bem simples. Por definição, cada cliente na rede pode atualizar suas informações – por exemplo, número do usuário e endereço de e-mail – no servidor AD. Os campos passíveis de escrita incluem alguns de alta capacidade que podem armazenar até 1 megabyte de dados. Outros usuários de AD podem ler toda essa informação, criando assim um canal de comunicação.

Pesquisadores recomendam monitoramento periódico de campos de AD por mudanças pouco usuais e ações que desabilitem a capacidade dos usuários de escrever na maioria dos campos.
Estudo realizado por Craig Dod, da Juniper Networks, esclarece outra técnica para extração de dados encobertos, utilizando o Office 365 services. A técnica mais popular emprega o OneDrive para Business, que quase 80% dos clientes usam. Hackers gostam disso porque o pessoal de TI normalmente confia nos servers da Microsoft, fornecendo conexões de alta velocidade e permitindo ignorar criptografia para uploads. Como resultado, a tarefa de um cibercriminoso é reduzida a conectar-se ao disco do OneDrive em um computador alvo por meio de credenciais de usuário fora da empresa. Nesse caso, copiar os dados para o OneDrive não se enquadra em evasão do perímetro, de modo que sistemas de segurança assumem que o disco conectado é de natureza corporativa. Esse disco pode ser conectado de forma invisível, diminuindo as chances de detecção. Por isso, o responsável pelo ataque precisa de duas outras ferramentas da Microsoft para isso, o Internet Explorer e o PowerShell. Como resultado, um bot pode copiar livremente dados para “seu próprio” disco, e o autor pode simplesmente baixá-los do OneDrive.

De acordo com Dods, para se proteger contra esse tipo de ataque, usuários precisam restringir o acesso para permitir apenas subdomínios do Office 365 que pertence à empresa. Executar uma inspeção do tráfego criptografado e analisar o comportamento dos conflitos do PowerShell em sandbox também é recomendado.
Leve em conta que essas ameaças são apenas hipotéticas. Para usar essas tecnologias, cibercriminosos entrar na infraestrutura da vítima, de alguma forma. Feito isso, sua atividade será indetectável não apenas para a maioria das soluções de segurança atualizadas, mas para observadores despreparados também. É por isso que faz sentido analisar a infraestrutura de TI em busca de vulnerabilidades periodicamente. Nós, por exemplos, temos diversos serviços especializadosem análises do que ocorre dentro da infraestrutura da perspectiva da segurança da informação – e, se necessário vasculhar o sistema por intrusões.

Over 711 Million Email Addresses Exposed From SpamBot Server

Swati Khandelwal
Em 29/08/2017 no site The Hacker News.

Resultado de imagem para e-mail

A massive database of 630 million email addresses used by a spambot to send large amounts of spam to has been published online in what appears to be one of the biggest data dumps of its kind.

A French security researcher, who uses online handle Benkow, has spotted the database on an "open and accessible" server containing a vast amount of email addresses, along with millions of SMTP credentials from around the world.

The database is hosted on the spambot server in Netherlands and is stored without any access controls, making the data publicly available for anyone to access without requiring any password.

According to a blog post published by Benkow, the spambot server, dubbed "Onliner Spambot," has been used to send out spams and spread a banking trojan called Ursnif to users since at least 2016.
Ursnif Banking Trojan is capable of stealing banking information from target computers including credit card data, and other personal information like login details and passwords from browsers and software.

"Indeed, to send spam, the attacker needs a huge list of SMTP credentials. To do so, there are only two options: create it or buy it," Benkow said. "And it's the same as for the IPs: the more SMTP servers he can find, the more he can distribute the campaign."

As the researcher explained, he found "a huge list of valid SMTP credentials"—around 80 millions—which is then used to send out spam emails to the remaining 630 million accounts via internet provider's mail servers, making them look legitimate that bypass anti-spam measures.

The list also contains many email addresses that appear to have been scraped and collected from other data breaches, such as LinkedIn, MySpace and Dropbox.

The researcher was able to identify a list of nearly 2 million email addresses to be originated from a Facebook phishing campaign.

The exposed database has been verified by Troy Hunt, added the leaked email addresses to his breach notification site.

At the time of writing, it is unclear who is behind the Onliner Spambot.

Users can check for their email addresses on the site and those affected are obviously advised to change their passwords (and keep a longer and stronger one this time) for your email accounts and enable two-factor authentication if you haven't yet.

Also, do the same for other online accounts if you are using same passwords on multiple sites.

Como acelerar projetos de Inteligência de Dados

Maurício Carvalho *
Publicada em 30 de agosto de 2017 no site CIO

datalake

Migrar da arquitetura fragmentada de dados departamentais para o modelo de repositório unificado é uma condição primária para que as empresas possam efetivamente implementar a inteligência de negócios. Esta migração, por sua vez, soluciona velhos gargalos do ambiente de dados, como a excessiva dependência de pessoas ou de processos artesanais, bem como a falta de governança e a baixa produtividade na geração de insights competitivos.

Entretanto, este passo fundamental em direção à centralização dos dados – cujo paradigma mais maduro do mercado é, sem dúvida, o modelo de Data Warehouse (DW) – enfrenta grandes desafios. Entre eles, os custos pesados de projeto, a exigência de alta massa crítica na fase de preparação e a grande dificuldade de definição prévia de um ROI, uma vez que o valor da informação a ser usada no DW só irá ser realmente conhecido após a prévia padronização e harmonização dos dados. E isto, por si só, já apresenta um custo considerável e muito difícil de mensurar no médio prazo.

À parte isto, um típico projeto de DW tem por objetivo a consolidação de massas de dados alimentadas via silos departamentais e previamente organizadas a partir de parâmetros relativamente estáveis.

Uma característica que se transforma em complicador, quando levamos em conta o atual cenário de dados massivos e velozes. Dados difíceis de domar, provenientes de múltiplos canais, e nos quais, presumivelmente, há enormes potenciais de informação para uso na inteligência de negócios em sua função primordial de maximizar as receitas e amplificar a produtividade.

É nesse novo contexto que desponta como solução o emprego de um modelo de estruturação de dados voltado para a rápida consolidação de um repositório central, mas sem os altos custos e prazos exigidos pela intensa preparação e minuciosa seleção dos dados heterogêneos que normalmente precedem a implantação do DW.

Em sintonia com a cultura de desenvolvimento ágil e com as novas exigências de time to market impostas pelo alto dinamismo dos negócios (agora cada vez mais atrelados ao fluxo vivo de dados), esse modelo tem sido designado genericamente no mercado como “plataforma modular de aceleração de projetos de estruturação das informações de negócio”.

Tal plataforma se consolida sobre uma série de pilares que cobrem todas as fases de um projeto consistente de integração de dados. Quais sejam: a de fase de ideação, o

planejamento, o desenvolvimento & homologação, a operação propriamente dita e a análise de resultados por parte dos cientistas da informação em conjunto com as áreas de negócios.

Entre os pilares do modelo destaca-se a adoção do paradigma de Data Lakes (DL) como a nova alternativa de repositório, esta sim, em consonância perfeita com a chamada cultura “agile”, uma vez que permite a agregação imediata de dados brutos (não estruturados) para a sua exploração de forma muito mais rápida, em comparação com a criação de um DW tradicional.

É claro que, em algum ponto, a implantação do DW, até mais que uma exigência, passará a ser consequência do nível de maturidade de dados alcançada ao longo do próprio processo de exploração dos dados baseada no uso dos Data Lakes.

Os Data Lakes, cabe lembrar, se diferenciam do DW por não exigir a limpeza e seleção minuciosa dos dados na fase de alimentação do repositório central, o que faz com que sejam perfeitos para colher dados, não só departamentais, mas também nas correntes de streaming de informação pulsantes que compõem o ambiente Big Data.

Com vistas à constituição de Data Lakes efetivamente produtivos, a estratégia aqui defendida deve oferecer as condições para a instauração e operação de um modelo de desenvolvimento baseado na atuação de células “Sprint”. Estas células são, em resumo, pequenos comitês estratégicos que irão definir o ciclo de integração e exploração dos dados com vistas aos objetivos de negócios.

Em conjunção com essas duas premissas, começa a ser empregado pelas empresas mais “ágeis” o conceito de “aceleração de projetos”, a que me referi ainda há pouco, e cujo caso de aplicação mais conhecido no Brasil foi apresentado pela Webmotors (que usou a plataforma 4Insights) no último congresso Gartner Summit Data & Analytics 2017, que ocorreu em junho último.

O modelo empregado na Webmotors dispõe das condições ideais para a atuação das células Sprint e aplica uma interface gráfica intuitiva, na qual é possível desenhar o modelo de dados analíticos e contemplar estes dados no aspecto multidimensional, de forma automática, gerando códigos e interagindo em todas as fases na construção e evolução de um DW/Data Lake.

Em outras palavras, o que temos aí é a capacidade prática de se conectar as funcionalidades analíticas diretamente na camada de dados. Ou seja, redundando na eliminação de grandes e difíceis gargalos que, normalmente, são encontrados no processo de ingestão de dados.

Um salto seguro e controlado que realiza, sem intervalos estanques, todas as tarefas de integração antes seccionadas em etapas, tais como aquisição, transferência e carga para a produção de DW/Data Lake.

Esta estrutura possui também um painel e repositório de data quality, através do qual os dados são dinamicamente validados, com base em regras e modelos construídos ao longo do processo de produção. E sendo que dados rejeitados são direcionados naturalmente para uma área de correção, de modo a acelerar o processo de qualidade e homologação, bem como para tornar a ingestão de dados tão veloz quanto o próprio fluxo atual de dados de negócios.

Empresas de vários nichos de negócios vêm adotando o modelo de plataforma de aceleração, da qual apenas alguns aspectos foram aqui apresentados. Em média, estas empresas reportam economias da ordem de 65% no binômio tempo/recursos, e a maioria conseguiu reduzir para poucas semanas alguns processos de integração que poderiam levar meses.

Em sua apresentação no Gartner, a equipe da Webmotors mostrou de que forma o emprego da metodologia Sprint, associada aos DW/Data Lakes e aos componentes de integração pré-formatados, permitiram a criação e ativação de uma estrutura de Big Data em apenas quatro semanas e com grande economia de custos.

Mostrou também de que maneira o emprego de inteligência analítica sobre dados não estruturados (e, em grande parte, sobre logs de conexões de clientes) ajudou o time de TI a criar uma fantástica fonte de novas receitas provenientes da análise de vínculos.

E de como tais análises de vínculos se transformam em insights de negócios, tanto para aferir e melhorar a jornada do cliente em sua estrutura de ecommerce, quanto para clientes da Webmotors em suas estratégias de vendas, crosselling, upselling e posicionamento de portfolio.

  

(*) Maurício Carvalho é diretor de Alianças da Plataforma 4Insights

Instalando o básico para programar em Java no Ubuntu e Linux Mint

Dionatan Simioni
Em 29/08/2017 no Blog Diolinux

Quando se está aprendendo uma linguagem nova de programação podem surgir muitas dúvidas, uma delas é: quais softwares eu devo instalar na meu computador? Aqui vamos apresentar a maneira mais simples (embora bastante completa e instalar o necessário para programar em Java) no Ubuntu. Antes que eu esqueça: quando eu falar em Java e JDK (mais a frente eu explico o que é), estou me referindo ao mesmo software.

Como montar um ambiente de programação Java no Ubuntu






Este material foi co-escrito com o nosso leitor Tiago Funk. Este conteúdo destina-se a programadores que utilizam Ubuntu, Linux Mint ou derivados.


Instalação do JDK


O JDK (Java Development Kit) é um software permite que aquilo que você programa em Java, que basicamente é apenas texto, seja traduzindo em linguagem de máquina e depois executado (não vou entrar em detalhes, mas o Java é executado dentro de uma máquina virtual). Além disso, ele contém bibliotecas (código já existentes da linguagem), assim você podem também utilizá-las e vários outros recursos importantes que ajudam a programar.


Para trabalhar com JDK no Ubuntu e no Linux Mint nós vamos instalá-lo via PPA para manter o Java sempre atualizado, porém, antes vamos verificar se você já não tem o programa instalado.

Abra o terminal e digite:

java -version

Com Java Instalado
Com Java instalado

Sem Java Instalado
Na imagem de cima o Java está instalado (versão 1.8 ou versão 8, como queiram chamar) e na de baixo ele não está instalado.
Assim, se o Java estiver instalado, você pode pular essa parte do tutorial, indo direto para as IDEs.
Para instalar o Java basta digitar os seguintes comandos para começar a instalação:

sudo add-apt-repository ppa:webupd8team/java

Repare que quando o PPA for adicionado, aparecerá uma mensagem dizendo que já existe a versão 9 do Java, mas esta em fase de desenvolvimento, ou seja, não é aconselhável a sua instalação para produção estável.

Aqui vamos instalar a versão 8, a versão mais recente e estável.
Voltando aos comandos:

sudo apt-get update
sudo apt-get install oracle-java8-installer


O ultimo comando baixa um scrip que automatizará a instalação do Java, por isso ele é tão pequeno (menos de 100 Kb), mas ele vai baixar e instalar o JDK que é bem maior, esse processo pode demorar bastante dependendo da velocidade da internet que você tem. 

Depois de instalado você teoricamente teria o necessário para começar a programar em Java, basta escrever o código no bloco de notas e compilar pelo terminal cada arquivo, simples não?  Simples sim, prático? Nem tanto. Por isso escolher uma IDE é um passo fundamental, a IDE é um software que escolhido com calma pode adiantar muita coisa que antes era feita manualmente.

Escolhendo uma IDE


Existe duas opções iniciais mais populares para quem programa em Java, o Eclipse e o Netbeans. Obviamente existem outras, mas isso fica a critério de programadores mais experientes usá-las e testá-las. Vou mostrar como instalá-las por possuir experiência com ambas e são os softwares oficiais da mesma empresa que cuida da linguagem Java. 

Eu particularmente recomendo o Eclipse para quem estiver começando a programar, por ser um pouco mas flexível, e na medida do tempo, com mais experiencia, utilize o Netbeans, é interessante saber utilizar ambas, cada uma traz seus pontos fortes e fracos, mas se você está começando a programar não se preocupe com eles.


Instalando o Eclipse


Acesse o site oficial e baixe a versão mais nova. (atualmente é o Eclipse Oxygen). Será feito o download de um arquivo de extensão tar.gz, descompacte-o e dentro da pasta que você acabou de descompactar execute o arquivo eclipse-inst.

Instalando o Eclipse

Será aberta uma janela de instalação, selecione Java ou Java EE (mais completa) quando for solicitado. Depois é só esperar a instalação pacientemente, ela demora um pouco.

Ao terminar a instalação será criado um uma pasta chamada 'eclipse' (tudo minúsculo) na sua pasta de usuário. Dentro desta pasta, entre no diretório eclipse-(nomeVersãoEclipse), depois entre na pasta "eclipse" novamente, e execute o "eclipse" (pode colar na área de trabalho para ser mais rápido o acesso).

ATENÇÂO: Esses passos foram feitos com o eclipse oxygen, versões anteriores e posteriores podem ser diferentes (mas nada que o Youtube e o Google não resolvam).

Binário do Eclipse

Ao iniciar o Eclipse será necessário indicar a pasta do WorkSpace, ou seja, aonde vão ficar guardados os projetos que você for criar, pode deixar o padrão ou escolher uma nova pasta (é legal você criar uma pasta apenas para guardá-los).

Workspace do Eclipse

Na barra de cima de interface, clique no primeiro item, depois escolha “Java”, “Java project”, depois dê um nome para o projeto. Vamos chamá-lo de “OlaMundo” (sem acentos ou caracteres especiais pois podem ocorrer erros).

Eclipse

No lado esquerdo, vai aparecer o seu projeto, clique duas vezes nele, vai se abrir uma pasta “src”, clique com o botão direito nela, depois “new” e “class”, e finalmente, dê um nome para esse arquivo.
Vai-se abrir o novo arquivo, digite o código da imagem que vem a seguir e clique no ícone verde para executar, logo abaixo vai surgir a mensagem “olá mundo”.

Instalação do NetBeans


Atenção: o Netbeans é um software que consome bastante recursos do computador, por conta disso é aconselhável ter um processador da geração mais nova e ter pelo menos 4 Gb de RAM, não que você não consiga utilizar o Netbeans em máquinas que não possuam esse hardware, mas compromete bastante (experiência própria). 


Na página você pode ver várias opções:
Download NetBeans

Note que é possível programar em várias linguagens no NetBeans, mas isso é história para outro dia. Escolha a segunda opção, a versão completa para o Java. Paciência para o download de quase 200 MB.

Com o download finalizado, vá na pasta que foi feito o download pelo terminal e digite:

sudo sh NomedoArquivo.sh

Quando abrir a janela apenas clique “próximo”, em todas as janelas, além de aceitar o termo de utilização, pode deixar tudo no padrão.Não se assuste com a demora para a instalação, isso é algo comum, além disso, não cancele a instalação, senão a instalação ficara comprometida e arrumar tudo depois vai dar muita dor de cabeça.

Para abrir o Netbeans, basta pesquisar no seu computador (Aperte a tecla do Windows) e abra-o, não assuste se demorar para abrir o programa, é bem comum também.

Para abrir um projeto e executá-lo é bem parecido com o que foi feito no Eclipse. 

Clique no segundo ícone e escolhe “Java” e “aplicação Java”, depois atribua um nome para o projeto. Repare que o Netbeans já criou o arquivo e muito do código para fazermos o teste.

Basta deixar igual à imagem e clicar na flecha verde.

NetBeans

Antes de terminarmos tenho mais duas coisas para comentar:

Primeira: Eclipse e Netbeans consomem muitos recursos da máquina, então não se assustem se eles demorem para executar uma ação.

Segunda: Se ficaram com dúvida de com utilizá-los, busquem, pesquisem, vejam tutoriais. Vai ser importante para quem está começando a programar aprender a pesquisar e felizmente existem muita documentação sobre estes softwares na internet.

That’s all folks, por hoje seria apenas isto. Até mais.

Nota do blog: Se você quiser participar do blog também e enviar uma matéria para que ela seja publicada aqui, entre em contato.

quarta-feira, 30 de agosto de 2017

Big Data: três pequenas formas de utilizar em seu negócio

Por Siro Canabarro*
Em 29/08/2017 no site Canaltech.

Resultado de imagem para big data

O Big Mac é um hambúrguer. Quando você vai até o McDonald's e pede por um Big Mac, você sabe exatamente o que é e o que quer fazer com ele: comê-lo.

Big Data não é tão simples assim. Você pode inclusive não estar tão seguro de que sabe o que Big Data realmente é. Você muito provavelmente não tem ideia do que fazer com isso.
Não se sinta mal. Se existe um consenso sobre big data é que realmente não há uma definição específica. Uma das melhores definições que eu pude ver é de Josh Dreller, Diretor de Pesquisa de Marketing da Kenshoo. Ele descreve big data simplesmente como: qualquer coisa grande o suficiente para não ser possível de lidar com uma planilha de Excel.
O escopo de dados sendo coletados pelas empresas hoje é de explodir qualquer mente. De acordo com a IBM, nós atualmente criamos 2.5 quintilhões de bytes em dados por ano. Não sabe o que é quintilhões? É isso: 2.500.000.000.000.000.000. A quantidade de dados que estamos gerando hoje é tão absurdamente grande que podemos dizer que 90% dos dados do mundo foram criados nos dois últimos anos.
Agora, o que raios vamos fazer com tudo isso de dados? Dados são ótimos, mas a maioria de nós não temos tempo de analisar um grande volume deles e ainda por cima realizarmos nossas tarefas diárias, temos negócios para gerenciar! Então o que nós realmente precisamos são de insights.
Por sorte, há ferramentas por aí que nos ajudam a tirar algum sentido desse monte de dados. Aqui estão três pequenas coisas que você pode fazer com Big Data.

Explorar tendências no Google

O Google é um dos gigantes nessa montanha de dados que criamos. A missão deles é organizar a informação do mundo e tornar ela universalmente acessível e utilizável. Todos nós podemos usar o Google para realizar buscas, mas o Google oferece outras ferramentas gratuitas que podem transformar dados em insights.
Digamos que eu esteja vendendo bananas. Eu posso acessar o Google Trends e explorar termos relacionados com uma palavra chave (nesse caso, "bananas"). O Google vai mergulhar em seu algoritmo de busca e me servir com os termos mais buscados que tenham a ver com bananas. Eu então descubro que no Leste Europeu e na Ásia quase não se busca por bananas. E que na Austrália se busca bastante por esse termo.
Então se eu for montar uma vendinha de bananas, eu iria para a Austrália, e não para a República Tcheca. Isso é um insight, por mais esdrúxulo que seja meu exemplo.

Monitorar mídias sociais

É muito útil saber o que as pessoas falam sobre sua marca, sobre seus concorrentes ou sobre outros termos relevantes para seu negócio. Cada um desses termos pode ser uma oportunidade para engajar, responder, resolver um problema, mostrar que sua marca se importa.
Vamos supor que você veja um tweet negativo sobre um produto seu. Se você perceber isso rapidamente, entrar em contato com a pessoa que está tendo problemas, e oferecer uma forma satisfatória de resolver esse problema, você com certeza irá transformar alguém que estava falando mal de sua marca em um ferrenho defensor, e irá ganhar muitos admiradores no processo.
Existem várias ferramentas que podem ser utilizadas para esse fim. Se você trabalha em uma empresa que tem recursos para esse tipo de ação, existe o Radian6, ou o Adobe Marketing Cloud. Se não, dá pra se virar bem com algumas ferramentas grátis, como a Social Mention.

Faça retargeting

Cookies estão em todo lugar. Sua "onipresença" mudou completamente como a grande maioria das publicidades online são feitas. Você pode oferecer um produto específico para uma pessoa que pesquisou anteriormente por um termo relacionado a esse produto. Se há maior sinal de interesse de compra do que esse, eu não conheço!
Pense no valor que isso tem para uma empresa de segmento específico, como a Netshoes, por exemplo. Mostrar o anúncio de um tênis de corrida para um usuário que estava anteriormente pesquisando por "tênis de corrida". Isso se chama retargeting ou remarketing. Faça ele!
Pronto, você já pode dizer que usa de big data para diferenciar-se no mercado. Claro que existem várias e várias outras formas de fazer big data, mas toda jornada começa com o primeiro passo. Dê o seu!
*Siro Canabarro, CMO da Gumga

Perícia forense avança em recuperação de dados e conversas do WhatsApp

Por José Milagre
Em 15/12/2016 no site CIO

whatsapp625

Como investigadores podem extrair informações úteis de uma das principais aplicações sociais existentes? O WhatsApp utiliza o protocolo XMPP para intercambiar dados pela Internet. Alguns trabalhos que se propõe a enfrentar o tema da perícia forense em WhatsApp são:
a) “Forensic Analysis of Instant Messenger Applications on Android Devices.” Mahajan, Aditya, M. S. Dahiya, and H. P. Sanghvi. (2013) O projeto aborda além de outros aspectos a extração de mensagens da memória RAM
b) WhatsApp Extract 2.0, desenvolvido por Francesco Picasso. Ferramenta que tem capacidade de desencriptar e organizar conteúdos de arquivos SQlite, organizando em um conteúdo HTML. A ferramenta explora O WhatsApp Database Encryption Project que detecta uma conhecida vulnerabilidade na implementação no Android da Criptografia AES
As aplicações Android são escritas em linguagem Java e o Android SDK compila o código em um arquivo .apk. Aplicações em android são normalmente instaladas em /data/data/nomedopacote. Quando um telefone com WhatsApp é ligado o processo “com.whatsapp” recebe um sinal para iniciar o acesso a mídia externa e os serviços de mensagem.
Todas as mensagens trocadas são armazenadas em msgstore.db e wa.db que são bancos de dados SQLite. A grande observação é que estes bancos são carregados na memória RAM do aparelho para maior performance. Este conteúdo pode persistir na RAM por mais tempo do que se imaginava.
Pesquisas demonstram que a menos que um processo de alta prioridade assuma a sobrescrição, a memória RAM funciona como uma verdadeira lixeira de dados e deve ser considerada em uma análise forense computacional envolvendo o comunicador WhatsApp.
O backup das conversas quando da troca de aparelho ou chip de dá no sdcard, mas via de regra o arquivo de mensagens fica criptografadas. O banco de dados de mensagens, em backup, é armazenado em /sdcard/WhatsApp/Databases/msgstore.db.crypt
O WhatsApp extract é um script em python que coletando um arquivo encriptado fornece um arquivo msgstore.plain.db como arquivo de saída, fazendo o mesmo com arquivos de mídia e fotos de perfil. Em alguns casos o backup dos dados do dispositivo para o SDCARD é feito diariamente e este conteúdo de mídia, ao contrário das mensagens, não é criptografado.
Interessante é que a tabela de mensagens msgstore.db possui campos “media_url”, “received_timestamp”, “send_timestamp”, “latitude” e “longitude”, o que nos sugere que a aplicação armazena dados de conexão dos remetentes, um identificador único para cada mídia que entra na rede do aplicativo (o que poderia ser usado para bloquear ou rastrear conteúdos ilícitos) e até coordenadas GPS de mensagens.
Para coleta de memória de dispositivos cujo o escopo é investigar conversações WhatsApp, utiliza-se o utilitário Lime, que geram um dump da RAM do dispositivo. Também é possível usar o Volatility ou Memfetch para analisar somente a memória pertinente ao processo WhatsApp.
Após a coleta da memória, pesquisadores propõem o uso de uma ferramenta denominada whatsappRamExtract (THAKUR, 2013) um bash script que cava evidências uteis de um binário de memória. O script pode recuperar números usados no equipamento e até mesmo troca de mensagens, embora qualquer coletador de strings da memória também possa recuperar estes dados. É possível buscar por padrões de strings “@s.whatsapp.net”, e os números telefônicos estarão antes da arroba.
A ferramenta Scalpel por sua vez pode ser usada para coletar medias deletadas mas que passaram pela memória. A conclusão é que atualmente, se um chat é limpo ou uma mensagem é deletada ela é imediatamente limpa da aplicação, mas não completamente limpa da memória.
Assim, as pesquisas atualmente focam suas atividades em mapear quais os dados são recuperados de um disco de um dispositivo sem e com root, da memória persistente, sem e com root, do SDCARD e de dados da memória volátil.
Quanto às tentativas de quebrar a criptografia dos arquivos de dados, alguns artigos informam que o arquivo de chave “key”, embora armazenado em userdata/data/сom.whatsapp/files/ somente em alguns casos poderia ser extraído de dispositivos “rootados”. Atualmente não existem descrições públicas revelando a quebra da criptografia sem o key file.
Para este problema, pesquisadores sugerem a engenharia reversa no WhatsApp para compreender o algoritimo de encriptação. Outros ainda recomendam o uso de mainframes ou nuvem para ataques de brutal force no arquivo criptográfico o que é apontado como uma solução muito cara e inviável (SKULKIN, 2015)
Assim, diante das limitações, a memória volátil passa a ser um artefato de total interesse, no estudo de padrões deixados pelo App na busca de dados excluídos pelos investigados. Percebe-se, como visto, que muitos conteúdos que integram arquivos de bancos de dados do aplicativo, armazenados na memória persistente, se limpos ou excluídos, podem ser encontrados na memória volátil, incluindo contados, mensagens, números telefônicos e em alguns casos, mídias, fotos e vídeos que foram enviados e recebidos.
Referências:
CORTJENS, D.; SPRUYT, A.; WIERINGA, F. C. WhatsApp Database Encryption Project Report. Acesso em 13. dez. 2016.
SKULKIN, Oleg. DECRYPTING ENCRYPTED WHATSAPP DATABASES WITHOUT THE KEY. Disponível em:<https://www.digitalforensicscorp.com/blog/decrypting-encrypted-whatsapp-databases-without-the-key/>. Acesso em 13. dez. 2016.
TAHAKUR, Neha S. Forensic Analysis of WhatsApp on Android Smartphones. Disponível em:< http://scholarworks.uno.edu/cgi/viewcontent.cgiarticle=2736&context=td> Acesso em 13.dez. 2016.
Zena Forensics “WhatsAppXtract 2012” [Online]. Disponível em: <http://code.google.com/p/hotoloti/downloads/list>. Acesso em 13. dez. 2016.
MAHAJAN, Aditya; DAHIYA, M. S.; SANGHVI, H. P. Forensic Analysis of Instant Messenger Applications on Android Devices. arXiv preprint arXiv:1304.4915 (2013). Acesso em 13. dez. 2016

Um guia para o desenvolvimento responsável da Inteligência Artificial



A crescente aplicação da Inteligência Artificial no mundo dos negócios torna essencial a adoção de princípios sólidos que assegurem a ética e a responsabilidade no uso dessas novas tecnologias. Quem faz o alerta é Kriti Sharma. Escolhida para integrar a lista dos "30 abaixo dos 30" da revista Forbes, a executiva de apenas 29 anos é vice-presidente global de Bots e Inteligência Artificial da Sage.
Com base nesse pensamento, a Sage estabeleceu cinco princípios, que passam a nortear toda atuação da companhia nesse segmento, agora reunidos no documento "A Ética do Código: 5 princípios éticos para desenvolver Inteligência Artificial para negócios". 
São eles:
1. IA deve refletir a diversidade de seus usuários
Precisamos criar inteligência artificial que seja diversa em sua origem. Como comunidade industrial e tecnológica, temos de desenvolver mecanismos efetivos para barrar o preconceito e qualquer sentimento adverso que possam ser assimilados pela IA, de forma a assegurar que ela não irá perpetuar estereótipos. A não ser que tenhamos equipes, bases de dados e design cuja natureza seja a diversidade, estamos sob risco de repetir a desigualdade que marcou revoluções passadas.
2. IA deve ser responsável, assim como seus usuários
Nós aprendemos que os usuários estabelecem um relacionamento com a IA e começam a confiar na mesma após algumas poucas interações. Com a confiança, vem a responsabilidade. A IA precisa ser responsabilizada por suas ações e decisões, como se fosse um ser humano. Não se pode permitir que a tecnologia fique inteligente ao ponto de não ser responsável. Não aceitamos esse tipo de comportamento de outras profissões especializadas. Então, por que a tecnologia deveria ser a exceção?
3. Recompense a IA por "mostrar o seu funcionamento"
Qualquer sistema de IA que aprenda com exemplos ruins pode acabar se tornando socialmente inadequado - temos que lembrar que a maior parte da IA de hoje não tem conhecimento do que está dizendo. Somente a ampla audição e a aprendizagem de diversas bases de dados resolverão isso.
Uma das abordagens é desenvolver um mecanismo de recompensa ao treinar a IA. As medidas de aprendizagem de reforço devem ser desenvolvidas não apenas com base no que AI ou robôs fazem para alcançar um resultado, mas também sobre como a IA e robôs se alinham com os valores humanos para atingir esse resultado particular.
4. O jogo da IA deve ser igual para todos
Tecnologia de voz e robôs sociais fornecem novas soluções de acesso, especificamente para usuários desfavorecidos por problemas de visão, dislexia e mobilidade limitada. Nossa comunidade empresarial tecnológica deve acelerar o desenvolvimento desses recursos a fim de oferecer condições igualitárias e ampliar os talentos que temos, tanto nas profissões da área contábil quanto da tecnológica. 
5. IA substitui. Mas também deve criar.
O melhor caso de uso da IA é automação – atendimento ao cliente, fluxo de trabalho e processos baseados em regras são os panoramas perfeitos nos quais a IA se revela.
A IA  aprende mais rápido que os humanos e é muito boa em tarefas repetitivas, do dia-a-dia.  E, no longo prazo, é mais barata que os humanos. Haverá novas oportunidades criadas pela robotização de tarefas e temos que treinar as pessoas para essa perspectiva – permitindo que elas possam se concentrar naquilo em que são boas, construindo relacionamentos e cuidando dos clientes. Sem jamais esquecer a necessidade de empatia humana nas profissões centrais como aplicação da lei, cuidados, proteção e complexas tomadas de decisão.
Kriti explica que o estabelecimento de critérios claros nesse sentido mostra-se fundamental para proteger usuários e garantir segurança e confiabilidade dessas ferramentas. É ainda um caminho para que essas soluções sejam inclusivas e expressem a diversidade de seus usuários.

terça-feira, 29 de agosto de 2017

MELRAM: Memória magnética com consumo quase zero

MELRAM: Memória magnetoelétrica tem consumo quase zero
A memória magnetoelétrica usa efeitos mecânicos, elétricos e magnéticos para guardar os dados. [Imagem: MIPT]
Memória magnetoelétrica
Uma equipe de pesquisadores da França e da Rússia acaba de obter um resultado revolucionário na área das memórias e do processamento de dados em geral: eles desenvolveram uma memória de acesso aleatório magnetoelétrica (MELRAM), que funciona a temperatura ambiente e diminui a geração de calor por várias ordens de grandeza nas operações de leitura dos dados.
O protótipo ainda é grande, medindo quase um milímetro, mas a equipe garante que sua solução pode ser miniaturizada sem nenhum efeito adverso sobre sua eficiência, o que torna a MELRAM promissora para aplicações em computadores com boot instantâneo, pendrives de consumo próximo a zero e centros de armazenamento de dados que exijam menos ar condicionado.
Tem havido um enorme esforço para a criação de novos tipos de memória mais energeticamente eficientes porque mais de 99% do consumo de energia para o processamento e armazenamento de informações é desperdiçado sob a forma de calor.
MELRAM
Cada célula da memória magnetoelétrica, ou MELRAM, é formada por dois componentes. O primeiro é um material piezoelétrico, a propriedade de certos materiais que se deformam em resposta a uma tensão elétrica e, inversamente, geram eletricidade sob tensão mecânica. O outro componente é uma estrutura em camadas caracterizada por uma alta magnetoelasticidade - sua magnetização depende da tensão mecânica a que estiver submetida.
Como a estrutura desse material misto é anisotrópica - isto é, é organizada de forma diferente ao longo de diferentes eixos, - ele pode ser magnetizado ao longo de duas direções, que correspondem ao zero e ao um lógicos do código binário. Em contraste com a DRAM, a RAM dinâmica tradicional, as células da memória magnetoelétrica são capazes de manter seu estado, não precisando ser continuamente reescritas, e não perdem informações quando a energia é desligada.
"Construímos uma peça de prova com cerca de 1 milímetro e mostramos que ela funciona. Vale ressaltar que as estruturas que utilizamos podem servir como base para células de memória de tamanho nano, cujas dimensões são semelhantes às das células de memória RAM normais," disse o professor Anton Churbanov, do Instituto de Física e Tecnologia de Moscou.
Técnica de leitura
Embora a mistura de materiais um tanto exóticos explique o sucesso desta nova abordagem, uma questão crucial para tornar práticas as memórias magnetoelétricas foi um novo mecanismo de leitura de dados criado pela equipe, fornecendo uma alternativa aos sofisticados sensores de campo magnético usados em protótipos anteriores, equipamentos esses que não podem ser facilmente miniaturizados.
Ocorre que, quando uma tensão é aplicada à célula de memória, a camada piezoelétrica da estrutura é deformada. Dependendo da natureza da tensão mecânica resultante, a magnetização assume uma orientação específica, armazenando a informação, e essa mudança de orientação do campo magnético eleva a tensão na célula.
Basta então detectar essa tensão para determinar o estado da célula de memória - se ela está com valor zero ou um. Um inconveniente é que a operação de leitura afeta a magnetização, exigindo regravar o valor que foi lido - nas RAM atuais, os dados têm que ser regravados continuamente, sendo lidos ou não. Os ganhos de economia de energia registrados no protótipo já levam em conta esta regravação pós-leitura.

Bibliografia:

Magnetoelectric write and read operations in a stress-mediated multiferroic memory cell
Alexey Klimov, Nicolas Tiercelin, Yannick Dusch, Stefano Giordano, Théo Mathurin, Philippe Pernod, Vladimir Preobrazhensky, Anton Churbanov, Sergei Nikitov
Applied Physics Letters
DOI: 10.1063/1.4983717

Como utilizar as extensões do Visual Studio Code

PorReinaldo Silotto em


No meu primeiro artigo, falei um pouco da minha experiência com o Visual Studio Code e agora quero falar sobre suas extensões.
Os complementos nesta IDE são mais que recursos extras, elas conseguem ajudar o desenvolvedor a criar seus códigos em praticamente qualquer linguagem e isso, por si só, já é algo importante.
Separei 5 extensões que acredito serem essenciais para qualquer dev e espero que ajudem tanto quem esta iniciando no VSC agora, quanto quem já trabalha com esta ferramenta. 

Como instalar extensões

Para ativar e instalar uma nova extensão, basta clicar no último ícone da barra lateral de ferramentas do Visual Studio Code. Será mostrado inicialmente as extensões mais populares. Para instalar, é só escolher a extensão, verificar sua documentação básica e clicar no botão “Install”. Depois disso é só recarregar o editor e começar a utilizar o novo recurso.
Agora vamos às dicas!

Debugger for Chrome

A forma mais simples de debugar seu código JavaScript no Visual Studio Code utilizando as ferramentas do Google Chrome.

React Native Tools

Esta extensão é indicada para quem precisa de um ambiente integrado e completo para desenvolvimento de projetos React. Você pode depurar seu código e utilizar o IntelliSense para agilizar a codificação.

Angular Language Service

Este complemento é altamente indicado para quem pretende trabalhar com Angular e precisa codar de um modo mais inteligente através do autocomplete. Ok, nem é tão útil assim… Mas que ajuda, isso ninguém pode negar.

Sublime Text Keymap

Podemos sair do Sublime, mas ele nunca sairá da gente. Dito isso, esta extensão é uma forma de manter todos os atalhos que já estamos acostumados no Sublime Text no Visual Studio Code. O mais interessante aqui é que este complemento é da própria Microsoft.

Arduino

Mais uma extensão da própria Microsoft e que uso bastante para projetos pessoais. A IDE oficial do Arduino é muito boa, mas trabalhar com todos os projetos em apenas um ambiente facilita demais. Na versão mais atual desta extensão, já é possível utilizar as ferramentas de debug integrado.

Conclusão

Estas são apenas cinco extensões que deixo sempre instaladas em minha IDE, mas isso não quer dizer que sejam as únicas.
Quero escutar de você quais suas extensões preferidas.
No próximo artigo, pretendo codar algo para demonstrar mais alguns recursos do editor. Espero que estejam gostando desta série e nos vemos em breve.