Forum OVH  

Précédent   Forum OVH > Hébergements mutualisés > HOW-TO
S'inscrire FAQ Guides Recherche Messages du jour Marquer les forums comme lus

Réponse
 
Outils de la discussion
Vieux 12/08/2007, 21h56   #1
enycu
Membre
 
Date d'inscription: décembre 2004
Messages: 3 206
Sécuriser et protéger son site web des attaques des pirates et hackers

Je vous propose de partager votre expérience de lutte contre le piratage et le hacking de vos sites web hébergés en mutualisé chez OVH.

POUR TOUT PROBLEME D'APPLICATION, créez une discussion dans le forum "Hébergement Mutualisé" et NON dans cet article NI dans le sous-forum HOW-TO afin que tout le monde puisse trouver l'article qu'il cherche. Merci.
Donc, ne répondez pas ici, mais dans l'autre forum.

POSTEZ ICI VOS ASTUCES ANTI-PIRATAGE. L'objectif de cette discussion est de faire une liste de trucs et astuces.

Comment éviter que votre site ne soit utilisé par un pirate pour qu'il envoie ses spams à partir de votre compte ? Comment éviter le "defacing", c'est-à-dire l'effacement de votre site web et son remplacement par un autre, ou une page avec un slogan anti-occidental ? Comment éviter certains trous de sécurité?

Les serveurs en mutualisé d'OVH sont relativement sécurisés et OVH dispose d'outils qui lui permettent de bloquer certains comportements suspects. Cette action a posteriori bloque notre compte. Il est donc préférable de prévenir ce type de piratage. En tant que client et utilisateur, nous devons éviter la suspension de notre compte si nous sommes la victime d'une attaque.

Voici donc quelques conseils. C'est l'accumulation de ces trucs et astuces qui sécurisera votre site, car il n'y a pas de solution unique; les pirates utilisent plusieurs moyens différents.

Qui sont les pirates? Dans 80% des cas, ce sont des "skiddy", des jeunes ("kid" en anglais, "kiddy" pour petit jeune) qui utilisent des scripts prêts à l'emploi (le "s" de skiddy) qu'on trouve facilement sur le web pour exploiter les failles d'un blog, forum, cms, gallery, wiki, etc. Ils ne font qu'utiliser ces scripts comme on utilise un logiciel. Ce ne sont pas des "petits génies". Ils se lancent des défis à celui qui effacera le plus de sites web. Les autres sont des pirates au service d'une mafia afin de transformer votre site web et une faille de votre blog, forum, cms, gallery, wiki en logiciel d'envoi de spams. Ceux-là créent leurs propres scripts qu'ils ne partagent pas avec une communauté.

Pourquoi attaquent-ils votre site? Ni le skiddy, ni le mafieux ne vous visent personnellement. Les uns le font pour le jeu, les autres pour l'argent. Il est peu probable qu'on vous vise pour des raisons politiques. Certains skiddies effacent des sites et se cachent derrière des pseudo slogans anti-occidentaux, histoire de vous faire peur et de se prendre au sérieux. Il n'en est rien.

Comment savent-ils que mon site a une faille de sécurité? Réponse: Google ! Il cherche un fichier précis comme login.php, confip.php, ou autres, et, combiné avec quelques mots-clés, ils savent quel blog, forum, cms, gallery, wiki vous utilisez, et essaieront de lancer un script pour tester si l'attaque fonctionne. Il ne font pas ça manuellement, ils ont des logiciels qui le font automatiquement !! Leurs logiciels testent chaque URL listée par Google à la recherche de la faille. C'est aussi simple que ça. Ils vous trouvent par hasard.

Donc, nous allons essayer de nous prémunir contre ces attaques automatiques. Ces conseils ne concernent que les sites web hébergés en mutualisé sur OVH et utilisant un blog, forum, cms, gallery, wiki , etc.

CONSEIL NUMÉRO 1: votre blog, forum, cms, gallery, wiki doit être à jour. Vous suivrez les mises à jour sécurité et les installerez sans attendre.

LES RÈGLES LES PLUS IMPORTANTES:
Comme ce tutoriel est long, voici les règles qu'il faut appliquer en priorité. Vous pourrez inclure les autres après.
1- Attribuer par FTP aux fichiers les droits chmod 404 et aux dossiers les droits chmod 505. Voir l'article ici: http://forum.ovh.com/showpost.php?p=103753

2- Règles de filtrage par htaccess. Permet d'arrêter de nombreuses attaques avant de toucher votre site web. Voir les 2 articles ici http://forum.ovh.com/showpost.php?p=103757 et là http://forum.ovh.com/showpost.php?p=103758

3- Règles de sauvegarde et de restauration de votre site web. D'abord, vérifiez quels fichiers le pirate a ajouté ou modifié en installant ce script: http://forum.ovh.com/showpost.php?p=104517 . Ensuite, êtes-vous capable d'effacer complètement votre site web pour effacer toutes les traces du pirate et de tout réactiver en 30 minutes? Voici comment. Pour la sauvegarde: http://forum.ovh.com/showpost.php?p=108086 et la restauration: http://forum.ovh.com/showpost.php?p=108087

4- Si vous programmez en PHP, des règles simples de filtrages sont ici: http://forum.ovh.com/showpost.php?p=104634. Même chose pour l'injection SQL: http://forum.ovh.com/showpost.php?p=107657 . Ne soyez pas irresponsable, pensez à filtrer tout ce qui rentre dans votre script.

Dernière modification par enycu 28/06/2010 à 20h42 Motif: modif "règles importantes" n°3
enycu est déconnecté   Réponse avec citation
Vieux 12/08/2007, 21h57   #2
enycu
Membre
 
