Les codeurs conquièrent la sécurité : Série "Partager et apprendre" - Téléchargements de fichiers sans restriction
Le problème des téléchargements de fichiers sans restriction n'est pas une attaque en soi, mais plutôt une situation ou un état courant qui permet aux attaquants d'accéder facilement aux applications et aux ressources du réseau. C'est un peu comme si vous vous promeniez dans le froid avec des vêtements mouillés. Bien que cela ne vous rende pas nécessairement malade en soi, cela diminue votre résistance au point que n'importe quel virus opportuniste dépassera facilement les défenses de votre corps.
En matière de cybersécurité, les attaquants peuvent être prompts à exploiter n'importe quelle application ou n'importe quel programme qui a été autorisé à prendre en charge des téléchargements de fichiers sans restriction. Les résultats peuvent être dévastateurs. Des attaquants astucieux peuvent utiliser leur accès illimité pour télécharger des fichiers malveillants, mettre en place des scripts pour voler des informations d'identification ou lancer des attaques plus profondes dans un réseau en utilisant les propres autorisations d'une application. Même un attaquant relativement peu sophistiqué pourrait utiliser ce type d'accès illimité pour effectuer des attaques par déni de service ou pour faire planter une application.
Heureusement, il existe plusieurs façons de résoudre le problème des téléchargements de fichiers sans restriction et d'arrêter les attaquants potentiels dans leur élan. À cette fin, nous allons examiner trois aspects essentiels des téléchargements de fichiers sans restriction :
- Comment ils fonctionnent
- Pourquoi ils sont si dangereux
- Comment vous pouvez mettre en place des défenses pour les arrêter.
Comment les attaques exploitent-elles les téléchargements de fichiers sans restriction ?
Il existe de nombreuses raisons pour lesquelles les sites souhaitent permettre au public de télécharger des fichiers. Peut-être une entreprise cherche-t-elle à embaucher des personnes et souhaite-t-elle leur permettre de télécharger leur curriculum vitae dans le cadre du processus de candidature. Les banques peuvent encourager leurs clients à remplir des documents importants chez eux, par exemple lors d'une demande de prêt ou d'ouverture de compte. Les sites de tourisme ou de médias sociaux peuvent inviter les utilisateurs à télécharger leurs photos pour les partager avec d'autres.
Il existe de nombreuses raisons valables d'autoriser le téléchargement de fichiers. Et par défaut, la plupart des nouvelles applications vont probablement autoriser tout type de téléchargement de fichiers, sans aucune restriction. Les problèmes commencent lorsqu'un attaquant potentiel remarque que ces téléchargements ne sont soumis à aucune restriction.
L'absence de restrictions sur les téléchargements expose les sites à trois types d'attaques. En commençant par le moins sophistiqué, un utilisateur malveillant peut simplement télécharger d'énormes fichiers tels que des archives zippées contenant des centaines de gigaoctets d'informations. Outre l'engorgement de la bande passante, cela peut entraîner une surcharge de la zone de stockage attribuée à l'application.
L'utilisateur qui télécharge un fichier malveillant, comme un virus ou quelque chose de plus sinistre comme un ransomware, est le prochain sur l'échelle de l'infamie. C'est un peu comme cette vieille superstition qui veut que l'on invite spécifiquement un vampire dans sa maison. Si vous affichez un panneau indiquant que tout le monde peut entrer librement, c'est comme si les téléchargements de fichiers étaient illimités. Vous ne contrôlez plus ce qui franchit votre porte et vous devez vous attendre à ce que tous les visiteurs, ou fichiers, ne soient pas inoffensifs. Certains d'entre eux peuvent être des monstres.
Enfin, un attaquant habile peut utiliser les téléchargements sans restriction pour s'introduire dans un réseau et y mener des attaques plus profondes. Étant donné qu'il n'y a aucune restriction sur ce qu'une personne peut télécharger, un attaquant peut envoyer son propre shell web par le biais de ce processus. Il peut ensuite envoyer des commandes dans son shell, qui seront exécutées sur le serveur avec le même niveau de permission que l'application.
Pourquoi l'accès illimité aux fichiers est-il si dangereux ?
Si le déploiement d'une application avec un accès illimité aux fichiers n'est pas immédiatement dangereux, cela revient à ouvrir une brèche dans vos défenses de cybersécurité et à inviter quelqu'un à attaquer votre organisation. Tôt ou tard, quelqu'un réagira.
Au niveau le plus élémentaire, les attaquants n'ont même pas besoin de beaucoup de compétences pour faire des ravages. Le simple fait de compresser des fichiers extrêmement volumineux et de les télécharger peut suffire à priver de service des utilisateurs valides. Avec le temps, l'application ou un site entier peut même tomber en panne, en fonction de la façon dont l'application est programmée et mise en réseau.
L'accès illimité aux fichiers peut également ouvrir une brèche dans les pare-feux et autres protections du réseau. Peu importe que vous disposiez d'un scanner surveillant votre courrier électronique entrant ou l'activité de navigation de vos employés sur le web si vous avez créé une voie permettant aux attaquants de télécharger des logiciels malveillants directement sur votre réseau central. Le logiciel malveillant peut faire planter l'application ou même le serveur sur lequel il s'exécute, mais c'est probablement le meilleur résultat possible. Dans le pire des cas, un programme réellement malveillant comme un ransomware peut utiliser le serveur compromis pour se propager à l'ensemble du réseau.
Des attaquants plus habiles ne seront probablement pas aussi évidents lorsqu'ils exploiteront une application avec un accès illimité aux fichiers. Au lieu de cela, ils peuvent utiliser la vulnérabilité pour compromettre l'application et l'utiliser pour pénétrer plus profondément dans le réseau, en se déplaçant lentement et en essayant d'éviter d'être détectés. Pour ce faire, ils peuvent télécharger un shell web ou un autre fichier de type .exe, puis lui envoyer des commandes directement une fois qu'il a atterri. Tout ce que l'utilisateur exécute via son shell sera normalement exécuté par le serveur, en utilisant les niveaux d'autorisation définis pour l'application qui l'héberge. Pour le serveur, ces commandes proviennent de l'application et ne sont pas susceptibles d'être vérifiées ou examinées plus avant.
Tout cela fait de la vulnérabilité de l'accès illimité aux fichiers l'une des plus dangereuses à avoir sur votre réseau. La question n'est probablement pas de savoir si elle posera un problème, mais quand.
Comment éliminer la vulnérabilité liée à l'accès illimité aux fichiers ?
Alors, comment résoudre le problème de l'accès illimité aux fichiers ? Le plus simple est d'ajouter une ou plusieurs restrictions sur les types de fichiers qui peuvent être téléchargés. Ces restrictions peuvent être communiquées à l'utilisateur si vous le souhaitez, par exemple en lui indiquant que le site n'accepte que les fichiers Word ou texte, ou, dans le cas d'un site de partage d'images, que les fichiers .jpgs ou .gifs. En arrière-plan, vous devrez créer une liste blanche des extensions de fichiers acceptables et refuser toutes les autres. Des restrictions doivent également être imposées sur la longueur maximale des noms de fichiers. Si le nom d'un fichier contient des caractères spéciaux, ce qui pourrait indiquer une tentative de déclenchement d'une commande exécutable, le fichier doit également être rejeté.
Outre les types de fichiers et les règles de dénomination, vous voudrez également limiter la taille maximale de chaque fichier. La taille maximale doit être raisonnable et adaptée au type de fichier que l'application est censée collecter. Cela peut signifier un plafond de 10 mégaoctets environ pour les fichiers Word et une taille un peu plus importante, de l'ordre de 50 mégaoctets, pour les fichiers graphiques. Il est également possible de fixer des règles relatives à la taille minimale des fichiers, mais uniquement si la fourchette de taille des fichiers attendus est bien connue, ce qui peut être le cas si les utilisateurs remplissent et téléchargent un formulaire spécifique.
Les attaquants peuvent toujours trouver un moyen astucieux de faire passer un shell ou un autre programme potentiellement malveillant au-delà des restrictions relatives au type et à la taille des fichiers. Pour compenser, les fichiers collectés doivent toujours être stockés dans un répertoire privé sans privilèges d'exécution. Pour plus de sécurité, les fichiers peuvent être renommés par le système en une série de caractères aléatoires. Cela empêcherait les utilisateurs non autorisés extérieurs au réseau de rechercher l'emplacement du fichier qu'ils ont téléchargé, ce qui pourrait leur donner accès à votre réseau. Toutefois, si vous faites cela, vous devrez probablement mettre en place et maintenir un tableau reliant les noms de fichiers aléatoires à leurs désignations d'origine.
Enfin, tout ce qui arrive sur le réseau par le biais d'un téléchargement doit être analysé à la recherche de logiciels malveillants et de virus par les programmes défensifs que l'organisation utilise pour ces tâches. Cela ne permettra peut-être pas de tout détecter, mais il s'agit d'une couche de sécurité importante qui pourrait être utilisée pour détecter jusqu'à 90 % ou plus des fichiers malveillants les plus courants qui tentent d'entrer par le biais d'un téléchargement de fichiers.
Restreindre le problème du téléchargement de fichiers sans restriction
Une fois que plusieurs couches de sécurité sont mises en place au niveau du backend, le problème du téléchargement de fichiers sans restriction cesse d'être un problème. En fait, vous éliminez le problème en imposant des restrictions à vos téléchargements de fichiers, qui ne sont donc plus illimités. Seuls les bons fichiers sont autorisés à entrer, tandis que les vampires et les logiciels malveillants sont laissés à l'écart.
Pour en savoir plus, vous pouvez consulter l'aide-mémoire de l'OWASP Unrestricted File Upload Prevention, qui décrit certains des problèmes les plus courants lorsque ce type de situation est autorisé sur un réseau. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la présentation gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Vous pensez être prêt à vous attaquer à cette vulnérabilité dès maintenant ? Rendez-vous sur le champ de bataille et testez vos compétences :
Dans le domaine de la cybersécurité, les attaquants peuvent être prompts à exploiter toute application ou tout programme qui a été autorisé à prendre en charge des téléchargements de fichiers sans restriction. Les résultats peuvent être dévastateurs.
Jaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.
Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Réservez une démonstrationJaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.
Le problème des téléchargements de fichiers sans restriction n'est pas une attaque en soi, mais plutôt une situation ou un état courant qui permet aux attaquants d'accéder facilement aux applications et aux ressources du réseau. C'est un peu comme si vous vous promeniez dans le froid avec des vêtements mouillés. Bien que cela ne vous rende pas nécessairement malade en soi, cela diminue votre résistance au point que n'importe quel virus opportuniste dépassera facilement les défenses de votre corps.
En matière de cybersécurité, les attaquants peuvent être prompts à exploiter n'importe quelle application ou n'importe quel programme qui a été autorisé à prendre en charge des téléchargements de fichiers sans restriction. Les résultats peuvent être dévastateurs. Des attaquants astucieux peuvent utiliser leur accès illimité pour télécharger des fichiers malveillants, mettre en place des scripts pour voler des informations d'identification ou lancer des attaques plus profondes dans un réseau en utilisant les propres autorisations d'une application. Même un attaquant relativement peu sophistiqué pourrait utiliser ce type d'accès illimité pour effectuer des attaques par déni de service ou pour faire planter une application.
Heureusement, il existe plusieurs façons de résoudre le problème des téléchargements de fichiers sans restriction et d'arrêter les attaquants potentiels dans leur élan. À cette fin, nous allons examiner trois aspects essentiels des téléchargements de fichiers sans restriction :
- Comment ils fonctionnent
- Pourquoi ils sont si dangereux
- Comment vous pouvez mettre en place des défenses pour les arrêter.
Comment les attaques exploitent-elles les téléchargements de fichiers sans restriction ?
Il existe de nombreuses raisons pour lesquelles les sites souhaitent permettre au public de télécharger des fichiers. Peut-être une entreprise cherche-t-elle à embaucher des personnes et souhaite-t-elle leur permettre de télécharger leur curriculum vitae dans le cadre du processus de candidature. Les banques peuvent encourager leurs clients à remplir des documents importants chez eux, par exemple lors d'une demande de prêt ou d'ouverture de compte. Les sites de tourisme ou de médias sociaux peuvent inviter les utilisateurs à télécharger leurs photos pour les partager avec d'autres.
Il existe de nombreuses raisons valables d'autoriser le téléchargement de fichiers. Et par défaut, la plupart des nouvelles applications vont probablement autoriser tout type de téléchargement de fichiers, sans aucune restriction. Les problèmes commencent lorsqu'un attaquant potentiel remarque que ces téléchargements ne sont soumis à aucune restriction.
L'absence de restrictions sur les téléchargements expose les sites à trois types d'attaques. En commençant par le moins sophistiqué, un utilisateur malveillant peut simplement télécharger d'énormes fichiers tels que des archives zippées contenant des centaines de gigaoctets d'informations. Outre l'engorgement de la bande passante, cela peut entraîner une surcharge de la zone de stockage attribuée à l'application.
L'utilisateur qui télécharge un fichier malveillant, comme un virus ou quelque chose de plus sinistre comme un ransomware, est le prochain sur l'échelle de l'infamie. C'est un peu comme cette vieille superstition qui veut que l'on invite spécifiquement un vampire dans sa maison. Si vous affichez un panneau indiquant que tout le monde peut entrer librement, c'est comme si les téléchargements de fichiers étaient illimités. Vous ne contrôlez plus ce qui franchit votre porte et vous devez vous attendre à ce que tous les visiteurs, ou fichiers, ne soient pas inoffensifs. Certains d'entre eux peuvent être des monstres.
Enfin, un attaquant habile peut utiliser les téléchargements sans restriction pour s'introduire dans un réseau et y mener des attaques plus profondes. Étant donné qu'il n'y a aucune restriction sur ce qu'une personne peut télécharger, un attaquant peut envoyer son propre shell web par le biais de ce processus. Il peut ensuite envoyer des commandes dans son shell, qui seront exécutées sur le serveur avec le même niveau de permission que l'application.
Pourquoi l'accès illimité aux fichiers est-il si dangereux ?
Si le déploiement d'une application avec un accès illimité aux fichiers n'est pas immédiatement dangereux, cela revient à ouvrir une brèche dans vos défenses de cybersécurité et à inviter quelqu'un à attaquer votre organisation. Tôt ou tard, quelqu'un réagira.
Au niveau le plus élémentaire, les attaquants n'ont même pas besoin de beaucoup de compétences pour faire des ravages. Le simple fait de compresser des fichiers extrêmement volumineux et de les télécharger peut suffire à priver de service des utilisateurs valides. Avec le temps, l'application ou un site entier peut même tomber en panne, en fonction de la façon dont l'application est programmée et mise en réseau.
L'accès illimité aux fichiers peut également ouvrir une brèche dans les pare-feux et autres protections du réseau. Peu importe que vous disposiez d'un scanner surveillant votre courrier électronique entrant ou l'activité de navigation de vos employés sur le web si vous avez créé une voie permettant aux attaquants de télécharger des logiciels malveillants directement sur votre réseau central. Le logiciel malveillant peut faire planter l'application ou même le serveur sur lequel il s'exécute, mais c'est probablement le meilleur résultat possible. Dans le pire des cas, un programme réellement malveillant comme un ransomware peut utiliser le serveur compromis pour se propager à l'ensemble du réseau.
Des attaquants plus habiles ne seront probablement pas aussi évidents lorsqu'ils exploiteront une application avec un accès illimité aux fichiers. Au lieu de cela, ils peuvent utiliser la vulnérabilité pour compromettre l'application et l'utiliser pour pénétrer plus profondément dans le réseau, en se déplaçant lentement et en essayant d'éviter d'être détectés. Pour ce faire, ils peuvent télécharger un shell web ou un autre fichier de type .exe, puis lui envoyer des commandes directement une fois qu'il a atterri. Tout ce que l'utilisateur exécute via son shell sera normalement exécuté par le serveur, en utilisant les niveaux d'autorisation définis pour l'application qui l'héberge. Pour le serveur, ces commandes proviennent de l'application et ne sont pas susceptibles d'être vérifiées ou examinées plus avant.
Tout cela fait de la vulnérabilité de l'accès illimité aux fichiers l'une des plus dangereuses à avoir sur votre réseau. La question n'est probablement pas de savoir si elle posera un problème, mais quand.
Comment éliminer la vulnérabilité liée à l'accès illimité aux fichiers ?
Alors, comment résoudre le problème de l'accès illimité aux fichiers ? Le plus simple est d'ajouter une ou plusieurs restrictions sur les types de fichiers qui peuvent être téléchargés. Ces restrictions peuvent être communiquées à l'utilisateur si vous le souhaitez, par exemple en lui indiquant que le site n'accepte que les fichiers Word ou texte, ou, dans le cas d'un site de partage d'images, que les fichiers .jpgs ou .gifs. En arrière-plan, vous devrez créer une liste blanche des extensions de fichiers acceptables et refuser toutes les autres. Des restrictions doivent également être imposées sur la longueur maximale des noms de fichiers. Si le nom d'un fichier contient des caractères spéciaux, ce qui pourrait indiquer une tentative de déclenchement d'une commande exécutable, le fichier doit également être rejeté.
Outre les types de fichiers et les règles de dénomination, vous voudrez également limiter la taille maximale de chaque fichier. La taille maximale doit être raisonnable et adaptée au type de fichier que l'application est censée collecter. Cela peut signifier un plafond de 10 mégaoctets environ pour les fichiers Word et une taille un peu plus importante, de l'ordre de 50 mégaoctets, pour les fichiers graphiques. Il est également possible de fixer des règles relatives à la taille minimale des fichiers, mais uniquement si la fourchette de taille des fichiers attendus est bien connue, ce qui peut être le cas si les utilisateurs remplissent et téléchargent un formulaire spécifique.
Les attaquants peuvent toujours trouver un moyen astucieux de faire passer un shell ou un autre programme potentiellement malveillant au-delà des restrictions relatives au type et à la taille des fichiers. Pour compenser, les fichiers collectés doivent toujours être stockés dans un répertoire privé sans privilèges d'exécution. Pour plus de sécurité, les fichiers peuvent être renommés par le système en une série de caractères aléatoires. Cela empêcherait les utilisateurs non autorisés extérieurs au réseau de rechercher l'emplacement du fichier qu'ils ont téléchargé, ce qui pourrait leur donner accès à votre réseau. Toutefois, si vous faites cela, vous devrez probablement mettre en place et maintenir un tableau reliant les noms de fichiers aléatoires à leurs désignations d'origine.
Enfin, tout ce qui arrive sur le réseau par le biais d'un téléchargement doit être analysé à la recherche de logiciels malveillants et de virus par les programmes défensifs que l'organisation utilise pour ces tâches. Cela ne permettra peut-être pas de tout détecter, mais il s'agit d'une couche de sécurité importante qui pourrait être utilisée pour détecter jusqu'à 90 % ou plus des fichiers malveillants les plus courants qui tentent d'entrer par le biais d'un téléchargement de fichiers.
Restreindre le problème du téléchargement de fichiers sans restriction
Une fois que plusieurs couches de sécurité sont mises en place au niveau du backend, le problème du téléchargement de fichiers sans restriction cesse d'être un problème. En fait, vous éliminez le problème en imposant des restrictions à vos téléchargements de fichiers, qui ne sont donc plus illimités. Seuls les bons fichiers sont autorisés à entrer, tandis que les vampires et les logiciels malveillants sont laissés à l'écart.
Pour en savoir plus, vous pouvez consulter l'aide-mémoire de l'OWASP Unrestricted File Upload Prevention, qui décrit certains des problèmes les plus courants lorsque ce type de situation est autorisé sur un réseau. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la présentation gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Vous pensez être prêt à vous attaquer à cette vulnérabilité dès maintenant ? Rendez-vous sur le champ de bataille et testez vos compétences :
Le problème des téléchargements de fichiers sans restriction n'est pas une attaque en soi, mais plutôt une situation ou un état courant qui permet aux attaquants d'accéder facilement aux applications et aux ressources du réseau. C'est un peu comme si vous vous promeniez dans le froid avec des vêtements mouillés. Bien que cela ne vous rende pas nécessairement malade en soi, cela diminue votre résistance au point que n'importe quel virus opportuniste dépassera facilement les défenses de votre corps.
En matière de cybersécurité, les attaquants peuvent être prompts à exploiter n'importe quelle application ou n'importe quel programme qui a été autorisé à prendre en charge des téléchargements de fichiers sans restriction. Les résultats peuvent être dévastateurs. Des attaquants astucieux peuvent utiliser leur accès illimité pour télécharger des fichiers malveillants, mettre en place des scripts pour voler des informations d'identification ou lancer des attaques plus profondes dans un réseau en utilisant les propres autorisations d'une application. Même un attaquant relativement peu sophistiqué pourrait utiliser ce type d'accès illimité pour effectuer des attaques par déni de service ou pour faire planter une application.
Heureusement, il existe plusieurs façons de résoudre le problème des téléchargements de fichiers sans restriction et d'arrêter les attaquants potentiels dans leur élan. À cette fin, nous allons examiner trois aspects essentiels des téléchargements de fichiers sans restriction :
- Comment ils fonctionnent
- Pourquoi ils sont si dangereux
- Comment vous pouvez mettre en place des défenses pour les arrêter.
Comment les attaques exploitent-elles les téléchargements de fichiers sans restriction ?
Il existe de nombreuses raisons pour lesquelles les sites souhaitent permettre au public de télécharger des fichiers. Peut-être une entreprise cherche-t-elle à embaucher des personnes et souhaite-t-elle leur permettre de télécharger leur curriculum vitae dans le cadre du processus de candidature. Les banques peuvent encourager leurs clients à remplir des documents importants chez eux, par exemple lors d'une demande de prêt ou d'ouverture de compte. Les sites de tourisme ou de médias sociaux peuvent inviter les utilisateurs à télécharger leurs photos pour les partager avec d'autres.
Il existe de nombreuses raisons valables d'autoriser le téléchargement de fichiers. Et par défaut, la plupart des nouvelles applications vont probablement autoriser tout type de téléchargement de fichiers, sans aucune restriction. Les problèmes commencent lorsqu'un attaquant potentiel remarque que ces téléchargements ne sont soumis à aucune restriction.
L'absence de restrictions sur les téléchargements expose les sites à trois types d'attaques. En commençant par le moins sophistiqué, un utilisateur malveillant peut simplement télécharger d'énormes fichiers tels que des archives zippées contenant des centaines de gigaoctets d'informations. Outre l'engorgement de la bande passante, cela peut entraîner une surcharge de la zone de stockage attribuée à l'application.
L'utilisateur qui télécharge un fichier malveillant, comme un virus ou quelque chose de plus sinistre comme un ransomware, est le prochain sur l'échelle de l'infamie. C'est un peu comme cette vieille superstition qui veut que l'on invite spécifiquement un vampire dans sa maison. Si vous affichez un panneau indiquant que tout le monde peut entrer librement, c'est comme si les téléchargements de fichiers étaient illimités. Vous ne contrôlez plus ce qui franchit votre porte et vous devez vous attendre à ce que tous les visiteurs, ou fichiers, ne soient pas inoffensifs. Certains d'entre eux peuvent être des monstres.
Enfin, un attaquant habile peut utiliser les téléchargements sans restriction pour s'introduire dans un réseau et y mener des attaques plus profondes. Étant donné qu'il n'y a aucune restriction sur ce qu'une personne peut télécharger, un attaquant peut envoyer son propre shell web par le biais de ce processus. Il peut ensuite envoyer des commandes dans son shell, qui seront exécutées sur le serveur avec le même niveau de permission que l'application.
Pourquoi l'accès illimité aux fichiers est-il si dangereux ?
Si le déploiement d'une application avec un accès illimité aux fichiers n'est pas immédiatement dangereux, cela revient à ouvrir une brèche dans vos défenses de cybersécurité et à inviter quelqu'un à attaquer votre organisation. Tôt ou tard, quelqu'un réagira.
Au niveau le plus élémentaire, les attaquants n'ont même pas besoin de beaucoup de compétences pour faire des ravages. Le simple fait de compresser des fichiers extrêmement volumineux et de les télécharger peut suffire à priver de service des utilisateurs valides. Avec le temps, l'application ou un site entier peut même tomber en panne, en fonction de la façon dont l'application est programmée et mise en réseau.
L'accès illimité aux fichiers peut également ouvrir une brèche dans les pare-feux et autres protections du réseau. Peu importe que vous disposiez d'un scanner surveillant votre courrier électronique entrant ou l'activité de navigation de vos employés sur le web si vous avez créé une voie permettant aux attaquants de télécharger des logiciels malveillants directement sur votre réseau central. Le logiciel malveillant peut faire planter l'application ou même le serveur sur lequel il s'exécute, mais c'est probablement le meilleur résultat possible. Dans le pire des cas, un programme réellement malveillant comme un ransomware peut utiliser le serveur compromis pour se propager à l'ensemble du réseau.
Des attaquants plus habiles ne seront probablement pas aussi évidents lorsqu'ils exploiteront une application avec un accès illimité aux fichiers. Au lieu de cela, ils peuvent utiliser la vulnérabilité pour compromettre l'application et l'utiliser pour pénétrer plus profondément dans le réseau, en se déplaçant lentement et en essayant d'éviter d'être détectés. Pour ce faire, ils peuvent télécharger un shell web ou un autre fichier de type .exe, puis lui envoyer des commandes directement une fois qu'il a atterri. Tout ce que l'utilisateur exécute via son shell sera normalement exécuté par le serveur, en utilisant les niveaux d'autorisation définis pour l'application qui l'héberge. Pour le serveur, ces commandes proviennent de l'application et ne sont pas susceptibles d'être vérifiées ou examinées plus avant.
Tout cela fait de la vulnérabilité de l'accès illimité aux fichiers l'une des plus dangereuses à avoir sur votre réseau. La question n'est probablement pas de savoir si elle posera un problème, mais quand.
Comment éliminer la vulnérabilité liée à l'accès illimité aux fichiers ?
Alors, comment résoudre le problème de l'accès illimité aux fichiers ? Le plus simple est d'ajouter une ou plusieurs restrictions sur les types de fichiers qui peuvent être téléchargés. Ces restrictions peuvent être communiquées à l'utilisateur si vous le souhaitez, par exemple en lui indiquant que le site n'accepte que les fichiers Word ou texte, ou, dans le cas d'un site de partage d'images, que les fichiers .jpgs ou .gifs. En arrière-plan, vous devrez créer une liste blanche des extensions de fichiers acceptables et refuser toutes les autres. Des restrictions doivent également être imposées sur la longueur maximale des noms de fichiers. Si le nom d'un fichier contient des caractères spéciaux, ce qui pourrait indiquer une tentative de déclenchement d'une commande exécutable, le fichier doit également être rejeté.
Outre les types de fichiers et les règles de dénomination, vous voudrez également limiter la taille maximale de chaque fichier. La taille maximale doit être raisonnable et adaptée au type de fichier que l'application est censée collecter. Cela peut signifier un plafond de 10 mégaoctets environ pour les fichiers Word et une taille un peu plus importante, de l'ordre de 50 mégaoctets, pour les fichiers graphiques. Il est également possible de fixer des règles relatives à la taille minimale des fichiers, mais uniquement si la fourchette de taille des fichiers attendus est bien connue, ce qui peut être le cas si les utilisateurs remplissent et téléchargent un formulaire spécifique.
Les attaquants peuvent toujours trouver un moyen astucieux de faire passer un shell ou un autre programme potentiellement malveillant au-delà des restrictions relatives au type et à la taille des fichiers. Pour compenser, les fichiers collectés doivent toujours être stockés dans un répertoire privé sans privilèges d'exécution. Pour plus de sécurité, les fichiers peuvent être renommés par le système en une série de caractères aléatoires. Cela empêcherait les utilisateurs non autorisés extérieurs au réseau de rechercher l'emplacement du fichier qu'ils ont téléchargé, ce qui pourrait leur donner accès à votre réseau. Toutefois, si vous faites cela, vous devrez probablement mettre en place et maintenir un tableau reliant les noms de fichiers aléatoires à leurs désignations d'origine.
Enfin, tout ce qui arrive sur le réseau par le biais d'un téléchargement doit être analysé à la recherche de logiciels malveillants et de virus par les programmes défensifs que l'organisation utilise pour ces tâches. Cela ne permettra peut-être pas de tout détecter, mais il s'agit d'une couche de sécurité importante qui pourrait être utilisée pour détecter jusqu'à 90 % ou plus des fichiers malveillants les plus courants qui tentent d'entrer par le biais d'un téléchargement de fichiers.
Restreindre le problème du téléchargement de fichiers sans restriction
Une fois que plusieurs couches de sécurité sont mises en place au niveau du backend, le problème du téléchargement de fichiers sans restriction cesse d'être un problème. En fait, vous éliminez le problème en imposant des restrictions à vos téléchargements de fichiers, qui ne sont donc plus illimités. Seuls les bons fichiers sont autorisés à entrer, tandis que les vampires et les logiciels malveillants sont laissés à l'écart.
Pour en savoir plus, vous pouvez consulter l'aide-mémoire de l'OWASP Unrestricted File Upload Prevention, qui décrit certains des problèmes les plus courants lorsque ce type de situation est autorisé sur un réseau. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la présentation gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Vous pensez être prêt à vous attaquer à cette vulnérabilité dès maintenant ? Rendez-vous sur le champ de bataille et testez vos compétences :
Cliquez sur le lien ci-dessous et téléchargez le PDF de cette ressource.
Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Voir le rapportRéservez une démonstrationJaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.
Le problème des téléchargements de fichiers sans restriction n'est pas une attaque en soi, mais plutôt une situation ou un état courant qui permet aux attaquants d'accéder facilement aux applications et aux ressources du réseau. C'est un peu comme si vous vous promeniez dans le froid avec des vêtements mouillés. Bien que cela ne vous rende pas nécessairement malade en soi, cela diminue votre résistance au point que n'importe quel virus opportuniste dépassera facilement les défenses de votre corps.
En matière de cybersécurité, les attaquants peuvent être prompts à exploiter n'importe quelle application ou n'importe quel programme qui a été autorisé à prendre en charge des téléchargements de fichiers sans restriction. Les résultats peuvent être dévastateurs. Des attaquants astucieux peuvent utiliser leur accès illimité pour télécharger des fichiers malveillants, mettre en place des scripts pour voler des informations d'identification ou lancer des attaques plus profondes dans un réseau en utilisant les propres autorisations d'une application. Même un attaquant relativement peu sophistiqué pourrait utiliser ce type d'accès illimité pour effectuer des attaques par déni de service ou pour faire planter une application.
Heureusement, il existe plusieurs façons de résoudre le problème des téléchargements de fichiers sans restriction et d'arrêter les attaquants potentiels dans leur élan. À cette fin, nous allons examiner trois aspects essentiels des téléchargements de fichiers sans restriction :
- Comment ils fonctionnent
- Pourquoi ils sont si dangereux
- Comment vous pouvez mettre en place des défenses pour les arrêter.
Comment les attaques exploitent-elles les téléchargements de fichiers sans restriction ?
Il existe de nombreuses raisons pour lesquelles les sites souhaitent permettre au public de télécharger des fichiers. Peut-être une entreprise cherche-t-elle à embaucher des personnes et souhaite-t-elle leur permettre de télécharger leur curriculum vitae dans le cadre du processus de candidature. Les banques peuvent encourager leurs clients à remplir des documents importants chez eux, par exemple lors d'une demande de prêt ou d'ouverture de compte. Les sites de tourisme ou de médias sociaux peuvent inviter les utilisateurs à télécharger leurs photos pour les partager avec d'autres.
Il existe de nombreuses raisons valables d'autoriser le téléchargement de fichiers. Et par défaut, la plupart des nouvelles applications vont probablement autoriser tout type de téléchargement de fichiers, sans aucune restriction. Les problèmes commencent lorsqu'un attaquant potentiel remarque que ces téléchargements ne sont soumis à aucune restriction.
L'absence de restrictions sur les téléchargements expose les sites à trois types d'attaques. En commençant par le moins sophistiqué, un utilisateur malveillant peut simplement télécharger d'énormes fichiers tels que des archives zippées contenant des centaines de gigaoctets d'informations. Outre l'engorgement de la bande passante, cela peut entraîner une surcharge de la zone de stockage attribuée à l'application.
L'utilisateur qui télécharge un fichier malveillant, comme un virus ou quelque chose de plus sinistre comme un ransomware, est le prochain sur l'échelle de l'infamie. C'est un peu comme cette vieille superstition qui veut que l'on invite spécifiquement un vampire dans sa maison. Si vous affichez un panneau indiquant que tout le monde peut entrer librement, c'est comme si les téléchargements de fichiers étaient illimités. Vous ne contrôlez plus ce qui franchit votre porte et vous devez vous attendre à ce que tous les visiteurs, ou fichiers, ne soient pas inoffensifs. Certains d'entre eux peuvent être des monstres.
Enfin, un attaquant habile peut utiliser les téléchargements sans restriction pour s'introduire dans un réseau et y mener des attaques plus profondes. Étant donné qu'il n'y a aucune restriction sur ce qu'une personne peut télécharger, un attaquant peut envoyer son propre shell web par le biais de ce processus. Il peut ensuite envoyer des commandes dans son shell, qui seront exécutées sur le serveur avec le même niveau de permission que l'application.
Pourquoi l'accès illimité aux fichiers est-il si dangereux ?
Si le déploiement d'une application avec un accès illimité aux fichiers n'est pas immédiatement dangereux, cela revient à ouvrir une brèche dans vos défenses de cybersécurité et à inviter quelqu'un à attaquer votre organisation. Tôt ou tard, quelqu'un réagira.
Au niveau le plus élémentaire, les attaquants n'ont même pas besoin de beaucoup de compétences pour faire des ravages. Le simple fait de compresser des fichiers extrêmement volumineux et de les télécharger peut suffire à priver de service des utilisateurs valides. Avec le temps, l'application ou un site entier peut même tomber en panne, en fonction de la façon dont l'application est programmée et mise en réseau.
L'accès illimité aux fichiers peut également ouvrir une brèche dans les pare-feux et autres protections du réseau. Peu importe que vous disposiez d'un scanner surveillant votre courrier électronique entrant ou l'activité de navigation de vos employés sur le web si vous avez créé une voie permettant aux attaquants de télécharger des logiciels malveillants directement sur votre réseau central. Le logiciel malveillant peut faire planter l'application ou même le serveur sur lequel il s'exécute, mais c'est probablement le meilleur résultat possible. Dans le pire des cas, un programme réellement malveillant comme un ransomware peut utiliser le serveur compromis pour se propager à l'ensemble du réseau.
Des attaquants plus habiles ne seront probablement pas aussi évidents lorsqu'ils exploiteront une application avec un accès illimité aux fichiers. Au lieu de cela, ils peuvent utiliser la vulnérabilité pour compromettre l'application et l'utiliser pour pénétrer plus profondément dans le réseau, en se déplaçant lentement et en essayant d'éviter d'être détectés. Pour ce faire, ils peuvent télécharger un shell web ou un autre fichier de type .exe, puis lui envoyer des commandes directement une fois qu'il a atterri. Tout ce que l'utilisateur exécute via son shell sera normalement exécuté par le serveur, en utilisant les niveaux d'autorisation définis pour l'application qui l'héberge. Pour le serveur, ces commandes proviennent de l'application et ne sont pas susceptibles d'être vérifiées ou examinées plus avant.
Tout cela fait de la vulnérabilité de l'accès illimité aux fichiers l'une des plus dangereuses à avoir sur votre réseau. La question n'est probablement pas de savoir si elle posera un problème, mais quand.
Comment éliminer la vulnérabilité liée à l'accès illimité aux fichiers ?
Alors, comment résoudre le problème de l'accès illimité aux fichiers ? Le plus simple est d'ajouter une ou plusieurs restrictions sur les types de fichiers qui peuvent être téléchargés. Ces restrictions peuvent être communiquées à l'utilisateur si vous le souhaitez, par exemple en lui indiquant que le site n'accepte que les fichiers Word ou texte, ou, dans le cas d'un site de partage d'images, que les fichiers .jpgs ou .gifs. En arrière-plan, vous devrez créer une liste blanche des extensions de fichiers acceptables et refuser toutes les autres. Des restrictions doivent également être imposées sur la longueur maximale des noms de fichiers. Si le nom d'un fichier contient des caractères spéciaux, ce qui pourrait indiquer une tentative de déclenchement d'une commande exécutable, le fichier doit également être rejeté.
Outre les types de fichiers et les règles de dénomination, vous voudrez également limiter la taille maximale de chaque fichier. La taille maximale doit être raisonnable et adaptée au type de fichier que l'application est censée collecter. Cela peut signifier un plafond de 10 mégaoctets environ pour les fichiers Word et une taille un peu plus importante, de l'ordre de 50 mégaoctets, pour les fichiers graphiques. Il est également possible de fixer des règles relatives à la taille minimale des fichiers, mais uniquement si la fourchette de taille des fichiers attendus est bien connue, ce qui peut être le cas si les utilisateurs remplissent et téléchargent un formulaire spécifique.
Les attaquants peuvent toujours trouver un moyen astucieux de faire passer un shell ou un autre programme potentiellement malveillant au-delà des restrictions relatives au type et à la taille des fichiers. Pour compenser, les fichiers collectés doivent toujours être stockés dans un répertoire privé sans privilèges d'exécution. Pour plus de sécurité, les fichiers peuvent être renommés par le système en une série de caractères aléatoires. Cela empêcherait les utilisateurs non autorisés extérieurs au réseau de rechercher l'emplacement du fichier qu'ils ont téléchargé, ce qui pourrait leur donner accès à votre réseau. Toutefois, si vous faites cela, vous devrez probablement mettre en place et maintenir un tableau reliant les noms de fichiers aléatoires à leurs désignations d'origine.
Enfin, tout ce qui arrive sur le réseau par le biais d'un téléchargement doit être analysé à la recherche de logiciels malveillants et de virus par les programmes défensifs que l'organisation utilise pour ces tâches. Cela ne permettra peut-être pas de tout détecter, mais il s'agit d'une couche de sécurité importante qui pourrait être utilisée pour détecter jusqu'à 90 % ou plus des fichiers malveillants les plus courants qui tentent d'entrer par le biais d'un téléchargement de fichiers.
Restreindre le problème du téléchargement de fichiers sans restriction
Une fois que plusieurs couches de sécurité sont mises en place au niveau du backend, le problème du téléchargement de fichiers sans restriction cesse d'être un problème. En fait, vous éliminez le problème en imposant des restrictions à vos téléchargements de fichiers, qui ne sont donc plus illimités. Seuls les bons fichiers sont autorisés à entrer, tandis que les vampires et les logiciels malveillants sont laissés à l'écart.
Pour en savoir plus, vous pouvez consulter l'aide-mémoire de l'OWASP Unrestricted File Upload Prevention, qui décrit certains des problèmes les plus courants lorsque ce type de situation est autorisé sur un réseau. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la présentation gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Vous pensez être prêt à vous attaquer à cette vulnérabilité dès maintenant ? Rendez-vous sur le champ de bataille et testez vos compétences :
Table des matières
Jaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.
Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Réservez une démonstrationTéléchargerRessources pour vous aider à démarrer
Évaluation comparative des compétences en matière de sécurité : Rationalisation de la conception sécurisée dans l'entreprise
Le mouvement "Secure-by-Design" (conception sécurisée) est l'avenir du développement de logiciels sécurisés. Découvrez les éléments clés que les entreprises doivent garder à l'esprit lorsqu'elles envisagent une initiative de conception sécurisée.
DigitalOcean réduit sa dette de sécurité avec Secure Code Warrior
L'utilisation par DigitalOcean de la formation Secure Code Warrior a considérablement réduit la dette de sécurité, permettant aux équipes de se concentrer davantage sur l'innovation et la productivité. L'amélioration de la sécurité a renforcé la qualité des produits et l'avantage concurrentiel de l'entreprise. À l'avenir, le score de confiance SCW les aidera à améliorer leurs pratiques de sécurité et à continuer à stimuler l'innovation.
Ressources pour vous aider à démarrer
La note de confiance révèle la valeur des initiatives d'amélioration de la sécurité par la conception
Nos recherches ont montré que la formation au code sécurisé fonctionne. Le Trust Score, qui utilise un algorithme s'appuyant sur plus de 20 millions de points de données d'apprentissage issus du travail de plus de 250 000 apprenants dans plus de 600 organisations, révèle son efficacité à réduire les vulnérabilités et la manière de rendre l'initiative encore plus efficace.
Sécurité réactive contre sécurité préventive : La prévention est un meilleur remède
L'idée d'apporter une sécurité préventive aux codes et systèmes existants en même temps qu'aux applications plus récentes peut sembler décourageante, mais une approche "Secure-by-Design", mise en œuvre en améliorant les compétences des développeurs, permet d'appliquer les meilleures pratiques de sécurité à ces systèmes. C'est la meilleure chance qu'ont de nombreuses organisations d'améliorer leur sécurité.
Les avantages de l'évaluation des compétences des développeurs en matière de sécurité
L'importance croissante accordée au code sécurisé et aux principes de conception sécurisée exige que les développeurs soient formés à la cybersécurité dès le début du cycle de développement durable, et que des outils tels que le Trust Score de Secure Code Warriorles aident à mesurer et à améliorer leurs progrès.
Assurer le succès des initiatives de conception sécurisée de l'entreprise
Notre dernier document de recherche, Benchmarking Security Skills : Streamlining Secure-by-Design in the Enterprise est le résultat d'une analyse approfondie d'initiatives réelles de conception sécurisée au niveau de l'entreprise, et de l'élaboration d'approches de meilleures pratiques basées sur des conclusions fondées sur des données.