Você está na página 1de 21

Fevereiro 2012

Melhores Prticas de Programao Segura OWASP Guia de Referncia Rpida


OWASP Secure Coding Practices Quick Reference Guide

Cop right and !icense


Copyright 20 0 !he OWASP "oundation# O conte$do deste docu%ento & distri'u(do ao a'rigo da )icen*a Creati+e Co%%ons Attri'ution ShareA)ike ,#0# Para a uti)i-a*.o ou redistri'ui*.o/ de+e dei0ar c)aro os ter%os da )icen*a deste tra'a)ho# http122creati+eco%%ons#org2)icenses2'y3sa2,#02

4ers.o #,

Fevereiro 2012

"otas da #erso
5sta +ers.o do OWASP Secure Coding Practices foi desen+o)+ida co%o parte integrante da ati+idade con6unta dos cap(tu)os 'rasi)eiro e portugu7s da OWASP/ e% pro) da co%unidade de progra%adores e da seguran*a dos siste%as desen+o)+idos nos pa(ses de )(ngua portuguesa# 5ste docu%ento & 'aseado na +ers.o 2#0 de 8o+e%'ro de 20 0 e na re+is.o da pri%eira tradu*.o/ +ers.o #2/ datada de 9u)ho de 20 # :(der do pro6eto de tradu*.o1 !arci-io 4ieira 8eto tarci-io#+ieira;o<asp#org =rasi) Participara% desta tradu*.o1 :eandro Resende Go%es )eandrock;g%ai)#co% =rasi) S()+io "ernando Correia 4ieira "i)ho si)+iofi)hosf;g%ai)#co% =rasi) Pau)o A)e0andre Si)+a %e;pau)oasi)+a#co% Portuga) A)e0andre Pupo a)e0andrepupo;yahoo#co%#'r =rasi) Car)os Serr.o car)os#serrao;o<asp#org Portuga) Rog&rio 4icente rogeriop+);g%ai)#co% Portuga) 9orge O)i%pia 6orgeo)i%pia;g%ai)#co% =rasi) A tradu*.o deste docu%ento pretende3se fie) ao te0to origina)/ tendo sido introdu-idos a)guns deta)hes e0p)icati+os >ue est.o dispersos no te0to/ assu%indo/ na)guns casos/ a for%a de notas de rodap& contendo o prefi0o ?8!1@ Anota de tradu*.oB# Para sa'er %ais so're os e+entos e ati+idades desen+o)+idas pe)o cap(tu)o =rasi)/ aceda C pDgina Ahttp122<<<#o<asp#org2inde0#php2=ra-i)B ou registe3se na )ista de discuss.o OWASP3=R Ahttp122)ists#o<asp#org2%ai)%an2)istinfo2o<asp3'ra-i)ianB# Para sa'er %ais so're os e+entos e ati+idades desen+o)+idas pe)a de)ega*.o da OWASP e% Portuga)/ aceda C pDgina Ahttp122<<<#o<asp#org2inde0#php2PortugueseB ou registe3se na )ista de discuss.o OWASP3P! Ahttps122)ists#o<asp#org2%ai)%an2)istinfo2o<asp3portugueseB#

4ers.o #,

Fevereiro 2012

Sumrio
Entrodu*.o#############################################################################################################################################F Princ(pios Gerais de Seguran*a e% Ap)ica*Ges e Riscos#####################################################################H :ista de 4erifica*.o de PrDticas de Progra%a*.o Segura#####################################################################I 4a)ida*.o dos Jados de 5ntrada1#####################################################################################################I Codifica*.o de Jados de Sa(da1#######################################################################################################K Autentica*.o e Gest.o de Credenciais1############################################################################################K Gest.o de SessGes1############################################################################################################################L Contro)o de Acessos1###################################################################################################################### 0 PrDticas de Criptografia1################################################################################################################# !rata%ento de 5rros e :og1############################################################################################################ Prote*.o de Jados1######################################################################################################################### 2 Seguran*a nas co%unica*Ges1######################################################################################################## , Configura*.o do Siste%a1############################################################################################################### , Seguran*a e% =ase de Jados1######################################################################################################## F Gest.o de "icheiros1####################################################################################################################### F Gest.o de Me%Nria1####################################################################################################################### H PrDticas Gerais de Progra%a*.o1#################################################################################################### H Ap7ndice A ARecursos e0ternos e refer7nciasB################################################################################### K Refer7ncias 50ternas1##################################################################################################################### K Sites de A+isos de Seguran*a1######################################################################################################## K Ap7ndice = AG)ossDrioB###################################################################################################################### O

4ers.o #,

Fevereiro 2012

$ntroduo
5ste docu%ento n.o se 'aseia apenas e% >uestGes tecno)Ngicas e te% o propNsito de definir u% con6unto de 'oas prDticas de seguran*a no desen+o)+i%ento de ap)ica*Ges# As reco%enda*Ges ser.o apresentadas no for%ato de )ista de +erifica*Ges/ >ue pode% ser integradas no cic)o de desen+o)+i%ento das ap)ica*Ges# A ado*.o destas prDticas pro+a+e)%ente redu-irD as +u)nera'i)idades %ais co%uns e% ap)ica*Ges We'# Gera)%ente & %ais 'arato construir soft<are seguro do >ue corrigir pro')e%as de seguran*a apNs a entrega do %es%o co%o u% produto fina) ou pacote co%p)eto/ se% fa)ar nos custos >ue pode% estar associados a u%a fa)ha de seguran*a# Proteger os recursos cr(ticos das ap)ica*Ges te%3se tornado cada +e- %ais i%portante/ pois o foco dos atacantes %udou para a ca%ada de ap)ica*.o# P% estudo da SA8S e% 200L Q R desco'riu >ue os ata>ues contra ap)ica*Ges We' constitue% %ais de I0S do tota) das tentati+as de ata>ue o'ser+adas na Enternet# Ao uti)i-ar este guia & reco%endD+e) >ue as e>uipas de desen+o)+i%ento a+a)ie% a %aturidade do cic)o de +ida de desen+o)+i%ento de soft<are e o n(+e) de conheci%ento da e>uipa# Co%o este guia n.o entra e% deta)hes de co%o i%p)antar cada prDtica de progra%a*.o/ os progra%adores precisa% possuir conheci%ento pr&+io ou de+e% ter dispon(+eis os recursos >ue forne*a% o conheci%ento necessDrio# 5ste guia apresenta prDticas >ue pode% ser tradu-idas e% re>uisitos de desen+o)+i%ento se% a necessidade do progra%ador possuir u%a co%preens.o aprofundada das +u)nera'i)idades e exploits de seguran*a# 8o entanto/ outros %e%'ros da e>uipa de desen+o)+i%ento de+e% possuir responsa'i)idades/ co%pet7ncias ade>uadas/ ferra%entas e recursos para +a)idar se o pro6eto e a i%p)e%enta*.o responde% aos re>uisitos de seguran*a# 8o ap7ndice = encontra3se u% g)ossDrio dos ter%os i%portantes usados neste docu%ento/ inc)uindo o t(tu)o das sec*Ges e pa)a+ras %ostradas e% itlico# 8.o fa- parte do T%'ito deste guia fornecer orienta*Ges para i%p)e%entar u%a framework de desen+o)+i%ento seguro de soft<are/ no entanto/ as seguintes prDticas gerais e refer7ncias s.o reco%endadas1 Jefinir c)ara%ente os pap&is e responsa'i)idades "ornecer Cs e>uipas de desen+o)+i%ento/ pessoa) co% for%a*.o ade>uada e% seguran*a no desen+o)+i%ento de ap)ica*Ges E%p)e%entar u% cic)o de desen+o)+i%ento de soft<are seguro o o o o OWASP C:ASP Pro6ect OWASP Je+e)op%ent Guide Pro6ect OWASP 5nterprise Security APE A5SAPEB Pro6ect OWASP App)ication Security 4erification Standard AAS4SB Pro6ect 5sta'e)ecer padrGes de progra%a*.o segura Construir u%a 'i')ioteca reuti)i-D+e) ou fa-er uso de u%a 'i')ioteca de seguran*a 4erificar a efeti+idade dos %ecanis%os de seguran*a 5sta'e)ecer prDticas para garantir a seguran*a >uando hD su'contrata*.o no desen+o)+i%ento/ inc)uindo a defini*.o dos re>uisitos de seguran*a e %etodo)ogias de +erifica*.o tanto para os re>uisitos das propostas/ co%o para o contrato a ser fir%ado entre as partes# o OWASP :ega) Pro6ect

8!1 Co%p)e%ento adicionado pe)o tradutor#

4ers.o #,

Fevereiro 2012

Princ%pios Gerais de Segurana em Aplica&es e Riscos


