
Du 15 au 16 mai, sur le site du forum de cybersécurité PHDays, s'est tenue la prochaine réunion du Safe
Development User Group, une communauté de développement en toute sécurité. Le programme de deux jours comprenait 11 rapports de divers degrés de hardcore et une table ronde consacrée à l'analyse statique.
Sous la coupe, nous partageons du matériel de réunion: présentations et enregistrements vidéo de rapports.
Toutes les présentations séparément de la vidéo sont disponibles sur le canal communautaire de Speakerdeck .Premier jour
Discours d'ouverture par Vladimir Kochetkov, Positive Technologies
Est-il possible de généraliser l'analyseur de code source?
Ivan Kochurkin, Technologies positivesLe rapport présente différents types d'analyseurs de code qui acceptent les expressions régulières, les jetons, les arbres d'analyse, les graphiques de flux de données et les instructions d'exécution symboliques. L'orateur décrit les problèmes qui se posent lors de la synthèse de chaque type d'analyseur dans différents langages de programmation et propose des solutions. Il montre également les vulnérabilités et les faiblesses que l'on peut trouver avec chaque approche (par exemple, goto fail), décrit les capacités de l'analyseur de source open source PT.PM, son utilisation et ses perspectives de développement.
Mythes et légendes du développement sûr
Yuri Shabalin, Sécurité de l'espadonL'auteur du rapport parle des principaux mythes et stéréotypes qui poursuivent la direction d'un développement sûr, des principales erreurs de planification et de démarrage.
Sur la base de ces mythes, légendes et erreurs, le conférencier explique comment aborder la construction de processus, ce qui doit être pris en compte, comment évaluer correctement vos forces et démarrer correctement le processus de développement sûr. Les mesures organisationnelles, les moyens techniques (sans spécifier de fournisseurs), l'interaction entre le développement et la sécurité de l'information, les programmes de sensibilisation, la gestion de l'ensemble du processus et les mesures d'efficacité sont présentés comme les principaux exemples d'erreurs et les moyens de les surmonter.
Sécurité de type entier en C ++
Igor Sobinov, expert en sécuritéLe rapport est consacré aux problèmes de sécurisation des applications en C ++ contre les attaques de débordements de types entiers. Les cas typiques de vulnérabilités associées à cette classe d'attaques, les conséquences possibles de leur exploitation et les méthodes de protection sont examinés.
Détection de vulnérabilité en théorie et en pratique, ou pourquoi il n'y a pas d'analyseur statique parfait
Yaroslav Alexandrov, Alexander Chernov et Ekaterina Troshina, Sécurité solaireLe rapport traite des principes de base d'un analyseur de code statique, donne un aperçu comparatif des méthodes et algorithmes qui sous-tendent les analyseurs statiques modernes. À l'aide d'exemples concrets, il montre comment un analyseur statique recherche les vulnérabilités, et une réponse est donnée à la question de savoir pourquoi il n'y a pas d'analyseur statique idéal qui fonctionne rapidement, ne donne pas de faux positifs et ne manque pas de vulnérabilités. Les auteurs expliquent comment intégrer un analyseur statique dans le processus de développement afin qu'il soit efficace en termes de ressources et donne des résultats de haute qualité.
Analyse statique parfaite
Vladimir Kochetkov, Technologies positivesL'analyse statistique idéale en tant qu'outil n'existe pas. Mais existe-t-il une analyse statistique idéale en tant que processus? Quelle devrait être la répartition des rôles entre une personne et les outils SAST? Quels devraient être les outils pour permettre à une personne de résoudre aussi facilement que possible l'analyse statistique?
Table ronde "SAST et sa place dans le SDLC"
Modérateur: Vladimir Kochetkov, Positive Technologies
Participants: Positive Technologies, SolidLab, Mail.ru, Solar Security, PVS-Studio, ISP RAS
Deuxième jour
LibProtection: 6 mois plus tard
Vladimir Kochetkov, Technologies positivesL'orateur parle des résultats des tests publics de la bibliothèque, examine en détail les contournements trouvés et comment les éliminer, et présente également des plans pour le développement de la bibliothèque pour l'année en cours.
Bases de sécurité des algorithmes de consensus de la chaîne de blocs
Evangelos Deirmentzoglou, Technologies positivesLes algorithmes de consensus font partie intégrante de toute plateforme de blockchain. Le rapport met en évidence les principes de fonctionnement des algorithmes de consensus tels que la preuve de travail (preuve d'achèvement), la preuve de participation (preuve de propriété), la preuve de participation déléguée (preuve de propriété déléguée) et la preuve de l'autorité (preuve de pouvoir). Lors de l'analyse des différences entre ces algorithmes, les attaques les plus courantes sont prises en compte pour les systèmes basés sur ces technologies, tels que la double dépense, l'attaque à 51%, l'attaque de corruption, l'attaque de Sibylle, l'attaque de Nothing-At-Stake et autres.
Rapport en anglais:
Rapport en russe:
Prédire des nombres aléatoires dans les contrats intelligents Ethereum
Arseny Reutov, Technologies positivesLes contrats intelligents ne sont pas uniquement utilisés pour le placement initial de jetons de crypto-monnaie. Le langage Solidity implémente diverses loteries, casinos et jeux de cartes disponibles pour tous ceux qui utilisent la blockchain Ethereum. L'autonomie de la blockchain limite les sources d'entropie des générateurs de nombres aléatoires (RNG). Il n'y a pas de bibliothèque commune avec laquelle les développeurs créeraient des RNG sûrs.
C'est pour cette raison que la mise en œuvre de votre propre RNG peut créer de nombreux problèmes - il est loin d'être toujours possible de mettre en œuvre un RNG sûr, ce qui donne aux attaquants la possibilité de prédire le résultat et de voler de l'argent. Le rapport présente une analyse des contrats intelligents basés sur la blockchain pour l'industrie du jeu. L'auteur du rapport présente des exemples réels de mise en œuvre incorrecte du RNG et explique comment identifier les problèmes dans le RNG et créer votre propre générateur sûr, en tenant compte des limites de la blockchain.
Pièges de la paramétrisation et de l'approche objet
Vladimir Kochetkov, Technologies positivesEst-ce toujours l'utilisation d'outils de paramétrage et la transition vers le modèle objet qui peuvent efficacement résoudre les tâches de sécurisation des applications? Quels risques comportent ces approches? Des vulnérabilités dans le code du projet sont-elles possibles lors de leur utilisation? L'auteur du rapport répond à ces questions en utilisant des exemples spécifiques et des cas réels.
Accrochage de méthode sur Android
Alexander Guzenko, TinkoffL'auteur du rapport explique en quoi consistent les méthodes de raccordement et d'injection et expliquera comment, connaissant ces deux concepts, les appliquera à Android et forcera l'application de quelqu'un d'autre à faire ce dont vous avez besoin.
Comment créer un WAF rapide. Construire un système d'analyse de trafic réseau hautes performances
Michael Badin, WallarmLe rapport examine les étapes du traitement d'un package dans WAF, les problèmes d'obtention des informations nécessaires à partir d'une demande, l'optimisation des processus de tokenisation, le filtrage basé sur des expressions régulières et la mise en œuvre de l'analyse comportementale dans le cadre du trafic de post-traitement.
Nous remercions nos conférenciers et participants pour une réunion productive!
Si vous avez des questions pour les organisateurs / conférenciers ou si vous souhaitez faire votre présentation lors de la prochaine réunion PDUG, écrivez à
pdug@ptsecurity.com .