Identification des logiciels vulnérables sur les ordinateurs clients. Vulnérabilités du logiciel de gestion des vulnérabilités

Une autre façon d’aborder ce problème est que les entreprises doivent réagir rapidement lorsqu’une application présente une vulnérabilité. Cela nécessite que le service informatique soit en mesure de suivre définitivement applications installées, composants et correctifs à l'aide d'outils d'automatisation et standards. L'industrie s'efforce de normaliser les balises logicielles (19770-2), qui sont des fichiers XML installés avec une application, un composant et/ou un correctif qui identifient le logiciel installé et, dans le cas d'un composant ou d'un correctif, de quelle application il s'agit. partie de. Les balises contiennent des informations sur l'autorité de l'éditeur, des informations sur la version, une liste de fichiers avec le nom du fichier, un hachage sécurisé du fichier et sa taille, qui peuvent être utilisés pour confirmer que l'application installée est sur le système et que les binaires n'ont pas été modifié par un tiers. Ces balises sont signées signature numériqueéditeur.

Lorsqu'une vulnérabilité est connue, les services informatiques peuvent utiliser leur logiciel de gestion des actifs pour identifier immédiatement les systèmes dotés de logiciels vulnérables et prendre des mesures pour mettre à jour les systèmes. Les balises peuvent faire partie d'un correctif ou d'une mise à jour qui peut être utilisée pour vérifier que le correctif a été installé. De cette façon, les services informatiques peuvent utiliser des ressources telles que la base de données nationale sur les vulnérabilités du NIST comme moyen de gérer leurs outils de gestion des actifs, de sorte qu'une fois qu'une vulnérabilité est soumise au NVD par une entreprise, le service informatique peut immédiatement comparer les nouvelles vulnérabilités avec les leurs.

Il existe un groupe d'entreprises travaillant par l'intermédiaire d'une organisation à but non lucratif IEEE/ISTO appelée TagVault.org (www.tagvault.org) avec le gouvernement américain sur une mise en œuvre standard de la norme ISO 19770-2 qui permettra ce niveau d'automatisation. À un moment donné, ces balises correspondant à cette implémentation seront probablement nécessaires pour logiciel, vendu au gouvernement américain au cours des prochaines années.

Donc, en fin de compte, c'est une bonne pratique de ne pas publier sur les applications et les versions spécifiques des logiciels que vous utilisez, mais cela peut être difficile, comme indiqué précédemment. Vous voulez vous assurer que vous disposez d'un inventaire logiciel précis et à jour, qu'il est régulièrement comparé à une liste de vulnérabilités connues telles que NVID de NVD, et que le service informatique peut prendre des mesures immédiates pour remédier à la menace. avec les dernières intrusions de détection, l'analyse antivirus et d'autres méthodes de verrouillage de l'environnement rendront à tout le moins très difficile la compromission de votre environnement, et si/quand cela se produit, il ne sera pas détecté pendant une longue période de temps.

Dans certains cas, des vulnérabilités surviennent en raison de l'utilisation d'outils de développement d'origines diverses, ce qui augmente le risque d'apparition de défauts de type sabotage dans le code du programme.

Des vulnérabilités apparaissent en raison de l'ajout de composants tiers ou de code librement distribué (open source) au logiciel. Le code de quelqu'un d'autre est souvent utilisé « tel quel », sans analyse approfondie ni tests de sécurité.

Il ne faut pas exclure la présence de programmeurs internes dans l'équipe qui introduisent délibérément produit créé fonctions ou éléments supplémentaires non documentés.

Classification des vulnérabilités du programme

Les vulnérabilités résultent d'erreurs survenues lors de la phase de conception ou de codage.