Construir soft<are seguro e0ige o conheci%ento 'Dsico dos princ(pios de seguran*a# P%a re+is.o a'rangente dos princ(pios de seguran*a estD fora do T%'ito deste guia/ por&% os conceitos de seguran*a ser.o a'ordados de for%a superficia)/ %as a'rangente# O o'6eti+o da seguran*a e% ap)ica*Ges & %anter a confidencialidade/ integridade e disponibilidade dos recursos de infor%a*.o a fi% de per%itir >ue as opera*Ges de negNcios se6a% 'e% sucedidas# 5sse o'6eti+o & a)can*ado atra+&s da i%p)e%enta*.o de mecanismos de segurana# 5ste guia concentra3se nos %ecanis%os t&cnicos/ espec(ficos para mitigar as ocorr7ncias de vulnerabilidades %ais co%uns no soft<are# Co%o o foco principa) s.o as ap)ica*Ges We' e sua infraestrutura de apoio/ 'oa parte deste guia pode ser usada para >ua)>uer p)atafor%a de desen+o)+i%ento de soft<are# Para proteger o negNcio contra os riscos inaceitD+eis/ isto &/ re)acionados co% a depend7ncia e co% a confian*a depositada na ap)ica*.o/ este guia a6uda a co%preender o >ue pode%os entender por risco# Jeste %odo/ risco & a co%'ina*.o de fatores >ue a%ea*a% o sucesso do negNcio# Esto pode ser descrito concetua)%ente da seguinte for%a1 u% agente de ameaa interage co% u% sistema/ no >ua) pode ha+er u%a vulnerabilidade )atente >ue >uando explorada causa u% impacto# Co%o isto pode parecer u% conceito a'strato/ pense do seguinte %odo1 u% )adr.o de carros Aagente de a%ea*aB passa por u% estaciona%ento +erificando nos carros presentes Ao siste%aB a e0ist7ncia de portas destrancadas Aa +u)nera'i)idadeB e >uando a encontra/ a're a porta Aa e0p)ora*.oB e )e+a para si o >ue estD dentro do carro Ao i%pactoB# !odos esses fatores dese%penha% u% pape) no desen+o)+i%ento de soft<are seguro# 50iste u%a diferen*a funda%enta) entre a a'ordage% adotada por u%a e>uipa de desen+o)+i%ento e a a'ordage% >ue & adotada por a)gu&% >ue estD interessado e% atacar u%a ap)ica*.o# P%a e>uipa de desen+o)+i%ento nor%a)%ente desen+o)+e u%a ap)ica*.o co% 'ase na>ui)o >ue e)a pretende fa-er# Esso significa criar u%a ap)ica*.o para e0ecutar tarefas espec(ficas 'aseadas e% re>uisitos funcionais e casos de uso docu%entados# P% atacante/ por outro )ado/ estD %ais interessado no >ue a ap)ica*.o pode ser )e+ada a fa-er e parte do princ(pio >ue U>ua)>uer a*.o n.o e0pressa%ente proi'ida/ & per%itidaU# Para reso)+er isso/ a)guns e)e%entos adicionais precisa% ser integrados nas fases iniciais do cic)o de +ida do soft<are# 5sses no+os e)e%entos s.o requisitos de segurana e casos de abuso. 5ste guia foi constru(do para a6udar a identificar os re>uisitos de seguran*a de a)to n(+e) e a'ordar +Drios cenDrios de ata>ue# V i%portante >ue as e>uipas de desen+o)+i%ento de ap)ica*Ges We' entenda% >ue os %ecanis%os de contro)o do )ado c)iente/ co%o +a)ida*.o de dados de entrada no c)iente/ ca%pos ocu)tos e contro)os de interface Aco%'o 'o0/ radio 'uttonsB/ fornece% pouco ou nenhu% 'enef(cio de seguran*a# 8esse caso/ u% atacante pode usar ferra%entas co%o proxies do )ado do c)iente/ co%o o OWASP We'Scara'/ =urp ou ferra%entas de captura de pacotes de rede/ co%o o Wireshark/ para ana)isar o trDfego da ap)ica*.o e en+iar pedidos %anipu)ados/ 'ur)ando todas as interfaces# A)&% disso/ o ")ash/ os App)ets 9a+a e de%ais o'6etos >ue tra'a)ha% no )ado c)iente pode% ser a)+o de engenharia re+ersa e ana)isados e% 'usca de fa)has# As fa)has de seguran*a de soft<are pode% ser introdu-idas e% >ua)>uer fase do cic)o de desen+o)+i%ento/ inc)usi+e1 8o in(cio/ ao n.o identificar as necessidades de seguran*a 8a cria*.o de ar>uiteturas conceptuais >ue possua% erros de )Ngica 8o uso de %Ds prDticas de progra%a*.o >ue introdu-a% +u)nera'i)idades t&cnicas 8a i%p)e%enta*.o do soft<are de %odo inapropriado 8a inser*.o de fa)has durante a %anuten*.o ou a atua)i-a*.o

A)&% disso/ & i%portante entender >ue as +u)nera'i)idades de soft<are pode% ter u% T%'ito %uito %aior do >ue o do prNprio soft<are# Jependendo da nature-a do soft<are/ da +u)nera'i)idade e da infraestrutura de apoio/ o i%pacto de u%a e0p)ora*.o 'e% sucedida pode co%pro%eter >ua)>uer u%/ ou %es%o todos os seguintes aspetos1 O soft<are e sua infor%a*.o associada O siste%a operati+o dos ser+idores associados A 'ase de dados do backend

4ers.o #,

Fevereiro 2012

Outras ap)ica*Ges nu% a%'iente parti)hado O siste%a do uti)i-ador Outros soft<ares co% os >uais o uti)i-ador interage

!ista de 'erificao de Prticas de Programao Segura

'alidao dos (ados de )ntrada*


5fetuar toda a +a)ida*.o dos dados nu% siste%a de confian*a# Por e0e%p)o/ centra)i-ar todo o processo no ser+idor Edentificar todas as fontes de dados e c)assificD3)as co%o sendo ou n.o de confian*a# 5% seguida/ +a)idar os dados pro+enientes de fontes nas >uais n.o e0ista confian*a Ae01 'ase de dados/ strea% de ar>ui+os etc#B A rotina de +a)ida*.o de dados de entrada de+e ser centra)i-ada na ap)ica*.o 5specificar o con6unto de caracteres apropriados/ co%o P!"3O/ para todas as fontes de entrada de dados Codificar os dados para u% con6unto de caracteres co%uns antes da +a)ida*.o ACanonicalizeB Quando hD fa)ha de +a)ida*.o a ap)ica*.o de+e re6eitar os dados fornecidos Jeter%inar se o siste%a suporta con6untos de caracteres estendidos P!"3O e e% caso afir%ati+o/ +a)idar apNs efetuar a descodifica*.o P!"3O 4a)idar todos os dados pro+enientes dos c)ientes antes do processa%ento/ inc)uindo todos os parT%etros/ ca%pos de for%u)Drio/ conte$dos das PR:s e ca'e*a)hos W!!P/ co%o/ por e0e%p)o/ os no%es e os +a)ores dos Cookies# Certificar3se/ ta%'&%/ de inc)uir %ecanis%os auto%Dticos de postback2 nos ')ocos de cNdigo 9a+aScript/ ")ash ou >ua)>uer outro cNdigo e%'utido 4erificar se os +a)ores de ca'e*a)ho/ tanto dos pedidos/ co%o das respostas/ cont7% apenas caracteres ASCEE 4a)idar dados pro+enientes de redireciona%entos# Os atacantes pode% inc)uir conte$do %a)icioso direta%ente para o a)+o do %ecanis%o de redireciona%ento/ podendo assi% contornar a )Ngica da ap)ica*.o e >ua)>uer +a)ida*.o e0ecutada antes do redireciona%ento 4a)idar tipos de dados esperados 4a)idar inter+a)o de dados 4a)idar o ta%anho dos dados 4a)idar/ se%pre >ue poss(+e)/ todos os dados de entrada atra+&s de u% %&todo 'aseado e% ?)istas 'rancasU >ue uti)i-a% u%a )ista de caracteres ou e0pressGes regu)ares para definire% os caracteres per%itidos Se >ua)>uer caractere potencia)%ente perigoso precisa ser per%itido na entrada de dados da ap)ica*.o/ certifi>ue3se >ue fora% i%p)e%entados %ecanis%os adicionais co%o codifica*.o dos dados de sa(da/ APEs especificas >ue fornece% tarefas seguras e ca%inhos de auditoria no uso dos dados pe)a ap)ica*.o# A seguir/ co%o e0e%p)o de caracteres ?potencia)%ente perigosos@/ te%os1 X/ Y/ U/ Z/ S/ A/ B/ [/ \/ ]/ ]Z/ ]U Se a rotina de +a)ida*.o padr.o n.o a'ordar as seguintes entradas/ ent.o e)as de+e% ser +erificadas1 aB 4erificar 'ytes nu)os AS00B 'B 4erificar se hD caracteres de no+a )inha AS0d/ S0a/ ]r/ ]nB cB 4erificar se hD caracteres ?ponto3ponto 'arra@ A##2 ou ##]B >ue a)tera% ca%inhos# 8os casos de

8!1 http122pt#<ikipedia#org2<iki2Post'ack

4ers.o #,

Fevereiro 2012

con6unto de caracteres >ue use% a e0tens.o P!"3O/ o siste%a de+e uti)i-ar representa*Ges a)ternati+as co%o1 Sc0SaeSc0Sae2# A canonicalizao de+e ser uti)i-ada para reso)+er pro')e%as de codifica*.o dup)a Adou')e encoding,B ou outras for%as de ata>ues por ofusca*.o

