Escolar Documentos
Profissional Documentos
Cultura Documentos
4ers.o #,
Fevereiro 2012
"otas da #erso
5sta +ers.o do OWASP Secure Coding Practices foi desen+o)+ida co%o parte integrante da ati+idade con6unta dos cap(tu)os 'rasi)eiro e portugu7s da OWASP/ e% pro) da co%unidade de progra%adores e da seguran*a dos siste%as desen+o)+idos nos pa(ses de )(ngua portuguesa# 5ste docu%ento & 'aseado na +ers.o 2#0 de 8o+e%'ro de 20 0 e na re+is.o da pri%eira tradu*.o/ +ers.o #2/ datada de 9u)ho de 20 # :(der do pro6eto de tradu*.o1 !arci-io 4ieira 8eto tarci-io#+ieira;o<asp#org =rasi) Participara% desta tradu*.o1 :eandro Resende Go%es )eandrock;g%ai)#co% =rasi) S()+io "ernando Correia 4ieira "i)ho si)+iofi)hosf;g%ai)#co% =rasi) Pau)o A)e0andre Si)+a %e;pau)oasi)+a#co% Portuga) A)e0andre Pupo a)e0andrepupo;yahoo#co%#'r =rasi) Car)os Serr.o car)os#serrao;o<asp#org Portuga) Rog&rio 4icente rogeriop+);g%ai)#co% Portuga) 9orge O)i%pia 6orgeo)i%pia;g%ai)#co% =rasi) A tradu*.o deste docu%ento pretende3se fie) ao te0to origina)/ tendo sido introdu-idos a)guns deta)hes e0p)icati+os >ue est.o dispersos no te0to/ assu%indo/ na)guns casos/ a for%a de notas de rodap& contendo o prefi0o ?8!1@ Anota de tradu*.oB# Para sa'er %ais so're os e+entos e ati+idades desen+o)+idas pe)o cap(tu)o =rasi)/ aceda C pDgina Ahttp122<<<#o<asp#org2inde0#php2=ra-i)B ou registe3se na )ista de discuss.o OWASP3=R Ahttp122)ists#o<asp#org2%ai)%an2)istinfo2o<asp3'ra-i)ianB# Para sa'er %ais so're os e+entos e ati+idades desen+o)+idas pe)a de)ega*.o da OWASP e% Portuga)/ aceda C pDgina Ahttp122<<<#o<asp#org2inde0#php2PortugueseB ou registe3se na )ista de discuss.o OWASP3P! Ahttps122)ists#o<asp#org2%ai)%an2)istinfo2o<asp3portugueseB#
4ers.o #,
Fevereiro 2012
Sumrio
Entrodu*.o#############################################################################################################################################F Princ(pios Gerais de Seguran*a e% Ap)ica*Ges e Riscos#####################################################################H :ista de 4erifica*.o de PrDticas de Progra%a*.o Segura#####################################################################I 4a)ida*.o dos Jados de 5ntrada1#####################################################################################################I Codifica*.o de Jados de Sa(da1#######################################################################################################K Autentica*.o e Gest.o de Credenciais1############################################################################################K Gest.o de SessGes1############################################################################################################################L Contro)o de Acessos1###################################################################################################################### 0 PrDticas de Criptografia1################################################################################################################# !rata%ento de 5rros e :og1############################################################################################################ Prote*.o de Jados1######################################################################################################################### 2 Seguran*a nas co%unica*Ges1######################################################################################################## , Configura*.o do Siste%a1############################################################################################################### , Seguran*a e% =ase de Jados1######################################################################################################## F Gest.o de "icheiros1####################################################################################################################### F Gest.o de Me%Nria1####################################################################################################################### H PrDticas Gerais de Progra%a*.o1#################################################################################################### H Ap7ndice A ARecursos e0ternos e refer7nciasB################################################################################### K Refer7ncias 50ternas1##################################################################################################################### K Sites de A+isos de Seguran*a1######################################################################################################## K Ap7ndice = AG)ossDrioB###################################################################################################################### O
4ers.o #,
Fevereiro 2012
$ntroduo
5ste docu%ento n.o se 'aseia apenas e% >uestGes tecno)Ngicas e te% o propNsito de definir u% con6unto de 'oas prDticas de seguran*a no desen+o)+i%ento de ap)ica*Ges# As reco%enda*Ges ser.o apresentadas no for%ato de )ista de +erifica*Ges/ >ue pode% ser integradas no cic)o de desen+o)+i%ento das ap)ica*Ges# A ado*.o destas prDticas pro+a+e)%ente redu-irD as +u)nera'i)idades %ais co%uns e% ap)ica*Ges We'# Gera)%ente & %ais 'arato construir soft<are seguro do >ue corrigir pro')e%as de seguran*a apNs a entrega do %es%o co%o u% produto fina) ou pacote co%p)eto/ se% fa)ar nos custos >ue pode% estar associados a u%a fa)ha de seguran*a# Proteger os recursos cr(ticos das ap)ica*Ges te%3se tornado cada +e- %ais i%portante/ pois o foco dos atacantes %udou para a ca%ada de ap)ica*.o# P% estudo da SA8S e% 200L Q R desco'riu >ue os ata>ues contra ap)ica*Ges We' constitue% %ais de I0S do tota) das tentati+as de ata>ue o'ser+adas na Enternet# Ao uti)i-ar este guia & reco%endD+e) >ue as e>uipas de desen+o)+i%ento a+a)ie% a %aturidade do cic)o de +ida de desen+o)+i%ento de soft<are e o n(+e) de conheci%ento da e>uipa# Co%o este guia n.o entra e% deta)hes de co%o i%p)antar cada prDtica de progra%a*.o/ os progra%adores precisa% possuir conheci%ento pr&+io ou de+e% ter dispon(+eis os recursos >ue forne*a% o conheci%ento necessDrio# 5ste guia apresenta prDticas >ue pode% ser tradu-idas e% re>uisitos de desen+o)+i%ento se% a necessidade do progra%ador possuir u%a co%preens.o aprofundada das +u)nera'i)idades e exploits de seguran*a# 8o entanto/ outros %e%'ros da e>uipa de desen+o)+i%ento de+e% possuir responsa'i)idades/ co%pet7ncias ade>uadas/ ferra%entas e recursos para +a)idar se o pro6eto e a i%p)e%enta*.o responde% aos re>uisitos de seguran*a# 8o ap7ndice = encontra3se u% g)ossDrio dos ter%os i%portantes usados neste docu%ento/ inc)uindo o t(tu)o das sec*Ges e pa)a+ras %ostradas e% itlico# 8.o fa- parte do T%'ito deste guia fornecer orienta*Ges para i%p)e%entar u%a framework de desen+o)+i%ento seguro de soft<are/ no entanto/ as seguintes prDticas gerais e refer7ncias s.o reco%endadas1 Jefinir c)ara%ente os pap&is e responsa'i)idades "ornecer Cs e>uipas de desen+o)+i%ento/ pessoa) co% for%a*.o ade>uada e% seguran*a no desen+o)+i%ento de ap)ica*Ges E%p)e%entar u% cic)o de desen+o)+i%ento de soft<are seguro o o o o OWASP C:ASP Pro6ect OWASP Je+e)op%ent Guide Pro6ect OWASP 5nterprise Security APE A5SAPEB Pro6ect OWASP App)ication Security 4erification Standard AAS4SB Pro6ect 5sta'e)ecer padrGes de progra%a*.o segura Construir u%a 'i')ioteca reuti)i-D+e) ou fa-er uso de u%a 'i')ioteca de seguran*a 4erificar a efeti+idade dos %ecanis%os de seguran*a 5sta'e)ecer prDticas para garantir a seguran*a >uando hD su'contrata*.o no desen+o)+i%ento/ inc)uindo a defini*.o dos re>uisitos de seguran*a e %etodo)ogias de +erifica*.o tanto para os re>uisitos das propostas/ co%o para o contrato a ser fir%ado entre as partes# o OWASP :ega) Pro6ect
4ers.o #,
Fevereiro 2012
A)&% disso/ & i%portante entender >ue as +u)nera'i)idades de soft<are pode% ter u% T%'ito %uito %aior do >ue o do prNprio soft<are# Jependendo da nature-a do soft<are/ da +u)nera'i)idade e da infraestrutura de apoio/ o i%pacto de u%a e0p)ora*.o 'e% sucedida pode co%pro%eter >ua)>uer u%/ ou %es%o todos os seguintes aspetos1 O soft<are e sua infor%a*.o associada O siste%a operati+o dos ser+idores associados A 'ase de dados do backend
4ers.o #,
Fevereiro 2012
Outras ap)ica*Ges nu% a%'iente parti)hado O siste%a do uti)i-ador Outros soft<ares co% os >uais o uti)i-ador interage
5fetuar toda a +a)ida*.o dos dados nu% siste%a de confian*a# Por e0e%p)o/ centra)i-ar todo o processo no ser+idor Edentificar todas as fontes de dados e c)assificD3)as co%o sendo ou n.o de confian*a# 5% seguida/ +a)idar os dados pro+enientes de fontes nas >uais n.o e0ista confian*a Ae01 'ase de dados/ strea% de ar>ui+os etc#B A rotina de +a)ida*.o de dados de entrada de+e ser centra)i-ada na ap)ica*.o 5specificar o con6unto de caracteres apropriados/ co%o P!"3O/ para todas as fontes de entrada de dados Codificar os dados para u% con6unto de caracteres co%uns antes da +a)ida*.o ACanonicalizeB Quando hD fa)ha de +a)ida*.o a ap)ica*.o de+e re6eitar os dados fornecidos Jeter%inar se o siste%a suporta con6untos de caracteres estendidos P!"3O e e% caso afir%ati+o/ +a)idar apNs efetuar a descodifica*.o P!"3O 4a)idar todos os dados pro+enientes dos c)ientes antes do processa%ento/ inc)uindo todos os parT%etros/ ca%pos de for%u)Drio/ conte$dos das PR:s e ca'e*a)hos W!!P/ co%o/ por e0e%p)o/ os no%es e os +a)ores dos Cookies# Certificar3se/ ta%'&%/ de inc)uir %ecanis%os auto%Dticos de postback2 nos ')ocos de cNdigo 9a+aScript/ ")ash ou >ua)>uer outro cNdigo e%'utido 4erificar se os +a)ores de ca'e*a)ho/ tanto dos pedidos/ co%o das respostas/ cont7% apenas caracteres ASCEE 4a)idar dados pro+enientes de redireciona%entos# Os atacantes pode% inc)uir conte$do %a)icioso direta%ente para o a)+o do %ecanis%o de redireciona%ento/ podendo assi% contornar a )Ngica da ap)ica*.o e >ua)>uer +a)ida*.o e0ecutada antes do redireciona%ento 4a)idar tipos de dados esperados 4a)idar inter+a)o de dados 4a)idar o ta%anho dos dados 4a)idar/ se%pre >ue poss(+e)/ todos os dados de entrada atra+&s de u% %&todo 'aseado e% ?)istas 'rancasU >ue uti)i-a% u%a )ista de caracteres ou e0pressGes regu)ares para definire% os caracteres per%itidos Se >ua)>uer caractere potencia)%ente perigoso precisa ser per%itido na entrada de dados da ap)ica*.o/ certifi>ue3se >ue fora% i%p)e%entados %ecanis%os adicionais co%o codifica*.o dos dados de sa(da/ APEs especificas >ue fornece% tarefas seguras e ca%inhos de auditoria no uso dos dados pe)a ap)ica*.o# A seguir/ co%o e0e%p)o de caracteres ?potencia)%ente perigosos@/ te%os1 X/ Y/ U/ Z/ S/ A/ B/ [/ \/ ]/ ]Z/ ]U Se a rotina de +a)ida*.o padr.o n.o a'ordar as seguintes entradas/ ent.o e)as de+e% ser +erificadas1 aB 4erificar 'ytes nu)os AS00B 'B 4erificar se hD caracteres de no+a )inha AS0d/ S0a/ ]r/ ]nB cB 4erificar se hD caracteres ?ponto3ponto 'arra@ A##2 ou ##]B >ue a)tera% ca%inhos# 8os casos de
8!1 http122pt#<ikipedia#org2<iki2Post'ack
4ers.o #,
Fevereiro 2012
con6unto de caracteres >ue use% a e0tens.o P!"3O/ o siste%a de+e uti)i-ar representa*Ges a)ternati+as co%o1 Sc0SaeSc0Sae2# A canonicalizao de+e ser uti)i-ada para reso)+er pro')e%as de codifica*.o dup)a Adou')e encoding,B ou outras for%as de ata>ues por ofusca*.o
5fetuar toda a codifica*.o dos dados nu% siste%a de confian*a/ por e0e%p)o/ centra)i-ar todo o processo no ser+idor Pti)i-ar u%a rotina padr.o/ testada/ para cada tipo de codifica*.o de sa(da Rea)i-ar a codifica*.o/ 'aseada e% conte0to/ de todos os dados en+iados para o c)iente >ue t7% orige% nu% a%'iente fora dos )i%ites de confian*a da ap)ica*.o# A codifica*.o das entidades W!M: & u% e0e%p)o/ %as ne% se%pre funciona para todos os casos Codificar todos os caracteres/ a %enos >ue se6a% conhecidos por sere% seguros para o interpretador de destino Rea)i-ar o trata%ento A)i%pe-aB/ 'aseado e% conte0to/ de todos os dados pro+enientes de fontes >ue n.o se6a% de confian*a usados para construir consu)tas SQ:/ ^M:/ e :JAP !ratar todos os dados pro+enientes de fontes >ue n.o se6a% de confian*a >ue gere% co%andos para o siste%a operati+o
Re>uerer autentica*.o para todas as pDginas e recursos/ e0ceto para a>ue)es >ue s.o intenciona)%ente p$')icos Os %ecanis%os de autentica*.o de+e% ser e0ecutados nu% siste%a de confian*a/ por e0e%p)o/ centra)i-ar todo o processo no ser+idor Se%pre >ue poss(+e)/ esta'e)ecer e uti)i-ar ser+i*os de autentica*.o padroni-ados e testados Pti)i-ar u%a i%p)e%enta*.o centra)i-ada para rea)i-ar os procedi%entos de autentica*.o/ disponi'i)i-ando 'i')iotecas >ue in+oca% os ser+i*os de autentica*.o e0ternos Separar a )Ngica de autentica*.o do recurso >ue estD a ser re>uisitado e usar redirecionadores dos contro)adores de autentica*.o centra)i-ados Quando ocorrere% situa*Ges e0cecionais nos contro)adores de autentica*.o/ e0ecutar procedi%entos e% caso de fa)ha co% o propNsito de %anter o siste%a seguro !odas as fun*Ges ad%inistrati+as e de gest.o de contas de+e% ser t.o seguras >uanto o %ecanis%o de autentica*.o principa) Se a ap)ica*.o gerir u% repositNrio de credenciais/ esta de+erD garantir >ue as senhas s.o ar%a-enadas na 'ase de dados so%ente so' a for%a de resu%o2 as da senha na for%a de one!wa" salted as esF/ e >ue a ta'e)a2ar>ui+o >ue ar%a-ena as senhas e as prNprias cha+es s.o %anipu)adas apenas pe)a ap)ica*.o# 8.o uti)i-ar o a)gorit%o de hash MJH/ se%pre >ue esse puder ser e+itado A gera*.o dos resu%os A as B das senhas de+e ser e0ecutada nu% siste%a de confian*a/ por e0e%p)o/ centra)i-ar o contro)o no ser+idor 4a)idar os dados de autentica*.o so%ente no fina) de todas as entradas de dados/ especia)%ente para as i%p)e%enta*Ges de autenticao sequencial As %ensagens de fa)ha na autentica*.o n.o de+e% indicar >ua) parte dos dados de autentica*.o estD
, F
8!1 http122<<<#o<asp#org2inde0#php2Jou')e_5ncoding 8!1 one!wa" salted as & u% a)gorit%o de as gerado co% au0()io de +a)ores a)eatNrios ou pr&3definidos >ue co%pGe% o parT%etro da fun*.o de gera*.o da as e dificu)ta o processo de >ue'ra da as atra+&s de ata>ues de dicionDrio# Mais so're o assunto e%1 http122en#<ikipedia#org2<iki2Sa)t_AcryptographyB
4ers.o #,
Fevereiro 2012
incorreta# Por e0e%p)o/ e% +e- de e0i'ir %ensagens co%o ?8o%e de uti)i-ador incorreto@ ou ?Senha incorreta@/ uti)i-e apenas %ensagens co%o1 ?Pti)i-ador e2ou senha in+D)idos@/ para a%'os os casos de erro# As respostas de erro de+e% ser id7nticas nos dois casos
Pti)i-ar autentica*.o para )iga*.o a siste%as e0ternos >ue en+o)+a% trDfego de infor%a*.o sens(+e) ou acesso a fun*Ges As credenciais de autentica*.o para aceder a ser+i*os e0ternos C ap)ica*.o de+e% ser cifradas e ar%a-enadas nu% )oca) protegido nu% siste%a de confian*a/ por e0e%p)o/ no ser+idor da ap)ica*.o# O's#1 o cNdigo3fonte n.o & considerado u% )oca) seguro Pti)i-ar apenas pedidos POS! para trans%itir credenciais de autentica*.o So%ente trocar senhas An.o te%porDriasB atra+&s de u%a )iga*.o protegida ASS:2!:SB ou co%o dado cifrado/ co%o no caso de en+io de e3%ai) cifrado# Senhas te%porDrias en+iadas por e3%ai) pode% ser u% caso de e0ce*.o aceitD+e) 50igir >ue os re>uisitos de co%p)e0idade de senha esta'e)ecidos pe)a po)(tica ou regu)a%ento se6a% cu%pridos# As credenciais de autentica*.o de+e% ser suficientes para resistir a ata>ues >ue/ tipica%ente/ a%ea*a% o a%'iente de produ*.o# P% e0e%p)o pode ser a e0ig7ncia do uso si%u)tTneo de caracteres a)fa'&ticos/ nu%&rico e2ou caracteres especiais 50igir >ue os re>uisitos de co%pri%ento de senha esta'e)ecidos pe)a po)(tica ou regu)a%ento se6a% cu%pridos# O uso de oito caracteres & o %ais co%u%/ por&% usar I & %ais reco%endado# Considere/ ainda/ o uso de senhas >ue contenha% +Drias pa)a+ras Au%a fraseB A entrada da senha de+e ser ocu)tada no dispositi+o de apresenta*.o do uti)i-ador# 5% W!M:/ uti)i-e o ca%po co% o tipo Upass<ordU Jesati+ar a conta apNs u% n$%ero pr&3definido de tentati+as in+D)idas de autentica*.o Ae01 cinco tentati+as & o %ais co%u%B# A conta de+e ser desati+ada por u% per(odo de te%po suficiente%ente )ongo para desencora6ar a dedu*.o das credenciais pe)o %&todo de for*a 'ruta/ %as n.o t.o )ongo ao ponto de per%itir u% ata>ue de nega*.o de ser+i*o Os processos de redefini*.o de senhas e opera*Ges de %udan*as de+e% e0igir os %es%os n(+eis de contro)o pre+istos para a cria*.o de contas e autentica*.o 5s>ue%as de pergunta2resposta Apr&3definidasB usadas para a redefini*.o da senha de+e% e+itar ata>ues >ue )an*a% respostas a)eatNrias# Por e0e%p)o/ ?)i+ro fa+orito@ & u%a >uest.o fraca/ pois ?A =(')ia@ & u%a resposta %uito co%u% Se optar por usar redefini*.o de senha 'aseada e% e3%ai)/ en+ie u% e3%ai) so%ente para o endere*o pr&3definido contendo u% link ou senha de acesso te%porDrio >ue per%ita% ao uti)i-ador redefinir a senha O te%po de +a)idade das senhas e dos links te%porDrios de+e ser curto 50igir a %udan*a de senhas te%porDrias na prN0i%a +e- >ue o uti)i-ador rea)i-ar a autentica*.o no siste%a 8otificar o uti)i-ador >uando a sua senha for reiniciada AresetB Pre+enir a reuti)i-a*.o de senhas As senhas de+e% ter/ pe)o %enos/ u% dia de dura*.o antes de podere% ser a)teradas/ a fi% de e+itar ata>ues de reuti)i-a*.o de senhas Garantir >ue a troca de senhas estD e% confor%idade co% os re>uisitos esta'e)ecidos na po)(tica ou regu)a%ento# Siste%as cr(ticos pode% e0igir a)tera*Ges %ais fre>uentes nas credenciais de seguran*a# O te%po entre as trocas de senhas de+e ser contro)ado ad%inistrati+a%ente Jesati+ar a funciona)idade de )e%'rar a senha nos ca%pos de senha do na+egador A data2hora da $)ti%a uti)i-a*.o A'e% ou %a) sucedidaB de u%a conta de uti)i-ador de+e ser co%unicada na prN0i%a entrada no siste%a Rea)i-ar %onitori-a*.o para identificar ata>ues contra +Drias contas de uti)i-adores/ uti)i-ando a %es%a senha# 5sse padr.o de ata>ue & uti)i-ado para e0p)orar o uso de senhas padr.o
4ers.o #,
Fevereiro 2012
Modificar todas as senhas >ue/ por padr.o/ s.o definidas pe)os fornecedores/ 'e% co%o os identificadores de uti)i-adores AEJsB ou desati+ar as contas associadas 50igir no+a autentica*.o dos uti)i-adores antes da rea)i-a*.o de opera*Ges cr(ticas Pti)i-ar autenticao de m#ltiplos fatores Auti)i-ando si%u)tanea%ente token/ senha/ 'io%etria etc#HB para contas a)ta%ente sens(+eis ou de e)e+ado +a)or transaciona) Caso uti)i-e cNdigo de terceiros para rea)i-ar a autentica*.o/ inspecione3o cuidadosa%ente para garantir >ue o %es%o n.o & afetado por >ua)>uer cNdigo %a)icioso
Gesto de Sess&es*
Pti)i-ar contro)os de gest.o de sess.o 'aseados no ser+idor ou e% fra%e<ork# A ap)ica*.o de+e reconhecer apenas esses identificadores de sess.o co%o +D)idos A cria*.o dos identificadores de sess.o de+e ser se%pre rea)i-ada nu% siste%a de confian*a/ por e0e%p)o/ centra)i-ado no ser+idor O contro)o de gest.o de sess.o de+e usar a)gorit%os conhecidos/ padroni-ados e 'e% testados >ue garanta% a a)eatoriedade dos identificadores de sess.o Jefinir o do%(nio e o ca%inho para os cookies >ue cont7% identificadores de sess.o autenticados/ para u% +a)or de+ida%ente restrito para o site A funciona)idade de sa(da AlogoutB de+e encerrar co%p)eta%ente a sess.o ou )iga*.o associada A funciona)idade de sa(da AlogoutB de+e estar dispon(+e) e% todas as pDginas >ue re>uere% autentica*.o 5sta'e)ecer u% te%po de e0pira*.o da sess.o >ue se6a o %ais curto poss(+e)/ 'aseado no 'a)ancea%ento dos riscos e re>uisitos funcionais do negNcio# 8a %aioria dos casos n.o de+e ser %ais do >ue a)gu%as horas 8.o per%itir )ogins persistentes Ase% pra-o de e0pira*.oB e rea)i-ar o encerra%ento da sess.o periodica%ente/ %es%o >uando e)a esti+er ati+a# Esso de+e ser feito/ especia)%ente/ e% ap)ica*Ges >ue suporta% +Drias )iga*Ges de rede ou >ue se )iga% a siste%as cr(ticos# O te%po de encerra%ento de+e estar de acordo co% os re>uisitos do negNcio e o uti)i-ador de+e rece'er notifica*Ges suficientes para atenuar os i%pactos negati+os dessa %edida Se u%a sess.o esta+a esta'e)ecida antes do )ogin e)a de+e ser encerrada para >ue u%a no+a se6a esta'e)ecida apNs o )ogin Gerar u% no+o identificador de sess.o >uando hou+er u%a no+a autentica*.o 8.o per%itir cone0Ges si%u)tTneas co% o %es%o identificador de uti)i-ador 8.o e0por os identificadores de sess.o e% PR:s/ %ensagens de erro ou )ogs# Os identificadores de sess.o de+e% apenas ser encontrados no ca'e*a)ho do cookie W!!P# Por e0e%p)o/ n.o en+iar os identificadores de sess.o so' a for%a de parT%etros G5! Proteger os dados de sess.o do )ado ser+idor contra acessos n.o autori-ados por outros uti)i-adores do ser+idor/ atra+&s da i%p)e%enta*.o de contro)os de acesso apropriados no ser+idor Gerar u% no+o identificador de sess.o e desati+ar o antigo periodica%ente# Esso pode %itigar certos cenDrios de ata>ues de rapto de sess.o A session i$ackingB/ >uando o identificador de sess.o origina) for co%pro%etido Gerar u% no+o identificador de sess.o caso a seguran*a da )iga*.o %ude de W!!P para W!!PS/ co%o pode ocorrer durante a autentica*.o# Enterna%ente C ap)ica*.o/ & reco%endD+e) uti)i-ar W!!PS de for%a constante e% +e- de a)ternar entre W!!P e W!!PS Pti)i-ar %ecanis%os co%p)e%entares ao %ecanis%o padr.o de gest.o de sessGes para opera*Ges sens(+eis do )ado do ser+idor co%o no caso de opera*Ges de gest.o de contas atra+&s da
4ers.o #,
Fevereiro 2012
uti)i-a*.o de tokens a)eatNrios ou parT%etros associados C sess.o# 5ste %&todo pode ser usado para pre+enir ata>ues do tipo Cross Site Re>uest "orgery ACSR"B
Pti)i-ar %ecanis%os co%p)e%entares C gest.o de sessGes para opera*Ges a)ta%ente sens(+eis ou cr(ticas/ uti)i-ando tokens a)eatNrios ou parT%etros e% cada re>uisi*.o e% +e- de 'asear3se apenas na sess.o Configurar o atri'uto UsecureU para cookies trans%itidos atra+&s de u%a )iga*.o !:S Configurar os cookies co% o atri'uto ?WttpOn)y@/ a %enos >ue se6a e0p)icita%ente necessDrio )er ou definir os +a)ores dos %es%os atra+&s de scripts do )ado c)iente da ap)ica*.o
Controlo de Acessos*
Pti)i-ar apenas o'6etos do siste%a >ue se6a% de confian*a/ co%o ocorre co% os o'6etos de sess.o do ser+idor/ para rea)i-ar a to%ada de decis.o so're a autori-a*.o de acesso Pti)i-ar u% $nico co%ponente e% toda a ap)ica*.o We' para rea)i-ar o processo de +erifica*.o de autori-a*.o de acesso# Esto inc)ui 'i')iotecas >ue in+oca% os ser+i*os e0ternos de autori-a*.o Quando ocorrer a)gu%a fa)ha no contro)o de acesso/ e)a de+e ocorrer de %odo seguro 8egar todos os acessos/ caso a ap)ica*.o n.o consiga ter acesso Cs infor%a*Ges contidas na configura*.o de seguran*a Garantir o contro)o de autori-a*.o e% todos os pedidos/ inc)usi+e e% scripts do )ado do ser+idor/ Uinc)udesU e pedidos pro+enientes de tecno)ogias do )ado c)iente/ co%o A9A^ e ")ash Eso)ar do cNdigo da ap)ica*.o os trechos de cNdigo >ue cont7% )Ngica pri+i)igiada Restringir o acesso aos ar>ui+os e outros recursos/ inc)uindo a>ue)es >ue est.o fora do contro)e direto da ap)ica*.o/ so%ente aos uti)i-adores autori-ados Restringir o acesso Cs PR:s protegidas so%ente aos uti)i-adores autori-ados Restringir o acesso Cs fun*Ges protegidas so%ente aos uti)i-adores autori-ados Restringir o acesso Cs refer7ncias diretas aos o'6etos so%ente aos uti)i-adores autori-ados Restringir o acesso aos ser+i*os so%ente aos uti)i-adores autori-ados Restringir o acesso aos dados da ap)ica*.o so%ente aos uti)i-adores autori-ados Restringir o acesso aos atri'utos e dados dos uti)i-adores/ 'e% co%o infor%a*Ges das po)(ticas usadas pe)os %ecanis%os de contro)e de acesso Restringir o acesso Cs configura*Ges de seguran*a re)e+antes apenas aos uti)i-adores autori-ados As regras de contro)o de acesso representadas pe)a ca%ada de apresenta*.o de+e% coincidir co% as regras presentes no )ado ser+idor Se o estado dos dados de+e ser ar%a-enado no )ado do c)iente/ uti)i-ar %ecanis%os de criptografia e +erifica*.o de integridade no )ado ser+idor para detetar poss(+eis adu)tera*Ges Garantir >ue os f)u0os )Ngicos da ap)ica*.o o'edece% as regras de negNcio :i%itar o n$%ero de transa*Ges >ue u% $nico uti)i-ador ou dispositi+o pode e0ecutar e% deter%inado per(odo de te%po# As transa*Ges por per(odo de te%po de+e% estar aci%a das necessidades reais do negNcio/ %as a'ai0o o suficiente para i%pedir ata>ues auto%ati-ados Pti)i-ar o ca%po ?referer@ do ca'e*a)ho so%ente co%o for%a de +erifica*.o sup)e%entar# O %es%o n.o de+e ser usado so-inho co%o for%a de +a)ida*.o de autori-a*.o por>ue e)e pode ter o +a)or adu)terado Se for per%itida a e0ist7ncia de sessGes autenticadas por )ongos per(odos de te%po/ fa-er a re+a)ida*.o periNdica da autori-a*.o do uti)i-ador para garantir >ue os pri+i)&gios n.o fora% %odificados e/ caso tenha% sido/ rea)i-ar o registo e% )og do uti)i-ador e e0igir no+a autentica*.o E%p)e%entar a auditoria das contas de uti)i-ador e assegurar a desati+a*.o de contas n.o uti)i-adas#
4ers.o #,
Fevereiro 2012
Por e0e%p)o1 a conta de+e ser desati+ada n.o %ais do >ue ,0 dias apNs a e0pira*.o da senha
A ap)ica*.o de+e dar suporte C desati+a*.o de contas e ao encerra%ento das sessGes >uando ter%inar a autori-a*.o do uti)i-ador# Por e0e%p)o1 >uando ocorrer a)gu%a a)tera*.o dos dados do uti)i-ador/ situa*.o profissiona)/ processos de negNcio etc# As contas de ser+i*o ou contas de suporte a )iga*Ges pro+enientes ou destinadas a ser+i*os e0ternos de+e% possuir o %enor pri+i)&gio poss(+e) Criar u%a Po)(tica de Contro)o de Acesso para docu%entar as regras de negNcio da ap)ica*.o/ tipos de dados e crit&rios ou processos de autori-a*.o para >ue os acessos possa% ser de+ida%ente concedidos e contro)ados# Esto inc)ui identificar re>uisitos de acessos/ tanto para os dados/ co%o para os recursos do siste%a
Prticas de Criptografia*
!odas as fun*Ges de criptografia uti)i-adas para proteger dados sens(+eis dos uti)i-adores da ap)ica*.o/ de+e% ser i%p)antadas nu% siste%a de confian*a Aneste caso o ser+idorB A senha %estre de+e ser protegida contra acessos n.o autori-ados Quando ocorrer a)gu%a fa)ha nos %Ndu)os de criptografia/ per%itir >ue as %es%as ocorra% de %odo seguro !odos os n$%eros/ no%es de ar>ui+os/ GPEJs e strings a)eatNrias de+e% ser gerados usando u% %Ndu)o criptogrDfico co% gerador de n$%eros a)eatNrios/ so%ente se os +a)ores a)eatNrios gerados fore% i%poss(+eis de sere% dedu-idos Os %Ndu)os de criptografia usados pe)a ap)ica*.o de+e% ser co%pat(+eis co% a "EPS F032 ou co% u% padr.o e>ui+a)ente Ahttp122csrc#nist#go+2groups2S!M2c%+p2+a)idation#ht%)B 5sta'e)ecer e uti)i-ar u%a po)(tica e processo >ue defina co%o & rea)i-ada a gest.o das cha+es criptogrDficas
8.o e0por infor%a*Ges sens(+eis nas repostas de erros/ inc)usi+e deta)hes de siste%a/ identificadores de sess.o ou infor%a*.o da conta do uti)i-ador Psar %ecanis%os de trata%ento de erros >ue n.o %ostre% infor%a*Ges de depura*.o AdebugB ou infor%a*Ges da pi)ha de e0ce*.o Psar %ensagens de erro gen&ricas e pDginas de erro persona)i-adas A ap)ica*.o de+e tratar os erros se% se 'asear nas configura*Ges do ser+idor A %e%Nria reser+ada de+e ser )i'ertada de %odo apropriado >uando ocorrere% condi*Ges de erro O trata%ento de erros )Ngicos associados co% os contro)os de seguran*a de+e%/ por padr.o/ negar o acesso !odos os contro)os de )og de+e% ser i%p)e%entados nu% siste%a de confian*a/ por e0e%p)o/ centra)i-ar todo o processo no ser+idor Os contro)os de )og de+e% dar suporte tanto para os casos de sucesso co%o os de fa)ha re)acionados co% os e+entos de seguran*a Garantir >ue os )ogs ar%a-ena% e+entos i%portantes Garantir >ue as entradas de )og >ue inc)ua% dados nos >uais n.o se confia n.o se6a% e0ecutadas co%o cNdigo3fonte na interface de +isua)i-a*.o de )ogs Restringir o acesso aos )ogs apenas para pessoa) autori-ado Pti)i-ar u%a rotina centra)i-ada para rea)i-ar todas as opera*Ges de )og
4ers.o #,
Fevereiro 2012
8.o ar%a-enar infor%a*Ges sens(+eis nos registos de )ogs/ co%o deta)hes desnecessDrios do siste%a/ identificadores de sess.o e senhas Garantir o uso de a)gu% %ecanis%o >ue condu-a Aou faci)iteB o processo de anD)ise de )ogs Registar e% )og todas as fa)has de +a)ida*.o de entrada de dados Registar e% )og todas as tentati+as de autentica*.o/ especia)%ente as >ue fa)hara% por a)gu% %oti+o Registar e% )og todas as fa)has de contro)o de acesso Registar e% )og todos os e+entos suspeitos de adu)tera*.o/ inc)usi+e a)tera*Ges inesperadas no estado dos dados Registar e% )og as tentati+as de )iga*.o co% tokens de sess.o in+D)idos ou e0pirados Registar e% )og todas as e0ce*Ges )an*adas pe)o siste%a Registar e% )og todas as fun*Ges ad%inistrati+as/ inc)usi+e as %udan*as rea)i-adas nas configura*Ges de seguran*a Registar e% )og todas as fa)has de )iga*.o !:S co% o 'ackend Registar e% )og todas as fa)has >ue ocorrera% nos %Ndu)os de criptografia Pti)i-ar u%a fun*.o de hash criptogrDfica para +a)idar a integridade dos registros de )og
Proteo de (ados*
E%p)e%entar u%a po)(tica de pri+i)&gio %(ni%o/ restringindo os uti)i-adores apenas Cs funciona)idades/ dados e infor%a*Ges do siste%a >ue s.o necessDrias para e0ecutare% as suas tarefas Proteger contra acesso n.o autori-ado todas as cNpias te%porDrias ou registadas e% cache >ue contenha% dados sens(+eis e este6a% ar%a-enadas no ser+idor e e0c)uir esses ar>ui+os )ogo >ue n.o fore% %ais necessDrios Cifrar infor%a*Ges a)ta%ente sens(+eis >uando ar%a-enadas co%o dados de +erifica*.o de autentica*.o %es%o >ue este6a% no )ado ser+idor/ usando se%pre a)gorit%os conhecidos/ padroni-ados e 'e% testados# Consu)te a sec*.o >ue trata so're ?PrDticas de Criptografia@ para orienta*Ges adicionais Proteger o cNdigo3fonte presente no ser+idor para >ue n.o se6a descarregado por a)gu% uti)i-ador 8.o ar%a-enar senhas/ strings de )iga*.o ou outras infor%a*Ges confidenciais e% te0to c)aro2)eg(+e) ou e% >ua)>uer for%a criptografica%ente insegura no )ado c)iente# Esto & +D)ido ta%'&% >uando hD uti)i-a*.o de for%atos inseguros co%o1 MS +ie<state/ Ado'e ")ash ou cNdigo co%pi)ado >ue corre no )ado do c)iente Re%o+er co%entDrios do cNdigo de produ*.o >ue pode% ser acessados pe)os uti)i-adores e pode% re+e)ar deta)hes internos do siste%a ou outras infor%a*Ges sens(+eis Re%o+er ap)ica*Ges desnecessDrias e docu%enta*.o do siste%a >ue possa% re+e)ar infor%a*Ges i%portantes para os atacantes 8.o inc)uir infor%a*Ges sens(+eis nos parT%etros de pedidos W!!P G5! Jesati+ar a funciona)idade de auto co%p)etar nos for%u)Drios >ue contenha% infor%a*Ges sens(+eis/ inc)usi+e no for%u)Drio de autentica*.o Jesati+ar a cache rea)i-ada no )ado do c)iente das pDginas >ue contenha% infor%a*Ges sens(+eis# O parT%etro Cache,Control* no,store/ pode ser usado e% con6unto co% o contro)o definido no ca'e*a)hos W!!P -Pragma* no,cache./ >ue & %enos efeti+o/ por&% co%pat(+e) co% W!!P2 #0 A ap)ica*.o de+e dar suporte C re%o*.o de dados sens(+eis >uando estes n.o fore% %ais necessDrios# Por e0e%p)o1 infor%a*.o pessoa) ou dados financeiros E%p)e%entar %ecanis%os de contro)o de acesso apropriados para dados sens(+eis ar%a-enados no ser+idor# Esto inc)ui dados e% cache/ ar>ui+os te%porDrios e dados >ue de+e% ser acess(+eis so%ente
4ers.o #,
Fevereiro 2012
Pti)i-ar criptografia na trans%iss.o de todas as infor%a*Ges sens(+eis# Esto de+e inc)uir !:S para proteger a )iga*.o e de+e ser co%p)e%entado co% criptografia de ficheiros >ue cont&% dados sens(+eis ou )iga*Ges >ue n.o usa% o protoco)o W!!P Os certificados !:S de+e% ser +D)idos/ possu(re% o no%e de do%(nio correto/ n.o estare% e0pirados e sere% insta)ados co% certificados inter%&dios/ >uando necessDrio Quando ocorrer a)gu%a fa)ha nas )iga*Ges !:S/ o siste%a n.o de+e fornecer u%a )iga*.o insegura Pti)i-ar )iga*Ges !:S para todo o conte$do >ue re>uer acesso autenticado ou ou >ue contenha infor%a*.o sens(+e) Pti)i-ar !:S para )iga*Ges co% siste%as e0ternos >ue en+o)+a% fun*Ges ou infor%a*Ges sens(+eis Pti)i-ar u% padr.o $nico de i%p)e%enta*.o !:S configurado de %odo apropriado 5specificar a codifica*.o dos caracteres para todas as cone0Ges "i)trar os parT%etros >ue contenha% infor%a*Ges sens(+eis/ pro+enientes do ?W!!P referer@/ nos )inks para sites e0ternos
Configurao do Sistema*
Garantir >ue os ser+idores/ fra%e<orks e co%ponentes do siste%a est.o a e0ecutar a $)ti%a +ers.o apro+ada Garantir >ue os ser+idores/ fra%e<orks e co%ponentes do siste%a possue% as atua)i-a*Ges %ais recentes ap)icadas para a +ers.o e% uso Jesati+ar a )istage% de diretNrios Restringir/ para o %(ni%o poss(+e)/ os pri+i)&gios do ser+idor We'/ dos processos e das contas de ser+i*os Quando ocorrere% e0ce*Ges no siste%a/ garantir >ue as fa)has ocorre% de %odo seguro Re%o+er todas as funciona)idades e ar>ui+os desnecessDrios Re%o+er cNdigo de teste ou >ua)>uer funciona)idade desnecessDria para o a%'iente de produ*.o/ antes de disponi'i)i-ar o siste%a no ser+idor de produ*.o Pre+enir a di+u)ga*.o da estrutura de diretNrios i%pedindo >ue ro'`sI de 'usca fa*a% a inde0a*.o de ar>ui+os sens(+eis/ atra+&s da configura*.o do ar>ui+o ?ro'ots#t0t@K# Os diretNrios >ue n.o de+e% ser acessados por estes inde0adores de+e% ser co)ocados nu% diretNrio iso)ado# Assi%/ apenas & necessDrio negar o acesso ao diretNrio pai definido no ar>ui+o ?ro'ots#t0t@/ e+itando ter >ue negar o acesso a cada diretNrio indi+idua)%ente Jefinir >uais %&todos W!!P/ G5! ou POS!/ a ap)ica*.o irD suportar e se ser.o tratados de %odo diferenciado nas di+ersas pDginas da ap)ica*.o Jesati+ar as e0tensGes W!!P desnecessDrias co%o/ por e0e%p)o/ o We'JA4# Caso se6a necessDrio o uso de a)gu%a e0tens.o W!!P co% o propNsito de suportar a %anipu)a*.o de ar>ui+os/ uti)i-e u% %ecanis%o de autentica*.o conhecido/ padroni-ado e 'e% testado Se o ser+idor processa tanto pedidos W!!P #0 co%o W!!P # / certificar3se de >ue a%'os s.o
8!1 Ro'`s s.o progra%as de co%putador >ue percorre% auto%atica%ente as pDginas da Enternet e% 'usca de docu%entos/ co% o propNsito de inde0D3)os/ +a)idD3)os ou %onitorar a)tera*Ges de conte$do# http122pt#<ikipedia#org2<iki2Ro'ots#t0t 8!1 o )ink a'ai0o %ostra e0e%p)os de co%o configurar o ar>ui+o ro'ots#t0t# http122<<<#%undoseo#co%#'r2seo3tecnico2ro'otst0t3configuracao3seu3site2
4ers.o #,
Fevereiro 2012
configurados de %odo se%e)hante ou assegure >ue >ua)>uer diferen*a >ue possa e0istir se6a co%preendida/ co%o/ por e0e%p)o/ o %anusea%ento de %&todos W!!P estendidos
Re%o+er infor%a*Ges desnecessDrias presentes nos ca'e*a)hos de resposta W!!P e >ue pode% estar re)acionadas co% o siste%a operati+o/ +ers.o do ser+idor <e' e fra%e<orks de ap)ica*.o O ar%a-ena%ento da configura*.o de seguran*a para a ap)ica*.o de+e ser capa- de ser produ-ida de for%a )eg(+e) para dar suporte C auditoria E%p)e%entar u% siste%a de gest.o de ati+os para %anter o registo dos co%ponentes e progra%as Eso)ar o a%'iente de desen+o)+i%ento da rede de produ*.o e conceder acesso so%ente para grupos de desen+o)+i%ento e testes# V co%u% os a%'ientes de desen+o)+i%ento sere% configurados de %odo %enos seguro do >ue os a%'ientes de produ*.o# Jeste %odo/ os atacantes pode% usar essa diferen*a para desco'rir +u)nera'i)idades co%uns ou encontrar for%as de e0p)ora*.o das %es%as E%p)e%entar u% siste%a de contro)o de %udan*as para gerir e registar as a)tera*Ges no cNdigo/ tanto de desen+o)+i%ento/ co%o dos siste%as e% produ*.o
Psar consultas parametrizadas forte%ente tipificadas Pti)i-ar +a)ida*.o de entrada e codifica*.o de sa(da e assegurar a a'ordage% de %eta caracteres# Se hou+er fa)ha/ o co%ando n.o de+erD ser e0ecutado na 'ase de dados Certificar3se de >ue as +ariD+eis s.o forte%ente tipificadas Rea)i-ar a codifica*.o AescapingB de %eta caracteres e% instru*Ges SQ:O A ap)ica*.o de+e usar o %enor n(+e) poss(+e) de pri+i)&gios ao aceder a 'ase de dados Psar credenciais seguras para aceder a 'ase de dados 8.o inc)uir strings de )iga*.o na ap)ica*.o# As strings de )iga*.o de+e% ser ar%a-enadas nu% ar>ui+o de configura*.o separado/ ar%a-enado nu% siste%a de confian*a e as infor%a*Ges de+e% ser cifradas Psar procedi%entos ar%a-enados Astored proceduresB para a'strair o acesso aos dados e per%itir a re%o*.o de per%issGes das ta'e)as no 'anco de dados 5ncerrar a )iga*.o assi% >ue poss(+e) Re%o+er ou %odificar senhas padr.o de contas ad%inistrati+as# Pti)i-ar senhas ro'ustas Apouco co%uns ou dif(ceis de dedu-irB ou i%p)e%entar autentica*.o de %$)tip)os fatores# Jesati+ar >ua)>uer funciona)idade desnecessDria na 'ase de dados/ co%o ?stored procedures@ ou ser+i*os n.o uti)i-ados# Ensta)ar o con6unto %(ni%o de co%ponentes ou de op*Ges necessDrias Aredu*.o da superf(cie de ata>ueB 5)i%inar o conte$do desnecessDrio inc)u(do por padr.o pe)o fornecedor co%o es>ue%as e 'ases de dados de e0e%p)o Jesati+ar todas as contas criadas por padr.o e >ue n.o se6a% necessDrias para suportar os re>uisitos de negNcio A ap)ica*.o de+e )igar3se C 'ase de dados co% diferentes credenciais de seguran*a para cada tipo de necessidade co%o/ por e0e%p)o/ uti)i-ador/ so%ente )eitura/ con+idado ou ad%inistrador
Gesto de 0icheiros*
O
8.o passar dados fornecidos pe)os uti)i-adores direta%ente a u%a fun*.o de inc)us.o dinT%ica So)icitar autentica*.o antes de per%itir >ue se6a feito o carrega%ento de ficheiros
8!1 http122<<<#o<asp#org2inde0#php2SQ:_En6ection_Pre+ention_Cheat_Sheet
4ers.o #,
Fevereiro 2012
:i%itar os tipos de ficheiros >ue pode% ser en+iados para aceitar so%ente os necessDrios ao propNsito do negNcio 4a)idar se os ficheiros en+iados s.o do tipo esperado/ atra+&s da +a)ida*.o dos ca'e*a)hos/ pois/ rea)i-ar a +erifica*.o apenas pe)a e0tens.o n.o & suficiente 8.o gra+ar ficheiros no %es%o diretNrio de conte0to da ap)ica*.o We'# Os ficheiros de+e% ser ar%a-enados no ser+idor de conte$dos ou na 'ase de dados Pre+enir ou restringir o carrega%ento de >ua)>uer ficheiro >ue possa ser interpretado ou e0ecutado pe)o ser+idor We' Jesati+ar pri+i)&gios de e0ecu*.o nos diretNrios de ar%a-ena%ento de ficheiros E%p)antar o carrega%ento seguro nos a%'ientes P8E^ por %eio da %ontage% do diretNrio de destino co%o u%a unidade )Ngica/ usando o ca%inho associado ou o a%'iente de ?chroot@ Ao referenciar ficheiros/ usar u%a )ista 'ranca Aw itelistB de no%es e de tipos de ficheiros per%itidos# Rea)i-ar a +a)ida*.o do +a)or do parT%etro passado e caso e)e n.o corresponda ao >ue & esperado/ re6eitar a entrada ou uti)i-ar u% +a)or padr.o 8.o trans%itir/ se% nenhu% tipo de trata%ento/ os dados infor%ados pe)o uti)i-ador a redireciona%entos dinT%icos# Se isso for necessDrio/ o redireciona%ento de+erD aceitar apenas PR:s re)ati+as e +a)idadas 8.o passar ca%inhos de diretNrios ou de ficheiros e% pedidos# Psar a)gu% %ecanis%o de %apea%ento desses recursos para (ndices definidos nu%a )ista pr&3definida de ca%inhos 8unca en+iar o ca%inho a'so)uto do ficheiro para o c)iente Certificar3se de >ue os ficheiros da ap)ica*.o e os recursos est.o definidos so%ente co% o atri'uto de )eitura 4erificar os ficheiros >ue os uti)i-adores su'%etere% atra+&s do %ecanis%o de carrega%ento e% 'usca de +(rus e %a)<ares
Gesto de Mem1ria*
Pti)i-ar contro)o de entrada2sa(da de dados >ue n.o se6a% de confian*a 4erificar se o 'uffer & t.o grande >uanto o especificado Ao usar fun*Ges >ue aceite% deter%inado n$%ero de 'ytes para rea)i-ar cNpias/ co%o strncpyAB/ este6a ciente de >ue se o ta%anho do 'uffer de destino for igua) ao ta%anho do 'uffer de orige%/ e)e n.o pode encerrar a se>u7ncia de caracteres co% +a)or nu)o Anu))B 4erificar os )i%ites do 'uffer caso as cha%adas C fun*.o se6a% rea)i-adas e% cic)os e +erificar se n.o hD nenhu% risco de ocorrer gra+a*.o de dados a)&% do espa*o reser+ado !runcar todas as strings de entrada para u% ta%anho ra-oD+e) antes de passD3)as para as fun*Ges de cNpia e concatena*.o 8a )i'era*.o de recursos reser+ados para o'6etos de )iga*.o/ identificadores de ficheiro etc#/ n.o contar co% o ?garbage collector@ e rea)i-ar a tarefa e0p)icita%ente Psar pi)has n.o e0ecutD+eis/ >uando dispon(+eis 5+itar o uso de fun*Ges reconhecida%ente +u)nerD+eis co%o printfAB/ strcatAB/ strcpyAB etc# :i'erar a %e%Nria reser+ada de %odo apropriado apNs conc)uir a su'3rotina Afun*.o2%&todoB e e% todos pontos de sa(da
Para tarefas co%uns/ uti)i-ar se%pre cNdigo testado/ gerido e apro+ado ao in+&s de criar cNdigo no+o e n.o gerido
4ers.o #,
Fevereiro 2012
Pti)i-ar APEs >ue e0ecute% tarefas espec(ficas para rea)i-ar opera*Ges do siste%a operati+o# 8.o per%itir >ue a ap)ica*.o e0ecute co%andos direta%ente no siste%a operati+o/ especia)%ente atra+&s da uti)i-a*.o de ?she))s@ de co%ando iniciadas pe)a ap)ica*.o Pti)i-ar %ecanis%os de +erifica*.o de integridade por ?checksu%@ ou ?hash@ para +erificar a integridade do cNdigo interpretado/ 'i')iotecas/ ficheiros e0ecutD+eis e ficheiros de configura*.o Pti)i-ar %ecanis%os de ')o>ueio para e+itar pedidos si%u)tTneos para a ap)ica*.o ou uti)i-ar u% %ecanis%o de sincroni-a*.o para e+itar condi*Ges de concorr7ncia Arace conditionsB Proteger as +ariD+eis parti)hadas e os recursos contra acessos concorrentes inapropriados Enstanciar e0p)icita%ente todas as +ariD+eis e dados persistentes durante a dec)ara*.o/ ou antes da pri%eira uti)i-a*.o Quando a ap)ica*.o ti+er >ue ser e0ecutada co% pri+i)&gios e)e+ados/ au%entar os pri+i)&gios o %ais tarde poss(+e) e re+ogD3)os )ogo >ue se6a poss(+e) 5+itar erros de cD)cu)o decorrentes da fa)ta de entendi%ento da representa*.o interna da )inguage% de progra%a*.o usada e de co%o & rea)i-ada a intera*.o co% os aspetos de cD)cu)o nu%&rico# Prestar 'astante aten*.o nas discrepTncias de ta%anho de 'yte/ precis.o/ distin*Ges de sina) Asigned2unsignedB/ trunca%ento/ con+ers.o e ?casting@ entre os tipos/ cD)cu)os >ue de+o)+a% erros do tipo ?not3a3nu%'er@ e/ ta%'&%/ co%o a )inguage% de progra%a*.o trata a representa*.o interna de n$%eros %uito grandes ou %uito pe>uenos 8.o transferir/ direta%ente/ dados fornecidos pe)o uti)i-ador para >ua)>uer fun*.o de e0ecu*.o dinT%ica se% rea)i-ar o tratamento dos dados de %odo ade>uado Restringir a gera*.o e a a)tera*.o de cNdigo por parte dos uti)i-adores Re+er todas as ap)ica*Ges secundDrias/ cNdigos e 'i')iotecas de terceiros para deter%inar a necessidade do negNcio e +a)idar as funciona)idades de seguran*a/ u%a +e- >ue estas pode% introdu-ir no+as +u)nera'i)idades E%p)e%entar atua)i-a*Ges de %odo seguro# Se a ap)ica*.o precisar rea)i-ar atua)i-a*Ges auto%Dticas/ uti)i-ar %ecanis%os de assinatura digita) para garantir a integridade do cNdigo e garantir >ue os c)ientes fa*a% a +erifica*.o da assinatura apNs descarregare% as atua)i-a*Ges# Psar canais cifrados para transferir o cNdigo a partir do host do ser+idor
4ers.o #,
Fevereiro 2012
4ers.o #,
Fevereiro 2012
Apndice / 2Glossrio4
Agente de Ameaa* Qua)>uer entidade >ue pode causar u% i%pacto negati+o nu% siste%a# Pode ser tanto u% uti)i-ador %a)3intencionado >uerendo co%pro%eter os contro)os de seguran*a do siste%a/ >uanto u% des+io acidenta) do siste%a ou u%a a%ea*a f(sica co%o inc7ndios ou inunda*Ges# Autenticao* V u% con6unto de contro)os usados para +erificar a identidade de u% uti)i-ador/ ou outra entidade >ue interage co% o soft<are# Autenticao de M5ltiplos 0atores* V u% processo de autentica*.o >ue re>uer +Drios tipos de credenciais do uti)i-ador# 8or%a)%ente & 'aseado e% a)go >ue e)e possui Ae0#1 cart.o inte)igenteB/ a)go >ue e)e sa'e Au%a e0#1 senhaB/ ou e% a)go >ue e)e & Ae0#1 dados pro+enientes de u% )eitor 'io%&tricoB# Autenticao Se6uencial* Ocorre >uando os dados de autentica*.o s.o so)icitados e% sucessi+as pDginas/ ao in+&s de sere% so)icitados nu%a $nica pDgina# Canonicali7ao* V u%a opera*.o rea)i-ada para redu-ir +Drias codifica*Ges e representa*Ges de dados nu%a $nica for%a si%p)ificada# Caracteres Maliciosos* Quais>uer caracteres ou representa*Ges codificadas de caracteres >ue pode% produ-ir efeitos indese6D+eis so're a opera*.o nor%a) de ap)ica*Ges ou dos siste%as associados >uando s.o interpretados/ por tere% significado especia)# 5stes caracteres pode% ser usados para1 Modificar a estrutura de cNdigo ou de dec)ara*Ges Enserir cNdigo indese6ado Modificar ca%inhos Causar sa(das inesperadas das fun*Ges ou rotinas dos progra%as Causar condi*Ges de erro Causar >ua)>uer dos efeitos anteriores e% ap)ica*Ges su'6acentes
Casos de A8uso* Jescre+e% o %au uso/ intenciona) ou n.o/ do soft<are# Os casos de a'uso de+e% desafiar os pressupostos do pro6eto do siste%a# Codificao de )ntidade 9+M!* Processo de su'stitui*.o de deter%inados caracteres ASCEE pe)as entidades W!M: e>ui+a)entes# Por e0e%p)o/ a codifica*.o poderia su'stituir o caractere ?X@ pe)a entidade W!M: e>ui+a)ente U[)tcU# 5ssas entidades s.o ?inertes@ na %aioria dos interpretadores especia)%ente na+egadores e pode% atenuar os ata>ues do )ado do c)iente# Codificao de Sa%da /aseada em Conte3to* V a codifica*.o de dados da sa(da rea)i-ada usando co%o refer7ncia o %odo co%o os dados ser.o uti)i-ados pe)a ap)ica*.o# Se os dados da sa(da esti+ere% inc)u(dos na resposta ao c)iente/ de+e3se )e+ar e% considera*.o situa*Ges co%o1 o corpo de u% docu%ento W!M:/ u% atri'uto de W!M:/ codifica*.o 9a+aScript/ codifica*.o dentro de u% CSS ou de u%a PR:# Je+e% ta%'&% ser )e+ados e% considera*.o outros casos co%o consu)tas SQ:/ ^M: e :JAP# Codificao de Sa%da de (ados* V u% con6unto de contro)os >ue a'orda% o uso de codifica*.o para
4ers.o #,
Fevereiro 2012
garantir u%a sa(da de dados segura gerada pe)a ap)ica*.o# Confidencialidade* V o ato de garantir >ue as infor%a*Ges s.o di+u)gadas apenas para as partes autori-adas# Configurao do Sistema* Con6unto de contro)os >ue a6uda% a garantir >ue infraestrutura de apoio ao soft<are s.o disponi'i)i-ados de for%a segura# os co%ponentes de
Consultas Parametri7adas 2prepared statements4* Mant&% a consu)ta e os dados separados atra+&s do uso de espa*os reser+ados# A estrutura de consu)ta & definida por caracteres especiais >ue representa% os parT%etros a sere% su'stitu(dos# A consu)ta para%etri-ada & en+iada para a 'ase de dados e preparada para rece'er os parT%etros e/ e% seguida/ & co%'inada co% os +a)ores dos %es%os# Esto i%pede >ue a consu)ta se6a a)terada por>ue os +a)ores dos parT%etros s.o co%'inados co% a dec)ara*.o co%pi)ada e n.o concatenados direta%ente na se>u7ncia de caracteres >ue co%pGe% a consu)ta SQ:# Controle de Acesso1 V u% con6unto de contro)os >ue )i'erta ou nega o acesso a u% recurso do siste%a a u% uti)i-ador ou outra entidade >ua)>uer# 8or%a)%ente & 'aseado e% regras hierDr>uicas e pri+i)&gios indi+iduais associados a pap&is/ por&% ta%'&% inc)ui intera*Ges entre siste%as# Controles de Segurana* S.o a*Ges >ue %itiga% u%a +u)nera'i)idade potencia) e a6uda% a garantir >ue o soft<are se co%porta confor%e o esperado# Cross Site Re6uest 0orger 2CSR04* Ocorre >uando u%a ap)ica*.o ou site <e' e0ternos for*a% o na+egador do c)iente a rea)i-ar u% pedido in+o)untDrio para u%a ap)ica*.o e% >ue o c)iente possui u%a sess.o ati+a# As ap)ica*Ges s.o +u)nerD+eis ao CSR" >uando usa% PR:s e parT%etros conhecidos ou pre+is(+eis ou >uando o na+egador trans%ite todas as infor%a*Ges da sess.o para a ap)ica*.o +u)nerD+e) de for%a auto%Dtica e% cada so)icita*.o# 5ste & apenas u% dos ata>ues discutidos neste docu%ento e sN estD inc)u(do por>ue a +u)nera'i)idade associada & %uito co%u%/ por&% %a) co%preendida# (isponi8ilidade* V a propriedade de estar acess(+e) e uti)i-D+e) >uando so)icitado por u%a entidade autori-ada# )stado dos (ados* S.o dados ou parT%etros usados pe)a ap)ica*.o ou pe)o ser+idor para e%u)ar u%a )iga*.o persistente ou contro)ar o estado AstatusB de u% c)iente atra+&s de u% processo de %$)tip)as pedidos ou transa*Ges# )3ploit* V a a*.o de apro+eitar3se da e0ist7ncia de u%a +u)nera'i)idade# 8or%a)%ente & u%a a*.o intenciona) e te% co%o o'6eti+o co%pro%eter os contro)es de seguran*a do soft<are# Gesto de 0icheiros* V u% con6unto de contro)os >ue resguarda% a intera*.o entre o cNdigo da ap)ica*.o e os ficheiros do siste%a# Gesto de Mem1ria* V u% con6unto de contro)os >ue di-e% respeito ao uso de %e%Nria e do 'uffer# Gesto de Sesso* V u% con6unto de contro)os >ue trata% da %anipu)a*.o de sessGes W!!P de for%a segura por ap)ica*Ges We'#
4ers.o #,
Fevereiro 2012
$mpacto* V o efeito negati+o percet(+e) para o negNcio/ resu)tante da ocorr7ncia de u% e+ento indese6D+e)/ >ue por sua +e- & o resu)tado da e0p)ora*.o de +u)nera'i)idades# $ntegridade* V a garantia de >ue as infor%a*Ges s.o precisas/ co%p)etas e +D)idas/ e >ue n.o fora% a)teradas por u%a a*.o n.o autori-ada# !imites de Confiana* 8or%a)%ente/ u% )i%ite de confian*a & constitu(do pe)os co%ponentes do siste%a so're os >uais se te% contro)o direto# !odas as )iga*Ges e dados do siste%a fora deste contro)o direto inc)uindo todos os c)ientes e siste%as geridos por terceiros de+e% ser considerados co%o n.o sendo de confian*a e necessita% de +a)ida*.o na fronteira/ antes de rece'ere% per%issGes para rea)i-are% intera*Ges co% o siste%a# Mitigar* S.o %edidas to%adas para redu-ir o grau de se+eridade de u%a +u)nera'i)idade# 5ssas %edidas inc)ue% a re%o*.o de u%a +u)nera'i)idade/ se6a ao tornD3)a %ais dif(ci) de ser e0p)orada/ ou ao redu-ir o i%pacto negati+o de u%a e0p)ora*.o 'e% sucedida# Prticas de Criptografia1 Con6unto de contro)os para garantir >ue as opera*Ges de criptografia dentro da ap)ica*.o s.o e0ecutadas de %odo seguro# Prticas Gerais de Programao* Con6unto de contro)os a'rangendo prDticas de codifica*.o >ue n.o se encai0a% faci)%ente noutras categorias# Proteo dos (ados1 Con6unto de contro)os para a6udar a garantir >ue o soft<are trata o ar%a-ena%ento das infor%a*Ges de %odo seguro# Reali7ar !og dos )#entos* 5sta opera*.o de+e inc)uir os seguintes re>uisitos1 # Pti)i-ar u% ti%esta%pL pro+eniente de u% siste%a de confian*a 2# C)assificar a gra+idade para cada e+ento ,# Jestacar e+entos de seguran*a re)e+antes/ caso e)es se6a% %isturados co% outros registros de )og F# Registar o identificador da conta ou uti)i-ador >ue causou o e+ento H# Registar o endere*o EP de orige% >ue rea)i-ou o pedido I# Registar o resu)tado dos e+entos Asucesso ou fa)haB K# Registar a descri*.o do e+ento Re6uisitos de Segurana* Con6unto de re>uisitos funcionais e de pro6eto para a6udar a garantir >ue o soft<are & constru(do e disponi'i)i-ado de for%a segura# Segurana das Comunica&es* Con6unto de contro)os para a6udar a garantir o en+io e o rece'i%ento das infor%a*Ges de %odo seguro# Segurana da /ase de (ados* Con6unto de contro)os para garantir >ue o soft<are interage co% as 'ases de dados de for%a segura e >ue as 'ases de dados est.o configuradas de for%a segura#
L
8!1 Con6unto de caracteres >ue representa/ de for%a n.o a%'(gua/ o %o%ento do registro da ocorr7ncia de u% e+ento nu% siste%a# Para %ais infor%a*Ges/ +er a R"C ,,,L e a nor%a ESO OI0 / Jata e)e%ents and interchange for%ats Enfor%ation interchange Representation of dates and ti%es#
4ers.o #,
20
Fevereiro 2012
Sistema* V u% ter%o gen&rico >ue a'range siste%as operati+os/ ser+idores <e'/ fra%e<orks de ap)ica*Ges e infraestrutura re)acionada# +ratamento de )rros e !og* Con6unto de prDticas para garantir >ue a ap)ica*.o rea)i-a o trata%ento dos erros de %odo seguro e/ ta%'&% rea)i-a o registo de )og dos e+entos de %odo apropriado# +ratamento dos (ados* V o processo de tornar seguros os dados potencia)%ente pre6udiciais atra+&s do processo de re%o*.o/ su'stitui*.o/ codifica*.o ou escaping%& dos caracteres# 'alidao de )ntrada de (ados* Con6unto de contro)os para +erificar se as propriedades de todas as entradas de dados corresponde% ao >ue & esperado pe)a ap)ica*.o/ co%o/ por e0e%p)o/ tipo dos dados/ ta%anho/ inter+a)os e con6unto de caracteres aceitD+eis >ue n.o contenha% caracteres %a)iciosos# 'ulnera8ilidade* V u%a fragi)idade >ue torna u% siste%a suscet(+e) a u% ata>ue ou a u% dano#
8!1 8esse conte0to & a representa*.o de caracteres especiais por con6untos espec(ficos de caracteres# Co%o e0e%p)o/ te%3se a su'stitui*.o do caractere ?[@ pe)a entidade W!M: e>ui+a)ente ?[a%pc@#
4ers.o #,