• Nenhum resultado encontrado

LABORATÓRIO DE PERÍCIA DIGITAL

N/A
N/A
Protected

Academic year: 2021

Share "LABORATÓRIO DE PERÍCIA DIGITAL"

Copied!
23
0
0

Texto

(1)

PÓS-GRADUAÇÃO LATO SENSU EM PERÍCIA DIGITAL

LABORATÓRIO DE

PERÍCIA DIGITAL

(2)

ANÁLISE DE DISPOSITIVOS MÓVEIS

ANÁLISE DE MEMÓRIA E DE MALWARE • Extração de Memória no Android • Análise de Malware em Android • Malware em iOS?

(3)

EXTRAÇÃO DE MEMÓRIA NO ANDROID

Etapas:

• Preparação do ambiente

• Criação do Dispositivo Virtual de Android (Opicional) • Baixar Código Fonte do Android

• Compilação Cruzada

• Carregar o LiME LKM no Android e fazer o dump de Memória • Criar um profile pro volatility

(4)

PREPARAÇÃO DO AMBIENTE

Download do Android SDK e NDK: • Android SDK: http://developer.android.com/sdk/index.html • Android NDK: http://developer.android.com/tools/sdk/ndk/index.html E descompactar: • ~/android-sdk • ~/android-ndk

Inicializar o ambiente de build (Opcional):

• http://source.android.com/source/initializing.html

Download do código fonte:

• http://source.android.com/source/downloading.html

Criar o sistema (Opcional):

(5)

CRIAÇÃO DO DISPOSITIVO VIRTUAL DE ANDROID

(OPICIONAL)

(6)

BAIXAR CÓDIGO FONTE DO ANDROID

Pode se baixar o código fonte do fabricante específico (modelo específico) ou baixar o código específico para o emulador de Android se for realizar apenas testes (Conhecido como Goldfish):

$ git clone https://android.googlesource.com/kernel/goldfish.git ~/android-source

Cloning into '/Users/Michael/android-source'...

remote: Total 2442118 (delta 2048282), reused 2442118 (delta 2048282) Receiving objects: 100% (2442118/2442118), 501.84 MiB | 395 KiB/s, done. Resolving deltas: 100% (2048284/2048284), done.

$ cd ~/android-source/ $ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/android-goldfish-2.6.29 remotes/origin/android-goldfish-3.4 remotes/origin/linux-goldfish-3.0-wip remotes/origin/master

$ git checkout -t remotes/origin/android-goldfish-2.6.29 -b goldfish

Checking out files: 100% (26821/26821), done.

Branch goldfish set up to track remote branch android-goldfish-2.6.29 from origin. Switched to a new branch 'goldfish

(7)

COMPILAÇÃO CRUZADA

Etapas:

• Crosscompile do kernel; e

• Download e crosscompile do LiME;

• Alterar o Makefile adicionando as linhas:

KDIR_GOLDFISH := ~/android-source

CCPATH := ~/android-ndk/toolchains/arm-linux-androideabi-4.7/prebuilt/darwin-x86/bin

• E substituir as linhas:

$(MAKE) -C /lib/modules/$(KVER)/build M=$(PWD) modules strip --strip-unneeded lime.ko

mv lime.ko lime-$(KVER).ko

• Pelas linhas:

$(MAKE) ARCH=arm CROSS_COMPILE=$(CCPATH)/arm-linux-androideabi- -C $(KDIR_GOLDFISH) EXTRA_CFLAGS=-fno-pic M=$(PWD) modules

(8)

CARREGAR O LIME LKM NO ANDROID E FAZER O

DUMP DE MEMÓRIA

Basta usar o adb:

$ cd ~/android-sdk/sdk/platform-tools/

$ ./adb push ~/lime-forensics/src/lime-goldfish.ko /sdcard/lime.ko

Para o dump podemos fazer via sdcard ou remoto:

$ adb shell

root@android:/ # insmod /sdcard/lime.ko "path=/sdcard/lime.dump format=lime" root@android:/ # ls -al /sdcard/lime.dump

----rwxr-x system sdcard_rw 872415264 2013-02-25 16:48 lime.dump

Ou

$ adb forward tcp:4444 tcp:4444 $ adb shell

root@android:/ # insmod /sdcard/lime.ko “path=tcp:4444 format=lime”

E no computador:

(9)

CRIAR UM PROFILE PRO VOLATILITY

Crosscompile do volatility:

• Alterar o Makefile: $ svn checkout https://volatility.googlecode.com/svn/trunk/ ~/android-volatility $ cd ~/android-volatility/tools/linux obj-m += module.o KDIR := ~/android-source CCPATH := ~/android-ndk/toolchains/arm-linux-androideabi-4.7/prebuilt/darwin-x86/bin

DWARFDUMP := /usr/bin/dwarfdump -include version.mk all: dwarf

dwarf: module.c

$(MAKE) ARCH=arm CROSS_COMPILE=$(CCPATH)/arm-linux-androideabi- -C $(KDIR) CONFIG_DEBUG_INFO=y M=$(PWD) modules

(10)

CRIAR UM PROFILE PRO VOLATILITY

Criar vtypes:

$ make

$ head module.dwarf

.debug_info

<0><0x0+0xb><DW_TAG_compile_unit> DW_AT_producer<GNU C 4.7> DW_AT_language<DW_LANG_C89> DW_AT_name<~/volatility_android/tools/linux/module.c> DW_AT_comp_dir<~/android-source> DW_AT_stmt_list<0x00000000>

<1><0x1d><DW_TAG_base_type> DW_AT_byte_size<0x00000004> DW_AT_encoding<DW_ATE_unsigned> DW_AT_name<long unsigned int>

<1><0x24><DW_TAG_pointer_type> DW_AT_byte_size<0x00000004> DW_AT_type<<0x0000002a>>

Fazer o Profile:

$ zip ~/android-volatility/volatility/plugins/overlays/linux/Golfish-2.6.29.zip module.dwarf ~/android-source/System.map

adding: module.dwarf (deflated 90%)

(11)

EXAMINAR A MEMÓRIA

• Processos em execução;

• Acesso a dados protegidos (lockscreen)

• /system/gesture.key

• Dados que não vão ao disco:

• /app-cache/com.android.browser/cache/webviewCache

(12)

ANÁLISE DE MALWARE EM ANDROID

• Ferramentas

• Engenharia reversa • Exemplos

(13)

FERRAMENTAS

ONLINE

• Sites de antivírus de desktop

• virustotal.com • metascan-online.com • Sites específicos: • https://apkscan.nviso.be/ • http://anubis.iseclab.org/ OFFLINE • Androtools • http://www.nyxbone.com/malware/android_tools.html

(14)

ENGENHARIA REVERSA

• apk = zip + xmls

• AndroidManifest.xml

• Permissões e outras informações relevantes

http://developer.android.com/reference/android/Manifest.permission.html

• Usar outras ferramentas de engenharia reversa similares ao Java:

(15)

EXEMPLOS

• FakeBank.apk • ZITMo.apk

(16)

MALWARE EM IOS?

• Jailbreak

• Vulnerabilidades • Outros ataques

(17)

JAILBREAK

• Processo de jailbreak elimina uma série de restrições em equipamentos com iOS, permitindo modificar algumas configurações e instalar aplicações fora da App Store.

• Libera funções desconhecida para muitos usuários que podem ser exploradas por atacantes/malwares:

(18)

VULNERABILIDADES

Distribuição de vulnerabilidades identificadas nos SO em 2014

Fonte: http://www.gfi.com/blog/most-vulnerable-operating-systems-and-applications-in-2014/ Sistema Operacional # total de vulnerabilidades # de vulnerabilidades altas # de vulnerabilidades médias # de vulnerabilidades baixas Apple Mac OS X 147 64 67 16 Apple iOS 127 32 72 23 Linux Kernel 119 24 74 21 Windows 68 47 20 1 Android 6 4 1 1

(19)

VULNERABILIDADES

Fonte: https://www.netmarketshare.com/operating-system-market-share.aspx?qprid=10&qpcustomd=0 Windows 90,23% Mac OS X 7,72% Linux 1,74% Outros0,31%

Distribuição por Sistema Operacional (Desktop)

(20)

VULNERABILIDADES

(21)

VULNERABILIDADES

Comparação: • https://www.cvedetails.com/product/15556/Apple-Iphone-Os.html?vendor_id=49 VS • https://www.cvedetails.com/product/17153/Microsoft-Windows-7.html?vendor_id=26

Mesmo vale para Android:

(22)

MALWARE EM IOS?

XcodeGhost (set/15)

• Plataforma de desenvolvimento Xcode modificada para injetar código malicioso nos aplicativos de iOS no momento da compilação.

(23)

PÓS-GRADUAÇÃO LATO SENSU EM PERÍCIA DIGITAL

LABORATÓRIO DE

PERÍCIA DIGITAL

Referências

Documentos relacionados

Nesse recorte, a escrava Isaura é designada como propriedade minha e um vaso, em que a designação propriedade minha significa o pertencimento da escrava ao

“Linguagem e política: sobre uma Kehre implícita na filosofia de Martin Heidegger”, Heidegger, Linguagem e Tradução: colóquio internacional, Março de 2002, (org..

Esta documentação pertence ao Museu de Arqueologia e Etnologia da Universidade de São Paulo (MAE-USP) e está dividida em dois grupos lingüísticos distintos:

desempenho futuro (produtividade, custos, lucro e rentabilidade) do negócio (O’NEILL; DUVALL, 2004; Van der VOORDT, 2004; HESKETT et al., 1994); (ii) a adaptação de uma

A utilização crescente de ferramentas que agilizem esse processo de planejamento está sendo empregada pela maioria das empresas da construção civil, pois torna um aliado

Com o intuito de fornecer um instrumento que permita captar de forma mais confi ável a orientação para o mer- cado externo entre as empresas brasileiras exportadoras, este

No ecrã de seleção de fonte, toque como segue: Definições para reprodução de Android.. 1 Visualize o ecrã

O projeto do aplicativo desenvolvido durante o início deste trabalho para esse estudo de caso específico também deve ser submetido a análise de aproximação ao código do sistema e