Codificao de (ados de Sa%da*


5fetuar toda a codifica*.o dos dados nu% siste%a de confian*a/ por e0e%p)o/ centra)i-ar todo o processo no ser+idor Pti)i-ar u%a rotina padr.o/ testada/ para cada tipo de codifica*.o de sa(da Rea)i-ar a codifica*.o/ 'aseada e% conte0to/ de todos os dados en+iados para o c)iente >ue t7% orige% nu% a%'iente fora dos )i%ites de confian*a da ap)ica*.o# A codifica*.o das entidades W!M: & u% e0e%p)o/ %as ne% se%pre funciona para todos os casos Codificar todos os caracteres/ a %enos >ue se6a% conhecidos por sere% seguros para o interpretador de destino Rea)i-ar o trata%ento A)i%pe-aB/ 'aseado e% conte0to/ de todos os dados pro+enientes de fontes >ue n.o se6a% de confian*a usados para construir consu)tas SQ:/ ^M:/ e :JAP !ratar todos os dados pro+enientes de fontes >ue n.o se6a% de confian*a >ue gere% co%andos para o siste%a operati+o

Autenticao e Gesto de Credenciais*


Re>uerer autentica*.o para todas as pDginas e recursos/ e0ceto para a>ue)es >ue s.o intenciona)%ente p$')icos Os %ecanis%os de autentica*.o de+e% ser e0ecutados nu% siste%a de confian*a/ por e0e%p)o/ centra)i-ar todo o processo no ser+idor Se%pre >ue poss(+e)/ esta'e)ecer e uti)i-ar ser+i*os de autentica*.o padroni-ados e testados Pti)i-ar u%a i%p)e%enta*.o centra)i-ada para rea)i-ar os procedi%entos de autentica*.o/ disponi'i)i-ando 'i')iotecas >ue in+oca% os ser+i*os de autentica*.o e0ternos Separar a )Ngica de autentica*.o do recurso >ue estD a ser re>uisitado e usar redirecionadores dos contro)adores de autentica*.o centra)i-ados Quando ocorrere% situa*Ges e0cecionais nos contro)adores de autentica*.o/ e0ecutar procedi%entos e% caso de fa)ha co% o propNsito de %anter o siste%a seguro !odas as fun*Ges ad%inistrati+as e de gest.o de contas de+e% ser t.o seguras >uanto o %ecanis%o de autentica*.o principa) Se a ap)ica*.o gerir u% repositNrio de credenciais/ esta de+erD garantir >ue as senhas s.o ar%a-enadas na 'ase de dados so%ente so' a for%a de resu%o2 as da senha na for%a de one!wa" salted as esF/ e >ue a ta'e)a2ar>ui+o >ue ar%a-ena as senhas e as prNprias cha+es s.o %anipu)adas apenas pe)a ap)ica*.o# 8.o uti)i-ar o a)gorit%o de hash MJH/ se%pre >ue esse puder ser e+itado A gera*.o dos resu%os A as B das senhas de+e ser e0ecutada nu% siste%a de confian*a/ por e0e%p)o/ centra)i-ar o contro)o no ser+idor 4a)idar os dados de autentica*.o so%ente no fina) de todas as entradas de dados/ especia)%ente para as i%p)e%enta*Ges de autenticao sequencial As %ensagens de fa)ha na autentica*.o n.o de+e% indicar >ua) parte dos dados de autentica*.o estD


, F

8!1 http122<<<#o<asp#org2inde0#php2Jou')e_5ncoding 8!1 one!wa" salted as & u% a)gorit%o de as gerado co% au0()io de +a)ores a)eatNrios ou pr&3definidos >ue co%pGe% o parT%etro da fun*.o de gera*.o da as e dificu)ta o processo de >ue'ra da as atra+&s de ata>ues de dicionDrio# Mais so're o assunto e%1 http122en#<ikipedia#org2<iki2Sa)t_AcryptographyB

4ers.o #,

Fevereiro 2012

incorreta# Por e0e%p)o/ e% +e- de e0i'ir %ensagens co%o ?8o%e de uti)i-ador incorreto@ ou ?Senha incorreta@/ uti)i-e apenas %ensagens co%o1 ?Pti)i-ador e2ou senha in+D)idos@/ para a%'os os casos de erro# As respostas de erro de+e% ser id7nticas nos dois casos

Pti)i-ar autentica*.o para )iga*.o a siste%as e0ternos >ue en+o)+a% trDfego de infor%a*.o sens(+e) ou acesso a fun*Ges As credenciais de autentica*.o para aceder a ser+i*os e0ternos C ap)ica*.o de+e% ser cifradas e ar%a-enadas nu% )oca) protegido nu% siste%a de confian*a/ por e0e%p)o/ no ser+idor da ap)ica*.o# O's#1 o cNdigo3fonte n.o & considerado u% )oca) seguro Pti)i-ar apenas pedidos POS! para trans%itir credenciais de autentica*.o So%ente trocar senhas An.o te%porDriasB atra+&s de u%a )iga*.o protegida ASS:2!:SB ou co%o dado cifrado/ co%o no caso de en+io de e3%ai) cifrado# Senhas te%porDrias en+iadas por e3%ai) pode% ser u% caso de e0ce*.o aceitD+e) 50igir >ue os re>uisitos de co%p)e0idade de senha esta'e)ecidos pe)a po)(tica ou regu)a%ento se6a% cu%pridos# As credenciais de autentica*.o de+e% ser suficientes para resistir a ata>ues >ue/ tipica%ente/ a%ea*a% o a%'iente de produ*.o# P% e0e%p)o pode ser a e0ig7ncia do uso si%u)tTneo de caracteres a)fa'&ticos/ nu%&rico e2ou caracteres especiais 50igir >ue os re>uisitos de co%pri%ento de senha esta'e)ecidos pe)a po)(tica ou regu)a%ento se6a% cu%pridos# O uso de oito caracteres & o %ais co%u%/ por&% usar I & %ais reco%endado# Considere/ ainda/ o uso de senhas >ue contenha% +Drias pa)a+ras Au%a fraseB A entrada da senha de+e ser ocu)tada no dispositi+o de apresenta*.o do uti)i-ador# 5% W!M:/ uti)i-e o ca%po co% o tipo Upass<ordU Jesati+ar a conta apNs u% n$%ero pr&3definido de tentati+as in+D)idas de autentica*.o Ae01 cinco tentati+as & o %ais co%u%B# A conta de+e ser desati+ada por u% per(odo de te%po suficiente%ente )ongo para desencora6ar a dedu*.o das credenciais pe)o %&todo de for*a 'ruta/ %as n.o t.o )ongo ao ponto de per%itir u% ata>ue de nega*.o de ser+i*o Os processos de redefini*.o de senhas e opera*Ges de %udan*as de+e% e0igir os %es%os n(+eis de contro)o pre+istos para a cria*.o de contas e autentica*.o 5s>ue%as de pergunta2resposta Apr&3definidasB usadas para a redefini*.o da senha de+e% e+itar ata>ues >ue )an*a% respostas a)eatNrias# Por e0e%p)o/ ?)i+ro fa+orito@ & u%a >uest.o fraca/ pois ?A =(')ia@ & u%a resposta %uito co%u% Se optar por usar redefini*.o de senha 'aseada e% e3%ai)/ en+ie u% e3%ai) so%ente para o endere*o pr&3definido contendo u% link ou senha de acesso te%porDrio >ue per%ita% ao uti)i-ador redefinir a senha O te%po de +a)idade das senhas e dos links te%porDrios de+e ser curto 50igir a %udan*a de senhas te%porDrias na prN0i%a +e- >ue o uti)i-ador rea)i-ar a autentica*.o no siste%a 8otificar o uti)i-ador >uando a sua senha for reiniciada AresetB Pre+enir a reuti)i-a*.o de senhas As senhas de+e% ter/ pe)o %enos/ u% dia de dura*.o antes de podere% ser a)teradas/ a fi% de e+itar ata>ues de reuti)i-a*.o de senhas Garantir >ue a troca de senhas estD e% confor%idade co% os re>uisitos esta'e)ecidos na po)(tica ou regu)a%ento# Siste%as cr(ticos pode% e0igir a)tera*Ges %ais fre>uentes nas credenciais de seguran*a# O te%po entre as trocas de senhas de+e ser contro)ado ad%inistrati+a%ente Jesati+ar a funciona)idade de )e%'rar a senha nos ca%pos de senha do na+egador A data2hora da $)ti%a uti)i-a*.o A'e% ou %a) sucedidaB de u%a conta de uti)i-ador de+e ser co%unicada na prN0i%a entrada no siste%a Rea)i-ar %onitori-a*.o para identificar ata>ues contra +Drias contas de uti)i-adores/ uti)i-ando a %es%a senha# 5sse padr.o de ata>ue & uti)i-ado para e0p)orar o uso de senhas padr.o

4ers.o #,

Fevereiro 2012

Modificar todas as senhas >ue/ por padr.o/ s.o definidas pe)os fornecedores/ 'e% co%o os identificadores de uti)i-adores AEJsB ou desati+ar as contas associadas 50igir no+a autentica*.o dos uti)i-adores antes da rea)i-a*.o de opera*Ges cr(ticas Pti)i-ar autenticao de m#ltiplos fatores Auti)i-ando si%u)tanea%ente token/ senha/ 'io%etria etc#HB para contas a)ta%ente sens(+eis ou de e)e+ado +a)or transaciona) Caso uti)i-e cNdigo de terceiros para rea)i-ar a autentica*.o/ inspecione3o cuidadosa%ente para garantir >ue o %es%o n.o & afetado por >ua)>uer cNdigo %a)icioso