Date d'inscription: décembre 2004
Messages: 3 206
Re : Sécuriser et protéger son site web des attaques des pirates et hackers

Les droits d'écriture, de lecture et d'exécution.

-= INDISPENSABLE =-

Plus d'infos ici:
Le guide d'OVH sur cette question.
Description du CHMOD et de la signification des numéros.

On a l'habitude de dire qu'on doit attribuer par FTP les droits 644 à un fichier et 755 à un dossier.
En fait, le serveur mutualisé d'OVH ne semble pas utiliser de groupe. Donc, on pourrait très bien utiliser les droits 604 pour un fichier et 705 pour un dossier. Si un pirate pénètre le système avec un droit de groupe, il n'aura accès à rien, ni en lecture ni en écriture.

On peut aller plus loin. Protégeons les parties sensibles de votre blog, forum, cms, gallery, wiki, comme le fichier config.php et .htaccess en lui donnant les droits 404. Personne ne pourra le modifier, même pas vous (c'est faux dans l'absolu si votre site a un gros trou de sécurité, mais imparable contre une attaque automatique). Vous ne pourrez le faire que par FTP quand vous aurez vraiment besoin de le modifier.

Voilà comment je protège mon site:
- Tous les fichiers ont les droits 404
- Tous les dossiers ont les droits 505.
- Si un fichier ou un dossier nécessitent des droits d'écriture par le serveur mettez 604 pour le fichier et 705 pour le dossier. Chez OVH ça marche. Inutile de faire le fameux 777 (tous les droits à tout le monde). D'ailleurs OVH interdit les chmod en 777, il bloque le dossier qui a ce paramètre.
- Les fichiers config et htaccess ont des droits 404
- Le dossier "www" doit être en chmod 705, ne le changez jamais.

Avantage: personne ne peut modifier vos fichiers. Inconvénient: il faut changer les droits en écriture (604 et 705) si vous faites une mise à jour de votre blog, forum, cms, gallery, wiki et remettre les bons droits 404 et 505 après. Cela prend 10 min., mais ça vaut la peine.

Pourquoi est-ce si important: le pirate essaye d'installer un fichier sur votre site afin d'en prendre le contrôle (pour effacer le site, y placer un script qui envoie du spam, etc.). Il cherche des trous de sécurité pour pouvoir uploader son fichier de prise de contrôle. Si votre site a un trou de sécurité, le pirate l'exploitera, mais comme votre site web n'a que des dossiers et fichiers interdits en écriture, il ne pourra rien uploader. Son attaque ne marchera pas.

Il est possible d'accélérer le changement des droits par SSH:
http://forum.ovh.net/showpost.php?p=104511

Dernière modification par enycu 17/05/2008 à 17h27 Motif: ajout" pourquoi est-ce si important"
enycu est déconnecté   Réponse avec citation
Vieux 12/08/2007, 21h57   #3
enycu
Membre
 
Date d'inscription: décembre 2004
Messages: 3 206
Re : Sécuriser et protéger son site web des attaques des pirates et hackers

Les mots de passe

Protégez vos mots de passe.
On peut essayer de pénétrer votre hébergement en devinant votre mot de passe FTP ou SQL. OVH propose par défaut d'excellents mots de passe mais impossibles à mémoriser. Si vous changez les mots de passe, respectez les règles suivantes:
1- un mot de passe doit avoir au minimum 8 caractères, plus c'est mieux.
2- il ne doit jamais être un mot qu'on trouve dans le dictionnaire d'aucune langue. Les logiciels pour cracker des mots de passe ont des dictionnaires de centaines de milliers de mots de toutes les langues et cherchent toutes les combinaisons. Cela prend entre quelques minutes à quelques petites heures pour cracker ces mots de passe très facilement.
3- Un bon mot de passe contient des lettres et des chiffres.
4- N'UTILISEZ JAMAIS LE MÊME MOT DE PASSE pour le FTP, base SQL, e-mail, interface d'administration du site web. Le pirate SAIT que s'il trouve votre mot de passe, il a de fortes chances que ce soit le même mot de passe ailleurs !!! Beaucoup d'hébergeurs proposent un mot de passe unique pour "simplifier" la gestion, heureusement, ce n'est pas le cas d'OVH.

Il existe des logiciels qui proposent des mots de passe mémorisables. C'est ce qu'il y a de mieux. Des sites web proposent aussi des mots de passe phonétiques, créant des mots faciles à mémoriser:
http://tools.arantius.com/password
http://www.freepasswordgenerator.com/
http://www.pctools.com/guides/password/

Une méthode personnelle de création de mot de passe:
http://forum.ovh.net/showthread.php?t=19935

Pour être sûr qu'un mot de passe mémorisable n'existe dans aucune langue, tapez-le en partie ou en entier dans Google. S'il ne retourne aucun résultat, alors votre mot de passe n'est pas un mot du dictionnaire.

Dernière modification par enycu 09/09/2007 à 16h47
enycu est déconnecté   Réponse avec citation
Vieux 12/08/2007, 22h00   #4
enycu
Membre
 
Date d'inscription: décembre 2004
Messages: 3 206
Re : Sécuriser et protéger son site web des attaques des pirates et hackers

Le fichier .htaccess

Je vous propose 10 astuces pour sécuriser votre site web. Elles sont très efficaces et permettent de stopper beaucoup de tentatives de piratages avant que votre blog, forum, cms, gallery, wiki entre en action. Donc, dans une certaine mesure, si votre logiciel a une faille, peut-être que ces règles éviteront qu'elle ne soit exploitée. N'installez pas ces règles en une fois, suivez les conseils d'installations et de tests en bas de la 10è astuce.

