Maison > Article > Opération et maintenance > Exemple d'analyse des risques du site framework Struts2
1. Présentation
Un projet open source sponsorisé par Apache Software Foundation (ASF) est Struts. Le projet a commencé comme une branche du projet de Jakarta et a ensuite été promu au rang de projet de haut niveau de l'ASF. En utilisant la technologie Java Servlet/JSP, il implémente le cadre d'application [Web Framework] basé sur le modèle de conception Model-View-Controller [MVC] des applications Web Java EE. Il s'agit d'un produit classique dans le modèle de conception classique MVC.
Au début du développement des applications Web Java EE, en plus d'utiliser la technologie Servlet, elles étaient généralement développées en utilisant un mélange de code HTML et Java dans le code source des JavaServer Pages (JSP) . Ces deux méthodes sont inévitables dans le mélange de performances et de code de logique métier, ce qui apporte une énorme complexité au développement initial et à la maintenance ultérieure. Afin de se débarrasser des contraintes et limitations ci-dessus et de séparer clairement le code de logique métier de la couche de présentation, Craig McClanahan a adopté en 2000 le modèle de conception MVC pour développer Struts. Ce produit framework était autrefois considéré comme le framework d'application WEB JAVA le plus complet et le plus populaire
Struts2 est un framework d'application Web basé sur le modèle de conception MVC. Il est essentiellement équivalent à un servlet dans le modèle de conception MVC. , Struts2 sert de contrôleur (Controller) pour établir l'interaction des données entre le modèle et la vue. Struts 2 est le produit de nouvelle génération de Struts. Il s'agit d'un nouveau framework Struts 2 qui fusionne les technologies de Struts 1 et WebWork
Le problème d'exécution de code de Struts2 remonte à 2010, lorsque Meder Kydyraliev de l'équipe de sécurité de Google a découvert qu'il pourrait être contourné en utilisant le codage unicde. Le caractère spécial "#" est filtré par l'intercepteur de paramètres, provoquant des problèmes d'exécution de code. Le numéro de vulnérabilité officiel est S2-003,
Retour sur l'historique. des vulnérabilités struts2, nous avons constaté que le responsable n'était pas à blâmer. Premièrement, le développement. La sensibilisation du personnel à la sécurité n'est pas forte et, bien que des mesures de sécurité de base aient été prises, elles sont inefficaces. Deuxièmement, nous estimons que les mesures officielles de réparation manquent de force et semblent n'être que superficielles, sans vraiment résoudre la cause profonde du problème. De plus, l'esprit d'ouverture officiel est vraiment choquant. Ils ont même directement publié le PoC de la vulnérabilité sur le site officiel, ce qui a donné à de nombreuses personnes l'opportunité d'étudier plus en profondeur l'exploitation de la vulnérabilité. plus sérieux.
CVE-2013-2251Struts2 # 🎜🎜#Struts2
Struts2 CNVD-2016-02506 , CVE-2016-3081, versions concernées de Struts 2.3.20 - StrutsStruts 2.3.28 (sauf 2.3.20.3 et 2.3.24.3)Numéro CVE : CVE-2016-4438 Struts(S2-037 ) Vulnérabilité d'exécution de code à distance, versions concernées : Struts 2.3.20 - Struts Struts 2.3.28.1CVE-2017-5638 Versions concernées : Struts 2.3.5 - Struts 2.3.31# 🎜 🎜#Struts 2.5 –Struts 2.5.10
Pour d'autres détails, veuillez vous référer à l'historique des vulnérabilités fourni par le site officiel de struts2 :https ://cwiki .apache.org/confluence/display/WW/Security+Bulletins
3. avec des vulnérabilités fréquentes, nous avons mené une enquête et des statistiques sur la répartition du cadre Struts dans la province, en prenant les empreintes digitales des sites de chaque ville, nous avons dessiné un diagramme de répartition de l'utilisation du cadre Strut2 dans diverses villes de la province comme suit :
# 🎜🎜#
En combinant l'analyse du Big Data et l'identification de mots-clés, nous avons analysé les conditions de l'industrie collectées dans lesquelles les sites Strust2 sont utilisés et en avons tiré les tableau suivant :
Données spécifiques du tableau :
Numéro de série | Type d'industrie | Quantité | Pourcentage |
1 | Département du Gouvernement | 447 | 28,29% |
2 | Établissements d'enseignement | 155 | 9,80% |
3 | Industrie financière | 110 6,96% | |
Industrie des assurances | 28 | 1,77 % | |
Industrie des valeurs mobilières | 14 | 0,88% | |
Industrie de l'énergie | 8 | 0,50% | |
Industrie des transports | 93 | 5,88% | |
Opérateurs télécoms | 114 | 7,21% | |
Entreprises Internet | 398 | 25,18% | |
Autres sociétés | 213 | 13,48% |
Nous avons collecté Utilisez le site middleware Struts2 pour la détection des vulnérabilités. Cette fois, nous utilisons plusieurs vulnérabilités à haut risque qui ont un impact relativement important sur Internet pour la vérification, détectons l'existence de vulnérabilités (S2-045, S2-037, S2-032, S2). -016) et les réparer et les renforcer. , après avoir testé 1580 échantillons de sites, il a été constaté qu'il existe encore certains sites où les vulnérabilités Struts2 n'ont pas été réparées. Les informations statistiques des sites où les vulnérabilités ont été détectées sont les suivantes :
.
Industrie | Il y a des vulnérabilités Quantité | |
---|---|---|
Départements gouvernementaux | 3 | |
Établissements d'enseignement | 2 | |
Industrie financière | 1 | |
Internet Enterprise | 2 | |
Autres | 2 |
4. Suggestions de sécurité
1. Nous devons développer de bonnes habitudes de développement dans le développement du système d'information. La plupart des failles existent dès la phase de développement et, en raison de la négligence pendant le processus de développement, des failles logiques, etc. entraîneront également de grands risques pour la sécurité du système.
2. Les données du site Web sont sauvegardées dans le temps Lorsque le système est attaqué, le système attaqué peut être restauré dans les plus brefs délais.
3. Installez un logiciel antivirus sur le service en arrière-plan, effectuez régulièrement une analyse antivirus et d'autres contrôles de sécurité sur le serveur.
4. Soyez attentif aux dernières vulnérabilités Internet en temps réel et réparez les vulnérabilités du système d'information en temps opportun.
5. Effectuez régulièrement des tests d'intrusion, des tests de vulnérabilité et d'autres travaux sur le système pour découvrir les problèmes à temps et les réparer en temps opportun afin d'éviter que les vulnérabilités ne soient exposées à Internet.
6. Mettez hors ligne les systèmes qui ne sont plus utilisés en temps opportun. En règle générale, les anciens systèmes présentent davantage de problèmes de sécurité et une mauvaise gestion peut entraîner la fuite d'une grande quantité d'informations sensibles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!