Gesto de Sess&es*

Pti)i-ar contro)os de gest.o de sess.o 'aseados no ser+idor ou e% fra%e<ork# A ap)ica*.o de+e reconhecer apenas esses identificadores de sess.o co%o +D)idos A cria*.o dos identificadores de sess.o de+e ser se%pre rea)i-ada nu% siste%a de confian*a/ por e0e%p)o/ centra)i-ado no ser+idor O contro)o de gest.o de sess.o de+e usar a)gorit%os conhecidos/ padroni-ados e 'e% testados >ue garanta% a a)eatoriedade dos identificadores de sess.o Jefinir o do%(nio e o ca%inho para os cookies >ue cont7% identificadores de sess.o autenticados/ para u% +a)or de+ida%ente restrito para o site A funciona)idade de sa(da AlogoutB de+e encerrar co%p)eta%ente a sess.o ou )iga*.o associada A funciona)idade de sa(da AlogoutB de+e estar dispon(+e) e% todas as pDginas >ue re>uere% autentica*.o 5sta'e)ecer u% te%po de e0pira*.o da sess.o >ue se6a o %ais curto poss(+e)/ 'aseado no 'a)ancea%ento dos riscos e re>uisitos funcionais do negNcio# 8a %aioria dos casos n.o de+e ser %ais do >ue a)gu%as horas 8.o per%itir )ogins persistentes Ase% pra-o de e0pira*.oB e rea)i-ar o encerra%ento da sess.o periodica%ente/ %es%o >uando e)a esti+er ati+a# Esso de+e ser feito/ especia)%ente/ e% ap)ica*Ges >ue suporta% +Drias )iga*Ges de rede ou >ue se )iga% a siste%as cr(ticos# O te%po de encerra%ento de+e estar de acordo co% os re>uisitos do negNcio e o uti)i-ador de+e rece'er notifica*Ges suficientes para atenuar os i%pactos negati+os dessa %edida Se u%a sess.o esta+a esta'e)ecida antes do )ogin e)a de+e ser encerrada para >ue u%a no+a se6a esta'e)ecida apNs o )ogin Gerar u% no+o identificador de sess.o >uando hou+er u%a no+a autentica*.o 8.o per%itir cone0Ges si%u)tTneas co% o %es%o identificador de uti)i-ador 8.o e0por os identificadores de sess.o e% PR:s/ %ensagens de erro ou )ogs# Os identificadores de sess.o de+e% apenas ser encontrados no ca'e*a)ho do cookie W!!P# Por e0e%p)o/ n.o en+iar os identificadores de sess.o so' a for%a de parT%etros G5! Proteger os dados de sess.o do )ado ser+idor contra acessos n.o autori-ados por outros uti)i-adores do ser+idor/ atra+&s da i%p)e%enta*.o de contro)os de acesso apropriados no ser+idor Gerar u% no+o identificador de sess.o e desati+ar o antigo periodica%ente# Esso pode %itigar certos cenDrios de ata>ues de rapto de sess.o A session i$ackingB/ >uando o identificador de sess.o origina) for co%pro%etido Gerar u% no+o identificador de sess.o caso a seguran*a da )iga*.o %ude de W!!P para W!!PS/ co%o pode ocorrer durante a autentica*.o# Enterna%ente C ap)ica*.o/ & reco%endD+e) uti)i-ar W!!PS de for%a constante e% +e- de a)ternar entre W!!P e W!!PS Pti)i-ar %ecanis%os co%p)e%entares ao %ecanis%o padr.o de gest.o de sessGes para opera*Ges sens(+eis do )ado do ser+idor co%o no caso de opera*Ges de gest.o de contas atra+&s da

8!1 Co%p)e%enta*.o e0p)icati+a fornecida pe)o tradutor#

4ers.o #,

Fevereiro 2012

uti)i-a*.o de tokens a)eatNrios ou parT%etros associados C sess.o# 5ste %&todo pode ser usado para pre+enir ata>ues do tipo Cross Site Re>uest "orgery ACSR"B

Pti)i-ar %ecanis%os co%p)e%entares C gest.o de sessGes para opera*Ges a)ta%ente sens(+eis ou cr(ticas/ uti)i-ando tokens a)eatNrios ou parT%etros e% cada re>uisi*.o e% +e- de 'asear3se apenas na sess.o Configurar o atri'uto UsecureU para cookies trans%itidos atra+&s de u%a )iga*.o !:S Configurar os cookies co% o atri'uto ?WttpOn)y@/ a %enos >ue se6a e0p)icita%ente necessDrio )er ou definir os +a)ores dos %es%os atra+&s de scripts do )ado c)iente da ap)ica*.o

Controlo de Acessos*

Pti)i-ar apenas o'6etos do siste%a >ue se6a% de confian*a/ co%o ocorre co% os o'6etos de sess.o do ser+idor/ para rea)i-ar a to%ada de decis.o so're a autori-a*.o de acesso Pti)i-ar u% $nico co%ponente e% toda a ap)ica*.o We' para rea)i-ar o processo de +erifica*.o de autori-a*.o de acesso# Esto inc)ui 'i')iotecas >ue in+oca% os ser+i*os e0ternos de autori-a*.o Quando ocorrer a)gu%a fa)ha no contro)o de acesso/ e)a de+e ocorrer de %odo seguro 8egar todos os acessos/ caso a ap)ica*.o n.o consiga ter acesso Cs infor%a*Ges contidas na configura*.o de seguran*a Garantir o contro)o de autori-a*.o e% todos os pedidos/ inc)usi+e e% scripts do )ado do ser+idor/ Uinc)udesU e pedidos pro+enientes de tecno)ogias do )ado c)iente/ co%o A9A^ e ")ash Eso)ar do cNdigo da ap)ica*.o os trechos de cNdigo >ue cont7% )Ngica pri+i)igiada Restringir o acesso aos ar>ui+os e outros recursos/ inc)uindo a>ue)es >ue est.o fora do contro)e direto da ap)ica*.o/ so%ente aos uti)i-adores autori-ados Restringir o acesso Cs PR:s protegidas so%ente aos uti)i-adores autori-ados Restringir o acesso Cs fun*Ges protegidas so%ente aos uti)i-adores autori-ados Restringir o acesso Cs refer7ncias diretas aos o'6etos so%ente aos uti)i-adores autori-ados Restringir o acesso aos ser+i*os so%ente aos uti)i-adores autori-ados Restringir o acesso aos dados da ap)ica*.o so%ente aos uti)i-adores autori-ados Restringir o acesso aos atri'utos e dados dos uti)i-adores/ 'e% co%o infor%a*Ges das po)(ticas usadas pe)os %ecanis%os de contro)e de acesso Restringir o acesso Cs configura*Ges de seguran*a re)e+antes apenas aos uti)i-adores autori-ados As regras de contro)o de acesso representadas pe)a ca%ada de apresenta*.o de+e% coincidir co% as regras presentes no )ado ser+idor Se o estado dos dados de+e ser ar%a-enado no )ado do c)iente/ uti)i-ar %ecanis%os de criptografia e +erifica*.o de integridade no )ado ser+idor para detetar poss(+eis adu)tera*Ges Garantir >ue os f)u0os )Ngicos da ap)ica*.o o'edece% as regras de negNcio :i%itar o n$%ero de transa*Ges >ue u% $nico uti)i-ador ou dispositi+o pode e0ecutar e% deter%inado per(odo de te%po# As transa*Ges por per(odo de te%po de+e% estar aci%a das necessidades reais do negNcio/ %as a'ai0o o suficiente para i%pedir ata>ues auto%ati-ados Pti)i-ar o ca%po ?referer@ do ca'e*a)ho so%ente co%o for%a de +erifica*.o sup)e%entar# O %es%o n.o de+e ser usado so-inho co%o for%a de +a)ida*.o de autori-a*.o por>ue e)e pode ter o +a)or adu)terado Se for per%itida a e0ist7ncia de sessGes autenticadas por )ongos per(odos de te%po/ fa-er a re+a)ida*.o periNdica da autori-a*.o do uti)i-ador para garantir >ue os pri+i)&gios n.o fora% %odificados e/ caso tenha% sido/ rea)i-ar o registo e% )og do uti)i-ador e e0igir no+a autentica*.o E%p)e%entar a auditoria das contas de uti)i-ador e assegurar a desati+a*.o de contas n.o uti)i-adas#

4ers.o #,

Fevereiro 2012

Por e0e%p)o1 a conta de+e ser desati+ada n.o %ais do >ue ,0 dias apNs a e0pira*.o da senha

A ap)ica*.o de+e dar suporte C desati+a*.o de contas e ao encerra%ento das sessGes >uando ter%inar a autori-a*.o do uti)i-ador# Por e0e%p)o1 >uando ocorrer a)gu%a a)tera*.o dos dados do uti)i-ador/ situa*.o profissiona)/ processos de negNcio etc# As contas de ser+i*o ou contas de suporte a )iga*Ges pro+enientes ou destinadas a ser+i*os e0ternos de+e% possuir o %enor pri+i)&gio poss(+e) Criar u%a Po)(tica de Contro)o de Acesso para docu%entar as regras de negNcio da ap)ica*.o/ tipos de dados e crit&rios ou processos de autori-a*.o para >ue os acessos possa% ser de+ida%ente concedidos e contro)ados# Esto inc)ui identificar re>uisitos de acessos/ tanto para os dados/ co%o para os recursos do siste%a