Créez le fichier .htaccess avec un logiciel de texte simple (tout sauf Word). Appelez-le "txt.htaccess", envoyez-le par FTP dans votre dossier www et renommez-le en ".htaccess". Puis donnez-lui par FTP les droits 404. Il ne sera pas modifiable.

Voici une suite de commandes qui permettent de sécuriser votre site web.

1- Register_Globals sur OFF:
Depuis la version 4.2 de PHP, cette fonction est sur OFF et c'est tant mieux pour la sécurité. Or, OVH met ce paramètre sur ON sur les serveurs mutualisés. On corrige cela. -= INDISPENSABLE =-
Un conseil: si un script exige que le paramètre PHP Register_Globals soit sur ON, trouvez un autre script concurrent.
Code:
SetEnv REGISTER_GLOBALS 0
On peut modifier quelques variables de php.ini dont la maigre liste est ici:
http://guide.ovh.net/configphp

2- Interdire l'accès à ce fichier depuis un navigateur web:

Code:
<Files .htaccess>
order allow,deny
deny from all
</Files>
3- Interdire de lister le contenu d'un dossier:

Code:
Options -Indexes
4- Exclure les logiciels suspects utilisés par les pirates et certains aspirateurs de site web. -= TRÈS EFFICACE =-. Évite la plupart des attaques des "skiddy". Ci-dessous, on interdit plus de 350 robots.

