análise de malware software livre
TRANSCRIPT
-
8/13/2019 Anlise de malware Software Livre
1/36
-
8/13/2019 Anlise de malware Software Livre
2/36
2 / 36www.4linux.com.br
Experincia em misso crtica de misso crtica
Pioneira no ensino de Linux distncia
Parceira de treinamento IBM
Primeira com LPI no Brasil
+ de 30.000 alunos satiseitos
!econ"ecimento internacional
Ino#a$o com %ac&erteen e Boteconet
-
8/13/2019 Anlise de malware Software Livre
3/36
3 / 36www.4linux.com.br
Anlise de malware
com Software LivreFernando
Mercs
-
8/13/2019 Anlise de malware Software Livre
4/364 / 36www.4linux.com.br
As !" #rimeiras #er$untas $an%ar&o um botton do'ux.
Sorteio do curso ()nvesti$a*&o Forense +i$ital , 42-
A+01Preencha o cupom que est junto ao folheto que voc
recebeu na entrada da palestra;
Se voc j preencheu, ele j est aqui na urna.O ganhador deve estar presente at o quinto sorteio. Se no
estiver presente, ganhar o se!to sorteado.
o final da min%a #alestra
-
8/13/2019 Anlise de malware Software Livre
5/36" / 36www.4linux.com.br
ue 5 um malware
" #$alicious soft%are&, um soft%are indejesado geralmente
com inten'(es nada nobres como roubo de informa'(es,
replica'o, comprometimento do sistema etc.
ue 5 anlise de malware
" ) a tcnica de documentar o comportamento de um soft%are
suspeito sem seu c*digo+fonte.
Anlise de malware
-
8/13/2019 Anlise de malware Software Livre
6/366 / 36www.4linux.com.br
inter, inu!-indose, /iesel, 0oin, $ight1, 2dore, Slapper,3or4, $illen... 567
8!istem vrios mal%ares para o sistema do pinguim, mas aquantia no realmente grande se comparada 9 quantidade demal%ares para o :anelas.
) bom se preparar enquanto tempo. usca abusada de strings 7.4+ ?aio+! com o objdump
2+ >inrio protegido, e agora= 2.7+ 8!emplo de @des
-
8/13/2019 Anlise de malware Software Livre
8/36
-
8/13/2019 Anlise de malware Software Livre
9/369 / 36www.4linux.com.br
2 maioria dos tipos de arquivo possui um (ma$ic number1para identifica'o, localiCado logo nos primeiros b1tes.
2 ferramenta file 5D7 est presente em todas as distribui'(esEFG-inu!. 8la utiliCa a biblioteca libmagic como #core& para
reconhecer tipos de arquivo.
$ file /etc/hosts/etc/hosts: ASCII English text
$ file /bin/ls/bin/ls: ELF 64-bit LSB executable, x6-64,!e"sion # S%S&', ()na*icall) lin+e( usessha"e( libs', fo" ./Linux 060#, st"i11e(
:%o are ;ou
-
8/13/2019 Anlise de malware Software Livre
10/367! / 36www.4linux.com.br
O file no se limita a identificar o tipo de arquivo, mas dvrias informa'(es sobre alguns tipos, como o caso debinrios 8H.
Script do Fautilus #Eet info& para agiliCar o reconhecimento
23/bin/bashinfo5file $#5ls5ls -l $#57c57c $#5
si8e5ls -lh $# 9 cut -( -f5
8enit) --info --text;$ file;n$info;n;n;$7c;n$7c;n;n;$ ls;n$ls --title$# $si8e'
:%o are ;ou
-
8/13/2019 Anlise de malware Software Livre
11/3677 / 36www.4linux.com.br
Era'as ao conjunto binutils 5I7, temos uma ferramenta livrechamada strings, que nos e!ibe todos os te!tos dentro de umarquivo qualquer, inclusive binrios.
$ st"ings /bin/ls 9 tail
-
8/13/2019 Anlise de malware Software Livre
12/3672 / 36www.4linux.com.br
2 anlise de strings e!tremamente importante. Fela podemconstar informa'(es essenciais para o mal%are como nomes/FS, caminhos e nomes de diret*rios e arquivos etc.
0onhecendo esta #falha&, os criadores de mal%are
frequentemente encriptam as strings, de forma que uma anliseesttica no ajuda muito
$ st"ings -a -t x bina")0exe 9 tail -4 #@b6 7ax
#@f6 7x ##6 !!x #D#4 GFtx
Jeremos como desencriptar essas strings mais 9 frente.
-
8/13/2019 Anlise de malware Software Livre
13/3673 / 36www.4linux.com.br
O pacote binutils contm vrios aplicativos interessantes paraa anlise de mal%are, dentre eles
ob=dum#objcop1nmreadelfsiCestringsstrip
O objdump uma ferramenta poderosa, que e!ibe muitasinforma'(es sobre o binrio, como veremos a seguir. 2s outrasferramentas tambm so muito Kteis e ficam como li'o decasa. ;+aio?@ com o ob=dum#
-
8/13/2019 Anlise de malware Software Livre
14/36
74 / 36www.4linux.com.br
$ obH(u*1 -( *al7a"e 9 g"e1 -AD@ *ain@@@@@@@@@@4@@ : 4@@: 1ush
-
8/13/2019 Anlise de malware Software Livre
15/36
7" / 36www.4linux.com.br
Fo slide anterior vemos um disassem'l(da fun'o main)*como objdump. 2qui importante notar
Os nomes das fun'(es foram identificados, ento esto nobinrio compilado. So os s(m'ols.
O disassem'l( esttico. O c*digo no rodou.
O grep na main foi proposital, mas a e!ecu'o de um binriono come'a na main. 2tente para a saAda do objdump sem o
grep e voc ver que tem muito c*digo antes da main serchamada.
O objdump utliCa sinta!e 2LML no disassem'l(.
>aio?@ com o ob=dum#
-
8/13/2019 Anlise de malware Software Livre
16/36
76 / 36www.4linux.com.br
$ g(b -J *al7a"eg(b' set (isasse*bl)-fla!o" intelg(b' (isasse*ble main @x4@@ 1ush "b1 @x4@@ *o! "b1,"s1 @x4@@b sub "s1,@x#@ @x4@@f *o! KMK NOM P"b1-@x#@Q,@xDD6e
@x4@@6 *o! KMK NOM P"b1-@xcQ,@x6ef @x4@@( *o! KMK NOM P"b1-@xQ,@xfe @x4@@a4 *o! MK NOM P"b1-@x4Q,@x6 @x4@@aa *o! B%OE NOM P"b1-@xQ,@x@ @x4@@ae lea "ax,P"b1-@x#@Q @x4@@b *o! "(i,"ax
@x4@@b call @x4@@D4 @x4@@ba lea "ax,P"b1-@x#@Q @x4@@be *o! "(i,"ax @x4@@c# call @x4@@4D @x4@@c6 *o! eax,@x@ @x4@@cb lea!e @x4@@cc "et
Sintaxe )ntel com o $db
-
8/13/2019 Anlise de malware Software Livre
17/36
7- / 36www.4linux.com.br
-
8/13/2019 Anlise de malware Software Livre
18/36
78 / 36www.4linux.com.br
8!istem muitas formas de proteger o binrio de olharescuriosos e claro que o criador de mal%are no quer ningumbisbilhotando seu arquivo, pois este poder descobrir como elefunciona, criar uma vacina, denunciar para onde os dados soenviados etc.
Gma prote'o bem comum o pac4er, que comprime ume!ecutvel e dificulta muito a anlise. O Knico pac4er de c*digoaberto que conhe'o o GPN 57, por isso vou utiliC+lo emnosso mal%are.
$ obH(u*1 -( *al7a"e1ac+e(
*al7a"e1ac+e(: file fo"*at elf64-x6-64
BacCer livreD EB@
-
8/13/2019 Anlise de malware Software Livre
19/36
-
8/13/2019 Anlise de malware Software Livre
20/36
2! / 36www.4linux.com.br
2lm dos pac4ers, e!iste uma srie de tcnicas para prote'ode binrios, dentre elas
0r1pters.Obfusca'o.
/umm1 code.JirtualiCa'o.0?0.
2t o presente momento, ferramentas para inu! mais
rebuscadas para prote'o de binrios no so comumentedistribuAdas, mas no se sabe o que h de ferramentasfechadas-individuais por aA. ;+astreando os #assos
-
8/13/2019 Anlise de malware Software Livre
22/36
22 / 36www.4linux.com.br
2qui abordaremos a anlise dinmica, ou seja, vamos rodar omal%are, passo+a+passo, num ambiente controlado, paraidentificar seu comportamento. Para isso, ser usado umpoderoso debugger e disassembler livre, o 8/> 5Q7.
2o abrir o mal%are no 8/>, paramos em seu inAcio @no amain, lembra=, caso ainda notenhamos feito com o strings. Para isso, basta um 0L?RS,
que vai carregar o plugin String Search.
Gome*ando do come*o
-
8/13/2019 Anlise de malware Software Livre
23/36
23 / 36www.4linux.com.br
Gome*ando do come*o
-
8/13/2019 Anlise de malware Software Livre
24/36
24 / 36www.4linux.com.br
O 8/> j coloca um brea4point na main automaticamente. Paraconferir, veja a tela do >rea4point $anager @0L?R>
-
8/13/2019 Anlise de malware Software Livre
25/36
2" / 36www.4linux.com.br
Podemos mandar rodar o mal%are no 8/> @H< e aguardarparar no inAcio da fun'o principal ento. Tsto voc pode faCersem medo, no=
Podemos e!ecutar linha a linha com o HU e em V!VVQae,
vemos que o endere'o de uma string interessante armaCenada em ?2N
ntendendo as calls
-
8/13/2019 Anlise de malware Software Livre
26/36
26 / 36www.4linux.com.br
ogo abai!o temos uma bendita 02. $as o que isso=Wualquer chamada para fun'o gera uma 02 em 2ssembl1.
O c*digo desviado para o endere'o apontado pea 02 e,
ap*s um ?8L, volta para a instru'o logo abai!o 9 chamada da02.
Os parmetros de fun'o so passados para a 02 atravsda pilha @stac4
-
8/13/2019 Anlise de malware Software Livre
27/36
2- / 36www.4linux.com.br
ntendendo as calls
2 e!ecu'o ser desviada para a instru'o em V!VVQI e os
parmetros podem ser vistos na janela #Stac4& do 8/>.
-
8/13/2019 Anlise de malware Software Livre
28/36
28 / 36www.4linux.com.br
: as s1calls so chamadas 9s rotinas providas pelo SO, pore!emplo, para imprimir uma string na tela.
2lguns e!emplos so setuid@
-
8/13/2019 Anlise de malware Software Livre
29/36
29 / 36www.4linux.com.br
Wuando o binrio no tem os s1mbols, o objdump, readelf, htee nem mesmo o gdb so capaCes de e!ibir o nome da fun'oem questo, o que um problema. : o 8/>, consegue pois possAvel gerar s1mbols para cada biblioteca presente.
Tmportante notar que fun'(es 2FST 0 so %rappers paras1scalls.
s;scalls
Hun'o 2FST 0 s1scall
remove@< unlin4@
-
8/13/2019 Anlise de malware Software Livre
30/36
3! / 36www.4linux.com.br
/ocumentar o comportamento de um binrio um trabalhodemorado, porm de m!ima utilidade. 2s vantagens so
!oll'ac&de a'(es.
0ria'o de vacinas.2prendiCado.
$assagem no ego. eferncias
567 http--en.%i4ipedia.org-%i4i-inu![mal%are5D7 http--%%%.dar%ins1s.com-file-5I7 http--%%%.gnu.org-soft%are-binutils-57 http--up!.sourceforge.net5Q7%%%.codefVV.com-projects\debugger
5X7 http--%%%.mentebinaria.com.br-files-s1scall+table.pdf5Y7 http--%%%.bigfoot.com-]jialong[he
http://en.wikipedia.org/wiki/Linux_malwarehttp://www.darwinsys.com/file/http://www.gnu.org/software/binutils/http://upx.sourceforge.net/http://www.codef00.com/projects#debuggerhttp://www.mentebinaria.com.br/files/syscall-table.pdfhttp://www.bigfoot.com/~jialong_hehttp://www.bigfoot.com/~jialong_hehttp://www.mentebinaria.com.br/files/syscall-table.pdfhttp://www.codef00.com/projects#debuggerhttp://upx.sourceforge.net/http://www.gnu.org/software/binutils/http://www.darwinsys.com/file/http://en.wikipedia.org/wiki/Linux_malware -
8/13/2019 Anlise de malware Software Livre
35/36
3" / 36www.4linux.com.br
Ber$untas
^$ente>inaria%%%.mentebinaria.com.br
http://www.mentebinaria.com.br/http://www.mentebinaria.com.br/ -
8/13/2019 Anlise de malware Software Livre
36/36
36 / 36www.4linux.com.br
Muito obri$adoH
fernando.merces^linu!.com.br%%%.linu!.com.br
%%%.hac4erteen.com
t%itter.com-inu!>?Lel QQ+66+D6DQ+YY
mailto:[email protected]://www.4linux.com.br/http://www.hackerteen.com/http://www.hackerteen.com/http://www.4linux.com.br/mailto:[email protected]