Prticas de Criptografia*

!odas as fun*Ges de criptografia uti)i-adas para proteger dados sens(+eis dos uti)i-adores da ap)ica*.o/ de+e% ser i%p)antadas nu% siste%a de confian*a Aneste caso o ser+idorB A senha %estre de+e ser protegida contra acessos n.o autori-ados Quando ocorrer a)gu%a fa)ha nos %Ndu)os de criptografia/ per%itir >ue as %es%as ocorra% de %odo seguro !odos os n$%eros/ no%es de ar>ui+os/ GPEJs e strings a)eatNrias de+e% ser gerados usando u% %Ndu)o criptogrDfico co% gerador de n$%eros a)eatNrios/ so%ente se os +a)ores a)eatNrios gerados fore% i%poss(+eis de sere% dedu-idos Os %Ndu)os de criptografia usados pe)a ap)ica*.o de+e% ser co%pat(+eis co% a "EPS F032 ou co% u% padr.o e>ui+a)ente Ahttp122csrc#nist#go+2groups2S!M2c%+p2+a)idation#ht%)B 5sta'e)ecer e uti)i-ar u%a po)(tica e processo >ue defina co%o & rea)i-ada a gest.o das cha+es criptogrDficas

+ratamento de )rros e !og*


8.o e0por infor%a*Ges sens(+eis nas repostas de erros/ inc)usi+e deta)hes de siste%a/ identificadores de sess.o ou infor%a*.o da conta do uti)i-ador Psar %ecanis%os de trata%ento de erros >ue n.o %ostre% infor%a*Ges de depura*.o AdebugB ou infor%a*Ges da pi)ha de e0ce*.o Psar %ensagens de erro gen&ricas e pDginas de erro persona)i-adas A ap)ica*.o de+e tratar os erros se% se 'asear nas configura*Ges do ser+idor A %e%Nria reser+ada de+e ser )i'ertada de %odo apropriado >uando ocorrere% condi*Ges de erro O trata%ento de erros )Ngicos associados co% os contro)os de seguran*a de+e%/ por padr.o/ negar o acesso !odos os contro)os de )og de+e% ser i%p)e%entados nu% siste%a de confian*a/ por e0e%p)o/ centra)i-ar todo o processo no ser+idor Os contro)os de )og de+e% dar suporte tanto para os casos de sucesso co%o os de fa)ha re)acionados co% os e+entos de seguran*a Garantir >ue os )ogs ar%a-ena% e+entos i%portantes Garantir >ue as entradas de )og >ue inc)ua% dados nos >uais n.o se confia n.o se6a% e0ecutadas co%o cNdigo3fonte na interface de +isua)i-a*.o de )ogs Restringir o acesso aos )ogs apenas para pessoa) autori-ado Pti)i-ar u%a rotina centra)i-ada para rea)i-ar todas as opera*Ges de )og

4ers.o #,

Fevereiro 2012

8.o ar%a-enar infor%a*Ges sens(+eis nos registos de )ogs/ co%o deta)hes desnecessDrios do siste%a/ identificadores de sess.o e senhas Garantir o uso de a)gu% %ecanis%o >ue condu-a Aou faci)iteB o processo de anD)ise de )ogs Registar e% )og todas as fa)has de +a)ida*.o de entrada de dados Registar e% )og todas as tentati+as de autentica*.o/ especia)%ente as >ue fa)hara% por a)gu% %oti+o Registar e% )og todas as fa)has de contro)o de acesso Registar e% )og todos os e+entos suspeitos de adu)tera*.o/ inc)usi+e a)tera*Ges inesperadas no estado dos dados Registar e% )og as tentati+as de )iga*.o co% tokens de sess.o in+D)idos ou e0pirados Registar e% )og todas as e0ce*Ges )an*adas pe)o siste%a Registar e% )og todas as fun*Ges ad%inistrati+as/ inc)usi+e as %udan*as rea)i-adas nas configura*Ges de seguran*a Registar e% )og todas as fa)has de )iga*.o !:S co% o 'ackend Registar e% )og todas as fa)has >ue ocorrera% nos %Ndu)os de criptografia Pti)i-ar u%a fun*.o de hash criptogrDfica para +a)idar a integridade dos registros de )og

Proteo de (ados*

E%p)e%entar u%a po)(tica de pri+i)&gio %(ni%o/ restringindo os uti)i-adores apenas Cs funciona)idades/ dados e infor%a*Ges do siste%a >ue s.o necessDrias para e0ecutare% as suas tarefas Proteger contra acesso n.o autori-ado todas as cNpias te%porDrias ou registadas e% cache >ue contenha% dados sens(+eis e este6a% ar%a-enadas no ser+idor e e0c)uir esses ar>ui+os )ogo >ue n.o fore% %ais necessDrios Cifrar infor%a*Ges a)ta%ente sens(+eis >uando ar%a-enadas co%o dados de +erifica*.o de autentica*.o %es%o >ue este6a% no )ado ser+idor/ usando se%pre a)gorit%os conhecidos/ padroni-ados e 'e% testados# Consu)te a sec*.o >ue trata so're ?PrDticas de Criptografia@ para orienta*Ges adicionais Proteger o cNdigo3fonte presente no ser+idor para >ue n.o se6a descarregado por a)gu% uti)i-ador 8.o ar%a-enar senhas/ strings de )iga*.o ou outras infor%a*Ges confidenciais e% te0to c)aro2)eg(+e) ou e% >ua)>uer for%a criptografica%ente insegura no )ado c)iente# Esto & +D)ido ta%'&% >uando hD uti)i-a*.o de for%atos inseguros co%o1 MS +ie<state/ Ado'e ")ash ou cNdigo co%pi)ado >ue corre no )ado do c)iente Re%o+er co%entDrios do cNdigo de produ*.o >ue pode% ser acessados pe)os uti)i-adores e pode% re+e)ar deta)hes internos do siste%a ou outras infor%a*Ges sens(+eis Re%o+er ap)ica*Ges desnecessDrias e docu%enta*.o do siste%a >ue possa% re+e)ar infor%a*Ges i%portantes para os atacantes 8.o inc)uir infor%a*Ges sens(+eis nos parT%etros de pedidos W!!P G5! Jesati+ar a funciona)idade de auto co%p)etar nos for%u)Drios >ue contenha% infor%a*Ges sens(+eis/ inc)usi+e no for%u)Drio de autentica*.o Jesati+ar a cache rea)i-ada no )ado do c)iente das pDginas >ue contenha% infor%a*Ges sens(+eis# O parT%etro Cache,Control* no,store/ pode ser usado e% con6unto co% o contro)o definido no ca'e*a)hos W!!P -Pragma* no,cache./ >ue & %enos efeti+o/ por&% co%pat(+e) co% W!!P2 #0 A ap)ica*.o de+e dar suporte C re%o*.o de dados sens(+eis >uando estes n.o fore% %ais necessDrios# Por e0e%p)o1 infor%a*.o pessoa) ou dados financeiros E%p)e%entar %ecanis%os de contro)o de acesso apropriados para dados sens(+eis ar%a-enados no ser+idor# Esto inc)ui dados e% cache/ ar>ui+os te%porDrios e dados >ue de+e% ser acess(+eis so%ente

4ers.o #,

Fevereiro 2012

