Segura OWASP Guia de Referncia Rpida OWASP Secure Coding Practices Quick Reference Guide Copyright and icense Copyright 200 !he OWASP "oundation# O conte$do deste docu%ento & distri'u(do so' a )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 5ssa +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 200 e na re+is.o da pri%eira tradu*.o/ a +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 pretende ser fie) ao te0to origina)/ tendo sido introdu-idos a)guns deta)hes e0p)icati+os >ue est.o dispersos no te0to/ e% a)guns casos/ na 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)/ acesse a pCgina Ahttp122< <<#o<asp#org2inde0#php2=ra-i) B ou registre3se 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)/ acesse a pCgina Ahttp122<<<#o<asp#org2inde0#php2PortugueseB ou registre3se na )ista de discuss.o OWASP3 P! Ahttps122)ists#o<asp#org2%ai)%an2)istinfo2o<asp3portugueseB# 4ers.o #, 2 Fevereiro 2012 Su#rio Dntrodu*.o ############################################################################################################################################# E Princ(pios Gerais de Seguran*a e% Ap)ica*Fes e Riscos ##################################################################### G :ista de 4erifica*.o de PrCticas de Progra%a*.o Segura ##################################################################### H 4a)ida*.o dos Iados de 5ntrada1 ##################################################################################################### H Codifica*.o de Iados de Sa(da1 ####################################################################################################### J Autentica*.o e Gerencia%ento de Credenciais1 ############################################################################### J Gerencia%ento de SessFes1 ############################################################################################################## K Contro)e de Acessos1 ###################################################################################################################### 0 PrCticas de Criptografia1 ################################################################################################################# !rata%ento de 5rros e :og1 ############################################################################################################ Prote*.o de Iados1 ######################################################################################################################### 2 Seguran*a nas co%unica*Fes1 ######################################################################################################## , Configura*.o do Siste%a1 ############################################################################################################### , Seguran*a e% =anco de Iados1 ##################################################################################################### E Gerencia%ento de Ar>ui+os1 ########################################################################################################## E Gerencia%ento de Le%Mria1 ########################################################################################################## G PrCticas Gerais de Codifica*.o1 ###################################################################################################### H Ap7ndice A ARecursos e0ternos e refer7nciasB ################################################################################### J Refer7ncias 50ternas1 ##################################################################################################################### J Sites de A+isos de Seguran*a1 ######################################################################################################## J Ap7ndice = AG)ossCrioB ###################################################################################################################### N 4ers.o #, , Fevereiro 2012 $ntroduo 5ste docu%ento n.o se 'aseia apenas e% >uestFes tecno)Mgicas e te% o propMsito de definir u% con6unto de 'oas prCticas de seguran*a no desen+o)+i%ento de ap)ica*Fes# As reco%enda*Fes ser.o apresentadas no for%ato de )ista de +erifica*Fes/ >ue pode% ser integradas ao cic)o de desen+o)+i%ento das ap)ica*Fes# A ado*.o destas prCticas pro+a+e)%ente redu-irC as +u)nera'i)idades %ais co%uns e% ap)ica*Fes We'# Gera)%ente/ & %ais 'arato construir soft<are seguro do >ue corrigir pro')e%as de seguran*a apMs 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*Fes te% se tornado cada +e- %ais i%portante/ pois o foco dos atacantes %udou para a ca%ada de ap)ica*.o# O% estudo da SA8S e% 200K PQ desco'riu >ue os ata>ues contra ap)ica*Fes We' constitue% %ais de H0R das tentati+as de ata>ue o'ser+ados na Dnternet# Ao uti)i-ar este guia & reco%endC+e) >ue e>uipes 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>uipe# Co%o este guia n.o entra e% deta)hes de co%o i%p)antar cada prCtica 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 necessCrio# 5ste guia apresenta prCticas >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>uipe 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 atende% os re>uisitos de seguran*a# 8o ap7ndice = encontra3se u% g)ossCrio dos ter%os i%portantes usados neste docu%ento/ inc)uindo o t(tu)o das sec*Fes e pa)a+ras %ostradas e% itlico# 8.o fa- parte do escopo deste guia fornecer orienta*Fes para i%p)antar u% framework de desen+o)+i%ento seguro de soft<are/ %as as seguintes prCticas gerais e refer7ncias s.o reco%endadas1 Iefinir c)ara%ente os pap&is e responsa'i)idades "ornecer Ss e>uipes de desen+o)+i%ento pessoa) co% for%a*.o ade>uada e% seguran*a no desen+o)+i%ento de ap)ica*Fes D%p)e%entar u% cic)o de desen+o)+i%ento de soft<are seguro o OWASP C:ASP Pro6ect 5sta'e)ecer padrFes de progra%a*.o segura o OWASP Ie+e)op%ent Guide Pro6ect Construir u%a 'i')ioteca reuti)i-C+e) ou fa-er uso de u%a 'i')ioteca de seguran*a
o OWA SP 5nterprise Security APD A5SAPDB Pro6ect
4erificar a efeti+idade dos contro)es de seguran*a o OWASP App)ication Security 4erification Standard AAS4SB Pro6ect 5sta'e)ecer prCticas para garantir a seguran*a >uando hC terceiri-a*.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 #, E Fevereiro 2012 Princ%pios Gerais de Segurana e# Aplica&es e Riscos Construir soft<are seguro e0ige o conheci%ento 'Csico dos princ(pios de seguran*a# O%a re+is.o a'rangente dos princ(pios de seguran*a estC fora do escopo desse 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*Fes & %anter a confidencialidade/ integridade e disponibilidade dos recursos de infor%a*.o a fi% de per%itir >ue as opera*Fes de negMcios se6a% 'e% sucedidas e esse o'6eti+o & a)can*ado atra+&s da i%p)e%enta*.o de controles de segurana# 5ste guia concentra3se nos contro)es t&cnicos/ espec(ficos para mitigar as ocorr7ncias das vulnerabilidades %ais co%uns no soft<are e co%o o foco principa) s.o as ap)ica*Fes We' e a infraestrutura de apoio/ 'oa parte desse docu%ento pode ser usada para >ua)>uer p)atafor%a de desen+o)+i%ento de soft<are# Para proteger o negMcio contra os riscos inaceitC+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# Ieste %odo/ risco & a co%'ina*.o de fatores >ue a%ea*a% o sucesso do negMcio# Dsto pode ser descrito conceitua)%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 estC 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>uipe de desen+o)+i%ento e a a'ordage% >ue & adotada por a)gu&% >ue estC interessado e% atacar u%a ap)ica*.o# O%a e>uipe 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 e isso significa criar u%a ap)ica*.o para e0ecutar tarefas espec(ficas/ 'aseadas e% re>uisitos funcionais e casos de uso docu%entados# O% atacante/ por outro )ado/ estC %ais interessado no >ue a ap)ica*.o pode ser )e+ada a fa-er e parte do princ(pio >ue T>ua)>uer a*.o n.o e0pressa%ente proi'ida/ & per%itidaT# Para reso)+er isso/ a)guns e)e%entos adicionais precisa% ser integrados nas fases iniciais do cic)o de +ida do soft<are e esses 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 +Crios cenCrios de ata>ues# U i%portante >ue as e>uipes de desen+o)+i%ento de ap)ica*Fes We' entenda% >ue os %ecanis%os de contro)e do )ado c)iente/ co%o +a)ida*.o de dados de entrada no c)iente/ ca%pos ocu)tos e contro)es 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 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 trCfego da ap)ica*.o e en+iar re>uisi*Fes %anipu)adas/ '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 conceituais >ue possua% erros de )Mgica 8o uso de %Cs prCticas 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% escopo %uito %aior do >ue o do prMprio soft<are# Iependendo 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 aspectos1 O soft<are e sua infor%a*.o associada O siste%a operaciona) dos ser+idores associados A 'ase de dados do backend 4ers.o #, G Fevereiro 2012 Outras ap)ica*Fes e% u% a%'iente co%parti)hado O siste%a do usuCrio Outros soft<ares co% os >uais o usuCrio interage ista de 'erificao de Prticas de Progra#ao Segura 'alidao dos (ados de )ntrada* 5fetuar toda a +a)ida*.o dos dados e% u% siste%a confiC+e)# Por e0e%p)o/ centra)i-ar todo o processo no ser+idor Ddentificar todas as fontes de dados e c)assificC3)as co%o sendo confiC+eis ou n.o# 5% seguida/ +a)idar os dados pro+enientes de fontes nas >uais n.o se possa confiar 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 apropriado/ co%o O!"3N/ 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 hC fa)ha de +a)ida*.o/ a ap)ica*.o de+e re6eitar os dados fornecidos Ieter%inar se o siste%a suporta con6untos de caracteres estendidos O!"3N e/ e% caso afir%ati+o/ +a)idar apMs efetuar a descodifica*.o O!"3N 4a)idar todos os dados pro+enientes dos c)ientes antes do processa%ento/ inc)uindo todos os parV%etros/ ca%pos de for%u)Crio/ conte$dos das OR: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%Cticos de postback 2 nos ')ocos de cMdigo 9a+aScript/ ")ash ou >ua)>uer outro cMdigo e%'utido 4erificar se os +a)ores de ca'e*a)ho/ tanto das re>uisi*Fes/ co%o das respostas/ cont7% apenas caracteres ASCDD 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 )Mgica 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 'rancasT >ue uti)i-e% u%a )ista de caracteres ou e0pressFes 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/ certificar3se de >ue fora% i%p)e%entados contro)es adicionais co%o codifica*.o dos dados de sa(da/ APDs especificas >ue fornece% tarefas seguras e tri)has 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/ T/ Z/ R/ A/ B/ [/ \/ ]/ ]Z/ ]T 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 AR00B 'B 4erificar se hC caracteres de no+a )inha AR0d/ R0a/ ]r/ ]nB cB 4erificar se hC caracteres ?ponto3ponto 'arra@ A##2 ou ##]B >ue a)tera% ca%inhos# 8os casos 2 8!1 http122pt#<ikipedia#org2<iki2Post'ack 4ers.o #, H Fevereiro 2012 de con6unto de caracteres >ue use% a e0tens.o O!"3N/ o siste%a de+e uti)i-ar representa*Fes a)ternati+as co%o1 Rc0RaeRc0Rae2# 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 e% u% siste%a confiC+e)/ por e0e%p)o/ centra)i-ar todo o processo no ser+idor Oti)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% e% u% a%'iente fora dos )i%ites de confian*a da ap)ica*.o# A codifica*.o das entidades W!L: & 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 AsanitizaoB/ 'aseado e% conte0to/ de todos os dados pro+enientes de fontes n.o confiC+eis usados para construir consu)tas SQ:/ ^L:/ e :IAP !ratar todos os dados pro+enientes de fontes >ue n.o se6a% confiC+eis >ue gere% co%andos para o siste%a operaciona) Autenticao e Gerencia#ento de Credenciais* Re>uerer autentica*.o para todas as pCginas e recursos/ e0ceto para a>ue)es >ue s.o intenciona)%ente p$')icos Os contro)es de autentica*.o de+e% ser e0ecutados e% u% siste%a confiC+e)/ 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 Oti)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+o>ue% os ser+i*os e0ternos de autentica*.o Separar a )Mgica de autentica*.o do recurso >ue estC a ser re>uisitado e usar redirecionadores dos contro)adores de autentica*.o centra)i-ados Quando ocorrere% situa*Fes e0cepcionais nos contro)es de autentica*.o/ e0ecutar procedi%entos e% caso de fa)ha co% o propMsito de %anter o siste%a seguro !odas as fun*Fes ad%inistrati+as e de gerencia%ento de contas de+e% ser t.o seguras >uanto o %ecanis%o de autentica*.o principa) Se a ap)ica*.o gerenciar u% repositMrio de credenciais/ esta de+erC garantir >ue as senhas s.o ar%a-enadas na 'ase de dados so%ente so' a for%a de resu%o2as da senha na for%a de one!wa" salted ases E e >ue a ta'e)a2ar>ui+o >ue ar%a-ena as senhas e as prMprias cha+es s.o %anipu)adas apenas pe)a ap)ica*.o# 8.o uti)i-ar o a)gorit%o de hash LIG/ se%pre >ue esse puder ser e+itado A gera*.o dos resu%os AasB das senhas de+e ser e0ecutada e% u% siste%a confiC+e)/ por e0e%p)o/ centra)i-ar o contro)e 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*Fes de autenticao sequencial As %ensagens de fa)ha na autentica*.o n.o de+e% indicar >ua) parte dos dados de autentica*.o estC , 8!1 http122<<<#o<asp#org2inde0#php2Iou')e_5ncoding E 8!1 one!wa" salted as & u% a)gorit%o de as gerado co% o au0()io de +a)ores a)eatMrios ou pr&3definidos >ue co%pFe% o parV%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 dicionCrio# Lais infor%a*Fes so're o assunto e%1 http122en#<ikipedia#org2<iki2Sa)t_AcryptographyB 4ers.o #, J Fevereiro 2012 incorreta# Por e0e%p)o/ e% +e- de e0i'ir %ensagens co%o ?8o%e de usuCrio incorreto@ ou ?Senha incorreta@/ uti)i-e apenas %ensagens co%o1 ?OsuCrio e2ou senha in+C)idos@/ para a%'os os casos de erro# As respostas de erro de+e% ser id7nticas nos dois casos Oti)i-ar autentica*.o para cone0.o a siste%as e0ternos >ue en+o)+a% trCfego de infor%a*.o sens(+e) ou acesso a fun*Fes As credenciais de autentica*.o para acessar ser+i*os e0ternos S ap)ica*.o de+e% ser cifradas e ar%a-enadas e% u% )oca) protegido de u% siste%a confiC+e)/ por e0e%p)o/ no ser+idor da ap)ica*.o# O's#1 o cMdigo3fonte n.o & considerado u% )oca) seguro Oti)i-ar apenas re>uisi*Fes POS! para trans%itir credenciais de autentica*.o So%ente trafegar senhas An.o te%porCriasB atra+&s de u%a cone0.o protegida ASS:2!:SB ou no for%ato de dado cifrado/ co%o no caso de en+io de e3%ai) cifrado# Senhas te%porCrias en+iadas por e3%ai) pode% ser u% caso de e0ce*.o aceitC+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% resistir a ata>ues >ue/ tipica%ente/ a%ea*a% o a%'iente de produ*.o# O% e0e%p)o pode ser a e0ig7ncia do uso si%u)tVneo 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 H & %ais reco%endado# Considere/ ainda/ o uso de senhas >ue contenha% +Crias pa)a+ras Au%a fraseB A entrada da senha de+e ser ocu)tada na te)a do usuCrio# 5% W!L:/ uti)i-ar o ca%po do tipo Tpass<ordT Iesati+ar a conta apMs u% n$%ero pr&3definido de tentati+as in+C)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*Fes de %udan*as de+e% e0igir os %es%os n(+eis de contro)e 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 )ance% respostas a)eatMrias# 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%porCrio >ue per%ita% ao usuCrio redefinir a senha O te%po de +a)idade das senhas e dos links te%porCrios de+e ser curto 50igir a %udan*a de senhas te%porCrias na prM0i%a +e- >ue o usuCrio rea)i-ar a autentica*.o no siste%a 8otificar o usuCrio >uando a 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 estC 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*Fes %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 Iesati+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 usuCrio de+e ser co%unicada no prM0i%o acesso ao siste%a Rea)i-ar %onitora%ento para identificar ata>ues contra +Crias contas de usuCrios/ 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 #, N Fevereiro 2012 Lodificar todas as senhas >ue/ por padr.o/ s.o definidas pe)os fornecedores/ 'e% co%o os identificadores de usuCrios ADIsB ou desati+ar as contas associadas 50igir no+a autentica*.o dos usuCrios antes da rea)i-a*.o de opera*Fes cr(ticas Oti)i-ar autenticao de m#ltiplos fatores Auti)i-ando si%u)tanea%ente token/ senha/ 'io%etria etc# G B para contas a)ta%ente sens(+eis ou de a)to +a)or transaciona) Caso uti)i-e cMdigo de terceiros para rea)i-ar a autentica*.o/ inspecione3o cuidadosa%ente para garantir >ue o %es%o n.o & afetado por >ua)>uer cMdigo %a)icioso Gerencia#ento de Sess&es* Oti)i-ar contro)es de gerencia%ento 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 +C)idos A cria*.o dos identificadores de sess.o de+e ser se%pre rea)i-ada e% u% siste%a confiC+e)/ por e0e%p)o/ centra)i-ado no ser+idor O contro)e 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 Iefinir o do%(nio e o ca%inho para os cookies >ue contenha% identificadores de sess.o autenticados/ para u% +a)or de+ida%ente restrito ao site A funciona)idade de sa(da AlogoutB de+e encerrar co%p)eta%ente a sess.o ou cone0.o associada A funciona)idade de sa(da AlogoutB de+e estar dispon(+e) e% todas as pCginas >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 negMcio# 8a %aioria dos casos n.o de+e ser %aior 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# Dsso de+e ser feito/ especia)%ente/ e% ap)ica*Fes >ue suporta% +Crias cone0Fes de rede ou >ue se conecta% a siste%as cr(ticos# O te%po de encerra%ento de+e estar de acordo co% os re>uisitos do negMcio e o usuCrio de+e rece'er notifica*Fes 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 apMs o )ogin Gerar u% no+o identificador de sess.o >uando hou+er u%a no+a autentica*.o 8.o per%itir cone0Fes si%u)tVneas co% o %es%o identificador de usuCrio 8.o e0por os identificadores de sess.o e% OR: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 trafegar os identificadores de sess.o so' a for%a de parV%etros G5! Proteger os dados de sess.o do )ado ser+idor contra acessos n.o autori-ados por outros usuCrios do ser+idor/ atra+&s da i%p)e%enta*.o de contro)es de acesso apropriados no ser+idor Gerar u% no+o identificador de sess.o e desati+ar o antigo periodica%ente# Dsso pode %itigar certos cenCrios de ata>ues de se>uestro de sess.o Asession 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 cone0.o %ude de W!!P para W!!PS/ co%o pode ocorrer durante a autentica*.o# Dnterna%ente S ap)ica*.o/ & reco%endC+e) uti)i-ar W!!PS de for%a constante e% +e- de a)ternar entre W!!P e W!!PS Oti)i-ar %ecanis%os co%p)e%entares ao %ecanis%o padr.o de gerencia%ento de sessFes para opera*Fes sens(+eis do )ado ser+idor co%o no caso de opera*Fes de gerencia%ento de contas G 8!1 Co%p)e%enta*.o e0p)icati+a fornecida pe)o tradutor# 4ers.o #, K Fevereiro 2012 atra+&s da uti)i-a*.o de tokens a)eatMrios ou parV%etros associados S sess.o# 5sse %&todo pode ser usado para pre+enir ata>ues do tipo Cross Site Re>uest "orgery ACSR"B Oti)i-ar %ecanis%os co%p)e%entares ao gerencia%ento de sessFes para opera*Fes a)ta%ente sens(+eis ou cr(ticas/ uti)i-ando tokens a)eatMrios ou parV%etros e% cada re>uisi*.o e% +e- de 'asear3se apenas na sess.o Configurar o atri'uto TsecureT para cookies trans%itidos atra+&s de u%a cone0.o !:S Configurar os cookies co% o atri'uto ?WttpOn)y@/ a %enos >ue se6a e0p)icita%ente necessCrio )er ou definir os +a)ores dos %es%os atra+&s de scripts do )ado c)iente da ap)ica*.o Controle de Acessos* Oti)i-ar apenas o'6etos do siste%a >ue se6a% confiC+eis/ 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 Oti)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# Dsto 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)e de acesso/ e)a de+e ocorrer de %odo seguro 8egar todos os acessos/ caso a ap)ica*.o n.o consiga ter acesso Ss infor%a*Fes contidas na configura*.o de seguran*a Garantir o contro)e de autori-a*.o e% todas as re>uisi*Fes/ inc)usi+e e% scripts do )ado ser+idor/ Tinc)udesT e re>uisi*Fes pro+enientes de tecno)ogias do )ado c)iente/ co%o A9A^ e ")ash Dso)ar do cMdigo da ap)ica*.o os trechos de cMdigo >ue cont7% )Mgica 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 usuCrios autori-ados Restringir o acesso Ss OR:s protegidas so%ente aos usuCrios autori-ados Restringir o acesso Ss fun*Fes protegidas so%ente aos usuCrios autori-ados Restringir o acesso Ss refer7ncias diretas aos o'6etos so%ente aos usuCrios autori-ados Restringir o acesso aos ser+i*os so%ente aos usuCrios autori-ados Restringir o acesso aos dados da ap)ica*.o so%ente aos usuCrios autori-ados Restringir o acesso aos atri'utos e dados dos usuCrios/ 'e% co%o infor%a*Fes das po)(ticas usadas pe)os %ecanis%os de contro)e de acesso Restringir o acesso Ss configura*Fes de seguran*a re)e+antes apenas aos usuCrios autori-ados As regras de contro)e 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 c)iente/ uti)i-ar %ecanis%os de criptografia e +erifica*.o de integridade no )ado ser+idor para detectar poss(+eis adu)tera*Fes Garantir >ue os f)u0os )Mgicos da ap)ica*.o o'edece% as regras de negMcio :i%itar o n$%ero de transa*Fes >ue u% $nico usuCrio ou dispositi+o pode e0ecutar e% deter%inado per(odo de te%po# As transa*Fes por per(odo de te%po de+e% estar aci%a das necessidades reais do negMcio/ %as a'ai0o o suficiente para i%pedire% ata>ues auto%ati-ados Oti)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 sessFes autenticadas por )ongos per(odos de te%po/ fa-er a re+a)ida*.o periMdica da autori-a*.o do usuCrio para garantir >ue os pri+i)&gios n.o fora% %odificados e/ caso tenha% sido/ rea)i-ar o registro e% )og do usuCrio e e0igir no+a autentica*.o D%p)e%entar a auditoria das contas de usuCrio e assegurar a desati+a*.o de contas n.o uti)i-adas# Por 4ers.o #, 0 Fevereiro 2012 e0e%p)o/ a conta de+e ser desati+ada n.o %ais do >ue ,0 dias apMs a e0pira*.o da senha A ap)ica*.o de+e dar suporte S desati+a*.o de contas e ao encerra%ento das sessFes >uando ter%inar a autori-a*.o do usuCrio# Por e0e%p)o/ >uando ocorrer a)gu%a a)tera*.o dos dados do usuCrio/ situa*.o profissiona)/ processos de negMcio etc# As contas de ser+i*o ou contas de suporte a cone0Fes 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)e de Acesso para docu%entar as regras de negMcio 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# Dsto 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*Fes de criptografia uti)i-adas para proteger dados sens(+eis dos usuCrios da ap)ica*.o/ de+e% ser i%p)antadas e% u% siste%a confiC+e) 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 %Mdu)os de criptografia/ per%itir >ue as %es%as ocorra% de %odo seguro !odos os n$%eros/ no%es de ar>ui+os/ GODIs e strings a)eatMrias de+e% ser gerados usando u% %Mdu)o criptogrCfico co% gerador de n$%eros a)eatMrios/ so%ente se os +a)ores a)eatMrios gerados fore% i%poss(+eis de sere% dedu-idos Os %Mdu)os de criptografia usados pe)a ap)ica*.o de+e% ser co%pat(+eis co% a "DPS E032 ou co% u% padr.o e>ui+a)ente Ahttp122csrc#nist#go+2groups2S!L2c%+p2+a)idation#ht%)B 5sta'e)ecer e uti)i-ar u%a po)(tica e processo >ue defina co%o & rea)i-ado o gerencia%ento das cha+es criptogrCficas +rata#ento de )rros e og* 8.o e0por infor%a*Fes 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 usuCrio Osar %ecanis%os de trata%ento de erros >ue n.o %ostre% infor%a*Fes de depura*.o AdebugB ou infor%a*Fes da pi)ha de e0ce*.o Osar %ensagens de erro gen&ricas e pCginas de erro persona)i-adas A ap)ica*.o de+e tratar os erros se% se 'asear nas configura*Fes do ser+idor A %e%Mria a)ocada de+e ser )i'erada de %odo apropriado >uando ocorrere% condi*Fes de erro O trata%ento de erros )Mgicos associados co% os contro)es de seguran*a de+e%/ por padr.o/ negar o acesso !odos os contro)es de )og de+e% ser i%p)e%entados e% u% siste%a confiC+e)/ por e0e%p)o/ centra)i-ar todo o processo no ser+idor Os contro)es 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 cMdigo3fonte na interface de +isua)i-a*.o de )ogs Restringir o acesso aos )ogs apenas para pessoa) autori-ado Oti)i-ar u%a rotina centra)i-ada para rea)i-ar todas as opera*Fes de )og 4ers.o #, Fevereiro 2012 8.o ar%a-enar infor%a*Fes sens(+eis nos registros de )ogs/ co%o deta)hes desnecessCrios 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 anC)ise de )ogs Registrar e% )og todas as fa)has de +a)ida*.o de entrada de dados Registrar e% )og todas as tentati+as de autentica*.o/ especia)%ente as >ue fa)hara% por a)gu% %oti+o Registrar e% )og todas as fa)has de contro)e de acesso Registrar e% )og todos os e+entos suspeitos de adu)tera*.o/ inc)usi+e a)tera*Fes inesperadas no estado dos dados Registrar e% )og as tentati+as de cone0.o co% tokens de sess.o in+C)idos ou e0pirados Registrar e% )og todas as e0ce*Fes )an*adas pe)o siste%a Registrar e% )og todas as fun*Fes ad%inistrati+as/ inc)usi+e as %udan*as rea)i-adas nas configura*Fes de seguran*a Registrar e% )og todas as fa)has de cone0.o !:S co% o 'ackend Registrar e% )og todas as fa)has >ue ocorrera% nos %Mdu)os de criptografia Oti)i-ar u%a fun*.o de hash criptogrCfica para +a)idar a integridade dos registros de )og Proteo de (ados* D%p)e%entar u%a po)(tica de pri+i)&gio %(ni%o/ restringindo os usuCrios apenas Ss funciona)idades/ dados e infor%a*Fes do siste%a >ue s.o necessCrias para e0ecutare% suas tarefas Proteger contra acesso n.o autori-ado todas as cMpias te%porCrias ou registradas 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 necessCrios Criptografar infor%a*Fes 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 se*.o >ue trata so're ?PrCticas de Criptografia@ para orienta*Fes adicionais Proteger o cMdigo3fonte presente no ser+idor para >ue n.o se6a% acessados por a)gu% usuCrio 8.o ar%a-enar senhas/ strings de cone0.o ou outras infor%a*Fes confidenciais e% te0to c)aro2)eg(+e) ou e% >ua)>uer for%a criptografica%ente insegura no )ado c)iente# Dsso & +C)ido ta%'&% >uando hC uti)i-a*.o de for%atos inseguros co%o1 LS +ie<state/ Ado'e ")ash ou cMdigo co%pi)ado >ue & e0ecutado no )ado c)iente Re%o+er co%entCrios do cMdigo de produ*.o >ue pode% ser acessados pe)os usuCrios e pode% re+e)ar deta)hes internos do siste%a ou outras infor%a*Fes sens(+eis Re%o+er ap)ica*Fes desnecessCrias e docu%enta*.o do siste%a >ue possa% re+e)ar infor%a*Fes i%portantes para os atacantes 8.o inc)uir infor%a*Fes sens(+eis nos parV%etros de re>uisi*.o W!!P G5! Iesati+ar a funciona)idade de auto co%p)etar nos for%u)Crios >ue contenha% infor%a*Fes sens(+eis/ inc)usi+e no for%u)Crio de autentica*.o Iesati+ar a cache rea)i-ada no )ado c)iente das pCginas >ue contenha% infor%a*Fes sens(+eis# O parV%etro Cache,Control* no,store/ pode ser usado e% con6unto co% o contro)e definido no ca'e*a)ho W!!P -Prag#a* no,cache./ >ue & %enos efeti+o/ por&% co%pat(+e) co% W!!P2#0 A ap)ica*.o de+e dar suporte S re%o*.o de dados sens(+eis >uando estes n.o fore% %ais necessCrios# Por e0e%p)o/ infor%a*.o pessoa) ou dados financeiros D%p)e%entar %ecanis%os de contro)e de acesso apropriados para dados sens(+eis ar%a-enados no 4ers.o #, 2 Fevereiro 2012 ser+idor# Dsto inc)ui dados e% cache/ ar>ui+os te%porCrios e dados >ue de+e% ser acess(+eis so%ente por usuCrios espec(ficos do siste%a Segurana nas co#unica&es* Oti)i-ar criptografia na trans%iss.o de todas as infor%a*Fes sens(+eis# Dsto de+e inc)uir !:S para proteger a cone0.o e de+e ser co%p)e%entado co% criptografia de ar>ui+os >ue cont&% dados sens(+eis ou cone0Fes >ue n.o usa% o protoco)o W!!P Os certificados !:S de+e% ser +C)idos/ possu(re% o no%e de do%(nio correto/ n.o estare% e0pirados e sere% insta)ados co% certificados inter%ediCrios/ >uando necessCrio Quando ocorrer a)gu%a fa)ha nas cone0Fes !:S/ o siste%a n.o de+e fornecer u%a cone0.o insegura Oti)i-ar cone0Fes !:S para todo o conte$do >ue re>uerer acesso autenticado ou >ue contenha infor%a*.o sens(+e) Oti)i-ar !:S para cone0Fes co% siste%as e0ternos >ue en+o)+a% fun*Fes ou infor%a*Fes sens(+eis Oti)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 cone0Fes "i)trar os parV%etros >ue contenha% infor%a*Fes sens(+eis/ pro+enientes do ?W!!P referer@/ nos )inks para sites e0ternos Configurao do Siste#a* Garantir >ue os ser+idores/ fra%e<orks e co%ponentes do siste%a est.o e0ecutando 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*Fes %ais recentes ap)icadas para a +ers.o e% uso Iesati+ar a )istage% de diretMrios 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*Fes no siste%a/ garantir >ue as fa)has ocorra% de %odo seguro Re%o+er todas as funciona)idades e ar>ui+os desnecessCrios Re%o+er cMdigo de teste ou >ua)>uer funciona)idade desnecessCria para o a%'iente de produ*.o/ antes de insta)ar o siste%a no ser+idor de produ*.o Pre+enir a di+u)ga*.o da estrutura de diretMrios i%pedindo >ue ro'`s H de 'usca fa*a% inde0a*.o de ar>ui+os sens(+eis/ atra+&s da configura*.o do ar>ui+o ?ro'ots#t0t@ J # Os diretMrios >ue n.o de+e% ser acessados por estes inde0adores de+e% ser co)ocados e% u% diretMrio iso)ado# Assi%/ apenas & necessCrio negar o acesso ao diretMrio pai definido no ar>ui+o ?ro'ots#t0t@/ e+itando ter >ue negar o acesso a cada diretMrio indi+idua)%ente Iefinir >uais %&todos W!!P/ G5! ou POS!/ a ap)ica*.o irC suportar e se ser.o tratados de %odo diferenciado nas di+ersas pCginas da ap)ica*.o Iesati+ar as e0tensFes W!!P desnecessCrias co%o/ por e0e%p)o/ o We'IA4# Caso se6a necessCrio o uso de a)gu%a e0tens.o W!!P co% o propMsito 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 H 8!1 Ro'`s s.o progra%as de co%putador >ue percorre% auto%atica%ente as pCginas da Dnternet e% 'usca de docu%entos/ co% o propMsito de inde0C3)os/ +a)idC3)os ou %onitorar a)tera*Fes de conte$do# http122pt#<ikipedia#org2<iki2Ro'ots#t0t J 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 Se o ser+idor processa tanto re>uisi*Fes W!!P #0 co%o W!!P #/ certificar3se de >ue a%'os s.o configurados de %odo se%e)hante ou assegure >ue >ua)>uer diferen*a e0istente se6a co%preendida/ co%o/ por e0e%p)o/ o %anuseio de %&todos W!!P estendidos Re%o+er infor%a*Fes desnecessCrias presentes nos ca'e*a)hos de resposta W!!P e >ue pode% estar re)acionadas co% o siste%a operaciona)/ +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 S auditoria D%p)e%entar u% siste%a de gest.o de ati+os para %anter o registro dos co%ponentes e progra%as Dso)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# U co%u% os a%'ientes de desen+o)+i%ento sere% configurados de %odo %enos seguro do >ue os a%'ientes de produ*.o# Ieste %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 D%p)e%entar u% siste%a de contro)e de %udan*as para gerenciar e registrar as a)tera*Fes no cMdigo/ tanto de desen+o)+i%ento/ co%o dos siste%as e% produ*.o Segurana e# /anco de (ados* Osar consultas parametrizadas forte%ente tipadas Oti)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+erC ser e0ecutado no 'anco de dados Certificar3se de >ue as +ariC+eis s.o forte%ente tipadas Rea)i-ar a codifica*.o AescapingB de %eta caracteres e% instru*Fes SQ: N A ap)ica*.o de+e usar o %enor n(+e) poss(+e) de pri+i)&gios ao acessar o 'anco de dados Osar credenciais seguras para acessar o 'anco de dados 8.o inc)uir strings de cone0.o na ap)ica*.o# As strings de cone0.o de+e% estar e% u% ar>ui+o de configura*.o separado/ ar%a-enado e% u% siste%a confiC+e) e as infor%a*Fes de+e% ser criptografadas Osar procedi%entos ar%a-enados Astored proceduresB para a'strair o acesso aos dados e per%itir a re%o*.o de per%issFes das ta'e)as no 'anco de dados 5ncerrar a cone0.o assi% >ue poss(+e) Re%o+er ou %odificar senhas padr.o de contas ad%inistrati+as# Oti)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# Iesati+ar >ua)>uer funciona)idade desnecessCria no 'anco de dados/ co%o ?stored procedures@ ou ser+i*os n.o uti)i-ados# Dnsta)ar o con6unto %(ni%o de co%ponentes ou de op*Fes necessCrias Aredu*.o da superf(cie de ata>ueB 5)i%inar o conte$do desnecessCrio inc)u(do por padr.o pe)o fornecedor co%o es>ue%as e 'ancos de dados de e0e%p)o Iesati+ar todas as contas criadas por padr.o e >ue n.o se6a% necessCrias para suportar os re>uisitos de negMcio A ap)ica*.o de+e conectar3se ao 'anco de dados co% diferentes credenciais de seguran*a para cada tipo de necessidade co%o/ por e0e%p)o/ usuCrio/ so%ente )eitura/ con+idado ou ad%inistrador Gerencia#ento de Ar0ui"os* 8.o repassar dados fornecidos pe)os usuCrios direta%ente a u%a fun*.o de inc)us.o dinV%ica N 8!1 http122<<<#o<asp#org2inde0#php2SQ:_Dn6ection_Pre+ention_Cheat_Sheet 4ers.o #, E Fevereiro 2012 So)icitar autentica*.o antes de per%itir >ue se6a feito o carrega%ento de ar>ui+os :i%itar os tipos de ar>ui+os >ue pode% ser en+iados para aceitar so%ente os necessCrios ao propMsito do negMcio 4a)idar se os ar>ui+os 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 sa)+ar ar>ui+os no %es%o diretMrio de conte0to da ap)ica*.o We'# Os ar>ui+os de+e% ser ar%a-enados no ser+idor de conte$dos ou no 'anco de dados Pre+enir ou restringir o carrega%ento de >ua)>uer ar>ui+o >ue possa ser interpretado ou e0ecutado pe)o ser+idor We' Iesati+ar pri+i)&gios de e0ecu*.o nos diretMrios de ar%a-ena%ento de ar>ui+os D%p)antar o carrega%ento seguro nos a%'ientes O8D^ por %eio da %ontage% do diretMrio de destino co%o u%a unidade )Mgica/ usando o ca%inho associado ou o a%'iente de ?chroot@ Ao referenciar ar>ui+os/ usar u%a )ista 'ranca AwitelistB de no%es e de tipos de ar>ui+os per%itidos# Rea)i-ar a +a)ida*.o do +a)or do parV%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 usuCrio a redireciona%entos dinV%icos# Se isso for necessCrio/ o redireciona%ento de+erC aceitar apenas OR:s re)ati+as e +a)idadas 8.o passar ca%inhos de diretMrios ou de ar>ui+os e% re>uisi*Fes# Osar a)gu% %ecanis%o de %apea%ento desses recursos para (ndices definidos e% u%a )ista pr&3definida de ca%inhos 8unca en+iar o ca%inho a'so)uto do ar>ui+o para o )ado c)iente de u%a ap)ica*.o ou para o usuCrio Certificar3se de >ue os ar>ui+os da ap)ica*.o e os recursos est.o definidos so%ente co% o atri'uto de )eitura 4erificar os ar>ui+os >ue os usuCrios su'%etere% atra+&s do %ecanis%o de carrega%ento e% 'usca de +(rus e %a)<ares Gerencia#ento de Me#1ria* Oti)i-ar contro)e de entrada2sa(da para os dados >ue n.o se6a% confiC+eis 4erificar se o 'uffer & t.o grande >uanto o especificado Ao usar fun*Fes >ue aceite% deter%inado n$%ero de 'ytes para rea)i-ar cMpias/ 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 S fun*.o se6a% rea)i-adas e% cic)os e +erificar se n.o hC 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-oC+e) antes de passC3)as para as fun*Fes de cMpia e concatena*.o 8a )i'era*.o de recursos a)ocados para o'6etos de cone0.o/ identificadores de ar>ui+o etc#/ n.o contar co% o ?garbage collector@ e rea)i-ar a tarefa e0p)icita%ente Osar pi)has n.o e0ecutC+eis/ >uando dispon(+eis 5+itar o uso de fun*Fes reconhecida%ente +u)nerC+eis co%o printfAB/ strcatAB/ strcpyAB etc# :i'erar a %e%Mria a)ocada de %odo apropriado apMs conc)uir a su'3rotina Afun*.o2%&todoB e e% todos pontos de sa(da 4ers.o #, G Fevereiro 2012 Prticas Gerais de Codificao* Para tarefas co%uns/ uti)i-ar se%pre cMdigo testado/ gerenciado e apro+ado ao in+&s de criar cMdigo no+o e n.o gerenciado Oti)i-ar APDs >ue e0ecute% tarefas espec(ficas para rea)i-ar opera*Fes do siste%a operaciona)# 8.o per%itir >ue a ap)ica*.o e0ecute co%andos direta%ente no siste%a operaciona)/ especia)%ente atra+&s da uti)i-a*.o de ?she))s@ de co%ando iniciadas pe)a ap)ica*.o Oti)i-ar %ecanis%os de +erifica*.o de integridade por ?checksu%@ ou ?hash@ para +erificar a integridade do cMdigo interpretado/ 'i')iotecas/ ar>ui+os e0ecutC+eis e ar>ui+os de configura*.o Oti)i-ar %ecanis%os de ')o>ueio para e+itar re>uisi*Fes si%u)tVneas para a ap)ica*.o ou uti)i-ar u% %ecanis%o de sincroni-a*.o para e+itar condi*Fes de concorr7ncia Arace conditionsB Proteger as +ariC+eis co%parti)hadas e os recursos contra acessos concorrentes inapropriados Dnstanciar e0p)icita%ente todas as +ariC+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+ogC3)os )ogo >ue se6a poss(+e) 5+itar erros de cC)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 aspectos de cC)cu)o nu%&rico# Prestar 'astante aten*.o nas discrepVncias de ta%anho de 'yte/ precis.o/ distin*Fes de sina) Asigned2unsignedB/ trunca%ento/ con+ers.o e ?casting@ entre os tipos/ cC)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 usuCrio para >ua)>uer fun*.o de e0ecu*.o dinV%ica se% rea)i-ar o tratamento dos dados de %odo ade>uado Restringir a gera*.o e a a)tera*.o de cMdigo por parte dos usuCrios Re+isar todas as ap)ica*Fes secundCrias/ cMdigos e 'i')iotecas de terceiros para deter%inar a necessidade do negMcio e +a)idar as funciona)idades de seguran*a/ u%a +e- >ue estas pode% introdu-ir no+as +u)nera'i)idades D%p)e%entar atua)i-a*Fes de %odo seguro# Se a ap)ica*.o precisar rea)i-ar atua)i-a*Fes auto%Cticas/ uti)i-ar %ecanis%os de assinatura digita) para garantir a integridade do cMdigo e garantir >ue os c)ientes fa*a% a +erifica*.o da assinatura apMs descarregare% as atua)i-a*Fes# Osar canais criptografados para transferir o cMdigo a partir do host do ser+idor 4ers.o #, H Fevereiro 2012 Apndice A 2Recursos e3ternos e referncias4 Referncias )3ternas* # Refer7ncia citada Sans and !ippingPoint T!he !op Cy'er Security RisksT http122<<<#sans#org2top3cy'er3security3risks We' App)ication Security Consortiu% http122<<<#<e'appsec#org Co%%on Weakness 5nu%eration ACW5B http122c<e#%itre#org Iepart%ent of Wo%e)and Security =ui)d Security Dn Porta) https122'ui)dsecurityin#us3cert#go+2daisy2'si2ho%e#ht%) C5R! Secure Coding http122<<<#cert#org2secure3coding LSI8 Security Ie+e)oper Center http122%sdn#%icrosoft#co%2en3us2security2defau)t#asp0 SQ: Dn6ection 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 Iata'ase AOS4I=B http122os+d'#org2search2<e'_+u)n_search Co%%on 4u)nera'i)ity 5nu%eration http122<<<#c+e#%itre#org 4ers.o #, J Fevereiro 2012 Apndice / 2Glossrio4 Agente de A#eaa* Qua)>uer entidade >ue pode causar u% i%pacto negati+o e% u% siste%a# Pode ser tanto u% usuCrio %a)3intencionado >uerendo co%pro%eter os contro)es 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*Fes# Autenticao* U u% con6unto de contro)es usados para +erificar a identidade de u% usuCrio/ ou outra entidade >ue interage co% o soft<are# Autenticao de M5ltiplos 6atores* U u% processo de autentica*.o >ue re>uer +Crios tipos de credenciais do usuCrio# 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 Se0uencial* Ocorre >uando os dados de autentica*.o s.o so)icitados e% sucessi+as pCginas/ ao in+&s de sere% so)icitados e% u%a $nica pCgina# Canonicali7ao* U u%a opera*.o rea)i-ada para redu-ir +Crias codifica*Fes e representa*Fes de dados e% u%a $nica for%a si%p)ificada# Caracteres Maliciosos* Quais>uer caracteres ou representa*Fes codificadas de caracteres >ue pode% produ-ir efeitos indese6C+eis so're a opera*.o nor%a) de ap)ica*Fes ou dos siste%as associados >uando s.o interpretados/ por tere% significado especia)# 5stes caracteres pode% ser usados para1 Lodificar a estrutura de cMdigo ou de dec)ara*Fes Dnserir cMdigo indese6ado Lodificar ca%inhos Causar sa(das inesperadas das fun*Fes ou rotinas dos progra%as Causar condi*Fes de erro Causar >ua)>uer dos efeitos anteriores e% ap)ica*Fes su'6acentes Casos de A8uso* Iescre+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 ASCDD pe)as entidades W!L: e>ui+a)entes# Por e0e%p)o/ a codifica*.o poderia su'stituir o caractere ?X@ pe)a entidade W!L: e>ui+a)ente T[)tcT# 5ssas entidades s.o ?inertes@ na %aioria dos interpretadores especia)%ente na+egadores e pode% atenuar os ata>ues do )ado c)iente# Codificao de Sa%da /aseada e# Conte3to* U 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*Fes co%o1 o corpo de u% docu%ento W!L:/ u% atri'uto de W!L:/ codifica*.o 9a+aScript/ codifica*.o dentro de u% CSS ou de u%a OR:# Ie+e% ta%'&% ser )e+ados e% considera*.o outros casos co%o consu)tas SQ:/ ^L: e :IAP# Codificao de Sa%da de (ados* U u% con6unto de contro)es >ue a'orda% o uso de codifica*.o para 4ers.o #, N Fevereiro 2012 garantir u%a sa(da de dados segura gerada pe)a ap)ica*.o# Confidencialidade* U o ato de garantir >ue as infor%a*Fes s.o di+u)gadas apenas para as partes autori-adas# Configurao do Siste#a* Con6unto de contro)es >ue a6uda% a garantir >ue os co%ponentes de infraestrutura de apoio ao soft<are s.o i%p)antados de for%a segura# Consultas Para#etri7adas 2prepared state#ents4* Lant&% 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 parV%etros a sere% su'stitu(dos# A consu)ta para%etri-ada & en+iada para o 'anco de dados/ preparada para rece'er os parV%etros e/ e% seguida/ & co%'inada co% os +a)ores dos %es%os# Dsto i%pede >ue a consu)ta se6a a)terada por>ue os +a)ores dos parV%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%pFe% a consu)ta SQ:# Controle de Acesso1 U u% con6unto de contro)es >ue )i'era ou nega o acesso a u% recurso do siste%a a u% usuCrio ou outra entidade >ua)>uer# 8or%a)%ente & 'aseado e% regras hierCr>uicas e pri+i)&gios indi+iduais associados a pap&is/ por&% ta%'&% inc)ui intera*Fes entre siste%as# Controles de Segurana* S.o a*Fes >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 Re0uest 6orgery 2CSR64* Ocorre >uando u%a ap)ica*.o ou site <e' e0ternos for*a o na+egador do c)iente a rea)i-ar u%a re>uisi*.o in+o)untCria para u%a ap)ica*.o e% >ue o c)iente possua u%a sess.o ati+a# As ap)ica*Fes s.o +u)nerC+eis ao CSR" >uando usa% OR:s e parV%etros conhecidos ou pre+is(+eis ou >uando o na+egador trans%ite todas as infor%a*Fes da sess.o para a ap)ica*.o +u)nerC+e) de for%a auto%Ctica e% cada so)icita*.o# 5sse & apenas u% dos ata>ues discutidos nesse docu%ento e sM estC inc)u(do por>ue a +u)nera'i)idade associada & %uito co%u%/ por&% %a) co%preendida# (isponi8ilidade* U a propriedade de estar acess(+e) e uti)i-C+e) >uando de%andado por u%a entidade autori-ada# )stado dos (ados* S.o dados ou parV%etros usados pe)a ap)ica*.o ou pe)o ser+idor para e%u)ar u%a cone0.o persistente ou contro)ar o estado AstatusB de u% c)iente atra+&s de u% processo de %$)tip)as re>uisi*Fes ou transa*Fes# )3ploit* U 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# Gerncia de Ar0ui"o* U u% con6unto de contro)es >ue resguarda% a intera*.o entre o cMdigo da ap)ica*.o e os ar>ui+os do siste%a# Gerencia#ento de Me#1ria* U u% con6unto de contro)es >ue di-e% respeito ao uso de %e%Mria e do 'uffer# Gerencia#ento de Sesso* U u% con6unto de contro)es >ue trata% da %anipu)a*.o de sessFes W!!P de for%a segura por ap)ica*Fes We'# 4ers.o #, K Fevereiro 2012 $#pacto* U o efeito negati+o percept(+e) para o negMcio/ resu)tante da ocorr7ncia de u% e+ento indese6C+e)/ >ue por sua +e- & o resu)tado da e0p)ora*.o de +u)nera'i)idades# $ntegridade* U a garantia de >ue as infor%a*Fes s.o precisas/ co%p)etas e +C)idas/ e >ue n.o fora% a)teradas por u%a a*.o n.o autori-ada# i#ites 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)e direto# !odas as cone0Fes e dados do siste%a fora desse contro)e direto inc)uindo todos os c)ientes e siste%as gerenciados por terceiros de+e% ser considerados co%o n.o confiC+eis e necessita% de +a)ida*.o na fronteira/ antes de rece'ere% per%issFes para rea)i-are% intera*Fes 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 tornC3)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)es para garantir >ue as opera*Fes de criptografia dentro da ap)ica*.o se6a% e0ecutadas de %odo seguro# Prticas Gerais de Codificao* Con6unto de contro)es a'rangendo prCticas de codifica*.o >ue n.o se encai0a% faci)%ente e% outras categorias# Proteo dos (ados1 Con6unto de contro)es para a6udar a garantir >ue o soft<are trata o ar%a-ena%ento das infor%a*Fes de %odo seguro# Reali7ar og dos )"entos* 5sta opera*.o de+e inc)uir os seguintes re>uisitos1 # Oti)i-ar u% ti%esta%p K pro+eniente de u% siste%a confiC+e) 2# C)assificar a se+eridade para cada e+ento ,# Iestacar e+entos de seguran*a re)e+antes/ caso e)es se6a% %isturados co% outros registros de )og E# Registrar o identificador da conta ou usuCrio >ue causou o e+ento G# Registrar o endere*o DP de orige% >ue rea)i-ou a re>uisi*.o H# Registrar o resu)tado dos e+entos Asucesso ou fa)haB J# Registrar a descri*.o do e+ento Re0uisitos de Segurana* Con6unto de re>uisitos funcionais e de pro6eto para a6udar a garantir >ue o soft<are se6a constru(do e i%p)antado de for%a segura# Segurana das Co#unica&es* Con6unto de contro)es para a6udar a garantir o en+io e o rece'i%ento das infor%a*Fes de %odo seguro# Segurana de /anco de (ados* Con6unto de contro)es para garantir >ue o soft<are intera6a co% os 'ancos de dados de for%a segura e >ue os 'ancos de dados este6a% configurados de for%a segura# K 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 e% u% siste%a# Para %ais infor%a*Fes/ +er a R"C ,,,K e a nor%a DSO NH0/ Iata e)e%ents and interchange for%ats Dnfor%ation interchange Representation of dates and ti%es# 4ers.o #, 20 Fevereiro 2012 Siste#a* U u% ter%o gen&rico >ue a'range siste%as operacionais/ ser+idores <e'/ fra%e<orks de ap)ica*Fes e infraestrutura re)acionada# +rata#ento de )rros e og* Con6unto de prCticas para garantir >ue a ap)ica*.o rea)i-e o trata%ento dos erros de %odo seguro e/ ta%'&% rea)i-e o registro de )og dos e+entos de %odo apropriado# +rata#ento dos (ados* U 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)es 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/ con6unto de caracteres aceitC+eis e aus7ncia de caracteres %a)iciosos# 'ulnera8ilidade* U u%a fragi)idade >ue torna u% siste%a suscet(+e) a u% ata>ue ou a u% dano# 0 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!L: e>ui+a)ente ?[a%pc@# 4ers.o #, 2