Você está na página 1de 21

Fevereiro 2012

Melhores Prticas de Codificao


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

Você também pode gostar