por uti)i-adores espec(ficos do siste%a

Segurana nas comunica&es*

Pti)i-ar criptografia na trans%iss.o de todas as infor%a*Ges sens(+eis# Esto de+e inc)uir !:S para proteger a )iga*.o e de+e ser co%p)e%entado co% criptografia de ficheiros >ue cont&% dados sens(+eis ou )iga*Ges >ue n.o usa% o protoco)o W!!P Os certificados !:S de+e% ser +D)idos/ possu(re% o no%e de do%(nio correto/ n.o estare% e0pirados e sere% insta)ados co% certificados inter%&dios/ >uando necessDrio Quando ocorrer a)gu%a fa)ha nas )iga*Ges !:S/ o siste%a n.o de+e fornecer u%a )iga*.o insegura Pti)i-ar )iga*Ges !:S para todo o conte$do >ue re>uer acesso autenticado ou ou >ue contenha infor%a*.o sens(+e) Pti)i-ar !:S para )iga*Ges co% siste%as e0ternos >ue en+o)+a% fun*Ges ou infor%a*Ges sens(+eis Pti)i-ar u% padr.o $nico de i%p)e%enta*.o !:S configurado de %odo apropriado 5specificar a codifica*.o dos caracteres para todas as cone0Ges "i)trar os parT%etros >ue contenha% infor%a*Ges sens(+eis/ pro+enientes do ?W!!P referer@/ nos )inks para sites e0ternos

Configurao do Sistema*

Garantir >ue os ser+idores/ fra%e<orks e co%ponentes do siste%a est.o a e0ecutar a $)ti%a +ers.o apro+ada Garantir >ue os ser+idores/ fra%e<orks e co%ponentes do siste%a possue% as atua)i-a*Ges %ais recentes ap)icadas para a +ers.o e% uso Jesati+ar a )istage% de diretNrios Restringir/ para o %(ni%o poss(+e)/ os pri+i)&gios do ser+idor We'/ dos processos e das contas de ser+i*os Quando ocorrere% e0ce*Ges no siste%a/ garantir >ue as fa)has ocorre% de %odo seguro Re%o+er todas as funciona)idades e ar>ui+os desnecessDrios Re%o+er cNdigo de teste ou >ua)>uer funciona)idade desnecessDria para o a%'iente de produ*.o/ antes de disponi'i)i-ar o siste%a no ser+idor de produ*.o Pre+enir a di+u)ga*.o da estrutura de diretNrios i%pedindo >ue ro'`sI de 'usca fa*a% a inde0a*.o de ar>ui+os sens(+eis/ atra+&s da configura*.o do ar>ui+o ?ro'ots#t0t@K# Os diretNrios >ue n.o de+e% ser acessados por estes inde0adores de+e% ser co)ocados nu% diretNrio iso)ado# Assi%/ apenas & necessDrio negar o acesso ao diretNrio pai definido no ar>ui+o ?ro'ots#t0t@/ e+itando ter >ue negar o acesso a cada diretNrio indi+idua)%ente Jefinir >uais %&todos W!!P/ G5! ou POS!/ a ap)ica*.o irD suportar e se ser.o tratados de %odo diferenciado nas di+ersas pDginas da ap)ica*.o Jesati+ar as e0tensGes W!!P desnecessDrias co%o/ por e0e%p)o/ o We'JA4# Caso se6a necessDrio o uso de a)gu%a e0tens.o W!!P co% o propNsito de suportar a %anipu)a*.o de ar>ui+os/ uti)i-e u% %ecanis%o de autentica*.o conhecido/ padroni-ado e 'e% testado Se o ser+idor processa tanto pedidos W!!P #0 co%o W!!P # / certificar3se de >ue a%'os s.o
8!1 Ro'`s s.o progra%as de co%putador >ue percorre% auto%atica%ente as pDginas da Enternet e% 'usca de docu%entos/ co% o propNsito de inde0D3)os/ +a)idD3)os ou %onitorar a)tera*Ges de conte$do# http122pt#<ikipedia#org2<iki2Ro'ots#t0t 8!1 o )ink a'ai0o %ostra e0e%p)os de co%o configurar o ar>ui+o ro'ots#t0t# http122<<<#%undoseo#co%#'r2seo3tecnico2ro'otst0t3configuracao3seu3site2

4ers.o #,

Fevereiro 2012

configurados de %odo se%e)hante ou assegure >ue >ua)>uer diferen*a >ue possa e0istir se6a co%preendida/ co%o/ por e0e%p)o/ o %anusea%ento de %&todos W!!P estendidos

Re%o+er infor%a*Ges desnecessDrias presentes nos ca'e*a)hos de resposta W!!P e >ue pode% estar re)acionadas co% o siste%a operati+o/ +ers.o do ser+idor <e' e fra%e<orks de ap)ica*.o O ar%a-ena%ento da configura*.o de seguran*a para a ap)ica*.o de+e ser capa- de ser produ-ida de for%a )eg(+e) para dar suporte C auditoria E%p)e%entar u% siste%a de gest.o de ati+os para %anter o registo dos co%ponentes e progra%as Eso)ar o a%'iente de desen+o)+i%ento da rede de produ*.o e conceder acesso so%ente para grupos de desen+o)+i%ento e testes# V co%u% os a%'ientes de desen+o)+i%ento sere% configurados de %odo %enos seguro do >ue os a%'ientes de produ*.o# Jeste %odo/ os atacantes pode% usar essa diferen*a para desco'rir +u)nera'i)idades co%uns ou encontrar for%as de e0p)ora*.o das %es%as E%p)e%entar u% siste%a de contro)o de %udan*as para gerir e registar as a)tera*Ges no cNdigo/ tanto de desen+o)+i%ento/ co%o dos siste%as e% produ*.o

Segurana em /ase de (ados*


Psar consultas parametrizadas forte%ente tipificadas Pti)i-ar +a)ida*.o de entrada e codifica*.o de sa(da e assegurar a a'ordage% de %eta caracteres# Se hou+er fa)ha/ o co%ando n.o de+erD ser e0ecutado na 'ase de dados Certificar3se de >ue as +ariD+eis s.o forte%ente tipificadas Rea)i-ar a codifica*.o AescapingB de %eta caracteres e% instru*Ges SQ:O A ap)ica*.o de+e usar o %enor n(+e) poss(+e) de pri+i)&gios ao aceder a 'ase de dados Psar credenciais seguras para aceder a 'ase de dados 8.o inc)uir strings de )iga*.o na ap)ica*.o# As strings de )iga*.o de+e% ser ar%a-enadas nu% ar>ui+o de configura*.o separado/ ar%a-enado nu% siste%a de confian*a e as infor%a*Ges de+e% ser cifradas Psar procedi%entos ar%a-enados Astored proceduresB para a'strair o acesso aos dados e per%itir a re%o*.o de per%issGes das ta'e)as no 'anco de dados 5ncerrar a )iga*.o assi% >ue poss(+e) Re%o+er ou %odificar senhas padr.o de contas ad%inistrati+as# Pti)i-ar senhas ro'ustas Apouco co%uns ou dif(ceis de dedu-irB ou i%p)e%entar autentica*.o de %$)tip)os fatores# Jesati+ar >ua)>uer funciona)idade desnecessDria na 'ase de dados/ co%o ?stored procedures@ ou ser+i*os n.o uti)i-ados# Ensta)ar o con6unto %(ni%o de co%ponentes ou de op*Ges necessDrias Aredu*.o da superf(cie de ata>ueB 5)i%inar o conte$do desnecessDrio inc)u(do por padr.o pe)o fornecedor co%o es>ue%as e 'ases de dados de e0e%p)o Jesati+ar todas as contas criadas por padr.o e >ue n.o se6a% necessDrias para suportar os re>uisitos de negNcio A ap)ica*.o de+e )igar3se C 'ase de dados co% diferentes credenciais de seguran*a para cada tipo de necessidade co%o/ por e0e%p)o/ uti)i-ador/ so%ente )eitura/ con+idado ou ad%inistrador

Gesto de 0icheiros*

O

8.o passar dados fornecidos pe)os uti)i-adores direta%ente a u%a fun*.o de inc)us.o dinT%ica So)icitar autentica*.o antes de per%itir >ue se6a feito o carrega%ento de ficheiros

8!1 http122<<<#o<asp#org2inde0#php2SQ:_En6ection_Pre+ention_Cheat_Sheet

4ers.o #,

Fevereiro 2012

:i%itar os tipos de ficheiros >ue pode% ser en+iados para aceitar so%ente os necessDrios ao propNsito do negNcio 4a)idar se os ficheiros en+iados s.o do tipo esperado/ atra+&s da +a)ida*.o dos ca'e*a)hos/ pois/ rea)i-ar a +erifica*.o apenas pe)a e0tens.o n.o & suficiente 8.o gra+ar ficheiros no %es%o diretNrio de conte0to da ap)ica*.o We'# Os ficheiros de+e% ser ar%a-enados no ser+idor de conte$dos ou na 'ase de dados Pre+enir ou restringir o carrega%ento de >ua)>uer ficheiro >ue possa ser interpretado ou e0ecutado pe)o ser+idor We' Jesati+ar pri+i)&gios de e0ecu*.o nos diretNrios de ar%a-ena%ento de ficheiros E%p)antar o carrega%ento seguro nos a%'ientes P8E^ por %eio da %ontage% do diretNrio de destino co%o u%a unidade )Ngica/ usando o ca%inho associado ou o a%'iente de ?chroot@ Ao referenciar ficheiros/ usar u%a )ista 'ranca Aw itelistB de no%es e de tipos de ficheiros per%itidos# Rea)i-ar a +a)ida*.o do +a)or do parT%etro passado e caso e)e n.o corresponda ao >ue & esperado/ re6eitar a entrada ou uti)i-ar u% +a)or padr.o 8.o trans%itir/ se% nenhu% tipo de trata%ento/ os dados infor%ados pe)o uti)i-ador a redireciona%entos dinT%icos# Se isso for necessDrio/ o redireciona%ento de+erD aceitar apenas PR:s re)ati+as e +a)idadas 8.o passar ca%inhos de diretNrios ou de ficheiros e% pedidos# Psar a)gu% %ecanis%o de %apea%ento desses recursos para (ndices definidos nu%a )ista pr&3definida de ca%inhos 8unca en+iar o ca%inho a'so)uto do ficheiro para o c)iente Certificar3se de >ue os ficheiros da ap)ica*.o e os recursos est.o definidos so%ente co% o atri'uto de )eitura 4erificar os ficheiros >ue os uti)i-adores su'%etere% atra+&s do %ecanis%o de carrega%ento e% 'usca de +(rus e %a)<ares

Gesto de Mem1ria*