Selon le stade d'occurrence, ce type de menace est divisé en vulnérabilités de conception, de mise en œuvre et de configuration.

  1. Les erreurs commises lors de la conception sont les plus difficiles à détecter et à éliminer. Il s'agit d'inexactitudes dans les algorithmes, de signets, d'incohérences dans l'interface entre différents modules ou dans les protocoles d'interaction avec le matériel, ainsi que de l'introduction de technologies sous-optimales. Leur élimination est un processus très laborieux, notamment parce qu'ils peuvent apparaître dans des cas non évidents - par exemple, lorsque le volume de trafic prévu est dépassé ou lorsqu'un grand nombre d'équipements supplémentaires sont connectés, ce qui complique la fourniture des équipements requis. niveau de sécurité et conduit à l'émergence de moyens de contourner le pare-feu.
  2. Les vulnérabilités d'implémentation apparaissent au stade de l'écriture d'un programme ou de l'implémentation d'algorithmes de sécurité. Il s'agit d'une mauvaise organisation du processus informatique, de défauts syntaxiques et logiques. Il existe un risque que la faille entraîne un débordement de tampon ou d'autres problèmes. Les détecter prend beaucoup de temps et les éliminer implique de corriger certaines parties du code machine.
  3. Les erreurs de configuration matérielle et logicielle sont assez courantes. Leurs raisons courantes sont un développement de qualité insuffisante et le manque de tests pour un fonctionnement correct. fonctions supplémentaires. Cette catégorie peut également inclure mots de passe simples et les comptes par défaut sont restés inchangés.

Selon les statistiques, les vulnérabilités sont particulièrement fréquentes dans les produits populaires et courants - ordinateurs de bureau et mobiles. systèmes d'exploitation, navigateurs.

Risques liés à l'utilisation de programmes vulnérables

Les programmes contenant le plus grand nombre de vulnérabilités sont installés sur presque tous les ordinateurs. Les cybercriminels ont un intérêt direct à trouver de telles failles et à écrire pour elles.

Étant donné qu'un certain temps s'écoule entre le moment où une vulnérabilité est découverte et la publication d'un correctif (patch), il existe un bon nombre de possibilités d'infection. systèmes informatiques par des failles dans la sécurité du code du programme. Dans ce cas, il suffit à l'utilisateur d'ouvrir une seule fois, par exemple, un fichier PDF malveillant avec un exploit, après quoi les attaquants auront accès aux données.

Dans ce dernier cas, l'infection se produit selon l'algorithme suivant :

  • L'utilisateur reçoit e-mail un e-mail de phishing provenant d'un expéditeur crédible.
  • Un fichier avec un exploit est joint à la lettre.
  • Si un utilisateur tente d'ouvrir un fichier, l'ordinateur est infecté par un virus, un cheval de Troie (crypteur) ou un autre programme malveillant.
  • Les cybercriminels obtiennent un accès non autorisé au système.
  • Des données précieuses sont volées.

Des recherches menées par diverses sociétés (Kaspersky Lab, Positive Technologies) montrent qu'il existe des vulnérabilités dans presque toutes les applications, y compris les antivirus. Par conséquent, la probabilité d’établir logiciel, contenant des défauts plus ou moins critiques, est très élevé.

Pour minimiser le nombre de lacunes dans les logiciels, il est nécessaire d'utiliser SDL (Security Development Lifecycle, secure cycle de vie développement). La technologie SDL est utilisée pour réduire le nombre de bugs dans les applications à toutes les étapes de leur création et de leur support. Ainsi, lors de la conception de logiciels, les spécialistes de la sécurité de l’information et les programmeurs modélisent les cybermenaces afin d’en détecter les vulnérabilités. Pendant la programmation, le processus comprend moyens automatiques, signalant immédiatement les défauts potentiels. Les développeurs s'efforcent de limiter considérablement les fonctionnalités disponibles pour les utilisateurs non fiables, ce qui contribue à réduire la surface d'attaque.

Pour minimiser l’impact des vulnérabilités et les dommages qu’elles provoquent, vous devez suivre quelques règles :

  • Installez rapidement les correctifs (correctifs) publiés par les développeurs pour les applications ou (de préférence) activez le mode de mise à jour automatique.
  • Si possible, n'installez pas de programmes douteux dont la qualité et soutien technique soulever des questions.
  • Utilisez des scanners de vulnérabilités spéciaux ou fonctions spécialisées des produits antivirus qui permettent de rechercher les erreurs de sécurité et, si nécessaire, de mettre à jour le logiciel.

La gestion des vulnérabilités est l'identification, l'évaluation, la classification et la sélection d'une solution pour remédier aux vulnérabilités. La base de la gestion des vulnérabilités repose sur des référentiels d'informations sur les vulnérabilités, dont l'un est le système de gestion des vulnérabilités « Forward Monitoring ».

