Les codeurs vainquent la sécurité : Share & Learn Series - Inclusion de fichiers à distance
Ceux d'entre vous qui lisent cette série de blogs peuvent remarquer de nombreuses similitudes entre la vulnérabilité d'inclusion de fichiers à distance et la vulnérabilité d'inclusion de fichiers locaux et de traversée de chemin dont il a été question précédemment. Leurs causes profondes sont similaires, tout comme les correctifs recommandés.
À bien des égards, la vulnérabilité d'inclusion de fichiers à distance est beaucoup plus dangereuse, et aussi plus facile à exploiter, que son équivalent local. C'est pourquoi il convient de la détecter et d'y remédier dès que possible. Ou mieux encore, les applications web devraient être conçues de manière à éviter qu'elle ne se produise.
Dans cet épisode, vous apprendrez
- Comment les pirates exploitent la vulnérabilité d'inclusion de fichiers à distance
- Pourquoi il est dangereux d'autoriser l'inclusion de fichiers à distance
- Les techniques permettant de résoudre ce problème.
Comment les attaquants exploitent-ils l'inclusion de fichiers à distance ?
La vulnérabilité d'inclusion de fichiers à distance tire parti de la commande ou du mécanisme d'inclusion dynamique de fichiers qui existe dans la plupart des cadres de programmation. Cette capacité est destinée à permettre aux développeurs d'utiliser des fichiers situés sur un serveur secondaire pour exécuter des activités sur le serveur d'application. Il est évident que cela peut s'avérer dangereux entre de mauvaises mains.
Les attaquants exploitent cette capacité en trouvant un site web ou une application qui permet une entrée utilisateur incontrôlée, qui peut provenir d'éléments tels que des en-têtes HTTP ou des zones d'entrée dans des formulaires interactifs. Ils s'en servent comme point de départ pour générer des commandes d'inclusion de fichiers.
Par exemple, si un site utilise la fonction GET pour charger des pages, comme page = request.getParameter("page") ; include page ; un pirate pourrait alors envoyer une requête en utilisant la commande page, mais avec l'URL d'un site qu'il contrôle et le chemin d'accès au fichier qu'il veut exécuter. La requête est alors transmise au serveur et le fichier distant est exécuté sur l'hôte. L'activité est autorisée car elle fait désormais partie de l'application de confiance.
Pourquoi la vulnérabilité d'inclusion de fichier à distance est-elle dangereuse ?
Le niveau de danger posé par l'inclusion de fichiers à distance est extrêmement élevé. Contrairement aux vulnérabilités liées à l'inclusion de fichiers locaux, où les fichiers qu'un attaquant exécute doivent exister sur un hôte et être trouvés par l'attaquant par tâtonnement, l'inclusion de fichiers à distance n'est soumise à aucune restriction de ce type. Il est évident qu'un attaquant connaît l'emplacement des fichiers qu'il veut exploiter puisqu'ils existent probablement sur ses propres machines ou sur des sites qu'il contrôle. Les fichiers peuvent également être choisis par le pirate et n'ont pas besoin d'exister sur la machine cible avant l'exploitation. Le fichier peut même consister en des scripts spécifiquement écrits pour exploiter un hôte distant.
En bref, une fois qu'un attaquant est en mesure de trouver et d'exploiter une vulnérabilité d'inclusion de fichier à distance, rien ne l'empêche de prendre le contrôle total d'une application ou même d'un site entier. Il est certain qu'aucune donnée stockée ne sera à l'abri de leur incursion.
Suppression de la vulnérabilité d'inclusion de fichiers à distance
Ne permettez jamais à l'utilisateur de passer directement à une commande d'inclusion de fichier pour l'exécuter. Utilisez plutôt une carte de référence indirecte des commandes et n'exécutez les commandes qu'à partir de cette carte. Une carte de référence indirecte associe les données non fiables de l'utilisateur à un ensemble de valeurs fiables codées en dur sur le serveur. Veillez à mettre sur liste blanche toutes les zones où les utilisateurs peuvent saisir des données, et n'oubliez pas d'inclure dans cette liste les en-têtes HTTP, les paramètres des formulaires et même les cookies. Cela fermera toute fenêtre qu'un attaquant cherchant à créer une commande d'inclusion de fichier pourrait utiliser.
En prime, une vérification et une validation appropriées du contenu généré par l'utilisateur et l'utilisation de cartes de référence pour exécuter des commandes permettront non seulement d'éliminer la vulnérabilité d'inclusion de fichiers à distance, mais aussi un certain nombre d'autres vulnérabilités, y compris la dangereuse cousine de ce bogue, l'exploit d'inclusion de fichiers locaux et de traversée de chemin d'accès.
Plus d'informations sur l'inclusion de fichiers à distance
Pour en savoir plus, vous pouvez consulter le guide de référence de l'OWASP sur les exploits d'inclusion de fichiers à distance. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité à devenir les meilleurs cyber-guerriers. Pour en savoir plus sur la manière de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
À bien des égards, la vulnérabilité d'inclusion de fichiers à distance est beaucoup plus dangereuse, et aussi plus facile à exploiter, que son équivalent local. C'est pourquoi elle doit être détectée et corrigée dès que possible.
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.
Ceux d'entre vous qui lisent cette série de blogs peuvent remarquer de nombreuses similitudes entre la vulnérabilité d'inclusion de fichiers à distance et la vulnérabilité d'inclusion de fichiers locaux et de traversée de chemin dont il a été question précédemment. Leurs causes profondes sont similaires, tout comme les correctifs recommandés.
À bien des égards, la vulnérabilité d'inclusion de fichiers à distance est beaucoup plus dangereuse, et aussi plus facile à exploiter, que son équivalent local. C'est pourquoi il convient de la détecter et d'y remédier dès que possible. Ou mieux encore, les applications web devraient être conçues de manière à éviter qu'elle ne se produise.
Dans cet épisode, vous apprendrez
- Comment les pirates exploitent la vulnérabilité d'inclusion de fichiers à distance
- Pourquoi il est dangereux d'autoriser l'inclusion de fichiers à distance
- Les techniques permettant de résoudre ce problème.
Comment les attaquants exploitent-ils l'inclusion de fichiers à distance ?
La vulnérabilité d'inclusion de fichiers à distance tire parti de la commande ou du mécanisme d'inclusion dynamique de fichiers qui existe dans la plupart des cadres de programmation. Cette capacité est destinée à permettre aux développeurs d'utiliser des fichiers situés sur un serveur secondaire pour exécuter des activités sur le serveur d'application. Il est évident que cela peut s'avérer dangereux entre de mauvaises mains.
Les attaquants exploitent cette capacité en trouvant un site web ou une application qui permet une entrée utilisateur incontrôlée, qui peut provenir d'éléments tels que des en-têtes HTTP ou des zones d'entrée dans des formulaires interactifs. Ils s'en servent comme point de départ pour générer des commandes d'inclusion de fichiers.
Par exemple, si un site utilise la fonction GET pour charger des pages, comme page = request.getParameter("page") ; include page ; un pirate pourrait alors envoyer une requête en utilisant la commande page, mais avec l'URL d'un site qu'il contrôle et le chemin d'accès au fichier qu'il veut exécuter. La requête est alors transmise au serveur et le fichier distant est exécuté sur l'hôte. L'activité est autorisée car elle fait désormais partie de l'application de confiance.
Pourquoi la vulnérabilité d'inclusion de fichier à distance est-elle dangereuse ?
Le niveau de danger posé par l'inclusion de fichiers à distance est extrêmement élevé. Contrairement aux vulnérabilités liées à l'inclusion de fichiers locaux, où les fichiers qu'un attaquant exécute doivent exister sur un hôte et être trouvés par l'attaquant par tâtonnement, l'inclusion de fichiers à distance n'est soumise à aucune restriction de ce type. Il est évident qu'un attaquant connaît l'emplacement des fichiers qu'il veut exploiter puisqu'ils existent probablement sur ses propres machines ou sur des sites qu'il contrôle. Les fichiers peuvent également être choisis par le pirate et n'ont pas besoin d'exister sur la machine cible avant l'exploitation. Le fichier peut même consister en des scripts spécifiquement écrits pour exploiter un hôte distant.
En bref, une fois qu'un attaquant est en mesure de trouver et d'exploiter une vulnérabilité d'inclusion de fichier à distance, rien ne l'empêche de prendre le contrôle total d'une application ou même d'un site entier. Il est certain qu'aucune donnée stockée ne sera à l'abri de leur incursion.
Suppression de la vulnérabilité d'inclusion de fichiers à distance
Ne permettez jamais à l'utilisateur de passer directement à une commande d'inclusion de fichier pour l'exécuter. Utilisez plutôt une carte de référence indirecte des commandes et n'exécutez les commandes qu'à partir de cette carte. Une carte de référence indirecte associe les données non fiables de l'utilisateur à un ensemble de valeurs fiables codées en dur sur le serveur. Veillez à mettre sur liste blanche toutes les zones où les utilisateurs peuvent saisir des données, et n'oubliez pas d'inclure dans cette liste les en-têtes HTTP, les paramètres des formulaires et même les cookies. Cela fermera toute fenêtre qu'un attaquant cherchant à créer une commande d'inclusion de fichier pourrait utiliser.
En prime, une vérification et une validation appropriées du contenu généré par l'utilisateur et l'utilisation de cartes de référence pour exécuter des commandes permettront non seulement d'éliminer la vulnérabilité d'inclusion de fichiers à distance, mais aussi un certain nombre d'autres vulnérabilités, y compris la dangereuse cousine de ce bogue, l'exploit d'inclusion de fichiers locaux et de traversée de chemin d'accès.
Plus d'informations sur l'inclusion de fichiers à distance
Pour en savoir plus, vous pouvez consulter le guide de référence de l'OWASP sur les exploits d'inclusion de fichiers à distance. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité à devenir les meilleurs cyber-guerriers. Pour en savoir plus sur la manière de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Ceux d'entre vous qui lisent cette série de blogs peuvent remarquer de nombreuses similitudes entre la vulnérabilité d'inclusion de fichiers à distance et la vulnérabilité d'inclusion de fichiers locaux et de traversée de chemin dont il a été question précédemment. Leurs causes profondes sont similaires, tout comme les correctifs recommandés.
À bien des égards, la vulnérabilité d'inclusion de fichiers à distance est beaucoup plus dangereuse, et aussi plus facile à exploiter, que son équivalent local. C'est pourquoi il convient de la détecter et d'y remédier dès que possible. Ou mieux encore, les applications web devraient être conçues de manière à éviter qu'elle ne se produise.
Dans cet épisode, vous apprendrez
- Comment les pirates exploitent la vulnérabilité d'inclusion de fichiers à distance
- Pourquoi il est dangereux d'autoriser l'inclusion de fichiers à distance
- Les techniques permettant de résoudre ce problème.
Comment les attaquants exploitent-ils l'inclusion de fichiers à distance ?
La vulnérabilité d'inclusion de fichiers à distance tire parti de la commande ou du mécanisme d'inclusion dynamique de fichiers qui existe dans la plupart des cadres de programmation. Cette capacité est destinée à permettre aux développeurs d'utiliser des fichiers situés sur un serveur secondaire pour exécuter des activités sur le serveur d'application. Il est évident que cela peut s'avérer dangereux entre de mauvaises mains.
Les attaquants exploitent cette capacité en trouvant un site web ou une application qui permet une entrée utilisateur incontrôlée, qui peut provenir d'éléments tels que des en-têtes HTTP ou des zones d'entrée dans des formulaires interactifs. Ils s'en servent comme point de départ pour générer des commandes d'inclusion de fichiers.
Par exemple, si un site utilise la fonction GET pour charger des pages, comme page = request.getParameter("page") ; include page ; un pirate pourrait alors envoyer une requête en utilisant la commande page, mais avec l'URL d'un site qu'il contrôle et le chemin d'accès au fichier qu'il veut exécuter. La requête est alors transmise au serveur et le fichier distant est exécuté sur l'hôte. L'activité est autorisée car elle fait désormais partie de l'application de confiance.
Pourquoi la vulnérabilité d'inclusion de fichier à distance est-elle dangereuse ?
Le niveau de danger posé par l'inclusion de fichiers à distance est extrêmement élevé. Contrairement aux vulnérabilités liées à l'inclusion de fichiers locaux, où les fichiers qu'un attaquant exécute doivent exister sur un hôte et être trouvés par l'attaquant par tâtonnement, l'inclusion de fichiers à distance n'est soumise à aucune restriction de ce type. Il est évident qu'un attaquant connaît l'emplacement des fichiers qu'il veut exploiter puisqu'ils existent probablement sur ses propres machines ou sur des sites qu'il contrôle. Les fichiers peuvent également être choisis par le pirate et n'ont pas besoin d'exister sur la machine cible avant l'exploitation. Le fichier peut même consister en des scripts spécifiquement écrits pour exploiter un hôte distant.
En bref, une fois qu'un attaquant est en mesure de trouver et d'exploiter une vulnérabilité d'inclusion de fichier à distance, rien ne l'empêche de prendre le contrôle total d'une application ou même d'un site entier. Il est certain qu'aucune donnée stockée ne sera à l'abri de leur incursion.
Suppression de la vulnérabilité d'inclusion de fichiers à distance
Ne permettez jamais à l'utilisateur de passer directement à une commande d'inclusion de fichier pour l'exécuter. Utilisez plutôt une carte de référence indirecte des commandes et n'exécutez les commandes qu'à partir de cette carte. Une carte de référence indirecte associe les données non fiables de l'utilisateur à un ensemble de valeurs fiables codées en dur sur le serveur. Veillez à mettre sur liste blanche toutes les zones où les utilisateurs peuvent saisir des données, et n'oubliez pas d'inclure dans cette liste les en-têtes HTTP, les paramètres des formulaires et même les cookies. Cela fermera toute fenêtre qu'un attaquant cherchant à créer une commande d'inclusion de fichier pourrait utiliser.
En prime, une vérification et une validation appropriées du contenu généré par l'utilisateur et l'utilisation de cartes de référence pour exécuter des commandes permettront non seulement d'éliminer la vulnérabilité d'inclusion de fichiers à distance, mais aussi un certain nombre d'autres vulnérabilités, y compris la dangereuse cousine de ce bogue, l'exploit d'inclusion de fichiers locaux et de traversée de chemin d'accès.
Plus d'informations sur l'inclusion de fichiers à distance
Pour en savoir plus, vous pouvez consulter le guide de référence de l'OWASP sur les exploits d'inclusion de fichiers à distance. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité à devenir les meilleurs cyber-guerriers. Pour en savoir plus sur la manière de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
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.
Ceux d'entre vous qui lisent cette série de blogs peuvent remarquer de nombreuses similitudes entre la vulnérabilité d'inclusion de fichiers à distance et la vulnérabilité d'inclusion de fichiers locaux et de traversée de chemin dont il a été question précédemment. Leurs causes profondes sont similaires, tout comme les correctifs recommandés.
À bien des égards, la vulnérabilité d'inclusion de fichiers à distance est beaucoup plus dangereuse, et aussi plus facile à exploiter, que son équivalent local. C'est pourquoi il convient de la détecter et d'y remédier dès que possible. Ou mieux encore, les applications web devraient être conçues de manière à éviter qu'elle ne se produise.
Dans cet épisode, vous apprendrez
- Comment les pirates exploitent la vulnérabilité d'inclusion de fichiers à distance
- Pourquoi il est dangereux d'autoriser l'inclusion de fichiers à distance
- Les techniques permettant de résoudre ce problème.
Comment les attaquants exploitent-ils l'inclusion de fichiers à distance ?
La vulnérabilité d'inclusion de fichiers à distance tire parti de la commande ou du mécanisme d'inclusion dynamique de fichiers qui existe dans la plupart des cadres de programmation. Cette capacité est destinée à permettre aux développeurs d'utiliser des fichiers situés sur un serveur secondaire pour exécuter des activités sur le serveur d'application. Il est évident que cela peut s'avérer dangereux entre de mauvaises mains.
Les attaquants exploitent cette capacité en trouvant un site web ou une application qui permet une entrée utilisateur incontrôlée, qui peut provenir d'éléments tels que des en-têtes HTTP ou des zones d'entrée dans des formulaires interactifs. Ils s'en servent comme point de départ pour générer des commandes d'inclusion de fichiers.
Par exemple, si un site utilise la fonction GET pour charger des pages, comme page = request.getParameter("page") ; include page ; un pirate pourrait alors envoyer une requête en utilisant la commande page, mais avec l'URL d'un site qu'il contrôle et le chemin d'accès au fichier qu'il veut exécuter. La requête est alors transmise au serveur et le fichier distant est exécuté sur l'hôte. L'activité est autorisée car elle fait désormais partie de l'application de confiance.
Pourquoi la vulnérabilité d'inclusion de fichier à distance est-elle dangereuse ?
Le niveau de danger posé par l'inclusion de fichiers à distance est extrêmement élevé. Contrairement aux vulnérabilités liées à l'inclusion de fichiers locaux, où les fichiers qu'un attaquant exécute doivent exister sur un hôte et être trouvés par l'attaquant par tâtonnement, l'inclusion de fichiers à distance n'est soumise à aucune restriction de ce type. Il est évident qu'un attaquant connaît l'emplacement des fichiers qu'il veut exploiter puisqu'ils existent probablement sur ses propres machines ou sur des sites qu'il contrôle. Les fichiers peuvent également être choisis par le pirate et n'ont pas besoin d'exister sur la machine cible avant l'exploitation. Le fichier peut même consister en des scripts spécifiquement écrits pour exploiter un hôte distant.
En bref, une fois qu'un attaquant est en mesure de trouver et d'exploiter une vulnérabilité d'inclusion de fichier à distance, rien ne l'empêche de prendre le contrôle total d'une application ou même d'un site entier. Il est certain qu'aucune donnée stockée ne sera à l'abri de leur incursion.
Suppression de la vulnérabilité d'inclusion de fichiers à distance
Ne permettez jamais à l'utilisateur de passer directement à une commande d'inclusion de fichier pour l'exécuter. Utilisez plutôt une carte de référence indirecte des commandes et n'exécutez les commandes qu'à partir de cette carte. Une carte de référence indirecte associe les données non fiables de l'utilisateur à un ensemble de valeurs fiables codées en dur sur le serveur. Veillez à mettre sur liste blanche toutes les zones où les utilisateurs peuvent saisir des données, et n'oubliez pas d'inclure dans cette liste les en-têtes HTTP, les paramètres des formulaires et même les cookies. Cela fermera toute fenêtre qu'un attaquant cherchant à créer une commande d'inclusion de fichier pourrait utiliser.
En prime, une vérification et une validation appropriées du contenu généré par l'utilisateur et l'utilisation de cartes de référence pour exécuter des commandes permettront non seulement d'éliminer la vulnérabilité d'inclusion de fichiers à distance, mais aussi un certain nombre d'autres vulnérabilités, y compris la dangereuse cousine de ce bogue, l'exploit d'inclusion de fichiers locaux et de traversée de chemin d'accès.
Plus d'informations sur l'inclusion de fichiers à distance
Pour en savoir plus, vous pouvez consulter le guide de référence de l'OWASP sur les exploits d'inclusion de fichiers à distance. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité à devenir les meilleurs cyber-guerriers. Pour en savoir plus sur la manière de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
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
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.
Plongée en profondeur : Naviguer dans la vulnérabilité critique de CUPS dans les systèmes GNU-Linux
Découvrez les derniers défis de sécurité auxquels sont confrontés les utilisateurs de Linux en explorant les récentes vulnérabilités de haute sévérité dans le système d'impression commun d'UNIX (CUPS). Apprenez comment ces problèmes peuvent conduire à une potentielle exécution de code à distance (RCE) et ce que vous pouvez faire pour protéger vos systèmes.