Desenvolvimento Seguro no PHDays 8: Resultados da Reunião da Comunidade PDUG



Nos dias 15 e 16 de maio, no local do fórum de segurança cibernética do PHDays, foi realizada a próxima reunião do Grupo de Usuários de Desenvolvimento Seguro , uma comunidade de desenvolvimento seguro. O programa de dois dias incluiu 11 relatórios de diferentes graus de hardcore e uma mesa redonda dedicada à análise estática.

No corte, compartilhamos materiais de reunião: apresentações e gravações em vídeo de relatórios.

Todas as apresentações separadamente do vídeo estão disponíveis no canal da comunidade Speakerdeck .

Primeiro dia


Discurso de abertura de Vladimir Kochetkov, Positive Technologies


É possível generalizar o analisador de código-fonte?


Ivan Kochurkin, Tecnologias positivas

O relatório discute vários tipos de analisadores de código que aceitam expressões regulares, tokens, árvores de análise, gráficos de fluxo de dados e instruções simbólicas de execução. O palestrante descreve os problemas que surgem ao resumir cada tipo de analisador em diferentes linguagens de programação e oferece soluções. Também demonstra as vulnerabilidades e fraquezas que podem ser encontradas em cada abordagem (por exemplo, goto fail), descreve os recursos do analisador de código-fonte PT.PM de código aberto, seu uso e perspectivas de desenvolvimento.


Mitos e lendas do desenvolvimento seguro


Yuri Shabalin, Segurança do Espadarte

O autor do relatório fala sobre os principais mitos e estereótipos que perseguem a direção do desenvolvimento seguro, sobre os principais erros no planejamento e no início.

Com base nesses mitos, lendas e erros, o palestrante explica como abordar a construção de processos, o que precisa ser levado em consideração, como avaliar corretamente seus pontos fortes e iniciar corretamente o processo de desenvolvimento seguro. Medidas organizacionais, meios técnicos (sem especificar fornecedores), a interação entre desenvolvimento e segurança da informação, programas de conscientização, gerenciamento de todo o processo e métricas de eficiência são apresentados como principais exemplos de erros e maneiras de superá-los.


Segurança de tipo inteiro em C ++


Igor Sobinov, especialista em segurança

O relatório é dedicado aos problemas de proteção de aplicativos em C ++ contra ataques a estouros de tipos inteiros. Casos típicos de vulnerabilidades associadas a essa classe de ataques, as possíveis consequências de sua exploração e métodos de proteção são examinados.


Detecção de vulnerabilidade na teoria e prática ou Por que não existe um analisador estático perfeito


Yaroslav Alexandrov, Alexander Chernov e Ekaterina Troshina, Segurança Solar

O relatório discute os princípios básicos de um analisador de código estático, fornece uma visão geral comparativa dos métodos e algoritmos que sustentam os analisadores estáticos modernos. Usando exemplos concretos, é mostrado como um analisador estático procura vulnerabilidades, e uma resposta é dada à pergunta de por que não existe um analisador estático ideal que funcione rapidamente, não dê falsos positivos e não perca vulnerabilidades. Os autores explicam como integrar um analisador estático ao processo de desenvolvimento para que seja eficiente em termos de recursos e produza resultados de alta qualidade.


Análise estática perfeita


Vladimir Kochetkov, Tecnologias positivas

A análise estatística ideal como ferramenta não existe. Mas existe uma análise estatística ideal como processo? Qual deve ser a distribuição de papéis entre uma pessoa e as ferramentas SAST? Quais devem ser as ferramentas para facilitar ao máximo a tarefa de uma pessoa resolver a tarefa de análise estatística?


Mesa redonda "SAST e seu lugar no SDLC"


Moderador: Vladimir Kochetkov, Positive Technologies
Participantes: Tecnologias positivas, SolidLab, Mail.ru, Segurança solar, PVS-Studio, ISAS RAS




Segundo dia


LibProtection: 6 meses depois


Vladimir Kochetkov, Tecnologias positivas

O palestrante fala sobre os resultados dos testes públicos da biblioteca, considera detalhadamente os desvios encontrados e como eliminá-los, além de apresentar planos para o desenvolvimento da biblioteca para o ano em curso.


Noções básicas de segurança de algoritmos de consenso em blockchain


Evangelos Deirmentzoglou, Positive Technologies

Os algoritmos de consenso são parte integrante de qualquer plataforma blockchain. O relatório destaca os princípios de trabalho de algoritmos de consenso, como Prova de trabalho (prova de conclusão), Prova de participação (prova de propriedade), Prova delegada de participação (prova delegada de propriedade) e Prova de autoridade (prova de autoridade). Ao analisar as diferenças entre esses algoritmos, os ataques mais comuns são considerados para sistemas baseados nessas tecnologias, como Gastos duplos, ataque de 51%, ataque de suborno, ataque de Sibyl, ataque de nada em jogo e outros.

Relatório em inglês:


Relatório em russo:


Prever números aleatórios em contratos inteligentes da Ethereum


Arseny Reutov, Tecnologias positivas

Contratos inteligentes não são usados ​​apenas para o posicionamento inicial de tokens de criptomoeda. A linguagem Solidity implementa várias loterias, cassinos e jogos de cartas disponíveis para quem usa o blockchain Ethereum. A autonomia da blockchain limita as fontes de entropia para os geradores de números aleatórios (RNGs). Não existe uma biblioteca comum com a qual os desenvolvedores criem RNGs seguros.

É por esse motivo que a implementação de seu próprio RNG pode criar muitos problemas - nem sempre é possível implementar um RNG seguro, que oferece aos invasores a oportunidade de prever o resultado e roubar dinheiro. O relatório apresenta uma análise de contratos inteligentes baseados em blockchain para a indústria de jogos de azar. O autor do relatório demonstra exemplos reais de implementação incorreta do RNG e fala sobre como identificar problemas no RNG e criar seu próprio gerador seguro, levando em consideração as limitações do blockchain.


Armadilhas da parametrização e a abordagem de objetos


Vladimir Kochetkov, Tecnologias positivas

É sempre o uso de ferramentas de parametrização e a transição para o modelo de objeto que podem efetivamente resolver as tarefas de garantir a segurança do aplicativo? Quais riscos essas abordagens envolvem? As vulnerabilidades no código do projeto são possíveis ao usá-las? O autor do relatório responde a essas perguntas usando exemplos específicos e casos reais.


Método Hooking no Android


Alexander Guzenko, Tinkoff

O autor do relatório informa o que são Method Hooking e Injector e explica como, conhecendo esses dois conceitos, os aplica ao Android e força a aplicação de outra pessoa a fazer o que você precisa.


Como criar um WAF rápido. Construindo um sistema de análise de tráfego de rede de alto desempenho


Michael Badin, Wallarm

O relatório discute as etapas do processamento de um pacote no WAF, os problemas de obter as informações necessárias de uma solicitação, otimizar os processos de tokenização, filtrar com base em expressões regulares e implementar a análise comportamental como parte do tráfego de pós-processamento.


Agradecemos aos nossos palestrantes e participantes por uma reunião produtiva!

Se você tiver alguma dúvida para os organizadores / palestrantes ou desejar fazer sua apresentação na próxima reunião do PDUG, escreva para pdug@ptsecurity.com .

Source: https://habr.com/ru/post/pt414627/


All Articles