Pti)i-ar contro)o de entrada2sa(da de dados >ue n.o se6a% de confian*a 4erificar se o 'uffer & t.o grande >uanto o especificado Ao usar fun*Ges >ue aceite% deter%inado n$%ero de 'ytes para rea)i-ar cNpias/ co%o strncpyAB/ este6a ciente de >ue se o ta%anho do 'uffer de destino for igua) ao ta%anho do 'uffer de orige%/ e)e n.o pode encerrar a se>u7ncia de caracteres co% +a)or nu)o Anu))B 4erificar os )i%ites do 'uffer caso as cha%adas C fun*.o se6a% rea)i-adas e% cic)os e +erificar se n.o hD nenhu% risco de ocorrer gra+a*.o de dados a)&% do espa*o reser+ado !runcar todas as strings de entrada para u% ta%anho ra-oD+e) antes de passD3)as para as fun*Ges de cNpia e concatena*.o 8a )i'era*.o de recursos reser+ados para o'6etos de )iga*.o/ identificadores de ficheiro etc#/ n.o contar co% o ?garbage collector@ e rea)i-ar a tarefa e0p)icita%ente Psar pi)has n.o e0ecutD+eis/ >uando dispon(+eis 5+itar o uso de fun*Ges reconhecida%ente +u)nerD+eis co%o printfAB/ strcatAB/ strcpyAB etc# :i'erar a %e%Nria reser+ada de %odo apropriado apNs conc)uir a su'3rotina Afun*.o2%&todoB e e% todos pontos de sa(da

Prticas Gerais de Programao*

Para tarefas co%uns/ uti)i-ar se%pre cNdigo testado/ gerido e apro+ado ao in+&s de criar cNdigo no+o e n.o gerido

4ers.o #,

Fevereiro 2012

Pti)i-ar APEs >ue e0ecute% tarefas espec(ficas para rea)i-ar opera*Ges do siste%a operati+o# 8.o per%itir >ue a ap)ica*.o e0ecute co%andos direta%ente no siste%a operati+o/ especia)%ente atra+&s da uti)i-a*.o de ?she))s@ de co%ando iniciadas pe)a ap)ica*.o Pti)i-ar %ecanis%os de +erifica*.o de integridade por ?checksu%@ ou ?hash@ para +erificar a integridade do cNdigo interpretado/ 'i')iotecas/ ficheiros e0ecutD+eis e ficheiros de configura*.o Pti)i-ar %ecanis%os de ')o>ueio para e+itar pedidos si%u)tTneos para a ap)ica*.o ou uti)i-ar u% %ecanis%o de sincroni-a*.o para e+itar condi*Ges de concorr7ncia Arace conditionsB Proteger as +ariD+eis parti)hadas e os recursos contra acessos concorrentes inapropriados Enstanciar e0p)icita%ente todas as +ariD+eis e dados persistentes durante a dec)ara*.o/ ou antes da pri%eira uti)i-a*.o Quando a ap)ica*.o ti+er >ue ser e0ecutada co% pri+i)&gios e)e+ados/ au%entar os pri+i)&gios o %ais tarde poss(+e) e re+ogD3)os )ogo >ue se6a poss(+e) 5+itar erros de cD)cu)o decorrentes da fa)ta de entendi%ento da representa*.o interna da )inguage% de progra%a*.o usada e de co%o & rea)i-ada a intera*.o co% os aspetos de cD)cu)o nu%&rico# Prestar 'astante aten*.o nas discrepTncias de ta%anho de 'yte/ precis.o/ distin*Ges de sina) Asigned2unsignedB/ trunca%ento/ con+ers.o e ?casting@ entre os tipos/ cD)cu)os >ue de+o)+a% erros do tipo ?not3a3nu%'er@ e/ ta%'&%/ co%o a )inguage% de progra%a*.o trata a representa*.o interna de n$%eros %uito grandes ou %uito pe>uenos 8.o transferir/ direta%ente/ dados fornecidos pe)o uti)i-ador para >ua)>uer fun*.o de e0ecu*.o dinT%ica se% rea)i-ar o tratamento dos dados de %odo ade>uado Restringir a gera*.o e a a)tera*.o de cNdigo por parte dos uti)i-adores Re+er todas as ap)ica*Ges secundDrias/ cNdigos e 'i')iotecas de terceiros para deter%inar a necessidade do negNcio e +a)idar as funciona)idades de seguran*a/ u%a +e- >ue estas pode% introdu-ir no+as +u)nera'i)idades E%p)e%entar atua)i-a*Ges de %odo seguro# Se a ap)ica*.o precisar rea)i-ar atua)i-a*Ges auto%Dticas/ uti)i-ar %ecanis%os de assinatura digita) para garantir a integridade do cNdigo e garantir >ue os c)ientes fa*a% a +erifica*.o da assinatura apNs descarregare% as atua)i-a*Ges# Psar canais cifrados para transferir o cNdigo a partir do host do ser+idor

4ers.o #,

Fevereiro 2012

Apndice A 2Recursos e3ternos e referncias4


Referncias )3ternas*
# Refer7ncia citada Sans and !ippingPoint U!he !op Cy'er Security RisksU http122<<<#sans#org2top3cy'er3security3risks We' App)ication Security Consortiu% http122<<<#<e'appsec#org Co%%on Weakness 5nu%eration ACW5B http122c<e#%itre#org Jepart%ent of Wo%e)and Security =ui)d Security En Porta) https122'ui)dsecurityin#us3cert#go+2daisy2'si2ho%e#ht%) C5R! Secure Coding http122<<<#cert#org2secure3coding MSJ8 Security Je+e)oper Center http122%sdn#%icrosoft#co%2en3us2security2defau)t#asp0 SQ: En6ection Cheat Sheet http122ferruh#%a+ituna#co%2s>)3in6ection3cheatsheet3oku Cross Site Scripting A^SSB Cheat Sheet http122ha#ckers#org20ss#ht%)

Sites de A#isos de Segurana*


5stes )inks pode% ser $teis para +erificar e garantir >ue a infraestrutura de apoio e os fra%e<orks n.o possue% +u)nera'i)idades conhecidas1
Secunia Citri0 4u)nera'i)ity :ist http122secunia#co%2ad+isories2search2asearchbcitri0 Security "ocus 4u)nera'i)ity Search http122<<<#securityfocus#co%2+u)nera'i)ities Open Source 4u)nera'i)ity Jata'ase AOS4J=B http122os+d'#org2search2<e'_+u)n_search Co%%on 4u)nera'i)ity 5nu%eration http122<<<#c+e#%itre#org

4ers.o #,

Fevereiro 2012

Apndice / 2Glossrio4
Agente de Ameaa* Qua)>uer entidade >ue pode causar u% i%pacto negati+o nu% siste%a# Pode ser tanto u% uti)i-ador %a)3intencionado >uerendo co%pro%eter os contro)os de seguran*a do siste%a/ >uanto u% des+io acidenta) do siste%a ou u%a a%ea*a f(sica co%o inc7ndios ou inunda*Ges# Autenticao* V u% con6unto de contro)os usados para +erificar a identidade de u% uti)i-ador/ ou outra entidade >ue interage co% o soft<are# Autenticao de M5ltiplos 0atores* V u% processo de autentica*.o >ue re>uer +Drios tipos de credenciais do uti)i-ador# 8or%a)%ente & 'aseado e% a)go >ue e)e possui Ae0#1 cart.o inte)igenteB/ a)go >ue e)e sa'e Au%a e0#1 senhaB/ ou e% a)go >ue e)e & Ae0#1 dados pro+enientes de u% )eitor 'io%&tricoB# Autenticao Se6uencial* Ocorre >uando os dados de autentica*.o s.o so)icitados e% sucessi+as pDginas/ ao in+&s de sere% so)icitados nu%a $nica pDgina# Canonicali7ao* V u%a opera*.o rea)i-ada para redu-ir +Drias codifica*Ges e representa*Ges de dados nu%a $nica for%a si%p)ificada# Caracteres Maliciosos* Quais>uer caracteres ou representa*Ges codificadas de caracteres >ue pode% produ-ir efeitos indese6D+eis so're a opera*.o nor%a) de ap)ica*Ges ou dos siste%as associados >uando s.o interpretados/ por tere% significado especia)# 5stes caracteres pode% ser usados para1 Modificar a estrutura de cNdigo ou de dec)ara*Ges Enserir cNdigo indese6ado Modificar ca%inhos Causar sa(das inesperadas das fun*Ges ou rotinas dos progra%as Causar condi*Ges de erro Causar >ua)>uer dos efeitos anteriores e% ap)ica*Ges su'6acentes

Casos de A8uso* Jescre+e% o %au uso/ intenciona) ou n.o/ do soft<are# Os casos de a'uso de+e% desafiar os pressupostos do pro6eto do siste%a# Codificao de )ntidade 9+M!* Processo de su'stitui*.o de deter%inados caracteres ASCEE pe)as entidades W!M: e>ui+a)entes# Por e0e%p)o/ a codifica*.o poderia su'stituir o caractere ?X@ pe)a entidade W!M: e>ui+a)ente U[)tcU# 5ssas entidades s.o ?inertes@ na %aioria dos interpretadores especia)%ente na+egadores e pode% atenuar os ata>ues do )ado do c)iente# Codificao de Sa%da /aseada em Conte3to* V a codifica*.o de dados da sa(da rea)i-ada usando co%o refer7ncia o %odo co%o os dados ser.o uti)i-ados pe)a ap)ica*.o# Se os dados da sa(da esti+ere% inc)u(dos na resposta ao c)iente/ de+e3se )e+ar e% considera*.o situa*Ges co%o1 o corpo de u% docu%ento W!M:/ u% atri'uto de W!M:/ codifica*.o 9a+aScript/ codifica*.o dentro de u% CSS ou de u%a PR:# Je+e% ta%'&% ser )e+ados e% considera*.o outros casos co%o consu)tas SQ:/ ^M: e :JAP# Codificao de Sa%da de (ados* V u% con6unto de contro)os >ue a'orda% o uso de codifica*.o para

