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

terça-feira, 15 de setembro de 2015

App security: Decompiling Android APK files

Learning how to reverse engineer Android applications is a great way to review source code and identify malicious intents or potential vulnerabilities within closed binary files. With the right tools and a little know-how, it's a surprisingly straightforward undertaking for information security professionals to sniff out security weaknesses, such as format strings, buffer overflows and unrestricted permissions in Android applications.

First, you need to be familiar with the anatomy of an Android application. Android code is typically Java, and the application is delivered as an Android package (APK) using a compressed file format such as ZIP (though the extension is renamed .apk). Once unzipped, the root directory will contain folders with the application resources, along with a signature file. Every Android application root directory must also contain a binary XML file named AndroidManifest.xml, which communicates essential information about the application to the Android system.

Access the Android APK from a phone

Before you begin reverse engineering the application, you'll want to back it up to an SD card. There are a number of tools you can use to do this, including APKoptic and Astro File Manager with Cloud. (For this demo, we'll be using the free Santoku-Linux distribution, which includes open source security tools and utilities for analyzing Android applications.)As shown in Figure 1 to start accessing the Android APK, you'll run two commands using the Android Debug Bridge (adb) tool:
  • adb shell pm list packages
  • adb pull /data/app/package-name-1.apk

Figure 1.  To get the Android package from a device, you can use tools such as Android Debug Bridge to run a list packages command. (Source: viaForensics)

Get the APK from Google

You can also download the Android APK from Google Play. There are two ways to do this:
1. The Google Play Unofficial Python API
2. A Web service or browser extension such as the following:
Now that you have the APK, it's time get your hands dirty.

Disassemble the APK

To start taking apart the application, you'll first need the Android-apktool, an open source multi-platform utility that will allow you to decode resources to their original form and rebuild after modification. It can transform Android’s binary Dalvik bytecode (classes.dex) into Smali source code as shown in Figure 2. Smali is an assembler code for the DEX (Dalvik EXecutable) format used by the Dalvik Virtual Machine, an integral part of the Android which runs the applications on the operating system.

Figure 2. The Android-apktool transforms Dalvik bytecode into Smali source code. (Source: viaForensics)

Translate the APK to Java

To decompile the Android APK, you'll want to use the dex2jar tool, which converts Dalvik bytecode (DEX) to Java bytecode (Java Archive file format also known as JAR). This allows you to use any existing Java decompiler with the resulting JAR file. (See Figure 3.)


Figure 3. Dex2jar converts Dalvik bytecode to Java bytecode. (Source: viaForensics)

Some useful Java decompilers include:
Transforming DEX to JAR loses important metadata useful to the decompiler. Pure Dalvik decompilers go directly from DEX to Java and thus produce better results. There aren't as many choices for Android decompilers, but useful ones include:

Analyze code for vulnerabilities

And that's it. The reverse engineering is complete. The Java code is now accessible, allowing you to check it against known malware databases and run scripts to detect malicious code.

About the author: Andrew Hoog is CEO and co-founder of viaForensics. As a mobile security researcher and computer scientist, he has spoken at major banking, security and forensic conferences. He is the author of two books on security, iPhone and iOS Forensics and Android Forensics, and has two patents pending in the areas of forensics and data recovery. Mr. Hoog holds a bachelor of arts degree in computer science from Saint Louis University and is completing a master of business administration degree from University of Chicago’s Booth School of Business.

Fonte: http://searchsecurity.techtarget.com/tip/App-security-Decompiling-Android-APK-files

quarta-feira, 27 de agosto de 2014

Permissões de aplicativos móveis podem ser mais perigosas que malwares

A coleta desenfreada de dados de aplicativos móveis representa um risco de segurança maior para os consumidores e seus dados quando comparado com malware em dispositivos móveis, diz Appthority.





Como os smartphones e outros dispositivos móveis cada vez mais potentes têm se infiltrado em ambientes corporativos nos últimos anos, os profissionais de segurança, temem um aumento correspondente de malwares, semelhante ao que foi testemunhado com os PCs há mais de uma década atrás. Mas, de acordo com um relatório recente, a coleta de dados de aplicativos móveis representa um risco muito maior para empresas e usuários do que os malwares em si mesmos.