Code:
###FILTRE CONTRE ROBOTS DES PIRATES ET ASPIRATEURS DE SITE WEB
### LISTE ICI: http://www.bg-pro.com/?goto=badbot
RewriteEngine On
## EXCEPTION: TOUS LES ROBOTS MEMES ANONYMES OU BANNIS PEUVENT ACCEDER A CES FICHIERS
RewriteCond %{REQUEST_URI} !^/robots.txt
RewriteCond %{REQUEST_URI} !^/sitemap.xml
## EXCEPTION: SI UTILISATION DE *PAYPAL INSTANT NOTIFICATION PAYMENT*, COMME PAYPAL N'UTILISE PAS DE HTTP_USER_AGENT, L'IPN NE MARCHERA PAS.
RewriteCond %{REQUEST_URI} !^/paypal-ipn.php
## 
RewriteCond %{HTTP_USER_AGENT} ^-?$ [OR] ## ANONYMES
RewriteCond %{HTTP_USER_AGENT} ^[bcdfghjklmnpqrstvwxz\ ]{8,}|^[0-9a-z]{15,}|^[0-9A-Za-z]{19,}|^[A-Za-z]{3,}\ [a-z]{4,}\ [a-z]{4,} [OR] ## CEUX QUI INVENTENT DES NOMS AU HASARD 
RewriteCond %{HTTP_USER_AGENT} ^<sc|<\?|8484\ Boston\ Project|autoemailspider|@nonymouse|ADSARobot|Advanced\ Email\ Extractor|^adwords|ah-ha|aktuelles|amzn_assoc|Anarchie|anonymous|Art-Online|ASPSeek|ASSORT|ATHENS|Atomz|attach|autoemailspider|BackWeb|Bandit|BatchFTP|bdfetch|big.brother|BlackWidow|blogsearchbot-martin|bmclient|Boston\ Project|BravoBrian\ SpiderEngine\ MarcoPolo|Bullseye|bumblebee|capture|CherryPicker|ChinaClaw|CICC|clipping|compatible\ \;|Crescent|Crescent\ Internet|Custo|cyberalert|Deweb|diagem|Digger|Digimarc|DIIbot|DirectUpdate|disco|DISCoFinder|Downloader|Download\ Accelerator|Download\ Demon|Download\ Wonder|Drip|DSurf15a|DTS.Agent|EasyDL|eCatch|echo\ extense|ecollector|efp@gmx\.net|EirGrabber|EmailCollector|EmailSiphon|Email\ Siphon|EmailWolf|Email\ Extractor|Express\ WebPictures|ExtractorPro [NC,OR] ## VRAIS ET FAUX ROBOTS NE RESPECTANT PAS LES REGLES
RewriteCond %{HTTP_USER_AGENT} EyeNetIE|fastlwspider|FavOrg|Favorites\ Sweeper|^Fetch|FEZhead|FileHound|flashget|FlashGet\ WebWasher|FlickBot|fluffy|frontpage|GalaxyBot|Generic|Getleft|GetRight|GetSmart|GetWeb!|GetWebPage|gigabaz|Girafabot|Go!Zilla|go-ahead-got-it|GornKer|Grabber|GrabNet|Grafula|Green\ Research|grub-client|grub\ crawler|hanzoweb|Harvest|hhjhj@yahoo|hloader|HMView|HomePageSearch|HTTPConnect|httpdown|httplib|HttpProxy|HTTP\ agent|http\ generic|HTTrack|ia_archive|IBM_Planetwide|IDBot|id-search|imagefetch|Image\ Stripper|Image\ Sucker|IncyWincy|Indy\ Library|informant|Ingelin|InterGET|InternetLinkAgent|InternetSeer\.com|^Internet\ Explorer|Internet\ Ninja|IPiumBot|Iria|Irvine|Jakarta\ Commons|JBH*Agent [NC,OR] ## VRAIS ET FAUX ROBOTS NE RESPECTANT PAS LES REGLES
RewriteCond %{HTTP_USER_AGENT} JetCar|JOC|JOC\ Web\ Spider|JustView|Kapere|KWebGet|Lachesis|larbin|LeechFTP|LexiBot|lftp|likse|Link*Sleuth|LINKS\ ARoMATIZED|LinkWalker|Mac\ Finder|Mag-Net|Magnet|Mass\ Downloader|MCspider|Microsoft\ URL|Microsoft\ Data|MIDown\ tool|minibot\(NaverRobot\)|Mirror|Missigua|Mister\ PiX|MJ12bot|MMMtoCrawl\/UrlDispatcherLLL|Movable\ Type|Moozilla|^Mozilla$|^MSIE|Murzillo|MSProxy|multithreaddb|nationaldirectory|Navroad|NearSite|NetAnts|NetCarta|NetMechanic|netprospector|NetResearchServer|NetSpider|NetZIP|NetZippy|NetZip\ Downloader|Net\ Vampire|NEWT|nicerspro|NICErsPRO|NPBot|Nutch|Nutscrape/|Octopus|Offline\ Explorer|Offline\ Navigator|OmniExplorer|OpaL|Openfind|OpenTextSiteCrawler [NC,OR] ## VRAIS ET FAUX ROBOTS NE RESPECTANT PAS LES REGLES
RewriteCond %{HTTP_USER_AGENT} OrangeBot|PackRat|PageGrabber|Papa\ Foto|pavuk|pcBrowser|PersonaPilot|PingALink|Pockey|Program\ Shareware|Proxy|psbot|PSurf|psycheclone|^puf|Pump|PushSite|PussyCat|PycURL|python|QRVA|QuepasaCreep|RealDownload|Reaper|Recorder|ReGet|replacer|RepoMonkey|almaden|Robozilla|Rover|RPT-HTTPClient|Rsync|SearchExpress|searchhippo|searchterms\.it|Second\ Street\ Research|Seeker|Shai|sitecheck|SiteMapper|SiteSnagger|SlySearch|SmartDownload|snagger|SpaceBison|Spegla|SpiderBot|SqWorm|Star\ Downloader|Stripper|sucker|SuperBot|SuperHTTP|Surfbot|SurfWalker|SurveyBot|Szukacz|tAkeOut|tarspider|Teleport\ Pro|Telesoft|Templeton|TrackBack|TrueRobot|Turing|TurnitinBot [NC,OR] ## VRAIS ET FAUX ROBOTS NE RESPECTANT PAS LES REGLES
RewriteCond %{HTTP_USER_AGENT} TV33_Mercator|UIowaCrawler|URL_Spider_Pro|^user|^User\ Agent:\ |^User-Agent:\ |UtilMind|Vacuum|vagabondo|vayala|visibilitygap|vobsub|VoidEYE|vspider|w3mir|WebaltBot|WebAuto|webbandit|WebCapture|Webclipping|webcollage|webcollector|WebCopier|webcraft@bea|WebDAV|webdevil|webdownloader|Webdup|WebEmailExtractor|WebFetch|WebGo\ IS|WebHook|Webinator|WebLeacher|WEBMASTERS|WebMiner|WebMirror|webmole|WebReaper|WebSauger|WEBsaver|Website\ eXtractor|Website\ Quester|WebSnake|Webster|WebStripper|websucker|webvac|webwalk|webweasel|WebWhacker|WebZIP|Web\ Data\ Extractor|Web\ Downloader|Web\ Image\ Collector|Web\ Sucker|web\.by\.mail|whizbang|WhosTalking|Widow|Widows|WISEbot|WISEnutbot|WUMPUS|Wweb|WWWOFFLE|Wysigot|x-Tractor|Xaldon\ WebSpider|XGET|Yandex|Zeus|Zeus.*Webster [NC] ## VRAIS ET FAUX ROBOTS NE RESPECTANT PAS LES REGLES
RewriteCond %{HTTP_USER_AGENT} ^curl|^Fetch\ API\ Request|GT\:\:WWW|^HTTP\:\:Lite|httplib|^Java/1.|^Java\ 1.|^LWP|libWeb|libwww|^PEAR|PECL\:\:HTTP|PHPCrawl|^Program\ Shareware|python|Rsync|Snoopy|^URI\:\:Fetch|WebDAV|^Wget [NC] ## BIBLIOTHEQUES / CLASSES HTTP DONT ON NE VEUT PAS. ATTENTION, CELA PEUT BLOQUER CERTAINES FONCTIONS DE VOTRE CMS. NE PAS TOUT EFFACER, MAIS CHERCHEZ LE NOM DE LA CLASSE HTTP CONCERNEE (DEMANDEZ AUX DEVELOPPEURS DE VOTRE CMS). CETTE LISTE BLOQUE 80% DES ROBOTS SPAMMEURS. IL FAUT LA CONSERVER.
RewriteRule (.*) - [F]
Si vous n'osez pas mettre la grosse liste des méchants robots, prennez celle ci-dessous. Cette liste simplifiée est le minimum qu'il faut avoir:
Code:
###FILTRE CONTRE CERTAINS ROBOTS DES PIRATES
RewriteEngine On
## EXCEPTION: TOUS LES ROBOTS MEMES ANONYMES OU BANNIS PEUVENT ACCEDER A CES FICHIERS
RewriteCond %{REQUEST_URI} !^/robots.txt
RewriteCond %{REQUEST_URI} !^/sitemap.xml
##
RewriteCond %{HTTP_USER_AGENT} ^-?$ [OR] ## ANONYMES
RewriteCond %{HTTP_USER_AGENT} ^[bcdfghjklmnpqrstvwxz\ ]{8,}|^[0-9a-z]{15,}|^[0-9A-Za-z]{19,}|^[A-Za-z]{3,}\ [a-z]{4,}\ [a-z]{4,} [OR] ## CEUX QUI INVENTENT DES NOMS AU HASARD 
RewriteCond %{HTTP_USER_AGENT} ^<sc|<\?|^adwords|@nonymouse|Advanced\ Email\ Extractor|almaden|anonymous|Art-Online|autoemailspider|blogsearchbot-martin|CherryPicker|compatible\ \;|Crescent\ Internet\ ToolPack|Digger|DirectUpdate|Download\ Accelerator|^eCatch|echo\ extense|EmailCollector|EmailWolf|Extractor|flashget|frontpage|Go!Zilla|grub\ crawler|HTTPConnect|httplib|HttpProxy|HTTP\ agent|HTTrack|^ia_archive|IDBot|id-search|Indy\ Library|^Internet\ Explorer|^IPiumBot|Jakarta\ Commons|^Kapere|Microsoft\ Data|Microsoft\ URL|^minibot\(NaverRobot\)|^Moozilla|^Mozilla$|^MSIE|MJ12bot|Movable\ Type|NICErsPRO|^NPBot|Nutch|Nutscrape/|^Offline\ Explorer|^Offline\ Navigator|OmniExplorer|^Program\ Shareware|psycheclone|PussyCat|PycURL|python|QuepasaCreep|SiteMapper|Star\ Downloader|sucker|SurveyBot|Teleport\ Pro|Telesoft|TrackBack|Turing|TurnitinBot|^user|^User-Agent:\ |^User\ Agent:\ |vobsub|webbandit|WebCapture|webcollage|WebCopier|WebDAV|WebEmailExtractor|WebReaper|WEBsaver|WebStripper|WebZIP|widows|Wysigot|Zeus|Zeus.*Webster [NC,OR] ## VRAIS ET FAUX ROBOTS NE RESPECTANT PAS LES REGLES
RewriteCond %{HTTP_USER_AGENT} ^curl|^Fetch\ API\ Request|GT\:\:WWW|^HTTP\:\:Lite|httplib|^Java/1.|^Java\ 1.|^LWP|libWeb|libwww|^PEAR|PECL\:\:HTTP|PHPCrawl|^Program\ Shareware|python|Rsync|Snoopy|^URI\:\:Fetch|WebDAV|^Wget [NC] ## BIBLIOTHEQUES / CLASSES HTTP DONT ON NE VEUT PAS. ATTENTION, CELA PEUT BLOQUER CERTAINES FONCTIONS DE VOTRE CMS. NE PAS TOUT EFFACER, MAIS CHERCHEZ LE NOM DE LA CLASSE HTTP CONCERNEE (DEMANDEZ AUX DEVELOPPEURS DE VOTRE CMS). CETTE LISTE BLOQUE 80% DES ROBOTS SPAMMEURS. IL FAUT LA CONSERVER.
RewriteRule (.*) - [F]
Lire la suite à l'article suivant...