4ers.o #,

Fevereiro 2012

garantir u%a sa(da de dados segura gerada pe)a ap)ica*.o# Confidencialidade* V o ato de garantir >ue as infor%a*Ges s.o di+u)gadas apenas para as partes autori-adas# Configurao do Sistema* Con6unto de contro)os >ue a6uda% a garantir >ue infraestrutura de apoio ao soft<are s.o disponi'i)i-ados de for%a segura# os co%ponentes de

Consultas Parametri7adas 2prepared statements4* Mant&% a consu)ta e os dados separados atra+&s do uso de espa*os reser+ados# A estrutura de consu)ta & definida por caracteres especiais >ue representa% os parT%etros a sere% su'stitu(dos# A consu)ta para%etri-ada & en+iada para a 'ase de dados e preparada para rece'er os parT%etros e/ e% seguida/ & co%'inada co% os +a)ores dos %es%os# Esto i%pede >ue a consu)ta se6a a)terada por>ue os +a)ores dos parT%etros s.o co%'inados co% a dec)ara*.o co%pi)ada e n.o concatenados direta%ente na se>u7ncia de caracteres >ue co%pGe% a consu)ta SQ:# Controle de Acesso1 V u% con6unto de contro)os >ue )i'erta ou nega o acesso a u% recurso do siste%a a u% uti)i-ador ou outra entidade >ua)>uer# 8or%a)%ente & 'aseado e% regras hierDr>uicas e pri+i)&gios indi+iduais associados a pap&is/ por&% ta%'&% inc)ui intera*Ges entre siste%as# Controles de Segurana* S.o a*Ges >ue %itiga% u%a +u)nera'i)idade potencia) e a6uda% a garantir >ue o soft<are se co%porta confor%e o esperado# Cross Site Re6uest 0orger 2CSR04* Ocorre >uando u%a ap)ica*.o ou site <e' e0ternos for*a% o na+egador do c)iente a rea)i-ar u% pedido in+o)untDrio para u%a ap)ica*.o e% >ue o c)iente possui u%a sess.o ati+a# As ap)ica*Ges s.o +u)nerD+eis ao CSR" >uando usa% PR:s e parT%etros conhecidos ou pre+is(+eis ou >uando o na+egador trans%ite todas as infor%a*Ges da sess.o para a ap)ica*.o +u)nerD+e) de for%a auto%Dtica e% cada so)icita*.o# 5ste & apenas u% dos ata>ues discutidos neste docu%ento e sN estD inc)u(do por>ue a +u)nera'i)idade associada & %uito co%u%/ por&% %a) co%preendida# (isponi8ilidade* V a propriedade de estar acess(+e) e uti)i-D+e) >uando so)icitado por u%a entidade autori-ada# )stado dos (ados* S.o dados ou parT%etros usados pe)a ap)ica*.o ou pe)o ser+idor para e%u)ar u%a )iga*.o persistente ou contro)ar o estado AstatusB de u% c)iente atra+&s de u% processo de %$)tip)as pedidos ou transa*Ges# )3ploit* V a a*.o de apro+eitar3se da e0ist7ncia de u%a +u)nera'i)idade# 8or%a)%ente & u%a a*.o intenciona) e te% co%o o'6eti+o co%pro%eter os contro)es de seguran*a do soft<are# Gesto de 0icheiros* V u% con6unto de contro)os >ue resguarda% a intera*.o entre o cNdigo da ap)ica*.o e os ficheiros do siste%a# Gesto de Mem1ria* V u% con6unto de contro)os >ue di-e% respeito ao uso de %e%Nria e do 'uffer# Gesto de Sesso* V u% con6unto de contro)os >ue trata% da %anipu)a*.o de sessGes W!!P de for%a segura por ap)ica*Ges We'#

4ers.o #,

Fevereiro 2012

$mpacto* V o efeito negati+o percet(+e) para o negNcio/ resu)tante da ocorr7ncia de u% e+ento indese6D+e)/ >ue por sua +e- & o resu)tado da e0p)ora*.o de +u)nera'i)idades# $ntegridade* V a garantia de >ue as infor%a*Ges s.o precisas/ co%p)etas e +D)idas/ e >ue n.o fora% a)teradas por u%a a*.o n.o autori-ada# !imites de Confiana* 8or%a)%ente/ u% )i%ite de confian*a & constitu(do pe)os co%ponentes do siste%a so're os >uais se te% contro)o direto# !odas as )iga*Ges e dados do siste%a fora deste contro)o direto inc)uindo todos os c)ientes e siste%as geridos por terceiros de+e% ser considerados co%o n.o sendo de confian*a e necessita% de +a)ida*.o na fronteira/ antes de rece'ere% per%issGes para rea)i-are% intera*Ges co% o siste%a# Mitigar* S.o %edidas to%adas para redu-ir o grau de se+eridade de u%a +u)nera'i)idade# 5ssas %edidas inc)ue% a re%o*.o de u%a +u)nera'i)idade/ se6a ao tornD3)a %ais dif(ci) de ser e0p)orada/ ou ao redu-ir o i%pacto negati+o de u%a e0p)ora*.o 'e% sucedida# Prticas de Criptografia1 Con6unto de contro)os para garantir >ue as opera*Ges de criptografia dentro da ap)ica*.o s.o e0ecutadas de %odo seguro# Prticas Gerais de Programao* Con6unto de contro)os a'rangendo prDticas de codifica*.o >ue n.o se encai0a% faci)%ente noutras categorias# Proteo dos (ados1 Con6unto de contro)os para a6udar a garantir >ue o soft<are trata o ar%a-ena%ento das infor%a*Ges de %odo seguro# Reali7ar !og dos )#entos* 5sta opera*.o de+e inc)uir os seguintes re>uisitos1 # Pti)i-ar u% ti%esta%pL pro+eniente de u% siste%a de confian*a 2# C)assificar a gra+idade para cada e+ento ,# Jestacar e+entos de seguran*a re)e+antes/ caso e)es se6a% %isturados co% outros registros de )og F# Registar o identificador da conta ou uti)i-ador >ue causou o e+ento H# Registar o endere*o EP de orige% >ue rea)i-ou o pedido I# Registar o resu)tado dos e+entos Asucesso ou fa)haB K# Registar a descri*.o do e+ento Re6uisitos de Segurana* Con6unto de re>uisitos funcionais e de pro6eto para a6udar a garantir >ue o soft<are & constru(do e disponi'i)i-ado de for%a segura# Segurana das Comunica&es* Con6unto de contro)os para a6udar a garantir o en+io e o rece'i%ento das infor%a*Ges de %odo seguro# Segurana da /ase de (ados* Con6unto de contro)os para garantir >ue o soft<are interage co% as 'ases de dados de for%a segura e >ue as 'ases de dados est.o configuradas de for%a segura#
L

8!1 Con6unto de caracteres >ue representa/ de for%a n.o a%'(gua/ o %o%ento do registro da ocorr7ncia de u% e+ento nu% siste%a# Para %ais infor%a*Ges/ +er a R"C ,,,L e a nor%a ESO OI0 / Jata e)e%ents and interchange for%ats Enfor%ation interchange Representation of dates and ti%es#

4ers.o #,

20

Fevereiro 2012

Sistema* V u% ter%o gen&rico >ue a'range siste%as operati+os/ ser+idores <e'/ fra%e<orks de ap)ica*Ges e infraestrutura re)acionada# +ratamento de )rros e !og* Con6unto de prDticas para garantir >ue a ap)ica*.o rea)i-a o trata%ento dos erros de %odo seguro e/ ta%'&% rea)i-a o registo de )og dos e+entos de %odo apropriado# +ratamento dos (ados* V o processo de tornar seguros os dados potencia)%ente pre6udiciais atra+&s do processo de re%o*.o/ su'stitui*.o/ codifica*.o ou escaping%& dos caracteres# 'alidao de )ntrada de (ados* Con6unto de contro)os para +erificar se as propriedades de todas as entradas de dados corresponde% ao >ue & esperado pe)a ap)ica*.o/ co%o/ por e0e%p)o/ tipo dos dados/ ta%anho/ inter+a)os e con6unto de caracteres aceitD+eis >ue n.o contenha% caracteres %a)iciosos# 'ulnera8ilidade* V u%a fragi)idade >ue torna u% siste%a suscet(+e) a u% ata>ue ou a u% dano#

8!1 8esse conte0to & a representa*.o de caracteres especiais por con6untos espec(ficos de caracteres# Co%o e0e%p)o/ te%3se a su'stitui*.o do caractere ?[@ pe)a entidade W!M: e>ui+a)ente ?[a%pc@#

4ers.o #,

Você também pode gostar