O relatório sobre a reputação de aplicativos móveis, lançado este mês pela empresa de análise de apps Appthority, detalhou a coelta generalizada de dados por parte dos atuais top 100 aplicativos gratuítos e pagos nas plataformas Android e iOS. A Appthority coletou os dados para o relatório, executando análise estática, dinâmica e comportamental em todos os 400 aplicativos /* 200 de cada plataforma */ em um ambiente de teste.
Entre os apps Android gratuitos, 88% dos 100 melhores aplicativos disponíveis na Google Play Store coletam UDIDs e/ou IMEIs dos dispositivos, enquanto 82% envolve em algum tipo de rastreamento de localização e 30% acessar os contatos do usuário. Embora a Apple anuncie o iOS como uma alternativa mais segura e orientada a privacidade que o Android, as estatísticas Appthority não são muito melhores para a plataforma. Mais da metade dos 100 melhores aplicativos gratuitos na App Store guarda o UDID e rastreia a localização, e 26% também acessa o catálogo de endereços dos usuários.

Mesmo quando se trata de aplicativos pagos, a empresa com sede em San Francisco descobriu que a coleta de dados ainda era predominante. Nos 100 melhores apps pagos para Android, por exemplo, 65% utiliza detalhes UDID, 49% recolhe dados de localização e 14% acessaram os contatos. No lado do iOS, 28% usaram UDIDs, 24% dados de localização e 8% acessam os contatos.



Dentre os 400 aplicativos analisados, Appthority não encontrou uma única instância de malware móvel. Apenas 0,4% de todas as aplicações em ambientes corporativos contém malware, a empresa observou. A Apple mantém um processo rigoroso de revisão manual de segurança para todos os aplicativos que entram na App Store e a Google emprega uma variedade de táticas para rastrear malwares na Google Play.

"Todo mundo sabe sobre malware móvel", disse o presidente da Appthority, Domingo Guerra em uma entrevista, "mas nem todos sabem sobre essas outras questões."

Guerra disse que a coleta de dados de aplicativos móveis expõe empresas e usuários a uma série de riscos que podem não ser inicialmente aparentes. Por exemplo, se um usuário sincroniza sua conta de email corporativo do Outlook com um smartphone pessoal, esse dispositivo pode agora ter acesso a um extenso catálogo de endereços que contém detalhes de contatos para uma variedade de pessoas importantes para o negócio. Se um aplicativo que coleta as informações do catálogo de endereços for comprometido, os atacantes poderiam ter as informações necessárias para enviar spam para os telefones corporativos desses contactos, reunir detalhes sensíveis de discagem para chamadas corporativas, ler anexos do calendário e muito mais.

A maioria das organizações de fora do governo não são excessivamente preocupados com os dados de rastreamento e localização, disse Guerra. Se os atacantes podem recolher a localização dos principais executivos, potencialmente podem utilizar essa informação para prever fusões ou aquisições com base em visitas a empresas relevantes, por exemplo. Guerra também destacou o famoso incidente em que um soldado americano compartilhou uma foto no Twitter de si mesmo chegar a uma base no Iraque. O quadro inclui detalhes de localização via geotagging, disse ele, o que levou insurgentes a lançar um ataque de morteiro na localização exata e destruiu os helicópteros na base.

E, embora esse tipo de comportamento por aplicativos móveis por si só é motivo de preocupação, Guerra disse que há ainda um grande risco: redes de anúncios. O relatório constatou que, entre os aplicativos gratuitos, 71% na plataforma Android e 32% no iOS permite que redes de anúncios coletem dados. Mesmo entre os aplicativos pagos, 38% no Android e 16% no iOS transferem dados para redes de anúncios e, em tais casos, Guerra disse que um usuário não pode mesmo estar ciente de tais práticas de coleta de dados.

A prevalência de redes de publicidade móvel apresenta vários riscos, de acordo com Guerra. Atacantes se pode passar por redes de anúncios e recolher dados de usuário diretamente, comprometer o desenvolvimento de softwares de uma rede de anúncios e se infiltrar em um aplicativo, ou simplesmente hackear a vasta coleção de dados armazenados por dezenas de redes de publicidade ao redor do mundo.

Há quem esteja reconsiderando o Blackberry como uma opção segura, mas existem algumas medidas que podem ser tomadas para mitigar os riscos.

May The Force be with You!

Fonte: https://www.appthority.com/app-reputation-report/report/AppReputationReportSummer14.pdf