Este site usa cookies para garantir que você obtenha a melhor experiência, Ao utilizá-los, você aceita o uso que fazemos dos cookies.

Sistemas PHP seguros: estou fazendo o caminho evidente? — Vinícius Campitelli - Criptografar PHP

Sistemas PHP seguros: estou fazendo o caminho evidente? — Vinícius Campitelli

A maioria dos ataques a aplicações web ocorre devido à falta de conhecimento de segurança da equipe de desenvolvimento…


00:56:37
A maioria dos ataques a aplicações web ocorre devido à falta de conhecimento de segurança da equipe de desenvolvimento…

Foi a gente testa antes mas chega na hora não funciona na minha máquina funciona em produção não funciona mas vamos lá pessoal é quem é que acha que faz sistemas seguros que bom se tivesse muita gente levantando a mão estava preocupada porque vou falar um pouquinho sobre a sobre o que eu faço o trabalho e quanto mais o estudo segurança mas eu sei que eu não sei segurança é difícil é bem difícil tá então eu vou trazer algumas técnicas pra vocês que a gente aprendeu nos últimos anos é algumas coisas algumas pessoas devem ter visto outras acham meio óbvias mas outras a gente nunca parou pra pensar bom estou começando só para falar um pouquinho sobre mim tínhamos aqui que eu tenho toc os slides da onu que te ame tá ficando teleponto que replantou é eu trabalho numa empresa de tecnologia chamada 34 tem um pessoal que na frente que veio prestigiar a gente tem 20 anos na área de tecnologia de produção de sistemas ea maioria dos nossos programas são feitos em php a gente usa php para várias coisas inclusive processamentos a 5 nos demons é background jogo bastante nisso então eu amo php ou sempre tentando trazer um pouco do que o do que eu faço eu tenho uma startup também na área de e learning chamado conhecer duca e eu tenho que trazer para vocês nos últimos anos tem trabalhado muito com segurança então quero trazer para vocês aqui alguns aprendizados que eu tive nessa nessa área tá bom a agenda rapidinho eu sempre lembro da agenda do site do pouco mas eu vou falar sobre esses temas de um modo geral aqui tá primeiro vou começar pelo asp tem eu espero que pelo menos 90% da sala saiba que eu acho o top ten se não por favor entre o asp é uma organização mundial é open web application security project então o projeto que envolve várias pessoas que eles compilam melhores práticas de desenvolvimento seguro tá então eles emitem muitos boas práticas decodificação emitem muito é programas muitos sofrem muitos certificados e eles têm esse ranking que é lançado não têm uma periodicidade muito muito mas o último foi em 2017 que ele elenca as principais falhas de segurança tá vou passar bem rapidinho porque eu quero passar as coisas estão mais avançadas o último saiu o gol deles foi 2017 o penúltimo foi 2013 então é legal a gente acompanhar a evolução ou não de alguns problemas quando passa muito tempo a gente vê que o mesmo problema tá lá no top 3 é meio triste que significa a gente não tá aprendendo é como deveria ser esse desenvolvimento está passando rapidinho o primeiro problema ainda continua sendo injection o que é legal do hospital de 2013 e 2017 eles juntaram todos os problemas de get on html sql comandante já tinha um só chamado de jackson está tudo bem tá então é você deixar alguma linha de comando sem dar um escape necessário então html sem fazer um homem de meio ambiente diz locatelli schaars tá é algo bem simples mas ainda está no top 1 de problemas de aplicações web isso é um absurdo depois vai falar um pouco sobre isso o segundo é problema de autenticação então a gente sempre tenta fazer a autenticação do jeito mais rápido possível porque não ocorre um negócio né eu vou fazer um projeto é preciso entregar a funcionar de negócio e não o sistema de login a gente acaba não dando a devida atenção ao sistema de login ea gente simplesmente esquece de guardar principal porta de entrada no nosso sistema então por isso que a autenticação quebrada é o segundo tópico da usp até hoje a exposição de dados sensíveis isso é muito muito comum a gente ver é pintar tech3 de sexo na tela algo bem bobo colocar a versão do php ou do servidor web no cabeçalho e se alguns indica vezes a gente esquece de fazer e acaba dando uma uma informação que não deveria ou estou usando sêmen um cms um framework eu vejo lá tudo depressa a versão x não entra no site e veja quais são as vulnerabilidades da versão xc consigo atacar então expor esse tipo de informação é algo muito crítico e ainda está no top 3 é algo que é muito comum ainda bem para o nosso primeiro dia a dia espero q pra vocês também já tenha passado mas a utilização de xml xml tem algumas coisas bizarras que você pode fazer é execução de comandos do xml e se você não desabilitar os raptores correta você pode deixar uma falha incrível no seu xml uma passagem rápida aqui quero falar sobre as outras coisas também é problemas na cl então o controle de acesso talvez você faz aquele sistema tem um relacionamento mas você esquece de validar alguma coisa às vezes só válida no front stage vai dar no backhand o usuário uma tela e consegue acessar o recurso na outra não então essas falhas de de autorização são muito comuns até hoje ainda tá bom passando para a segunda parte do programa de configuração então envolve um pouco dessa exposição de dados sensíveis então eu esqueço de configurar minha seção php corretamente que eu vou passar um pouquinho pra vocês como eu posso fazer esqueça de tornar as variáveis que vem por padrão o pega um framework uma biblioteca que já vem uma chave de criptografia chumbada e esqueça de trocar e isso vai produção como tava sempre assim isso é comum xss quem nunca teve problema o pss né então cross site scripting seja o flash seja stored tem vários tipos de sushis ss está passando bem rapidinho depois dá uma olhada com mais calma a descer organização e segura o php 7 resolveu isso o jeito muito legal mas se você pegar um objeto e tentar descentralizar ele ele vai chamar os métodos margens do php por exemplo o icap e você pode fazer com que ele chame alguma instrução que não deveria é esse você possa objeto de ser realizado ele vai trazer isso vai abrir a classe vai à estância objetos em você nem ter o controle do php 7 não lembro exatamente qual é a minha conversão mas você pode falar que tipo de classe você quer descentralizar então cheguei um pouco de segurança tá você pegar componentes com vulnerabilidades que já já estão sabendo do mercado tem uma biblioteca se alguém souber o nome sempre interesse do crânio e eu sempre falo dela que é uma biblioteca que simplesmente ele lista as versões de bibliotecas com erros tá então ele é um compositor ponto de som que tem lá todas as vulnerabilidades podem falar o cdb na versão 1.5 gostando está tem um problema então ele coloca lá que essa biblioteca ela não é compatível com o sangue do bebê na versão 1.5 então se você dá um recorde na sua biblioteca do crimes não tentaria um slide com ela e você tem que estar ausente de 9.5 próprio compositor reclamar olha tá tentando estava ausente do bebê mas a a biblioteca não deixa algo bem simples você configurar tá que a gente vai baixando é um composê recorde aqui o compositor lá eu nem sei o que está acontecendo por trás então começa a baixar com um monte de coisa na pasta vendo sem nem saber se por trás realmente tem alguma coisa aqui tá que tá com vulnerabilidade ea última porém não menos importante tá que adianta ter um sistema muito robusto muito completo só que não tem ninguém monitorando ele eu não logo tentativas de acesso erradas e não logo alguma tentativa de invasão então tem um sistema lá eu nunca mais mexer nele mas tem vários agentes várias pessoas pelo mundo afora tentando atacar sistema na internet e não fica nem sabendo então você tem que ter um sistema de login sem ter um monitoramento bom que te de idéias que fale quando alguma coisa está acontecendo errada você tem que ter uma uma idéia de usar berreiro para entender se tem alguma coisa que não está sendo o padrão do sistema tá ok eu passei o hospital tem oito minutos porque isso aqui deveria ter a nossa cabeça não tá eu falo também não está na minha mas é algo muito trivial está aberto aqui pra gente isso só mostra como a gente acaba sendo um pouco de displicência sistema pouco de displicência onde vai desenvolver tá agora vou passar porque realmente eu queria mostrar pra vocês tá bom vamos começar realmente mostrar pra vocês como vocês podem fazer para deixar o time de vocês mais seguros a primeira coisa gerenciamento sessão foi muito simples gerenciar são pedro 17 o start lá não se acham destrói no final e tudo bem só isso né alguém aqui usa o sérgio regenerativa é de você tem idéia do que é o sérgio alves no jardim sem essa linha de comando vocês não há suspensos há vários tipos de ataque por exemplo obsessão ea maioria simples sérgio generated você passa o parâmetro que esse cara faz toda vez que eu inicie uma sessão eu ganho um set onde que o identificador de sessão quando o general richard ele vai trocar essa sessão um ataque de fixação de exceção por exemplo quando eu faço outra pessoa se logar com a minha seção imagina que tem um tem usuário lá seu login no sistema o ganho é de a ele no gol no sistema dele ele vai ter um bebê se eu de algum jeito conseguir fazer pra ele lugar utilizando águeda tudo que ele faz e fizer as coisas na minha conta então ele pode cadastrar o cartão de crédito vai estar na minha sessão ele pode fazer uma transação vai ter preço da cessão é algo bem simples de resolver é uma linha de código 71 regineide quando você usa uma livre por exemplo 27 da vida ou symphony fashion você não tem esse problema porque a própria biblioteca vai resolver pra você mas se você faz um pegava na mão é importante você lembrar disso é bom também vou passar bem rapidinho saque outra coisa alguém já configurou phpn para mudar as variáveis padrões de exceção é muito raro às vezes nem têm acesso a php independente do seu sistema mas é muito importante isso é algo que o php 7 tem feito muito bem o pt tem entre a abrir um parêntese aqui mas é reflexivo o php sempre foi mal visto por alguns problemas de que é muito fácil a gente programa em php ea gente acaba esquecendo algumas configurações que não é culpa da linguagem com o desenvolvedor desde o php 7 muita coisa foi resolvida de segurança parâmetros inseguros foram replicadas valores de parâmetros que utilizavam criptografia souls algoritmos de haxixe com esforço removidos que o pp vem evoluindo muito mas faz parte de nós como removedores poder fazer isso de um jeito correto então vou passar as principais configurações que a gente tem que fazer por nosso sistema mas a primeira coisa é https não dá pra em 2019 a gente ter um sistema sem https a má certificado é caro tem a renovação eu vou lá no google deve ser algo que estou comprando certificado é caro não existe cá a gente tem um leque 15 25 21 sea que permite você emite certificados gratuitamente então não tem mais pra pagar duzentos reais para emitir um certificado vou lá utilizo a cme por exemplo é uma biblioteca que eu gosto muito recomenda para você utilizar em emitir um certificado gratuito então a primeira coisa é https não adianta nada você tornar todo o seu sistema com criptografia com segurança sendo que está tudo sendo transitado em texto plano o áudio da sessão tanto plano tudo que está sendo postado tem texto plano não adianta a primeira coisa é https tá tem dois tem três links aqui os amarelinhos o link está quentinho vendo um slide o link oficial do light sweet uma lista de vários clientes que são autorizados a utilizar o script e o aqmi que essa biblioteca que eu falei que eu recomendo que eu gosto muito tá bom é aquele ponto essa garra o site mas quem estiver com slide é só clicar certo e essas configurações do php são muito simples de fazer mas a gente acaba esquecendo então é preciso colocar a confiança de cuca e da minha seleção não posso esquecer disso é a maioria dessas configurações também podem ser feitas em grande time então eu posso contar um iniciativa e configurar se eu tiver de novo utilizando uma biblioteca como 2715 nicevision eu consigo passar uma rede configurações para ela tá então se configurar o domínio eu preciso falar que não é possível acessar a seção através de javascript colocando colocando http um litro tá bem simples aqui é muito desse slide é copie e cole em sua troca o nome do site de vocês eu quero o que é uma política de que não vai compartilhar cookies entre outros domínios eu não quero ser semi site scripting eu quero que se que 1 ou seja não vou eu não vou transportar cookies e conexões não seja https o meu nome da sessão por padrão php cech de né seria interessante trocar esse cara por alguma outra coisa que não seja o de vôo é sempre bom trocar os produtos de fora é airton já os dois próximos que são cid que é a força da entropia do algoritmo que vai gerar o senhor d então vou gerar um show de maior com uma entropia mais forte para poder gerar um racha de som um pouco mais mais alto e ser mais difícil alguém fazer um ataque de força bruta tipo de coisa tá só quer usar sua cookies é o modo estrito eu não quero passar um sr pela url lançou várias operações simples isso aqui tá numa nota o pp tem no manual do php uma página que tem aqui o link uma nota falando sobre como você deixar sua seção mais segura mas eu duvido que 20% aqui jamais entrando nessa nessa página tá então tá aí o link e as configurações que vocês precisam fazer e tem uma outra empresa vocês vão ver que ela vai ser recorrentemente aqui eu vou falar dela bastante que é pego eu sou muito fã dessa empresa é eles fazem muita coisa pra php eles mantenham bibliotecas que eu gosto muito e eles fazem muito artigo ensinando como você fazer modificar seguramente tá nesse artigo deixando aí ele fala sobre como temos dito nas variáveis do php para ficar do jeito mais seguro possível certo beleza de seção simples né só eu é o manual do php é só lembrar que tem que dar gênero é de mais ou menos a gente está num projeto pra onde a gente acaba não fazendo tipo de coisa o validação de entrada nessa área 2019 eu sei vai da entrada não é possível eu tenho lá um front end cara eu tenho uma equipe de resgate de viu que traduz tudo que ela faz tudo pra mim eu não preciso validar o beque isso a gente acaba de vez em quando passando e é ruim mesmo às vezes eu acabo fazendo o volante de um jeito bem quente de outra é comum são duas equipes diferentes algumas vezes né no front end e vale alguma coisa daqui e valida quase igual ele mas uma coisa passa então você tem que ter uma mesma regra de validação e quem fala que vai deixar a validação o grosso da validação no front e no beque só vai ser o resquício tá muito suspeito aí pra praça invadida estava então tenham ensino e se essa ideia na cabeça que é preciso ter uma avaliação igual no front no beque não adianta nada certo quem nunca foi inspecionar elemento de algum site editou uma coisa que a gente passou simples coisa simples está de novo biblioteca muito comuns em pra gente usar o php html faixa com link também eu gosto muito dessa biblioteca diante se ela limpa uma entrada para prevenir que isso a entrada de usuário tenha um cross site scripting é só instalar a biblioteca e passar por ela é muito tranquila muito trivial fazer esse tipo de coisa o difícil a gente lembrar que tem que fazer tá essa idéia que eu tô aqui pra vocês outra coisa importante se não tiver utilizando um template então ou a gente falou sobre tudo é sobre esse sim foi aquilar viu né não estiver utilizando alguma enchem de template pronta que vai fazer o escape para mim eu preciso capaz a ida e se joga o html peças-chaves vou precisar de um gato ambiente está bom é bem trivial isso é um negócio muito interessante que quem está acostumado com outras linguagens um pouco mais fortemente equipados é por exemplo um java da vida acaba sentindo um pouco de um pouco de falta disso o php então às vezes eu tenho 11 um campo de entrada e meio e eu tenho que ficar no meu sistema inteiro validando e mail quem aqui já ouviu falar de objetos da listenx sabe que uma das regras objetos que eles têm entre mãos a comitivas temos uma classe então vai ficar passando uma string e meio que eu tenho uma classe e mail que ele já válida o que eu quero dizer com isso é crime e validações as entradas de vocês faça um sistema robusto de data times por exemplo se eu tenho uma entrada que é um nome eu sei que o nome do carro pode ter uma barra não existe nome com barra de nome com the score com firula com sustenido não existe tempo que vou deixar passar então você tem que fazer com os seus dados realmente tenham 111 domínio é que você realmente entendo domingo aquele dado isso tem que vir da especificação a ato que caracterize são permitidos aqui qual é o tamanho desse campo e se você tiver no seu framework uma camada que vai vai barrar isso você está mais tranquilo então esse é um case real que no primeiro que a gente tem feito aqui no trabalho todo campo tem que ter um da tap se chegar uma requisição e o desenvolvedor não tiver passado um da tap específico o próprio filme 8h e nunca vai chegar provedor então especificam da tap decente se não você não vai ter isso fez pra gente do começo acaba tendo uma resistência face porto planejava agora que está acontecendo mas no final acaba tendo um ganho de de segurança incrível é bom e se pode fazer duas coisas tá então se meu nome não pode ter vírgula e alguém mandou uma vírgula eu posso ter duas saídas ou arrancar vírgula e continua processando ou simplesmente falo carro esse não é um campo que é aceito por favor preencha novamente o campo de vocês o sistema é crítico de segurança crítica mas deixa passar simplificar só falou direito o que eu queria vou passar agora se for um sistema que não é tão críticos como a funcionalidade que você não tem tudo emma sanitizar remova o que você não quer que continue processamento show de bola bom mas você tem que ter isso em mente certo de novo mas duas referências é falando sobre xss e uma sheet é sempre difícil mas tite do asp falando sobre como você se prevenir contra xss não é tão trivial quem já viu aqui vale das bibliotecas de validações iss são muito complexas mas rejects malucas tem que fazer isso em loop enquanto não há estrelas num sofrer alterações e vai passando para as passadas não é tão trivial então não é simplesmente um strip tags a principalmente se você tiver um campo por exemplo de html é fácil demonstre tags se você não tem nenhuma entrada html mas se o sistema se tiver uma parte lá que o cara tem que subir um template de e mail por exemplo que você vai mandar e mail o que tem que criar uma mensagem lá quando o usuário cadastrado em uma mensagem bem vindo na tela você tem que aceitar html e aí você tem que lembrar de todos os as que é possível fazer no html javascript então 11 bibliotecas prontas não reinventa a roda certo agora uma coisa mais legal aí então passar um pouco da parte mais mas antes vamos pra algo que a gente acaba também deixando de qualquer jeito mas a gente esquece que é muito importante como armazenar a senha e quais políticas de estréia que eu quero ter a primeira coisa que a gente vai poder criar um paciente fala qual é o mínimo que é o máximo de caracteres que eu vou querer salvar o máximo de máxima deixa o cara eu já vou falar o porquê que não precisa que em questões técnicas eu não me importo com quantidade de caracteres está deixa o cara eu conheço pessoas que as senhas deles são partes de música eu conheço o decoro letras de música muito fácil decorar a letra de música eu vou colocar aqui as duas primeiras para linhas de uma música com isso eu vou limitar sendo cara deixa é de ser o usuário não pode ter muita dificuldade para ele tá bom então também no limite de caracteres a aquisição pode ter senha com letra número de escolas que acabou de diminuir o seu conjunto de caracteres permitidos e acabou de facilitar um ataque de força bruta por exemplo está dando dicas pro cara a coisa que eu mais odeio quando centro e tem lá 15 regras e fazer uma cena não pode ter caráter repetido letra seqüencial número seqüencial não pode ter número múltiplo de 3 os donos têm que ser todos primos cara está dificultando o usuário é horrível você gasta mais tempo gerando uma cena que estava fazendo você escreve se coloca gente escreve com um post no no monitor nunca vou conseguir essa sim tem até alguns artigos sobre 18 parentes falando sobre como a gente tá caminhando para um mundo sem senhas por causa disso a dificuldade de gerar senhas tanto que eu tenho certeza que pelo menos uma pessoa que já fez uma compra na internet sem criar um cadastro no site então não é como você vai lá coloca coloca seu cartão e depois ele falou se você quiser acompanhar o status do seu pedido se você quiser ter um histórico aí se cria os olhos em questão seria vencer é bem interessante tá bom é duas coisas aqui eu estou seguindo que o nist isto é pequenininho lá o nist é o instituto nacional de padrões e tecnologia dos estados unidos ele sempre me têm é algumas alguns frameworks alguns protocolos de boas práticas e eles falam um pouco aqui sobre de senhas também tem o link pra vocês de novo depende muito da conti do seu público-alvo cartão de crédito têm cartão de crédito e assim a quatro dígitos esse é um exemplo que eu sempre dou a mais um nicho fala que tem dez dígitos para vacinar minha vó decorar as letras lá dez números para sendo o cartão de crédito ela não dá eu tenho que olhar do público alvo eu tenho que fazer uma análise de quem está usando o sistema integrado e entregar pra ele e não para mim então não vai usar um cartão de das letras a dez números no negócio a outra tem quatro pré melhor então eu abro um pouco da segurança esse é um debate muito complexo na segurança versus habilidade pra ir pra que o cliente realmente usam o sistema não adianta nada o tema tão seguro que nenhum lado tá o padrão do nist são 10 caracteres mas este novo você que vai definir mas é interessante tem uma complexidade tá bom não precisa ser uma complexidade muito complexo e eu falei números primos múltiplos de 7 na escala mas tem uma complexidade mesmo maiúscula no mesmo minuto pelo menos o número do mesmo critério especial você acabou de abrir um leque tão grande pro ataque de força bruta que já está muito mais tranqüilo do que se você tivesse de qualquer jeito certo agora vem a parte mais interessante armazenamento como que eu vou guardar essa senha eu vou colocar on the world to grafia procurar um protagonismo de haxixe o ideal é que seja os dois tá pra quem não sabe um algoritmo de hash ele é reversível tem uma função ano e então a gente vai pensar em md5 por favor não usem de 5 a gente sempre a pensar vender 55 não volta eu posso ter dicionários é ter um ataque de dicionário que eu sei que essa trinca gera esse recheio de 5 mas ele não tem uma função de volta um chá agora também os dois em decepção não use na chave 5 6 512 são algoritmos de haxixe bons então usa um algoritmo de resto para salvar sua senha e usa uma criptografia em cima do coritiba de hash negócio muito maluco eu vou explicar para vocês daqui a pouquinho porque isso funciona mas nunca coloque soma 11 uma senha criptografada porque criptografia tem volta por que que eu preciso saber eu como o sistema precisa saber qual é o texto plano da senha do usuário desta vez que eu preciso é quando ele me passar a senha eo criptógrafo ela e comparo se é a mesma que está criptografado no banco mas não precisa saber qual querem texto plano então se você está usando um sistema e colocou esqueceu a senha e ele te manda um e-mail com essa em texto plano hoje está guardando o texto do plano que é um absurdo o ataque só que o fotógrafo essa senha isso é perigosíssimo então não apenas criptografe primeiro passo em um ritmo de haxixe e depois criptografia já vou explicar isso outra coisa importante é salt que a saúde é quando você coloca uma string você com que apenas treinar na senha para que o mesmo uma mesma senha gere restos diferentes então imagina que a minha senha é peça onde eu vou passar algoritmo de haxixe ele vai receber um hash se outro usuário tiver assim a peça onde vai passar o mesmo algoritmo de haxixe e vai até a suíte igualzinho eu sempre também do mesmo exemplo do filme do que eu sempre esqueçam do filme que a do alan turing qual é o nome do filme de orientação tem uma parte do filme que eles conseguem identificar que a mesma carta criptografada tem o mesmo texto que aparece várias vezes então ele sabia que aquele momento lá era o nome de uma ilha era um negócio assim porque estou usando a mesma fotografia então toda vez que eu gravar esse texto vai ser o mesmo rech então o que acontece se eu descobri uma senha de algum usuário e eu tiver um outro rech igual eu sei que a senha dele é a mesma coisa se eu colocar um salt então por exemplo a minha senha vai ser um país forte não coloquei o salt um vovô não coloquem um tabu mas eu vou dar uma dica e outro cara quando colocassem a peça onde o site dele tem que ser diferente é só dele vai ser 8 pés forte e quando ele fazia um racha e vai dar um rosto diferente então o site tem que ser específico para o usuário que pode ser é dele no banco pode ser um gel e de você vai comparecer na data de cadastro dele no banco o e mail dele o username qualquer coisa então salt tem que ser diferente para cada usuário assim nunca dois usuários mesmo com a mesma senha vão ter regras iguais bom bem tranquilo e para garantir ainda mais aí você criptografia esse resto você passa um algoritmo de criptografia por exemplo um s a você pode passar um s de 56 para fazer o quê imagine alguém rouba seu banco de dados pizarro conseguiu um golpe seu do do banco de dados eu tenho a todas as suas senhas cara deixou lá um algoritmo tentando quebrar pra sempre e eu vou conseguir algum momento vou conseguir pode demorar dois mil anos a algoritmo todos os valores são quebradas pode demorar cinco mil anos em 11 mas vou quebrar isso se eu fizer força bruta alguém já ouviu falar de um ataque chamado rainbow table não falar de um cara que tem uma cinco pessoas aí que um ataque de morteiro eu queria muito explicar ele inteiro porque eu adoro mas não vou conseguir mas é quando você pré computa é x então você tem uma tabela já de hash pré computados no artigo muito bom na equipe sobre isso e você ganha em velocidade e faz um trade-off de memória feroz e você ganha muita velocidade para fazer um ataque de força bruta muito mais inteligente como dizer assim então quando eu consegui fazer a opção de banco de dados já vou ter pré computados milhares de rochas que eu já sei mais ou menos que eles são então eu tenho uma tabela gigantesca de hash e quando consegui pegar o seu doping e já vou conseguir muito mais rápido chegar lá sem fazer força bruta ficou meio abstrato sei disse algo muito complexo depois de um lado a equipe já queria muito falar melhor sobre isso mas porque o criptografando o hash eu vou conseguir melhorar isso porque em botelhos é feita pra rech seu criptógrafo um hash eu ganhei duas coisas primeiro eu consigo que criptografa todas as senhas de banco de dados então imagina que eu tenho uma criptografia lá e estou usando uma chave simétrica uma chave mestra é uma fotografia simétrica é com deus a mesma chave para criptografar do comitê da fifa mas é um produto vazou na chave alguém esqueceu do cômite nuno ritla isso acontece infelizmente ou alguém invadiu e roubou na chave eu tenho essa chave eu posso reclamar do grafanil banco de dados inteiro e gerar uma nova coleção de senhas sem eu saber a senha do usuário porque eu tenho orgulho de geografia eu sei qual é a chave eu disse que o fotógrafo e criptografia uma nova chave estou seguro então cara quando ele roubou meu banco de dados lá ele primeiro vai ter que ter um baita trabalho para descriptografar meu o motor da fia aí ele vai ter que aplicar a atrás de um bom tempo para pegar um racha até ele fazer isso eu já repeti reprografia todo o meu banco e já estou seguro é algo meio abstrato é meio difícil de colocar em na cabeça mas tem algum tem um artigo que bem interessante e vou passar no final que vai ajudar vocês a fazerem isso e novamente eu vou falar da pergunta aqui eu parece até que sou fanboy deles mas aqui são muito muito bons e eu gosto muito do episódio ali só de uma biblioteca de criptografia moderna desde o php 72 ela já sabe o team na linguagem php foi a primeira linguagem de programação do mundo a ter uma biblioteca de tributo grafia moderna embutida no corpo então se alguém dá risada pra você você falando que você usa php se fala em sua linguagem tem uma biblioteca de criptografia moderna embutida a hp tem 17 2 eu adoro adoro ela só tem um problema olha o tamanho da função é a outra mão disso então quem usa e 180 caracteres no editors o nome da função aí já viu né é o nome da função abre parênteses o argumento na linha de baixo é o único problema dela é bem vergonhoso não é só de um crypton sign que perde um ciclo de que em torno de quem tá é já está documentado é bom isso nem de comentar a função o nome dela já o documento que está fazendo são gênios a documentar com uma difusão de faz-tudo função que busca os usuários da base e salva no grupo maravilhoso documentar então utiliza o episódio ela tem muitos jogadores muito bons que já fazem esse processo de criptografia mais rápido mas rech eles têm os melhores algoritmos eles usam o chá 20 eles usam salsa usem esse cara ele é muito muito bom e eu tenho uma palestra o episódio quem quiser uma olhada no aterro também tá adoro ela e aqui são as referências então tem de novo várias coisas da usp e tatá tem algumas coisas que falam sobre esse negócio que eu disse de criptografá o hash essa biblioteca perde lote é do pessoal da perna e ele usa isso ele faz o resto e fazer a fotografia em cima de uma olhada no código vão entender um pouco mais e tem de novo álbum xx é muito difícil xix para ajudar vocês a realmente utilizar isso o melhor jeito possível certo e tem um artigo que eu adoro derrubou tabus tem que ter uma problemas 15 vezes para entender que eu botei gostar mas depois que você entender realmente vai ser incrível tudo bem falei falei falei falei mostrei o código está muito bem abstrato então eu tenho um mini desafio aí eu só não sei que eu vou dar em troca e um celular um café ela pra vocês eu pago uma cerveja pronto gostei fechou eu vou mostrar um código para vocês aqui o código é funcional tá ele não tem blog ele funciona ele faz o que tem que fazer mas ele tem um problema de segurança nossa não vale o pessoal aqui da da empresa porque eu já mostrei para eles aqui estamos aqui a gente não se vê né é claro que não – eles aqui tá então eu quero que dê uma olhada o código funciona eu quero que alguém me aponte o que eu posso dar de informação para um atacante se estiver rodando esse código a função de login essa função recebe o usuário e uma senha eu tenho um método foi de barzani esse método deve no banco e procurar lá o select uma tabela pelo cmn eu não achei o usuário do retorno falso né e aí eu falo lá uma dica é nunca falha o usuário é o usuário existente ou inexistente na sem colocar os dois usuários inexistente a isso o usuário existe eu verifico a senha então chama função e verifica se assim que ele passou e mesmo tendo o banco siga e rodou fauci se dá certo em outro tem um cara que eu não estava desesperada já tempo de resposta perfeita não esquece de cobrar a cerveja pra mim fechou seu nome j é isso aí tempo de resposta o que acontece se eu passar um usuário que não existe a primeira coisa que vai fazer minha função é essa aí certo permitem fauci se assim usuário existe que eu vou fazer eu vou ter que ir lá no banco pegar uma senha descriptografia mensagem lembra a cantora a fada e ver se o hash bate um com o outro criptografia é custoso o tempo de resposta pra eu fazer essa parte do código é muito grande então se eu retornar falsa assim que o usuário não existe o tempo de resposta vai ser muito mais rápido vai bater de primeira com força se o usuário existe eu vou ter que ir lá e fazer a fotografia verificar o resto e bateu isso vai consumir cpu vai consumir mora isso vai gastar mais tempo mas isso é uma numeração de usuário está maluco num jogo eu vou voltar e depois eu mostro uma louca está sendo exagerado é possível que esse negócio seja assim eu não sei se eu não conseguir ver espero que sim que colocar em tela cheia aqui eu gravei um vídeo de um script que executa aquele código e eu fiz ele cem vezes pra vocês terem uma idéia uma vez só consegui ver dá pra enxergar plate eo v então ela executa um script que ele passa um usuário inválido e uma senha inválida executa 100 vezes para cada uma das vezes ele dá 101 seu sucesso não tá nem aí que eu sou rápido – renan então executar 100 vezes lá com um usuário válido mas é inválida ele demorou um ponto 9 segundos para fazer cem vezes está agora eu vou executar com o usuário válido e uma senha inválida tá vamos ver com o tempo ele vai fazer estou 100 vezes 2.4 segundos opa agora vou executar o usuário válido e uma senha válida todo mundo é porque logo 2.5 segundos também está muito próximo é 2.48 para dois pontos 50 a gente pode assumir que deu o mesmo tempo então se o usuário não existe ele retorne 1.9 seu usuário existe assim esta no vale do jordão e demora 2.5 ou seja cabe saber que esses órgãos na base aí eu posso fazer um ataque de engenharia social tentasse amigo desse cara pagar uma cerveja premium no bar para saber algumas coisas da vida dele eu posso fazer uma coisa eu já sei que só existe se eu não tiver um blog o monitoramento vou começar a ver que tem alguém tentando bater umas aqui com o usuário que não deveria então não é paranóia tá realmente eu mostrei pra vocês acham que eu posso fazer para resolver isso eu vou votar o código dependente roda um script tá bom não é e episódio pá e tá agora vou mostrar pra vocês como resolver o que eu faço então usuários irrisório existisse usuário existe eu vou buscar a senha dele então eu já fiz um selecto já tem a senha dele mas olha que antes no começo nossa eu não consigo deixar retoque que loucura olha meu deus é fina eu vou gerar uma senha falsa sei lá vou gerar uma senha falsa vou fazer uma fotografia isso sempre gera uma senha falso aqui qualquer coisa dom randon batizado php 7 faz qualquer coisa gera uma senha falsa mas se o usuário existe eu substitui essa variável da senha pela que ele realmente existe e é aqui que está o pulo do gato eu sempre vou chamar o meu velho pai perde então eu sempre votei aquela passagem de códigos tosa se o usuário existe eu vou comparar a senha dele como a senha real dele senão eu vou comparar como assim é falsa então eu sempre vou passar pelo que é custoso e depois eu verifico se o usuário existe não entendo então sempre fácil ver vai perceber isso como o código vai ser tempo constante assim existindo ou assim não existindo tá o importante é você gerar senha sempre porque se você só gerar senha quando o usuário não existe também tarde balanceado neto também está gastando tempo em coisas que não devia então com isso aqui eu garanto que todos os meus passos do meu guri timo são executados seja usuário real ou não bom e aqui eu vou mostrar o script ele mesmo script os dois grupos também acreditar mas agora passando um script fixed qual é o problema você acaba tendo uma execução um pouco mais lenta sempre porque está sempre fazendo ele foi peça mais cara é melhor se é um pouco mais lento do que se fala que o usuário existe na sua base no roteiro escrito chamador fixed então tudo 02 ponto a 9 segundos já a 100 execuções usuário válido tudo 02 ponto a 9 segundos o usuário válido e será válida tudo 12.9 segundos ou seja não tem nenhuma informação se o usuário existe uma base pronto acabei de me prevenir de numeração de usuários certo bem boba né quem faz isso é é é não mas eu já falo lá o usuário ou senha incorreta né hoje estou protegido né não tá é lógico e assim no mundo real na prática esses números que eu mostrei só fazem sentido porque o tecido local rost se estiver pensando pela internet pode ter variação de tempo de internet o link pode ser lá então tem que ter uma carga muito grande de testes eu fiz em vez de fazer sei lá quantas tirável desvio-padrão pegar uma média mas você teria ainda uma linha porque você poderia saber qual é a média de resposta bom então não é paranóia certo beleza que já entrando na parte final eu deixei um tempo bastante que eu queria bater um papo depois a gente pode fazer umas perguntas cara aqui que eu fiz sobre todos os sites que conheço todos alguns sites eu conheço ferramentas eu conheço para ajudar vocês a serem melhor desenvolvedores tá então por exemplo algumas ferramentas muito boas de pentest de teste de penetração de segurança de aplicação tão metasploit talvez seja o mais famoso que tenha por aí está o w3 a efe gosto muito dos dois muito bons então são escritos que eles vão ele já tem uma alguma várias rotinas de ataques você vai rodar na sua aplicação vai fazer o scan de vulnerabilidades vai falar por exemplo que está demorando login mas não tá demorando quando só existe vai verificar se tem alguma falha de dados sensíveis e luiz poço vai verificar se tem algum reconhece que não está passando então essas ferramentas você roda lá alguma demora muito tá depende do nível de criticidade está colocando no perfil de de de ataque mas você consegue ter algo um pouco mais é mais palpável ou você contrata uma empresa especialista em testes que tem várias por aí o blog street ele é bem legal também ele é uma ferramenta em java mas era muito boa porém eu gosto muito da brincadeira é é muito boa e você consegue fazer como se fosse um proxy que se faz a interceptação de quests imagina que eu tenho no meu site lá eu vou fazer um login com usuários em ávine sem ávine se configura no brasil um proxy para ele passar pelo bar suíte quando chegou quando faço uma requisição o buffet para requisição e eu consigo em tempo real mudar os parâmetros de entrada eu posso trocar a senha pode trocar o usuário pode passar um outro parâmetro posso colocar qualquer coisa em tempo de execução e aí eu vou lá troca tem que fazer e don’t play aí que só continua então você consegue fazer em tempo de execução fica brincando com o sistema ela é incrível ela tem a versão paga mas a versão free delas se consegue fazer tudo isso é muito bom recomenda é bem fácil usar outras ferramentas muito boas nessas open vaz o próprio kahn linux que não conhece o caminho de uma distro linux e tem uma porrada de ferramentas de ética ou rakineh são ferramentas de hacking dito em teste prático ajudar vocês realmente tem um sistema mais robusto é bom todos aqui são link está só depois se explicam tudo em leituras falei bastante da pedra bom falou bastante do ato tem uma linda nesses dois caras têm muito material o astro tem muito xixi nossa idéia de tite tem muito tite então dicas de embora sem aguardar o usuário fazer e nem dormi muito legal deu uma de suas caras o asp tem um site deles e ashti agora tudo que tiver o deve ser a cops é todo mundo fala que deve se a cops poucas deve optar deve ouvir falar na moda né eco bennett saque e doc fla e bota o meu ciclo no container tá tudo bem só que nesse mundo tão ágil de de desenvolvimento de the boy como eu garanto que no ciclo de desenvolvimento é seguro então eu começa a ter prática de deve sec pops tem o cic o ssd lc que ela sequer software development lá e sair com que são um framework são boas práticas de você fazer um ciclo desenvolvimento de software seguro e isso começa lá do lado do meu lado análise de uma conversa de bar por exemplo não basta não pode ficar falando sobre a sua empresa não sabe que está do lado do dólar do do mesmo lado vou ficar falando de clientes no bairro nosso cliente tá se o quê sabe quem tá ouvindo está no útero falando e não sabe às vezes lugar é primo de irmãos e quem não é cultural então o simples movimento seguro começa culturalmente e vai até o depoente bom tem do e tem o b5 que é um modelo de maturidade de segurança então é um framework mas não lembra de código afirmou que de um projeto para um padrão que ele te dá o grau de maturidade que a sua empresa tem de segurança então eu como se fosse um artigo da vida voltado para segurança e você consegue saber qual é o nível de maturidade que a empresa tem de segurança recomenda bastante esse cara certo em 3 é e brandoa só tem que um dos problemas era usar componentes com vulnerabilidades conhecidas e como eu sei quais componentes têm vulnerabilidades conhecidas daqui três opções são site cbs que são vulnerabilidades e esportes que estão um é questão de que o domínio público e você simplesmente pode acessar esses três sites qualquer um deles eu gosto dos três você pode por filtrar php e ver todas as vulnerabilidades que já foram expostas pela bhp na função tal na função tal na versão tal foi corrigido então isso é muito comum ter pesquisador de segurança que achou uma brecha notifica a empresa notificou comunidade oito meses corrigem depois que está tudo ok lançou uma severa então os caras são bases de conhecimento de vulnerabilidades que você consegue saber e é por isso que é importante você não falar qualquer versão do word press que está usando na questão eu vou nesse site aqui colocou depressa versão está usando tem uma lista que você vê essa da versão bom gosto muito desses três caras certo agora eventos de segurança focados em segurança a gente sempre tem na comunidade php muitos eventos e sempre tem uma outra palestra segurança estou sempre tentando falar de segurança aqui mas tem um evento focado em segurança tem mais mais sexy ou sec e h2hc bem molhados evento participem segurança não é só o código é comportamental é cultura é muito difícil não é tão trivial tá é tão aqui tem alguns eventos que a gente também pode dar uma olhada e participar afinal a gente é feito de comunidade ea gente tem que estar participando da comunidade certo o garoto quer clube é muito legal um compilado de várias é é um work um hackerspace né são paulo o gosto bastante dele também site pra finalizar a gente a gente entrar às perguntas e e perguntar a mente porque pagar pelo seguro então a pergunta assim cara não é fácil proteger a aplicação web de novo quanto mais eu aprendi segurança mas eu sei que é difícil você começa a entrar num dependendo do seu grau de complexidade devem começar a entrar em problema físico que o cara precisa me mandar tirar uma foto por exemplo aplicativos devem tirar self para falar que você é você ou eu vou lá como biometria que tenho tudo tem tempo tem uma brecha então quando você está num nível de maturidade muito alto muito críticos e começa a ir para o físico tem uma complexidade muito grande é muito complexo não é trivial eu mostrei só umas e 23 ataques têm muitos não fazem monteiro fala de numeração de usuários da linha tex tem muito tipo de ataque por aí estarão na fria está a grafia ataque muito legal que uma vez que o algoritmo rs até um dos melhores que existem de de fotografia que você passa uma chave para ele e você conseguiria saber o tamanho da chave só o tamanho de acordo com o clock de cpu porque o algoritmo tem várias passadas de acordo com o tempo que você via que a cpi estava no máximo você sabia que ele tava naquela parte do ritmo de acordo com o tempo você consegue saber por exemplo imagine que eu tenho o coritiba que ele vai pegar a chave vai fazer uma operação da chave o hoje está no relatório está se eu passei dois segundos com cpu no talo eu sei que a chave 16 bits se você três segundos e que achava de 24 bits e 4 segundos e chega a 38 é muito complexo é lógico que a gente está num ambiente muito maluco eu consegui saber o coque da cpu e gpu eu já tô dentro de uma caixa eu estou dentro de um ambiente de cloud mas é possível também do barulho é o barulho do fã do computador negócio bizarro tá uma coisa que a gente começa no começo eu ficava numa paranóia quando comecei agente de segurança foi meu deus não vai ter feito nenhuma mas o sistema eu vou ficar que seis anos brindando o sistema ninguém conseguiu jogar a vale faça uma análise de ameaças de novo né e não vai trocar o carro blindado se lá dentro tem uma bolacha não faz sentido você tem que avaliar é sério foi o cara que foi melhor eu vou guardar essa parte aqui que não é tão importante que eu posso assumir um risco de se vazar quando alguma coisa eu vou proteger o realmente é importante os dados meu cliente dados de cartão de crédito vai pelo que realmente é importante faça uma análise ameaça às vezes não compensa às vezes o trabalho que você vai ter que fazer pergunte blindar é mais fácil infelizmente disse fiuza é real isso empresas fazem tá isso a análise de ameaças em outra coisa que é muito importante é fácil defesa em camadas você não vai ter uma técnica de defesa só ter várias ea cada tecla defesa que você vai você vai me xingando imagina assim que tem que ser atacantes não faça primeiro ataque é até que eu já matei 50 segundo e matou mais dez a outra mais cinco a outra mais quatro então várias camadas de defesa prata no final só sobreviveu um cara tipo 1 ela de chopp ijuhy da concentra canto eu fiz várias estratégias de defesa que vai lidar com cena no final do ano com uma é mais fácil proteger de uma do que sentar aqui tem um link ps explicando tamente como que essa técnica de defesa em camadas tá bom certo só pra fechar um gancho que tem um link eu pretendo fazer um treinamento e desenvolvimento seguro presencial em breve quem acessar aqui o link pelo evento vai ter um bem bolado aí pra gente poder falar tá só entrar lá deixar seu e-mail e vou avisar vocês quando você estiver em quando a gente tiver de fechar uma turma tão certinho certo de novo site sãomiguelweb qualquer dúvida que você estiver em torno do time meu twitter é ver capitel mesmo que tiverem só mandar uma mensagem só perguntar tá bom é isso pessoal obrigado ou agora pega preta seguro mesmo em troca de uma pergunta em pergunta daqui já a questão do salt onde muito bem é uma onça que tinha uma data e se concatena com a senha é isso imagina assim o vovô tac salt que vamos usar qualquer tipo de racha e enxadas 56 cm a senha foi perde eu vou fazer um chá das cinco e meia e só eo esse estado assim como é sempre o mesmo site usarem ou seja está certo e só resta se as peças qualquer usuário que tivessem a peça é de que a mesma é che então se eu por algum motivo conseguiu extrair seu banco de dados e descobrir aqui e vejo que tem outros usuário o resto é igual eu sei que a ascensão iguais ainda não sei a senha mas centenas são iguais eu sei que eu descobri o meu eu consigo lugar nos dois o que acontece tem que colocar algo que seja variável então se alguém colocar sem a peça se eu colocar qualquer coisa aqui a sua senha peça que vai ser diferente da minha mas não pode ser qualquer coisa quando você for lugar eu não vou saber qualquer coisa impossível de bater a mão no teclado então eu tenho que ter alguma informação que eu consiga saber de você seu nome é desculpa então imagina quando você joga online você tem usuário 5 e sempre que alguém eu vou dar um exemplo bem boba que está eu sempre vou colocar cinco andares seu herói de andarem a senha ea minha senha password mas messi é sete meu deus não funciona acredita uma elite só o país fez então a minha senha perde a sua senha pessoal mas como eu coloquei uns out e check out os cinco andares cortam salt e é específico pra mim e pra você então quando eu vou roubar o seu banco de dados não vai bater entendeu então sempre quando você logar você vai colocar perde eu no meu sistema vou concatenar um salt que eu sei que o senhor de underline só senha e quando ele lugar eu vou contar é dele andrés e desde então nunca vai bater eu sempre vou ter algo diferente tem que ser algo específico do usuário para a mocidade eu mesmo o mesmo site é só colocar todo mundo colocar pipoca no começo a gente tem que saber específico para cada usuário é preciso saber qualquer um possa bater a mão no teclado responde primeiro eu queria saber o que bolacha que falou na minha terra biscoito 8 segundo é você na recomendação foi para usar o episódio na hora de criptografá fazem e no exemplo sei que eu sou um exemplo mais um exemplo você usou o pessoal e verifiquei que é que o resto é feito com pensões de hash perceber se o ps for the edge é seguro o suficiente se a diferença na segurança é muito grande a ponto de não valer a pena seu nome é nisso também cara é o psd rech eo psd verify são duas funções ótimas do php se você não tiver com um episódio instalado ou se você não quiser passar a escrever aquele monte nome de de função lá o psg é muito bom a partir do php 7272 é o psg você pode falar qualquer função de resto está usando a partir de 72 o php tem um ar com 2 que é a função uma das melhores funções ganhou o prêmio de 2011 não me engano então ela é recomendada inclusive o psol de usar 12 então você pode usar peças de resto o pps o júri vai contar com dores sem problema nenhum tá são recomendados assim maior apelo pessoal vai perguntar qual é a marca de cerveja que voltará a haver a minha pergunta é sobre esse terceiro item sobre a pergunta que acabou de fazer isso é por exemplo um dos métodos de criptografia que é comumente utilizado é o backflip 100 pela como esse terceiro item aí que tá no slide com uma equipe dá pra fazer dá para juntar os dois ou não nos fez você consegue saber para aí sim não não tem problema eu tiver uma solução ainda ok não é top das tops mas também não é algo muito não é recomendado você poderia usar o eclipse mas o pode ser preto não tem problema pode sob crítica mas eu sempre recomendo usar alguma outra coisa um pouco mais parruda um esta e 56 inclusive algoritmos de criptografia que tem autenticidade com o gcm por exemplo tá então você pode usar não tem problema pode usar o epi sim mas se conseguir utilizar um pouco mais robusto alguma coisa no episódio com as próprias soluções de criptografia do o psl equipe que já vem do php é muito boa o maior problema dela saber que parâmetros passar por isso é recomendado de sódio que era propaganda já tenho os parâmetros bons vou pensar em que você consegue fazer algo bom tá bom né 56 motiva mas a última pergunta não é isso aí para entrar até amanhã então roupa a tá beleza da hora o pessoal da saúde de palmas o ministério o valor real estando com chave de ouro o primeiro dia aqui do php como exame de 2009 pessoal teve quem estava no estande da nokia ganhou aqui então vamos aqui os rápidos presentes é passar brina sabina ataque já foi embora sabrina ganhou a mochila o que tem mais coisa mas não é só para você somente lançamento de uma panela e água rocha é uma caneca e água rocha rocha a e ganha pra neca e amanhã tem mais só de ítaca entre itamar está ganhando prêmio aqui casa ganhou aqui a nossa caneca show aí nota 1000 eo leonardo leandro de souza ganhou o a camisa que show deve e amanhã tem mais sorteio galera então agradecer todo mundo que veio hoje os palestrantes keynote é o início ea marcela aos palestrantes todo adiel susan todo mundo nessa sujeira a gente vai pra vivos agora quem quiser vamos lá fazer canal que leva a tesoura vai ter muita coisa ea mãe de volta da manhã pela palestra o marcel é o keynote de abertura amanhã 10 da manhã então tomara que eu não cheguei a tomar que também chega amanhã cedam poder da palestra aí valeu galera até amanhã só de volta do mundo aí é em gestão dirigir o filme

About the author

Comentários

Os comentários estão fechados.