mercredi 11 avril 2012

Securiser son Prestashop, joomla, oscommerce : le htaccess

Bien.
Abordons ce jour la sécurité d'un site ouebe.
Avec LE fichier à ne pas négliger : le .htaccess


Quelque soit le CMS que vous allez utiliser, il y a fort à parier qu'il aura déjà son propre modèle de htaccess, ne serait-ce que pour définir les règles de ré-écriture d'URL.


Je vous propose ici de la compléter pour boucher quelques failles de sécurité.


Commencons par registers globals sur off (empecher les variables d'etre auto-déclarées)





php_value register_globals OFF
// ou - renseignez-vous auprès de votre hébergeur ou sur google
SetEnv REGISTER_GLOBALS 0


A partir de maintenant, il va falloir que RewriteEngine soit sur On

Donc, bien vérifier la présence de "RewriteEngine On" dans votre htaccess

1ere chose, une des plus efficaces : empêcher les attaques "skiddy". des scripts faits pour attaquer les CMS, grosso modo..

Liste assez exhaustive de tous les méchants robots :

http://www.bg-pro.com/?goto=badbot



###FILTRE CONTRE ROBOTS DES PIRATES ET ASPIRATEURS DE SITE WEB

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} 2icommerce|@nonymouse|Accoona|ActiveTouristBot|adressendeutschland|ADSARobot|Advanced\ Email\ Extractor|agent|ah-ha|aipbot|aktuelles|Alexibot|Alligator|AllSubmitter|almaden|amzn_assoc|anarchie|anonymous|Apexoo|Aqua_Products|Art-Online|ASPSeek|ASSORT|asterias|ATHENS|AtHome|Atomz|attach|autoemailspider|autohttp|BackDoorBot|BackWeb|Badass|Baiduspider|Bandit|BatchFTP|bdfetch|BecomeBot|berts|big.brother|Bitacle|Biz360|Black.Hole|BlackWidow|bladder\ fusion|BlogPeople|blogsearchbot-martin|Blogshares\ Spiders|Blog\ Checker|Bloodhound|BlowFish|bmclient|Board\ Bot|Bookmark\ search\ tool|Boston\ Project|BotALot|BotRightHere|Bot\ mailto:craftbot@yahoo.com|BravoBrian\ SpiderEngine\ MarcoPolo|Bropwers|Browsezilla|BuiltBotTough|Bullseye|bumblebee|BunnySlippers|c-spider|capture|Cegbfeieh|CFNetwork|charlotte/|CheeseBot|CherryPicker|ChinaClaw|CICC|clipping|compatible\ \;|Convera|Copernic|CopyRightCheck|cosmos|Crescent|Crescent\ Internet|Custo|cyberalert|Cyberz|DataCha0s|Daum|Deweb|diagem|Digger|Digimarc [NC,OR] ## VRAIS ET FAUX ROBOTS 
RewriteCond %{HTTP_USER_AGENT} digout4uagent|DIIbot|DirectUpdate|disco|DISCoFinder|DittoSpyder|DnloadMage|Download|Downloader|Download\ Accelerator|Download\ Demon|Download\ Wonder|dragonfly|DreamPassport|Drip|DSurf|DSurf15a|DTS.Agent|DTS\ Agent|dumbot|DynaWeb|e-collector|EasyDL|EBrowse|eCatch|echo\ extense|ecollector|edgeio|efp@gmx\.net|EirGrabber|EmailCollector|EmailSiphon|EmailWolf|Email\ Extractor|Email\ Siphon|EmeraldShield|Enterprise_Search|EroCrawler|ESurf|Eval|Everest-Vulcan|Exabot|Express\ WebPictures|Extractor|ExtractorPro|EyeNetIE|FairAd|fastlwspider|FavOrg|Favorites\ Sweeper|fetch|FEZhead|FileHound|findlinks|Flaming\ AttackBot|flashget|FlickBot|fluffy|Foobot|Forex|Franklin\ Locator|FreshDownload|frontpage|FSurf|Gaisbot|GalaxyBot|Gamespy_Arcade|Generic|genieBot|GetBot|Getleft|GetRight|GetSmart|GetWeb!|GetWebPage|gigabaz|Girafabot|Go!Zilla|go-ahead-got-it|GOFORITBOT|GornKer|Grabber|GrabNet|Grafula|Green\ Research|grub-client|grub\ crawler|hanzoweb|Harvest|Hatena\ Antenna|heritrix|hhjhj@yahoo|hloader|HMView|holmes [NC,OR] ## VRAIS ET FAUX ROBOTS 
RewriteCond %{HTTP_USER_AGENT} HomePageSearch|HooWWWer|HouxouCrawler|HTTPConnect|httpdown|HTTPGet|HTTPRetriever|http\ generic|HTTrack|humanlinks|ia_archive|IBM_Planetwide|iCCrawler|ichiro|id-search|IDBot|iGetter|imagefetch|Image\ Stripper|Image\ Sucker|imds_monitor|IncyWincy|Industry\ Program|Indy\ Library|InetURL|InfoNaviRobot|informant|Ingelin|InstallShield\ DigitalWizard|InterGET|InternetLinkAgent|InternetSeer\.com|Internet\ Ninja|IPiumBot|Iria|IRLbot|Iron33|Irvine|ISSpider|IUPUI\ Research\ Bot|Jakarta\ Commons|JBH*Agent|JBH\ Agent|JennyBot|JetCar|JetCar|jeteye|jeteyebot|JoBo|JOC\ Web\ Spider|JustView|Kapere|Kenjin|Keyword\ Density|KRetrieve|ksoap|KWebGet|Lachesis|LapozzBot|larbin|LeechFTP|leipzig.de|LexiBot|lftp|LightningDownload|likse|Link*Sleuth|LinkextractorPro|Linkie|LinkScan|LINKS\ ARoMATIZED|linktiger|LinkWalker|lmcrawler|LNSpiderguy|LocalcomBot|looksmart|Mac\ Finder|Mag-Net|Magnet|Mail\ Sweeper|mark.blonin|MaSagool|Mass\ Downloader|Mata\ Hari|MCspider|MetaProducts\ Download\ Express [NC,OR] ## VRAIS ET FAUX ROBOTS 
RewriteCond %{HTTP_USER_AGENT} Microsoft\ Data|Microsoft\ Data\ Access|Microsoft\ URL|Microsoft\ URL\ Control|MIDown|MIDown\ tool|MIIxpc|minibot\(NaverRobot\)|Mirror|Missauga|Missigua|Missouri\ College\ Browse|Mister|Mister\ PiX|MJ12bot|mkdb|MMMtoCrawl\/UrlDispatcherLLL|moget|Monster|Moozilla|Moreoverbot|mothra/netscan|MovableType|Movable\ Type|Mozi!|Mozilla/22|Mozilla/3.0\ \(compatible\)|Mozilla/5.0\ \(compatible\;\ MSIE\ 5.0\)|MSIECrawler|MSIE_6.0|MSProxy|multithreaddb|Murzillo|MVAClient|MyFamilyBot|MyGetRight|nameprotect|NASA\ Search|nationaldirectory|Naver|Navroad|NearSite|NetAnts|netattache|NetCarta|NetMechanic|netprospector|NetResearchServer|NetSpider|NetZIP|NetZippy|NetZip\ Downloader|Net\ Vampire|NEWT|Nextopia|nicerspro|NimbleCrawler|ninja|noxtrumbot|NPBot|Nutch|Nutscrape/|Octopus|Offline\ Explorer|Offline\ Navigator|OK\ Mozilla|OmniExplorer|OpaL|OpaL|Openbot|Openfind|OpenTextSiteCrawler|Oracle\ Ultra\ Search|OrangeBot|PackRat|PageGrabber|PagmIEDownload|panscient|Papa\ Foto|Papa\ Foto|pavuk|pcBrowser|PerMan [NC,OR] ## VRAIS ET FAUX ROBOTS 
RewriteCond %{HTTP_USER_AGENT} PersonaPilot|PHP\ version|PingALink|PlantyNet_WebRobot|playstarmusic|Plucker|Pockey|Port\ Huron|Program\ Shareware|Progressive\ Download|ProPowerBot|prospector|ProWebWalker|Proxy|Prozilla|psbot|PSurf|psycheclone|puf|Pump|PushSite|PussyCat|PuxaRapido|PycURL|QRVA|QuepasaCreep|QueryN|Radiation|RealDownload|Reaper|Recorder|RedCarpet|RedKernel|ReGet|relevantnoise|replacer|RepoMonkey|RMA|Robozilla|Rover|RPT-HTTPClient|RTG30|Rufus|SAPO|SBIder|scooter|ScoutAbout|script|SearchExpress|searchhippo|searchpreview|searchterms|Second\ Street\ Research|Seekbot|Seeker|Serious|Shai|shelob|Shim-Crawler|SickleBot|sitecheck|SiteMapper|SiteSnagger|Slurpy\ Verifier|SlySearch|SlySearch|SmartDownload|sna-|snagger|So-net|sogou|sootle|SpaceBison|SpankBot|spanner|SpeedDownload|Spegla|Sphere|Sphider|SpiderBot|sproose|Sqworm|SQ\ Webscanner|Stamina|Stanford|Star\ Downloader|Stripper|studybot|sucker|SuperBot|SuperHTTP|Surfbot|SurfWalker|SurveyBot|suzuran|Szukacz|tAkeOut|TALWinHttpClient|tarspider|Teleport|Teleport\ Pro [NC,OR] ## VRAIS ET FAUX ROBOTS
RewriteCond %{HTTP_USER_AGENT} Telesoft|Templeton|TestBED|TheNomad|The\ Intraformant|TightTwatBot|Titan|toCrawl/UrlDispatcher|TrackBack|TrueRobot|True_Robot|Turing|TurnitinBot|TV33_Mercator|Twisted\ PageGetter|UCmore|UdmSearch|UIowaCrawler|UMBC|UniversalFeedParser|URLGetFile|URLy\ Warning|URL\ Control|URL_Spider_Pro|UtilMind|Vacuum|vagabondo|vayala|visibilitygap|vobsub|VoidEYE|VoilaBot|voyager|vspider|W3CRobot|w3mir|Web\ Image\ Collector|Web2WAP|WebaltBot|WebAuto|webbandit|WebCapture|Webclipping|webcollage|webcollector|WebCopier|WebCopy|webcraft@bea|webdevil|webdownloader|Webdup|WebEMailExtrac.*|WebEnhancer|WebFetch|WebFilter|WebFountain|WebGo|WebHook|Webinator|WebLeacher|WEBMASTERS|WebmasterWorldForumBot|WebMiner|WebMirror|webmole|WebReaper|WebSauger|WEBsaver|Website|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|Wells\ Search|WEP\ Search\ 00 [NC,OR] ## VRAIS ET FAUX ROBOTS 
RewriteCond %{HTTP_USER_AGENT} WeRelateBot|whizbang|WhosTalking|Widow|Widows|Wildsoft\ Surfer|WinHttpRequest|WinHTTrack|WISEbot|WISEnutbot|WUMPUS|Wweb|WWW-Collector|WWWOFFLE|wwwster|Wysigot|x-Tractor|Xaldon|Xenu\'s|Xenus|XGET|Y!TunnelPro|YaDirectBot|YahooYSMcm|Yandex|Yeti|Zade|ZBot|zerxbot|Zeus|Zeus.*Webster|ZyBorg|^adwords|^Internet\ Explorer|^Mozilla$|^MSIE|^puf|^user|^User-Agent:\ |^User\ Agent:\ |^
Liste trop longue ? On va juste filter les plus utiliser, alors, si vous rpéférez :



##
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} ^

On va bloquer du XSS et à toute une série de failles potentielles désormais : on va bloquer les test de faille de votre site.


###  XSS, REDIRECTIONS HTTP, base64_encode, VARIABLE PHP GLOBALS VIA URL, MODIFIER VARIABLE _REQUEST VIA URL, TEST FAILLE PHP, INJECTION SQL

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] 
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\+|UNION+ALL|INSERT\+|DELETE\+|CHAR\(|UPDATE\+|REPLACE\+|LIMIT\+)(.*)$ [NC]
RewriteRule (.*) - [F]

Si les pirates ont malgré tout réussi a traverser tout cela, on va limiter leur possibilité d'action :

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} ^command=.*&output.*$ [OR]
RewriteCond %{QUERY_STRING} ^nts_[a-z0-9_]{0,10}=.*$ [OR]
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|concat|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]

Ben là, on est pas trop mal.

Quelques conseils élémentaires par dessus :
les fichier en chmod 404
les dossiers en chmod 505

Ca devrait vous protéger contre pas mal d'attaques...

Commentaires et compléments bienvenus !!

Aucun commentaire:

Enregistrer un commentaire