Dernière modification par enycu 28/04/2010 à 18h55 Motif: MàJ règle 4, 1 nouveau spambot
enycu est déconnecté   Réponse avec citation
Vieux 12/08/2007, 22h00   #5
enycu
Membre
 
Date d'inscription: décembre 2004
Messages: 3 206
Re : Sécuriser et protéger son site web des attaques des pirates et hackers

5- On n'autorise que l'affichage de certains fichiers, et pas les autres. Le fichier index.php est le fichier par défaut. Si on affiche index.htm, ça ne marche pas. L'intérêt est d'interdire au pirate d'afficher sur son navigateur un fichier ou un format de fichier non autorisé.
Attention: il faut tester ces interdictions et les adapter au besoin.

Code:
### SEUL LE FICHIER index.php EST SERVI COMME PREMIER FICHIER PAR DEFAUT. LES AUTRES SONT INTERDITS
DirectoryIndex index.php

### INTERDIRE LES AUTRES TYPES DE FICHIER INDEX
<Files ~ "^(index)\.(p?s?x?htm?|txt|aspx?|cfml?|cgi|pl|php[3-9]|jsp|xml)$">
order allow,deny
deny from all
</Files>

### INTERDIRE L'AFFICHAGE DE CERTAINS FORMATS DE FICHIER 
### EXÉCUTÉS PAR LE SERVEUR MAIS INTERDIT D'AFFICHAGE PAR LE NAVIGATEUR WEB
<Files ~ "\.(inc|class|sql|ini|conf|exe|dll|bin|tpl|bkp|dat|c|h|py|spd|theme|module)$">
deny from all
</Files>

### INTERDIRE L'AFFICHAGE DE CERTAINS FICHIERS COMME config, option, login, setup, install, admin.
### A ADAPTER SI CELA POSE PROBLEME
<Files ~ "^((wp-)?config(\.inc)?|configure|configuration|login|options?\.inc|option|settings?(\.inc)?|functions?(\.inc)?|setup(\.inc)?|default|home|main|install?|admin|errors?|hacke?r?d?|[-_a-z0-9.]*mafia[-_a-z0-9.]*|[-_a-z0-9.]*power[-_a-z0-9.]*|[-_a-z0-9.]*jihad[-_a-z0-9.]*|php|shell|ssh|root|cmd|[0-9]{1,6}|test|data)\.(p?s?x?htm?l?|txt|aspx?|cfml?|cgi|pl|php[3-9]{0,1}|jsp?|sql|xml)$">
order allow,deny
deny from all
</Files>
6- Interdiction du hotlinking. Remplacez mondomaine par votre nom de domaine, tld par fr com net org ..., et 60gp par 90plan, start1g, etc. selon votre hébergement, et remplacez loginftp par votre... login FTP.

