Ceci est une Question canonique sur la sécurité du serveur - Répondre aux événements de violation (piratage)
Voir également:
Version canonique
Je soupçonne qu'un ou plusieurs de mes serveurs sont compromis par un pirate, un virus ou un autre mécanisme:
Version originale
2011.01.02 - Je suis en route pour le travail à 21h30. un dimanche parce que notre serveur a été compromis d'une manière ou d'une autre et a entraîné une attaque DOS contre notre fournisseur. L'accès des serveurs à Internet a été fermé, ce qui signifie que plus de 5 à 600 de nos sites clients sont désormais fermés. Maintenant, cela pourrait être un piratage FTP ou une faiblesse du code quelque part. Je ne suis pas sûr jusqu'à ce que j'arrive.
Comment puis-je retrouver cela rapidement? Nous sommes confrontés à de nombreux litiges si je ne récupère pas le serveur dès que possible. Toute aide est appréciée. Nous exécutons Open SUSE 11.0.
2011.01.03 - Merci à tous pour votre aide. Heureusement, je n'étais pas la seule personne responsable de ce serveur, juste la plus proche. Nous avons réussi à résoudre ce problème, bien qu'il puisse ne pas s'appliquer à de nombreux autres dans une situation différente. Je vais détailler ce que nous avons fait.
Nous avons débranché le serveur du net. Il effectuait (tentait de réaliser) une attaque par déni de service sur un autre serveur en Indonésie, et le coupable y était également basé.
Nous avons d'abord essayé d'identifier d'où provenait le serveur, étant donné que nous avons plus de 500 sites sur le serveur, nous nous attendions à faire du clair de lune pendant un certain temps. Cependant, avec l'accès SSH toujours, nous avons exécuté une commande pour trouver tous les fichiers modifiés ou créés au moment où les attaques ont commencé. Heureusement, le fichier incriminé a été créé pendant les vacances d'hiver, ce qui signifie que peu d'autres fichiers ont été créés sur le serveur à l'époque.
Nous avons ensuite pu identifier le fichier incriminé qui se trouvait dans le dossier d'images téléchargées dans un site Web ZenCart .
Après une courte pause cigarette, nous avons conclu qu'en raison de l'emplacement des fichiers, ils devaient avoir été téléchargés via une installation de téléchargement de fichiers qui était mal sécurisée. Après quelques recherches sur Google, nous avons constaté qu'il y avait une vulnérabilité de sécurité qui permettait de télécharger des fichiers, dans le panneau d'administration ZenCart, pour une photo pour une maison de disques. (La section qu'il n'a jamais vraiment utilisée), publier ce formulaire vient de télécharger n'importe quel fichier, il n'a pas vérifié l'extension du fichier et n'a même pas vérifié si l'utilisateur était connecté.
Cela signifiait que tous les fichiers pouvaient être téléchargés, y compris un fichier PHP pour l'attaque. Nous avons sécurisé la vulnérabilité avec ZenCart sur le site infecté et supprimé les fichiers incriminés.
Le travail était fait et j'étais à la maison pendant 2 heures du matin.
The Moral - Toujours appliquer des correctifs de sécurité pour ZenCart, ou tout autre système CMS d'ailleurs. Comme lorsque les mises à jour de sécurité sont publiées, le monde entier est informé de la vulnérabilité. - Faites toujours des sauvegardes et sauvegardez vos sauvegardes. - Employer ou organiser quelqu'un qui sera là dans des moments comme ceux-ci. Pour empêcher quiconque de s'appuyer sur une publication paniquée sur Server Fault.
Il est difficile de donner des conseils spécifiques à partir de ce que vous avez publié ici, mais j'ai quelques conseils génériques basés sur un post que j'ai écrit il y a longtemps, alors que je pouvais encore être dérangé pour bloguer.
Tout d'abord, il n'y a pas de "solution rapide" autre que la restauration de votre système à partir d'une sauvegarde effectuée avant l'intrusion, et cela pose au moins deux problèmes.
Cette question continue d'être posée à plusieurs reprises par les victimes de pirates informatiques s'introduisant dans leur serveur Web. Les réponses changent très rarement, mais les gens continuent de poser la question. Je ne sais pas pourquoi. Peut-être que les gens n'aiment tout simplement pas les réponses qu'ils ont vues en cherchant de l'aide, ou ils ne peuvent pas trouver quelqu'un en qui ils ont confiance pour leur donner des conseils. Ou peut-être que les gens lisent une réponse à cette question et se concentrent trop sur les 5% des raisons pour lesquelles leur cas est spécial et différent des réponses qu'ils peuvent trouver en ligne et manquent les 95% de la question et de la réponse lorsque leur cas est assez proche de la même manière comme celui qu'ils lisent en ligne.
Cela m'amène à la première pépite d'informations importante. J'apprécie vraiment que vous soyez un flocon de neige unique et spécial. J'apprécie que votre site Web soit également un reflet de vous et de votre entreprise ou, à tout le moins, de votre travail acharné pour le compte d'un employeur. Mais pour quelqu'un à l'extérieur qui regarde, que ce soit un responsable de la sécurité informatique qui regarde le problème pour essayer de vous aider ou même l'attaquant lui-même, il est très probable que votre problème sera au moins à 95% identique à tous les autres cas qu'ils ont jamais regardé.
Ne prenez pas l'attaque personnellement, et ne prenez pas les recommandations qui suivent ici ou que vous obtenez personnellement d'autres personnes. Si vous lisez ceci après avoir été victime d'un piratage de site Web, je suis vraiment désolé et j'espère vraiment que vous pourrez trouver quelque chose d'utile ici, mais ce n'est pas le moment de laisser votre ego vous empêcher de faire ce dont vous avez besoin. faire.
Vous venez de découvrir que vos serveurs ont été piratés. Et maintenant?
Ne paniquez pas. N'agissez absolument pas à la hâte et n'essayez absolument pas de prétendre que les choses ne se sont jamais produites et de ne pas agir du tout.
Premièrement: comprenez que la catastrophe s'est déjà produite. Ce n'est pas le moment du déni; c'est le moment d'accepter ce qui s'est passé, d'être réaliste à ce sujet et de prendre des mesures pour gérer les conséquences de l'impact.
Certaines de ces étapes vont faire mal, et (à moins que votre site Web ne contienne une copie de mes coordonnées), je m'en fiche vraiment si vous ignorez tout ou partie de ces étapes, c'est à vous de décider. Mais les suivre correctement améliorera les choses à la fin. Le médicament peut avoir un goût horrible, mais vous devez parfois l'oublier si vous voulez vraiment que le remède fonctionne.
Empêchez le problème de devenir pire qu'il ne l'est déjà:
Quelle que soit la gêne de vos clients de vous faire parler d'un problème, ils seront bien plus agacés si vous ne le leur dites pas, et ils ne le découvriront qu'après que quelqu'un aura facturé 8 000 $ de marchandises en utilisant les détails de leur carte de crédit volé sur votre site.
Rappelez-vous ce que j'ai dit précédemment? La mauvaise chose est déjà arrivée. La seule question qui se pose maintenant est de savoir comment vous y parvenez.
Comprendre parfaitement le problème:
Pourquoi ne pas simplement "réparer" l'exploit ou le rootkit que vous avez détecté et remettre le système en ligne?
Dans de telles situations, le problème est que vous n'avez plus le contrôle de ce système. Ce n'est plus votre ordinateur.
La seule façon d'être certain que vous avez le contrôle du système est de reconstruire le système. Bien qu'il soit très utile de trouver et de réparer l'exploit utilisé pour pénétrer dans le système, vous ne pouvez pas être sûr de ce qui a été fait d'autre dans le système une fois que les intrus ont pris le contrôle (en effet, ce n'est pas inconnu pour les pirates qui recrutent systèmes dans un botnet pour patcher les exploits qu'ils ont eux-mêmes utilisés, pour protéger "leur" nouvel ordinateur des autres pirates, ainsi que pour installer leur rootkit).
Faites un plan de récupération et remettez votre site Web en ligne et respectez-le:
Personne ne veut être déconnecté plus longtemps que nécessaire. C'est une évidence. Si ce site Web est un mécanisme générateur de revenus, la pression pour le réactiver rapidement sera intense. Même si la seule chose en jeu est la réputation de votre/votre entreprise, cela va encore générer beaucoup de pression pour remettre les choses en place rapidement.
Cependant, ne cédez pas à la tentation de revenir en ligne trop rapidement. Au lieu de cela, avancez le plus rapidement possible pour comprendre ce qui a causé le problème et le résoudre avant de vous reconnecter, sinon vous serez certainement à nouveau victime d'une intrusion, et rappelez-vous, "se faire pirater une fois peut être considéré comme un malheur; se faire pirater à nouveau tout de suite après ressemble à de la négligence "(avec des excuses à Oscar Wilde).
Réduire le risque à l'avenir.
La première chose que vous devez comprendre est que la sécurité est un processus que vous devez appliquer tout au long du cycle de vie de la conception, du déploiement et de la maintenance d'un système accessible sur Internet, pas quelque chose que vous pouvez ensuite gifler quelques couches sur votre code comme bon marché Peindre. Pour être correctement sécurisé, un service et une application doivent être conçus dès le départ en gardant cela à l'esprit comme l'un des principaux objectifs du projet. Je me rends compte que c'est ennuyeux et que vous avez déjà entendu tout cela auparavant et que "je ne me rends pas compte de la pression exercée par l'homme" pour que votre service beta web2.0 (beta) devienne bêta sur le web, mais le fait est que cela continue se répéter parce que c'était vrai la première fois qu'on l'a dit et que ce n'est pas encore devenu un mensonge.
Vous ne pouvez pas éliminer le risque. Vous ne devriez même pas essayer de faire ça. Ce que vous devez cependant faire est de comprendre quels risques de sécurité sont importants pour vous, et de comprendre comment gérer et réduire à la fois l'impact du risque et la probabilité que le risque se produise.
Quelles mesures pouvez-vous prendre pour réduire la probabilité de réussite d'une attaque?
Par exemple:
Quelles mesures pouvez-vous prendre pour réduire les conséquences d'une attaque réussie?
Si vous décidez que le "risque" d'inondation de l'étage inférieur de votre maison est élevé, mais pas suffisamment élevé pour justifier un déménagement, vous devez au moins déplacer les héritages irremplaçables de la famille à l'étage. Droite?
... Et enfin
Je n'ai probablement laissé aucune fin à des choses que d'autres considèrent importantes, mais les étapes ci-dessus devraient au moins vous aider à trier les choses si vous n'avez pas la chance de devenir victime de pirates informatiques.
Surtout: ne paniquez pas. Pense avant d'agir. Agissez fermement une fois que vous avez pris une décision et laissez un commentaire ci-dessous si vous avez quelque chose à ajouter à ma liste d'étapes.
On dirait que vous êtes légèrement au-dessus de votre tête; c'est bon. Appelez votre patron et commencez à négocier un budget d'intervention d'urgence. 10 000 $ pourraient être un bon point de départ. Ensuite, vous devez demander à quelqu'un (un PFY, un collègue, un gestionnaire) de commencer à appeler des entreprises spécialisées dans la réponse aux incidents de sécurité. Beaucoup peuvent répondre dans les 24 heures, et parfois même plus rapidement s'ils ont un bureau dans votre ville.
Vous avez également besoin de quelqu'un pour trier les clients; Sans doute, quelqu'un l'est déjà. Quelqu'un doit être au téléphone avec eux pour expliquer ce qui se passe, ce qui est fait pour gérer la situation et répondre à leurs questions.
Ensuite, vous devez ...
Reste calme. Si vous êtes en charge de la réponse aux incidents, ce que vous faites maintenant doit faire preuve du plus grand professionnalisme et leadership. Documentez tout ce que vous faites et tenez votre gestionnaire et votre équipe de direction informés des principales mesures que vous prenez; cela comprend le travail avec une équipe d'intervention, la désactivation des serveurs, la sauvegarde des données et la remise en ligne des éléments. Ils n'ont pas besoin de détails sanglants, mais ils devraient vous entendre toutes les 30 minutes environ.
Être réaliste. Vous n'êtes pas un professionnel de la sécurité et il y a des choses que vous ne savez pas. C'est bon. Lors de la connexion aux serveurs et de la consultation des données, vous devez comprendre vos limites. Marchez doucement. Au cours de votre enquête, assurez-vous de ne pas piétiner des informations vitales ou de modifier quelque chose qui pourrait être nécessaire plus tard. Si vous vous sentez mal à l'aise ou que vous devinez, c'est un bon endroit pour s'arrêter et demander à un professionnel expérimenté de prendre le relais.
Obtenez une clé USB propre et des disques durs de rechange. Vous collecterez des preuves ici. Faites des sauvegardes de tout ce qui vous semble pertinent; communication avec votre FAI, décharges réseau, etc. Même si les forces de l'ordre ne s'impliquent pas, en cas de poursuite, vous voudrez que ces preuves prouvent que votre entreprise a géré l'incident de sécurité de manière professionnelle et appropriée.
Le plus important est d'arrêter la perte. Identifiez et coupez l'accès aux services, données et machines compromis. De préférence, vous devez tirer leur câble réseau; si vous ne le pouvez pas, coupez le courant.
Ensuite, vous devez retirer l'attaquant et fermer le (s) trou (s). Vraisemblablement, l'attaquant n'a plus d'accès interactif car vous avez tiré le réseau. Vous devez maintenant identifier, documenter (avec des sauvegardes, des captures d'écran et vos propres notes d'observation personnelles; ou de préférence même en supprimant les lecteurs des serveurs affectés et en faisant une copie complète de l'image disque), puis supprimez tout code et processus qu'il a laissé derrière . Cette prochaine partie sera nulle si vous n'avez pas de sauvegardes; Vous pouvez essayer de démêler l'attaquant du système à la main, mais vous ne serez jamais sûr d'avoir tout ce qu'il a laissé. Les rootkits sont vicieux et tous ne sont pas détectables. La meilleure réponse sera d'identifier la vulnérabilité qu'il a utilisée pour entrer, de faire des copies d'images des disques affectés, puis d'effacer les systèmes affectés et de recharger à partir d'une bonne sauvegarde connue. Ne faites pas aveuglément confiance à votre sauvegarde; vérifie ça! Réparez ou fermez la vulnérabilité avant que le nouvel hôte ne se connecte à nouveau au réseau, puis mettez-le en ligne.
Organisez toutes vos données dans un rapport. À ce stade, la vulnérabilité est fermée et vous avez le temps de respirer. Ne soyez pas tenté de sauter cette étape; c'est encore plus important que le reste du processus. Dans le rapport, vous devez identifier ce qui n'a pas fonctionné, comment votre équipe a réagi et les mesures que vous prenez pour éviter que cet incident ne se reproduise. Soyez aussi détaillé que possible; ce n'est pas seulement pour vous, mais pour votre gestion et comme défense dans un éventuel procès.
C'est un examen exorbitant de ce qu'il faut faire; la plupart du travail consiste simplement en la documentation et la gestion des sauvegardes. Ne paniquez pas, vous pouvez faire ce genre de choses. Je fortement vous recommande d'obtenir une aide professionnelle en matière de sécurité. Même si vous pouvez gérer ce qui se passe, leur aide sera inestimable et ils viennent généralement avec du matériel pour rendre le processus plus facile et plus rapide. Si votre patron rechigne au prix, rappelez-lui que c'est très petit par rapport à la gestion d'un procès.
Vous avez mes consolations pour votre situation. Bonne chance.
Le CERT a un document Étapes de récupération à partir d'un compromis système UNIX ou NT qui est bon. Les détails techniques spécifiques de ce document sont quelque peu dépassés, mais une grande partie des conseils généraux s'appliquent toujours directement.
Voici un bref résumé des étapes de base.
Je voudrais vous signaler spécifiquement la section E.1.
E.1. N'oubliez pas que si une machine est compromise, tout élément de ce système aurait pu être modifié, y compris le noyau, les fichiers binaires, les fichiers de données, les processus en cours d'exécution et la mémoire. En général, la seule façon de garantir qu'une machine est exempte de portes dérobées et de modifications d'intrus est de réinstaller le
Si vous n'avez pas de système déjà en place comme tripwire, il n'y a aucun moyen pour vous d'être sûr à 100% que vous avez nettoyé le système.
La réponse de "pilule amère" de Robert est précise mais complètement générique (enfin, comme ce fut votre question). Il semble que vous ayez un problème de gestion et que vous ayez un besoin urgent d'un administrateur système à temps plein si vous avez un serveur et 600 clients, mais cela ne vous aide pas maintenant.
Je dirige une société d'hébergement qui offre un peu de prise en main dans cette situation, je traite donc beaucoup de machines compromises, mais aussi les meilleures pratiques pour la nôtre. Nous demandons toujours à nos clients compromis de reconstruire à moins qu'ils ne soient pas absolument sûrs de la nature d'un compromis. Il n'y a pas d'autre voie responsable à long terme.
Cependant, vous êtes presque certainement la victime d'un script kiddy qui voulait une rampe de lancement pour les attaques DoS, ou IRC bouncers, ou quelque chose de complètement indépendant des sites et des données de vos clients. Par conséquent, en tant que mesure temporaire pendant la reconstruction, vous pourriez envisager de mettre en place un pare-feu sortant lourd sur votre boîte. Si vous pouvez bloquer toutes les connexions UDP sortantes et TCP qui ne sont pas absolument nécessaires au fonctionnement de vos sites) , vous pouvez facilement rendre votre boîtier compromis inutile à quiconque vous l'emprunte et atténuer l'effet sur le réseau de votre fournisseur à zéro.
Ce processus peut prendre quelques heures si vous ne l'avez pas encore fait et n'a jamais envisagé de pare-feu, mais peut vous aider à restaurer le service de vos clients au risque de continuer à donner à l'attaquant un accès aux données de vos clients . Puisque vous dites que vous avez des centaines de clients sur une seule machine, je suppose que vous hébergez de petits sites Web de brochures pour les petites entreprises, et non 600 systèmes de commerce électronique remplis de numéros de cartes de crédit. Si tel est le cas, cela peut être un risque acceptable pour vous et remettre votre système en ligne plus rapidement que l'audit de 600 sites pour les bogues de sécurité avant de rapporter quoi que ce soit . Mais vous saurez quelles données sont disponibles et à quel point vous seriez à l'aise de prendre cette décision.
Ce n'est absolument pas la meilleure pratique, mais si ce n'est pas ce qui s'est passé chez votre employeur jusqu'à présent, agitez le doigt vers lui et demandez des dizaines de milliers de livres pour une équipe SWAT pour quelque chose qu'il pourrait estimer être de votre faute (même si cela n'est pas justifié! ) ne ressemble pas à l'option pratique.
L'aide de votre FAI ici sera assez cruciale - certains FAI fournissent un serveur de console et un environnement d'initialisation résea (branchez, mais au moins vous savez quel type d'installation rechercher) qui vous permettra d'administrer le serveur lorsqu'il est déconnecté du réseau. Si c'est une option, demandez-la et utilisez-la.
Mais à long terme, vous devez planifier une reconstruction du système sur la base du message de Robert et un audit de chaque site et de sa configuration. Si vous ne pouvez pas ajouter un administrateur système à votre équipe, recherchez un accord hébergement géré où vous payez votre FAI pour l'aide à l'administration système et une réponse dans les 24 heures pour ce genre de chose. Bonne chance :)
Vous devez réinstaller. Enregistrez ce dont vous avez vraiment besoin. Mais gardez à l'esprit que tous vos fichiers exécutables peuvent être infectés et falsifiés. J'ai écrit ce qui suit en python: http://frw.se/monty.py qui crée MD5-sumbs de tous vos fichiers dans un répertoire donné et la prochaine fois que vous l'exécutez, il vérifie si quelque chose a été modifié, puis affichez quels fichiers ont changé et ce qui a changé dans les fichiers.
Cela pourrait être pratique pour vous, pour voir si des fichiers étranges sont modifiés régulièrement.
Mais la seule chose que vous devriez faire maintenant, c'est de supprimer votre ordinateur d'Internet.
REMARQUE: Ce n'est pas une recommandation. Mon protocole spécifique de réponse aux incidents ne serait probablement pas ne s'applique pas sans modification au cas de Grant unwin.
Dans nos installations universitaires, nous avons environ 300 chercheurs qui ne font que du calcul. Vous avez 600 clients avec des sites Web, donc votre protocole sera probablement différent.
Les premières étapes de notre Lorsqu'un serveur obtient un protocole compromis est:
dd
Commencez à faire de la criminalistique post mortem. Regardez les journaux, déterminez l'heure de l'attaque, trouvez les fichiers qui ont été modifiés à cette heure. Essayez de répondre à la question Comment? .
Même si "tous les backdoors et rootkits sont nettoyés", ne faites pas confiance à ce système - réinstallez-le à partir de zéro.
Je dirais que @Robert Moir, @Aleksandr Levchuk, @blueben et @Matthew Bloch sont tous assez précis dans leurs réponses.
Cependant, les réponses des différentes affiches diffèrent - certaines sont plutôt de haut niveau et parlent des procédures à mettre en place (en général).
Je préfère séparer cela en plusieurs parties distinctes 1) Triage, AKA Comment traiter avec les clients et les implications juridiques, et identifier où aller à partir de là (très bien répertorié par Robert et @blueben 2) Atténuation de l'impact 3 ) Réponse aux incidents 4) Médecine légale post-mortem 5) Éléments de correction et changements d'architecture
(Insérez ici la déclaration de réponse certifiée SANS GSC passe-partout.) Sur la base des expériences passées, je dirais ce qui suit:
Quelle que soit la façon dont vous gérez les réponses des clients, les notifications, les plans juridiques et futurs, je préfère me concentrer sur le problème principal à résoudre. La question initiale de l'OP ne concerne vraiment que les points 2 et 3, essentiellement, comment arrêter l'attaque, remettre les clients en ligne dès que possible dans leur état d'origine, qui a été bien couvert dans les réponses.
Les autres réponses sont excellentes et couvrent un grand nombre de meilleures pratiques identifiées et de moyens pour à la fois empêcher que cela se produise à l'avenir et mieux y répondre.
Cela dépend vraiment du budget du PO et du secteur dans lequel il se trouve, de la solution souhaitée, etc.
Peut-être qu'ils ont besoin d'embaucher une SA dédiée sur site. Ils ont peut-être besoin d'une personne chargée de la sécurité. Ou peut-être ont-ils besoin d'une solution entièrement gérée comme Firehost ou Rackspace Managed, Softlayer, ServePath, etc.
Cela dépend vraiment de ce qui fonctionne pour leur entreprise. Peut-être que leur compétence principale n'est pas la gestion de serveurs et cela n'a aucun sens pour eux d'essayer de développer cela. Ou, peut-être qu'ils sont déjà une organisation assez technique et peuvent prendre les bonnes décisions d'embauche et faire appel à une équipe dédiée à temps plein.
D'après mon expérience limitée, les compromis système sous Linux ont tendance à être plus "complets" qu'ils ne le sont sous Windows. Les kits racine sont beaucoup plus susceptibles d'inclure le remplacement des fichiers binaires du système par du code personnalisé pour masquer les logiciels malveillants, et la barrière aux correctifs à chaud du noyau est un peu plus faible. De plus, c'est le système d'exploitation domestique pour de nombreux auteurs de logiciels malveillants. Le conseil général est toujours de reconstruire le serveur affecté à partir de zéro, et c'est le conseil général pour une raison.
Formatez ce chiot.
Mais, si vous ne pouvez pas reconstruire (ou si les pouvoirs ne vous permettent pas de le reconstruire contre votre insistance acharnée qu'il en a besoin), que recherchez-vous?
Comme il semble que cela fait un moment que l'intrusion n'a pas été découverte et qu'une restauration du système a été effectuée, il est très probable que les traces de la façon dont ils sont entrés ont été piétinées dans la bousculade pour restaurer le service. Malheureux.
Le trafic réseau inhabituel est probablement le plus facile à trouver, car cela n'implique pas d'exécuter quoi que ce soit sur la boîte et peut être fait pendant que le serveur est en marche et fait quoi que ce soit. En supposant, bien sûr, que votre équipement de mise en réseau permette le transfert de ports. Ce que vous trouvez peut ou non être un diagnostic, mais au moins ce sont des informations. L'obtention d'un trafic inhabituel sera une preuve solide que le système est toujours compromis et doit être aplati. Il pourrait être suffisant de convaincre TPTB qu'un reformatage vaut vraiment, vraiment, le temps d'arrêt.
A défaut, prenez une copie jj de vos partitions système et montez-les sur une autre box. Commencez à comparer le contenu avec un serveur au même niveau de correctif que celui compromis. Cela devrait vous aider à identifier ce qui semble différent (ces sommes md5 à nouveau) et peut pointer vers des zones négligées sur le serveur compromis. C'est BEAUCOUP de passer au crible les répertoires et les fichiers binaires, et sera plutôt laborieux. Il peut même être plus exigeant en main-d'œuvre qu'un reformatage/reconstruction ne le serait, et peut être une autre chose pour convaincre TPTB de réellement faire le reformatage dont il a vraiment besoin.
Après être arrivé au travail et avoir regardé le serveur, nous avons réussi à comprendre le problème. Heureusement, les fichiers incriminés ont été téléchargés sur le système un dimanche, lorsque le bureau est fermé et aucun fichier ne doit être créé, à l'exception des journaux et des fichiers de cache. Avec une simple commande Shell pour savoir quels fichiers ont été créés ce jour-là, nous les avons trouvés.
Tous les fichiers incriminés semblent se trouver dans le dossier/images/de certains de nos anciens sites zencart. Il semble qu'il y avait une vulnérabilité de sécurité qui permettait (en utilisant curl) à n'importe quel idiot de télécharger des non-images dans la section de téléchargement d'images de la section admin. Nous avons supprimé les fichiers .php incriminés et corrigé les scripts de téléchargement pour interdire tout téléchargement de fichiers qui ne sont pas des images.
Rétrospectivement, c'était assez simple et j'ai posé cette question sur mon iPhone en route vers le travail. Merci pour votre aide.
Pour la référence de toute personne qui visite ce poste à l'avenir. Je pas recommande de retirer la fiche d'alimentation.
Je pense que tout se résume à ceci:
Si vous appréciez votre travail, vous feriez mieux d'avoir un plan et de le réviser régulièrement.
Ne pas planifier, c'est planifier l'échec, et ce n'est pas plus vrai ailleurs que dans la sécurité des systèmes. Lorsque <réputé> frappe le ventilateur, vous feriez mieux d'être prêt à y faire face.
Il y a un autre dicton (quelque peu cliché) qui s'applique ici: Mieux vaut prévenir que guérir .
Il y a eu un certain nombre de recommandations ici pour faire appel à des experts pour auditer vos systèmes existants. Je pense que cela pose la question au mauvais moment. Cette question aurait dû être posée lors de la mise en place du système et les réponses documentées. En outre, la question ne devrait pas être "Comment pouvons-nous empêcher les gens de s'introduire?" Cela devrait être "Pourquoi les gens devraient-ils pouvoir s'introduire?" L'audit d'un groupe de trous dans votre réseau ne fonctionnera que jusqu'à ce que de nouveaux trous soient trouvés et exploités. D'un autre côté, les réseaux qui sont conçus à partir de zéro pour ne répondre que de certaines manières à certains systèmes dans une danse soigneusement chorégraphiée ne bénéficieront pas du tout d'un audit et les fonds seront un gaspillage.
Avant de mettre un système sur Internet, posez-vous la question: faut-il que celui-ci soit accessible à 100% sur Internet? Sinon, non. Pensez à le placer derrière un pare-feu où vous pouvez décider de ce que voit Internet. Encore mieux, si ledit pare-feu vous permet d'intercepter les transmissions (via un proxy inverse ou un filtre pass-through d'une certaine sorte), envisagez de l'utiliser pour ne permettre que des actions légitimes.
Cela a été fait - il y a (ou il y avait) une configuration de banque en ligne quelque part qui a un proxy d'équilibrage de charge face à Internet qu'ils allaient utiliser pour repousser les attaques de leur pool de serveurs. L'expert en sécurité Marcus Ranum les a convaincus d'adopter l'approche inverse, en en utilisant le proxy inverse pour autoriser uniquement les URL valides connues et envoyer tout le reste à un serveur 404 . Cela a étonnamment bien résisté à l'épreuve du temps.
Un système ou un réseau basé sur un permis par défaut est voué à l'échec dès qu'une attaque que vous ne prévoyiez pas se produit. Le refus par défaut vous donne beaucoup plus de contrôle sur ce qui entre et ce qui ne l'est pas, car vous ne laisserez rien de l'intérieur être vu de l'extérieur à moins qu'il ne soit bien besoin d'être .
Cela dit, tout cela n'est pas une raison de faire preuve de complaisance. Vous devriez toujours avoir un plan en place pour les premières heures après une violation. Aucun système n'est parfait et les humains font des erreurs.
Un Nice onliner m'a aidé récemment à découvrir comment un attaquant pouvait compromettre un système. Certains crackers tentent de masquer leurs traces en forgeant le temps de modification sur les fichiers. En modifiant l'heure de modification, l'heure de modification est mise à jour (ctime). vous pouvez voir le ctime avec stat.
Ce dossier répertorie tous les fichiers triés par ctime:
find / -type f -print0 | xargs -0 stat --format '%Z :%z %n' | sort -nr > /root/all_files.txt
Donc, si vous connaissez approximativement l'heure du compromis, vous pouvez voir quels fichiers sont modifiés ou créés.