Notre solution surveille l'apparition d'informations sur les vulnérabilités des systèmes d'exploitation (Windows, Linux/Unix), des logiciels de bureautique et d'application, des logiciels matériels et des outils de sécurité de l'information.

Les sources de données

La base de données du système de gestion des vulnérabilités du logiciel de surveillance Perspective est automatiquement mise à jour à partir des sources suivantes :

  • Banque de données sur les menaces à la sécurité de l'information (BDU BI) FSTEC de Russie.
  • Base de données nationale sur les vulnérabilités (NVD) NIST.
  • Bugzilla au chapeau rouge.
  • Suivi des bogues de sécurité Debian.
  • Liste de diffusion CentOS.

Nous utilisons également une méthode automatisée pour mettre à jour notre base de données de vulnérabilités. Nous avons développé un robot d'exploration Web et un analyseur de données non structurées qui analysent chaque jour plus d'une centaine de sources étrangères et russes différentes sur un certain nombre de mots clés- groupes dans les réseaux sociaux, blogs, microblogs, médias dédiés à informatique et assurer la sécurité des informations. Si ces outils trouvent quelque chose qui correspond aux critères de recherche, l'analyste vérifie manuellement les informations et les saisit dans la base de données de vulnérabilités.

Surveillance des vulnérabilités logicielles

Grâce au système de gestion des vulnérabilités, les développeurs peuvent surveiller la présence et l'état des vulnérabilités détectées dans les composants tiers de leurs logiciels.

Par exemple, dans le modèle Secure Software Developer Life Cycle (SSDLC) de l’entreprise Hewlett-Packard Le contrôle d'entreprise des bibliothèques tierces occupe une place centrale.

Notre système surveille la présence de vulnérabilités dans les versions/builds parallèles du même produit logiciel.

Cela fonctionne comme ceci :

1. Le développeur nous fournit une liste de bibliothèques et de composants tiers utilisés dans le produit.

2. Nous vérifions quotidiennement :

b. si des méthodes sont apparues pour éliminer les vulnérabilités découvertes précédemment.

3. Nous informons le développeur si le statut ou le score de la vulnérabilité a changé, conformément au modèle de rôle spécifié. Cela signifie que différentes équipes de développement au sein d'une même entreprise recevront des alertes et verront l'état de vulnérabilité uniquement pour le produit sur lequel elles travaillent.

La fréquence d'alerte du système de gestion des vulnérabilités est configurable, mais si une vulnérabilité avec un score CVSS supérieur à 7,5 est détectée, les développeurs recevront une alerte immédiate.

Intégration avec ViPNet TIAS

Le système logiciel et matériel ViPNet Threat Intelligence Analytics System détecte automatiquement les attaques informatiques et identifie les incidents en fonction des événements reçus de diverses sources. sécurité des informations. La principale source d'événements pour ViPNet TIAS est ViPNet IDS, qui analyse le trafic réseau entrant et sortant à l'aide de la base de règles de décision AM Rules développée par Perspective Monitoring. Certaines signatures sont écrites pour détecter l'exploitation de vulnérabilités.

Si ViPNet TIAS détecte un incident de sécurité de l'information dans lequel une vulnérabilité a été exploitée, alors toutes les informations liées à la vulnérabilité, y compris les méthodes d'élimination ou de compensation de l'impact négatif, sont automatiquement saisies dans la fiche d'incident du système de gestion.

Le système de gestion des incidents facilite également l'enquête sur les incidents de sécurité de l'information, en fournissant aux analystes des informations sur les indicateurs de compromission et les nœuds potentiels de l'infrastructure d'information affectés par l'incident.

Surveillance de la présence de vulnérabilités dans les systèmes d'information

Un autre scénario d'utilisation d'un système de gestion des vulnérabilités est l'analyse à la demande.

Le client génère indépendamment, à l'aide d'outils intégrés ou d'un script développé par nos soins, une liste de ce qui est installé sur le nœud (poste de travail, serveur, SGBD, progiciel de sécurité de l'information, matériel réseau) les logiciels et composants système et d'application, transmet cette liste au système de contrôle et reçoit un rapport sur les vulnérabilités détectées et des notifications périodiques sur leur état.