Code:
### ON EVITE LE VOL D'IMAGES, VIDEO, SON, FEUILLE DE STYLE, PDF ET ZIP
### LES VISITEURS DOIVENT PASSER PAR LE SITE. 
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://[-_a-z0-9.]*mondomaine\.tld$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://[-_a-z0-9.]*mondomaine\.tld/.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://60gp\.ovh\.net/~loginftp/.*$ [NC] 
RewriteRule .*\.(gif|jpe?g?|jp2|png|svgz?|ico|css|pdf|zip|gz|js|mp3|m4a|mp4|mov|divx|avi|wma?v?|wmp|swf|flv|docx?|xlsx?|pptx?|vbs|rtf|asf?x?|odt|ods|odp|odg|odb)$ - [NC,F]
7- On bloque certaines requêtes bizarres:

Code:
### DES FAUX URLS, ON LES NEUTRALISE
RedirectMatch gone ^/_vti.*
RedirectMatch gone ^/MSOffice.*
RedirectMatch gone ^[-_a-z0-9/\.]*//.*
RedirectMatch gone ^.*/etc/passwd.*
8- On bloque toute une série de failles potentielles. La plupart des pirates utilisent ces moyens pour tester la faiblesse de votre site. Là, on les bloque avant qu'il ne pénètre votre blog, forum, cms, gallery, wiki. -= INDISPENSABLE =-

