Análise de malware Software Livre

download Análise de malware Software Livre

of 36

Transcript of Análise de malware Software Livre

  • 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]