Différences entre le système et les scanners de vulnérabilités courants :

  • Ne nécessite pas l'installation d'agents de surveillance sur les nœuds.
  • Ne crée pas de charge sur le réseau, puisque l'architecture de la solution elle-même ne fournit pas d'agents et de serveurs d'analyse.
  • Ne crée pas de charge sur l'équipement, puisque la liste des composants est créée par des commandes système ou un script open source léger.
  • Élimine la possibilité de fuite d’informations. La « surveillance avancée » ne peut rien apprendre de manière fiable sur l'emplacement physique et logique ou objectif fonctionnel nœud du système d’information. La seule information qui sort du périmètre contrôlé par le client est un fichier txt contenant une liste de composants logiciels. Le contenu de ce fichier est vérifié et téléchargé dans le système de contrôle par le client lui-même.
  • Pour que le système fonctionne, nous n'avons pas besoin de comptes sur des nœuds contrôlés. Les informations sont collectées par l'administrateur du site pour son propre compte.
  • Échange d'informations sécurisé via ViPNet VPN, IPsec ou https.

La connexion au service de gestion des vulnérabilités Perspective Monitoring aide le client à répondre à l'exigence ANZ.1 « Identification et analyse des vulnérabilités. Système d'Information et l'élimination rapide des vulnérabilités nouvellement identifiées" des ordonnances n° 17 et 21 du FSTEC de Russie. Notre société est titulaire d'une licence du FSTEC de Russie pour les activités liées à la protection technique des informations confidentielles.

Prix

Coût minimum - 25 000 roubles par an pour 50 nœuds connectés au système s'il existe un contrat valide de connexion à

Au démarrage numérisation intelligente Avast vérifiera votre PC pour les types de problèmes suivants et suggérera ensuite des solutions.

  • Virus: Fichiers contenant du code malveillant pouvant affecter la sécurité et les performances de votre PC.
  • Logiciels vulnérables: Programmes qui nécessitent une mise à jour et peuvent être utilisés par des attaquants pour accéder à votre système.
  • Extensions de navigateur avec mauvaise réputation: Extensions de navigateur qui sont généralement installées à votre insu et affectent les performances du système.
  • Mots de passe faibles: Mots de passe utilisés pour accéder à plusieurs compte en ligne et peuvent être facilement piratés ou compromis.
  • Menaces réseau: vulnérabilités de votre réseau qui pourraient permettre des attaques sur votre Périphériques réseau et un routeur.
  • Les problèmes de performance: objets ( fichiers inutiles et applications, problèmes liés aux paramètres) pouvant interférer avec le fonctionnement du PC.
  • Antivirus en conflit: programmes antivirus installés sur votre PC avec Avast. Disponibilité de plusieurs programmes antivirus ralentit votre PC et réduit l’efficacité de la protection antivirus.

Note. Certains problèmes détectés par Smart Scan peuvent nécessiter une licence distincte pour être résolus. La détection des types de problèmes inutiles peut être désactivée dans .

Résoudre les problèmes détectés

Une coche verte à côté de la zone d'analyse indique qu'aucun problème n'a été détecté dans cette zone. Une croix rouge signifie que l'analyse a identifié un ou plusieurs problèmes connexes.

Pour afficher des détails spécifiques sur les problèmes détectés, cliquez sur Résolvez tout. Smart Scan affiche les détails de chaque problème et offre la possibilité de le résoudre immédiatement en cliquant sur l'élément Décider, ou faites-le plus tard en cliquant sur Passer cette étape.

Note. Les journaux d'analyse antivirus peuvent être consultés dans l'historique d'analyse, accessible en sélectionnant Protection Antivirus.

Gérer les paramètres de Smart Scan

Pour modifier les paramètres de Smart Scan, sélectionnez Paramètres Général Smart Scan et spécifiez pour lequel des types de problèmes suivants vous souhaitez effectuer une analyse intelligente.

  • Virus
  • Logiciel obsolète
  • Modules complémentaires du navigateur
  • Menaces réseau
  • Problèmes de compatibilité
  • Les problèmes de performance
  • Mots de passe faibles

Par défaut, tous les types de problèmes sont activés. Pour arrêter la recherche d'un problème spécifique lors de l'exécution d'un Smart Scan, cliquez sur le curseur Inclusà côté du type de problème afin qu'il change l'état en Éteindre.

Cliquez sur Paramètresà côté de l'inscription Analyse antivirus pour modifier les paramètres de numérisation.

Actuellement développé un grand nombre de des outils conçus pour automatiser la recherche de vulnérabilités des programmes. Cet article en abordera certains.