Code:
### FILTRE CONTRE XSS, REDIRECTIONS HTTP, base64_encode, VARIABLE PHP GLOBALS VIA URL, MODIFIER VARIABLE _REQUEST VIA URL, TEST DE FAILLE PHP, INJECTION SQL SIMPLE
RewriteEngine On
RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
RewriteCond %{QUERY_STRING} ^(.*)(%3C|<)/?script(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=)?javascript(%3A|:)(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)document\.location\.href(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=)http(%3A|:)(/|%2F){2}(.*)$ [NC,OR] ## ATTENTION A CETTE REGLE. ELLE PEUT CASSER CERTAINES REDIRECTIONS RESSEMBLANT A: http://www.truc.fr/index.php?r=http://www.google.fr ##
RewriteCond %{QUERY_STRING} ^(.*)base64_encode(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)GLOBALS(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)_REQUEST(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(SELECT|INSERT|DELETE|CHAR\(|UPDATE|REPLACE|LIMIT)(.*)$
RewriteRule (.*) - [F]
9- Si des pirates ont réussi à pénétrer votre site, ils installent un script qui leur permettent de prendre les commandes de votre hébergement. Ici, on bloque la plupart des commandes de ces scripts. À tester avec votre site web, car c'est très puissant et efficace. À la 5e ligne, remplacez "loginftp" par vos valeurs. Cette règle est très efficace mais peut casser votre blog, forum, cms, gallery, wiki. À utiliser en dernier, puis à tester intensément, et effacez éventuellement la règle qui pose problème.

Code:
### FILTRE CONTRE PHPSHELL.PHP, REMOTEVIEW, c99Shell et autres
RewriteEngine On
RewriteCond %{REQUEST_URI} .*((php|my)?shell|remview.*|phpremoteview.*|sshphp.*|pcom|nstview.*|c99|r57|webadmin.*|phpget.*|phpwriter.*|fileditor.*|locus7.*|storm7.*)\.(p?s?x?htm?l?|txt|aspx?|cfml?|cgi|pl|php[3-9]{0,1}|jsp?|sql|xml) [NC,OR]
RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
RewriteCond %{QUERY_STRING} ^(.*)=/home(.+)?/loginftp/(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^work_dir=.*$ [OR]
RewriteCond %{QUERY_STRING} ^command=.*&output.*$ [OR]
RewriteCond %{QUERY_STRING} ^nts_[a-z0-9_]{0,10}=.*$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)cmd=.*$ [OR] ## ATTENTION A CETTE REGLE. ELLE PEUT CASSER VOTRE SITE ##
RewriteCond %{QUERY_STRING} ^c=(t|setup|codes)$ [OR]
RewriteCond %{QUERY_STRING} ^act=((about|cmd|selfremove|chbd|trojan|backc|massbrowsersploit|exploits|grablogins|upload.*)|((chmod|f)&f=.*))$ [OR]
RewriteCond %{QUERY_STRING} ^act=(ls|search|fsbuff|encoder|tools|processes|ftpquickbrute|security|sql|eval|update|feedback|cmd|gofile|mkfile)&d=.*$ [OR]
RewriteCond %{QUERY_STRING} ^&?c=(l?v?i?&d=|v&fnot=|setup&ref=|l&r=|d&d=|tree&d|t&d=|e&d=|i&d=|codes|md5crack).*$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)([-_a-z]{1,15})=(ls|cd|cat|rm|mv|vim|chmod|chdir|mkdir|rmdir|pwd|clear|whoami|uname|tar|zip|unzip|tar|gzip|gunzip|grep|more|ln|umask|telnet|ssh|ftp|head|tail|which|mkmode|touch|logname|edit_file|search_text|find_text|php_eval|download_file|ftp_file_down|ftp_file_up|ftp_brute|mail_file|mysql|mysql_dump|db_query)([^a-zA-Z0-9].+)*$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(wget|shell_exec|passthru|system|exec|popen|proc_open)(.*)$
RewriteRule (.*) - [F]
10- Empêcher l'exécution de tout script PHP, Perl, CGI dans un dossier. L'option ci-dessous vous permet par exemple de protéger un dossier d'upload ou tout dossier très sensible dont vous voulez renforcer la sécurité. Il ne faut pas utiliser cette option dans le fichier .htaccess avec tous les codes décrits ci-dessus. Je vous invite plutôt à créer un fichier .htaccess et à le mettre dans le dossier à protéger. Cette option empêche un navigateur web d'exécuter le script directement. Mais si le navigateur ouvre le fichier index.php qui fait un include() vers un fichier php se trouvant dans le dossier protégé par le code ci-dessous, tout s'exécutera bien. On protège donc l'exécution directe du fichier par un navigateur quand le pirate essaye d'entrer du code malicieux non filtré.
Code:
# Aucun script dans le dossier et ses sous-dossiers, que ce soit PHP, PERL ou autre CGI, ne pourra s'executer si ExecCGI est inactif. Et interdit d'afficher la liste des fichiers.
OPTIONS -ExecCGI  -Indexes

Ne mettez pas ces règles d'un coup.
Copiez-en une, puis testez votre blog, forum, cms, gallery, wiki en ajoutant, modifiant un article, ajoutez effacez un utilisateur, accédez à votre interface d'administration et faites plusieurs choses. Si tout est OK, mettez une autre règle. En cas de problème, regardez l'URL appelée. Il y a peut-être un mot clé qui est bloqué par le fichier .htaccess. Il faudra effacer ce mot clé du fichier .htaccess. Vous l'avez compris, ce système filtre l'URL et regarde s'il est conforme à une utilisation normale. Donc, si vous avez un message d'erreur, trouvez le mot clé qui bloque la requête.
Il faut adapter ces règles à votre cas, ce n'est pas du simple copier-coller.

Plus tard, si dans l'utilisation de votre blog, forum, cms, gallery, wiki, vous voyez une erreur 403, alors il est probable qu'une règle du filtrage soit active.

Enfin, votre blog, forum, cms, gallery, wiki utilise souvent le fichier .htaccess pour y mettre des règles de ré-écriture d'URL plus lisibles (appelé URL rewriting). Mettez les filtres anti-pirates en premier et les règles URL rewriting à la fin. En effet, les filtres s'appliquent du premier au dernier. Placer les filtres anti-pirates après les règles de ré-écriture d'URL de votre blog, forum, cms, gallery, wiki n'apporterait aucun bénéfice (ce n'est pas vrai à 100%, mais il y a des raisons).

Dernière modification par enycu 13/02/2009 à 18h56 Motif: MàJ mineures
enycu est déconnecté   Réponse avec citation
Vieux 12/08/2007, 22h01   #6
enycu
Membre
 
Date d'inscription: décembre 2004
Messages: 3 206
Re : Sécuriser et protéger son site web des attaques des pirates et hackers

Crypter son fichier config.inc.php

Malgré toutes les précautions, le pirate a pénétré votre site et cherche maintenant à connaître les login et mot de passe de votre base MySQL pour la pirater, la vider et en prendre le contrôle. On peut lui compliquer la tâche en cryptant ces données sensibles. Le serveur web pourra lire ces informations facilement, mais elles ne seront pas lisibles directement par un œil humain.
Pour un expert en PHP, cette protection ne dure que 2 minutes, cela lui fait du travail en plus, mais nous ne sommes pas là pour lui faciliter la tâche ?

Visitez un de ces sites web et cryptez vos données.
http://www.btt-scripts.com/demo/encrypt/ - http://www.scriptomart.com/obfuscate/ - http://www.rightscripts.com/phpencode/ - http://www.encodephp.com/

Par exemple, mon fichier config.php contient ceci:
Code PHP:
<?php
//** MySQL settings **//
$db_server   "mysql5-1";
$db_name     "nombasesql";
$db_username "loginsql";
$db_password "motdepasse";
?>
Je copie la partie à encoder entre les balises <?php et ?>
Je choisis l'encodage "PHP - Extrastrength". Ne cherchez pas un encodage plus élevé, j'ai constaté des erreurs sur les serveurs mutualisés d'OVH.
Je copie la longue ligne qui commence par eval(xxxx entre les balises <? et ?> et le colle dans le fichier config.inc.php, ce qui donne:

Code PHP:
<?php
eval(gzuncompress(gzinflate(base64_decode('AXEAjv942tPX19JS8K0MDvRRKE4tKcnMSy9W0NLS1+flUklJii9OLSpLLVJQULBVUMqtLC7MMdU1VLKGyOUl5qYqKEDk8vJzkxKLU4EKYLKlQK1gFUDZnPz0zDwkuYLE4uLy/KIUsKn5JSmpIIFUkCwAmYgq2g==')))); 
?>
Ainsi, vous pouvez occulter toutes les informations sensibles.

Et attribuez par FTP les droits 404 à votre fichier config.inc.php (ou équivalent).

Dernière modification par enycu 06/03/2010 à 21h51 Motif: Ajout de nouveaux sites
enycu est déconnecté   Réponse avec citation
Vieux 12/08/2007, 22h04   #7
enycu
Membre
 
Date d'inscription: décembre 2004
Messages: 3 206
Re : Sécuriser et protéger son site web des attaques des pirates et hackers

Installation d'une base SQL

Lorsque vous installez votre blog, forum, cms, gallery, wiki pour la première fois, il vous propose des réglages et paramètres par défaut que nous acceptons à chaque fois. En cas de faille, le pirate peut utiliser ces réglages et paramètres par défaut pour pénétrer votre base SQL et la modifier.

Voici quelques conseils pour éviter que cette forme d'attaque de type injection SQL soit possible. Il y a plusieurs formes d'injections SQL. La règle 8 du .htaccess en arrête une autre forme. Sinon, la vraie protection contre les injections SQL est une bonne programmation (voir ici).

1- Quand vous installez votre blog, forum, cms, gallery, wiki, il vous donne comme login "admin" et vous demande d'entrer un mot de passe. Dans la mesure du possible, changez "admin" pour autre chose, un pseudo par exemple. Un pirate sait que le login par défaut est "admin" et lancera ses scripts uniquement sur le mot de passe. Mais si le login "admin" n'existe pas, il n'a aucune chance de pénétrer le système.
Il faut parfois faire cette modification dans phpMyadmin. Mais attention, il faut être sûr que cela ne cassera pas votre base. Posez la question sur le forum de l'éditeur de votre blog, forum, cms, gallery, wiki pour savoir si c'est possible.

2- Le premier utilisateur est donc l'administrateur et il porte toujours le numéro (ou ID) 1. Dans le cas où le login n'est pas "admin", certains scripts peuvent essayer d'avoir le mot de passe de l'utilisateur numéro 1 qui est, dans 99,99% des cas, l'administrateur. Dans la mesure du possible, effacez l'utilisateur numéro 1 sur la liste et soyez l'administrateur portant le numéro 2.
Il faut parfois faire cette modification dans phpMyadmin. Mais attention, il faut être sûr que cela ne cassera pas votre base. Posez la question sur le forum de l'éditeur de votre blog, forum, cms, gallery, wiki pour savoir si c'est possible.

3- Lors de l'installation, votre blog, forum, cms, gallery, wiki vous demande de choisir un préfixe pour le nom des tables. On accepte toujours le préfixe par défaut comme wp_ pour Wordpress, g2_ pour Gallery2, dc_ pour DotClear, phpbb_ pour phpBB, etc. Le pirate peut chercher la table avec la liste des utilisateurs et leurs mots de passe. Si, comme tout le monde, vous n'avez pas changé le préfixe, il lui sera facile de trouver la table. Donc, changez le préfixe de vos tables SQL pour plus de sécurité. Vous pouvez le faire après installation. Il faut parfois faire cette modification dans phpMyadmin. Mais attention, il faut être sûr que cela ne cassera pas votre base. Posez la question sur le forum de l'éditeur de votre blog, forum, cms, gallery, wiki pour savoir si c'est possible.
Par exemple, avec Wordpress en cas de changement de préfixe après installation, il faut aussi changer 2 entrées dans la base de données en plus du fichier wp-config.php, voyez leurs forums pour savoir comment faire.

Mon conseil: TOUJOURS MODIFIER LES PARAMÈTRES PAR DÉFAUT !

Dernière modification par enycu 18/06/2008 à 00h34
enycu est déconnecté   Réponse avec citation
Vieux 12/08/2007, 22h06   #8
enycu
Membre
 
Date d'inscription: décembre 2004
Messages: 3 206
Re : Sécuriser et protéger son site web des attaques des pirates et hackers

Protéger un dossier avec un mot de passe

Lisez ce guide d'OVH: http://guides.ovh.net/HtaccessProtection

Un conseil: ne mommez pas le fichier contenant le mot de passe ".htpasswd". Ce nom n'est pas obligatoire. Vous pouvez l'appeler comme vous voulez, par exemple ".htmotdepasse". Le pirate ne trouvera pas de fichier ".htpasswd" car il est nommé autrement !

Dernière modification par enycu 26/03/2008 à 13h56 Motif: conseil nom .htpasswd
enycu est déconnecté   Réponse avec citation
Vieux 12/08/2007, 22h15   #9
enycu
Membre
 
Date d'inscription: décembre 2004
Messages: 3 206
Re : Sécuriser et protéger son site web des attaques des pirates et hackers

Connaître les informations techniques sur son hébergement

Utilisez cet excellent script d'administration pour avoir des informations utiles sur votre hébergement http://forum.ovh.net/showthread.php?t=14627
Spécialement développé par un client d'OVH. Il vous donne aussi accès à un pseudo-ssh (attention à la sécurité, lisez le fichier).

Dernière modification par enycu 08/09/2007 à 02h49
enycu est déconnecté   Réponse avec citation
Vieux 13/08/2007, 02h11   #10
enycu
Membre
 
Date d'inscription: décembre 2004
Messages: 3 206
Re : Sécuriser et protéger son site web des attaques des pirates et hackers

Nommage de fichiers

Pour éviter que les robots des pirates ne vous trouvent grâce à Google, changez certaines habitudes et notamment le nom et l'URL de certains fichiers.

1- N'appelez pas la page de votre formulaire de contact: contact.php ou contact.html. Appelez là autrement comme "courrier", "missive", etc. Les robots spammeurs auront plus de mal à trouver un formulaire de contact à pirater pour envoyer des spams grâce à une faille de votre script d'envoi de mail.
Faites la même chose avec d'autres fichiers: pas de login.php (admin.php est bloqué par défaut chez OVH), download.php (on va chercher la faille pour télécharger un fichier hors de son répertoire), etc. En règle général, évitez ces mots anglais trop répandus.

2- Les spammeurs ne sont pas idiots. Changez aussi aussi certains noms du formulaire. Dans les balises html INPUT, changez l'attribut NAME qui contient des mots comme "e-mail" "mail", "name" ou "subject" par leur équivalent en français (courriel, nom, sujet). Faites ce changement dans le formulaire HTML et dans votre script php ou cgi.

3- Évitez de donner le nom de votre blog, forum, cms, gallery, wiki directement dans l'URL comme: www.domaine.tld/phpbb/ ou www.domaine.tld/gallery/ ou www.domaine.tld/blog/ ou www.domaine.tld/forum/ ou www.domaine.tld/admin/. Les spammeurs et piratent cherchent ces URL à cibler pour une attaque. Soyez plus original pour votre sécurité. Le mieux est d'éviter le mot anglais et de préférer son équivalent en français.

Dernière modification par enycu 08/09/2007 à 02h49
enycu est déconnecté   Réponse avec citation
Réponse

Outils de la discussion

Règles de messages
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is oui
Les smileys sont activés : oui
La balise [IMG] est activée : non
Le code HTML peut être employé : non



Fuseau horaire GMT +2. Il est actuellement 17h01.


© OVH 1999-2010