Introduction

L'analyse de code statique est une analyse logicielle effectuée sur le code source des programmes et mise en œuvre sans exécuter réellement le programme étudié.

Les logiciels contiennent souvent diverses vulnérabilités dues à des erreurs dans le code du programme. Dans certaines situations, les erreurs commises lors du développement du programme conduisent à l'échec du programme et, par conséquent, à l'échec du programme. fonctionnement normal programmes : cela provoque souvent des modifications et des dommages aux données, arrêtant le programme ou même le système. La plupart des vulnérabilités sont associées à un traitement incorrect des données reçues de l'extérieur ou à une vérification insuffisamment stricte de celles-ci.

Pour identifier les vulnérabilités, divers outils sont utilisés, par exemple des analyseurs statiques du code source du programme, dont un aperçu est donné dans cet article.

Classification des vulnérabilités de sécurité

Lorsque l'exigence selon laquelle un programme fonctionne correctement sur toutes les données d'entrée possibles n'est pas respectée, l'apparition de soi-disant vulnérabilités de sécurité devient possible. Les vulnérabilités de sécurité peuvent signifier qu'un programme peut être utilisé pour surmonter les limitations de sécurité de l'ensemble d'un système.

Classification des failles de sécurité en fonction des erreurs logicielles :

  • Débordement de tampon. Cette vulnérabilité est due à un manque de contrôle sur les limites de mémoire du tableau lors de l'exécution du programme. Lorsqu'un paquet de données trop volumineux déborde du tampon de taille limitée, le contenu des emplacements de mémoire superflus est écrasé, provoquant le blocage et la fermeture du programme. En fonction de l'emplacement du tampon dans la mémoire du processus, les débordements de tampon sont distingués sur la pile (débordement de tampon de pile), le tas (débordement de tampon de tas) et la zone de données statiques (débordement de tampon bss).
  • Vulnérabilité d’entrée entachée. Des vulnérabilités d'entrée gâtées peuvent se produire lorsque l'entrée de l'utilisateur est transmise à l'interpréteur d'un langage externe (généralement un shell Unix ou SQL) sans contrôle suffisant. Dans ce cas, l'utilisateur peut spécifier les données d'entrée de telle sorte que l'interpréteur lancé exécute une commande complètement différente de celle prévue par les auteurs du programme vulnérable.
  • les erreurs formater les chaînes(vulnérabilité de chaîne de format). Ce type Les vulnérabilités de sécurité sont une sous-classe de la vulnérabilité « entrée contaminée ». Cela se produit en raison d'un contrôle insuffisant des paramètres lors de l'utilisation des fonctions d'E/S au format printf, fprintf, scanf, etc. de la bibliothèque standard C. Ces fonctions prennent comme paramètre une chaîne de caractères qui spécifie le format d'entrée ou de sortie des arguments de fonction suivants. Si l'utilisateur peut spécifier le type de formatage, cette vulnérabilité pourrait résulter d'une utilisation infructueuse des fonctions de formatage de chaîne.
  • Vulnérabilités résultant d'erreurs de synchronisation (conditions de concurrence). Les problèmes associés au multitâche conduisent à des situations appelées « conditions de concurrence » : un programme qui n'est pas conçu pour fonctionner dans un environnement multitâche peut croire que, par exemple, les fichiers qu'il utilise ne peuvent pas être modifiés par un autre programme. En conséquence, un attaquant qui remplace à temps le contenu de ces fichiers de travail peut forcer le programme à effectuer certaines actions.

Bien entendu, en plus de celles répertoriées, il existe d’autres classes de failles de sécurité.

Examen des analyseurs existants

Les outils suivants sont utilisés pour détecter les failles de sécurité dans les programmes :

  • Débogueurs dynamiques. Outils qui permettent de déboguer un programme lors de son exécution.
  • Analyseurs statiques (débogueurs statiques). Outils qui utilisent les informations accumulées lors de l'analyse statique d'un programme.

Les analyseurs statiques indiquent les endroits du programme où une erreur peut se trouver. Ces morceaux de code suspects peuvent contenir une erreur ou être totalement inoffensifs.

Cet article donne un aperçu de plusieurs analyseurs statiques existants. Examinons de plus près chacun d'eux.

gastrogourou 2017