Ondsindede javascript-scripts. Find og fjern ondsindet kode på WordPress

Ondsindet JavaScript

Min mening, som er, at det er nemmere og mere effektivt at beskytte mod injicerede ondsindede browserscripts (lagrede XSS-angreb) ved hjælp af browserværktøjer, blev tidligere udtalt: . Browserbeskyttelse mod JavaScript, som består i at tilføje filtreringskode til hjemmesidens html-sider, er formodentlig pålidelig, men tilstedeværelsen af ​​en sådan beskyttelse eliminerer ikke behovet for også at bruge et serverfilter. For de samme XSS-angreb kan du organisere en ekstra forsvarslinje på serveren. Vi skal også huske på muligheden for, at en angriber introducerer ikke browserbaserede, men serversidescripts (php) i en HTML-meddelelse sendt fra et websted, som browseren ikke vil kunne genkende.

Et angribende script, uanset om det er browserbaseret eller serverbaseret, er et program; man skal tro, at programmet altid vil have nogle symbolske forskelle fra "ren" html. Lad os prøve at finde sådanne forskelle og bruge dem til at bygge et HTML-filter på serveren. Nedenfor er eksempler på ondsindet JavaScript.

XSS:

Noget tekst


Noget tekst

Krypteret XSS:

Noget tekst


Noget tekst

Browsere gendanner tekst fra karakterprimitiver ikke kun placeret inde i html-beholdere (mellem åbnings- og lukketags), men også inde i selve tags (mellem< и >). URL-kodning er tilladt i http-adresser. Dette gør det svært at genkende ondsindet kode på serversiden, da den samme tegnsekvens kan repræsenteres på forskellige måder.

XSS orme:

"+innerHTML.slice(action= (method="post")+".php",155)))">





alert("xss");with(new XMLHttpRequest)open("POST","post.php"),send("content="+_.outerHTML)

Ovenstående XSS-orme er blot nogle få af de mange indsendte til Robert Hansens (alias RSnake) januar 2008 konkurrence om den korteste ondsindede JavaScript-orm (konkurrenceresultater).

Tegn på XSS-angreb

Et XSS-script er et program, der tilgår DOM-objekter (Document Object Model) og deres metoder. Ellers er det usandsynligt, at det på nogen måde er skadeligt. For eksempel JavaScript-streng
onckick="var a = "xss""
påvirker ikke dokumentobjektmodellen, så selvom den er indlejret i et html-tag, er en sådan streng harmløs. Kun ved at manipulere HTML-dokumentobjekter og deres metoder kan en hacker forårsage betydelig skade på et websted. For eksempel linjen
onmousemove="document.getElementsByTagName("body").innerHTML="XSS""
erstatter allerede sidens indhold.

Et tegn på adgang til DOM-metoder er parenteser, samt prikker til venstre for lighedstegnet. Parenteser kan også bruges i html til at sætte en farve i rgb() formatet, dog er skrifttypen og baggrundsfarverne i html sat på mindst tre andre måder. Derfor kan parenteser ofres uden at gå på kompromis med html-tekstens udtryksevne. Det er nødvendigt at acceptere som regel, at parenteserne er inde i tagget (det vil sige mellem< и >) - dette er meget farligt, hvis vi modtager en besked fra en bruger på serveren, indeholder denne besked parenteser inde i tags, så er det mest passende, vi bør gøre, at blokere en sådan besked.

Prikken kan være indeholdt i html-tags: når du angiver linkadressen (tag ); når du indstiller størrelsen på html-elementer (style="height:1.5in; width:2.5in;" ). Men tegnsekvenser af formen
bogstavpunkt er lig
kan ikke være i html tags. Hvis den angivne sekvens er til stede i et html-tag, indeholder meddelelsen fra brugeren højst sandsynligt et script og bør blokeres.

Et andet åbenlyst faretegn er "+"-symbolet inde i mærket. Der er ikke sådan noget i scriptløs html. Hvis vi finder plusser inde i tags, blokerer vi nådesløst beskeden.

En velmenende webstedsbruger, der tilføjer en kommentar ved hjælp af en visuel editor, vil aldrig ty til kryptering med symbolske primitiver inde i html-tags. Brugen af ​​symbolske primitiver i tags giver ingen fordele i form af yderligere udtryksmidler; det kræver kun ekstra skrivetid. I de fleste tilfælde skulle man tro, at en velmenende bruger ikke engang ved, at der er visse karakterprimitiver i HTML. Derfor reglen: et og-tegn inde i et tag er bevis på et angreb på webstedet. Hvis vi ser dette, blokerer vi derfor meddelelsen.

En lignende regel bør vedtages med hensyn til "%"-symbolet, som kan bruges i url-kodning. Procentdele bruges dog også i "ren" html til at indstille de relative størrelser af elementer. Farlige kombinationer er dem, hvor "%"-tegnet umiddelbart efterfølges af et bogstav eller tal.

Neutralisering af serverscripts

I modsætning til JavaScript-fortolkere i browsere tillader PHP-fortolkeren på serveren ikke friheder ved skrivning af programtekst. Derfor, for at neutralisere et muligt serverscript, er det nok fuldstændigt at erstatte i brugerens HTML-meddelelse alle de tegn, der er essentielle, når man skriver et PHP-program med deres HTML-primitiver. De, der skal udskiftes, er først og fremmest dollar- og understregningstegn, punktum, parenteser, firkantede og krøllede parenteser, plus- og minustegn og skråstreg.

PHP-filter til HTML-meddelelser

$message er html-meddelelsen modtaget fra den visuelle editor til serveren.

// husk længden af ​​beskeden $lenmessage = strlen($message); // klip kommentartagget $message = preg_replace("//", "", $message); // skær alle tags ud, hvori "src"-attributten refererer til en ekstern ressource $message = preg_replace("/]+?src[\w\W]+\/\/[^>]+?>/i" , " ", $meddelelse); // skær alle tags ud, der indeholder et hvilket som helst tegn undtagen: - a-z 0-9 / . : ; " = % # mellemrum $message = preg_replace("/]+[^->a-z0-9\/\.\:\;\"\=\%\#\s]+[^>]+?> /i", "", $meddelelse); // skær alle tags ud, der indeholder sekvensen ". a-z =" $message = preg_replace("/]+?\.+?\=[^>]+?>/i", "", $message); // skær alle tags ud, der indeholder sekvensen "% a-z" eller "% 0-9" $message = preg_replace("/]+?\%+?[^>]+?>/i", "", $ besked); // skær alle tags ud, der indeholder sekvensen "script" eller "js:" $message = preg_replace("/]*?script[^>]*?>/i", "", $message); $message = preg_replace("/]*?js:[^>]*?>/i", "", $message); // skær alle tags ud, der starter med et andet tegn end "a-z" eller "/" $message = preg_replace("/]*?>/i", "", $message); // check: hvis beskeden er forkortet, så afslut programmet $lenmessage2 = strlen($message); if ($lenmessage != $lenmessage2) ( print "Meddelelsen kan ikke tilføjes"; exit; ) // udfør ende-til-ende udskiftning af farlige tegn med deres tilsvarende primitiver $message = str_replace("$", "$" , $meddelelse); $message = str_replace("_", "_", $message); $message = str_replace(".", ".", $message); $message = str_replace(chr(92), "\", $message); // \ $message = str_replace("(", "(", $message); $message = str_replace()", ")", $message); $message = str_replace("[", "[", $message); $message = str_replace("]", "]", $message); $message = str_replace("(", "(", $message); $message = str_replace()", ")", $message); $message = str_replace("?", "?", $message); // nu er beskeden verificeret, scripts i den er blevet neutraliseret

Det skal bemærkes, at filteret ikke fjerner parrede tags. Lad os sige, at vi fik
Klik her!
Filteret vil kun udskære , men det parrede (lukkende) tag forbliver. Hvis du sender beskeder, der indeholder tags uden tilsvarende par, til browseren, kan du opleve problemer i form af en "skævhed" af webstedet. Det vides ikke, hvilket åbningstag browseren vil matche det resterende uparrede lukketag. Derfor, og også af sikkerhedsmæssige årsager, bør beskeder, hvor noget er blevet skåret ud af filteret, slet ikke sendes til browseren. Det er bedre at udskrive noget som "Meddelelsen kunne ikke tilføjes" og afslutte programmet.

Meddelelsen forventes at blive skrevet til en fil (ikke til en database).

Diskussion

Jeg vil være taknemmelig for kritik. Skriv til supportforummet i afsnittet

1. Pak den ud i webstedsmappen.
2. følg linket your_site/fscure/
3. alt

Hvad kan han gøre?

1. Automatisk søgning efter virus ved hjælp af signaturer.
2. Søg efter en streng i filer
3. Sletning af filer
4. Patch ondsindet kode ved hjælp af regulære udtryk

Scriptet vil ikke gøre alt arbejdet for dig og kræver en vis minimal viden. Det anbefales at lave en sikkerhedskopi af webstedet inden arbejdet.

Hvordan virker det?

Når den først startes, opretter den et indeks over filer. Filen fscure.lst er i mappen. Viser en liste over filer, der indeholder potentielt ondsindede signaturer. "Potentielt ondsindet" betyder, at du skal afgøre, om det er en virus eller ej. Listen over signaturer er konfigureret i filen config.php, konstant SCAN_SIGN. Med standardindstillinger tjekker scriptet ikke js-filer og indeholder ikke signaturer for dem.

Mest almindelige problemer

1. opretter ikke fscure.lst-indekset. Kan ske, hvis der ikke er nok rettigheder. Sæt 777 på fscure-mappen

2. 5xx fejl. Oftest "504 Gateway Time-out". Scriptet har ikke tid til at behandle og går ned på grund af en timeout. I dette tilfælde er der flere måder at fremskynde sit arbejde på. Hastigheden afhænger primært af indeksets størrelse. Det er i filen fscure.lst. Typisk kan en fil på op til 5 MB behandles i 90 % af tilfældene. Hvis det ikke har tid, kan du reducere scriptets "grådighed" ved at forbyde scanning af *.jpg;*.png;*.css i konfigurationen.
I filen config.php.

// afgrænser; define("FILES_EXCLUDE","*.js;*.jpg;*.png;*.css");

3. Hosting udsteder en advarsel som
(HEX)base64.inject.unclassed.6: u56565656: /var/www/u65656565/data/www/34535335353.ru/fscure/index.php

Der er ingen virus i scriptet, og det har der aldrig været. Og (HEX)base64.inject.unclassed.6 er en konstruktion som "echo base64_decode(" , som man ofte støder på og i sig selv er ret harmløs. Men i den seneste version erstattede jeg denne kode.

Hvad skal du gøre, hvis du ikke selv kunne finde virussen?

Du kan kontakte mig for at få hjælp. Mine priser er beskedne. Jeg garanterer mit arbejde i 6 måneder. Omkostningerne ved arbejdet er 800 rubler. for 1 websted. Hvis der er flere sider på din konto, bestemmes prisen individuelt.

Hvis det lykkedes dig at gøre alt selv, ville jeg være taknemmelig for en økonomisk belønning eller et link til min side.

Mine krav:
yandex
41001151597934

webmoney
Z959263622242
R356304765617
E172301357329

Ondsindet kode kommer ind på webstedet gennem uagtsomhed eller ondsindet hensigt. Formålet med ondsindet kode varierer, men i det væsentlige skader eller forstyrrer den den normale drift af et websted. For at fjerne ondsindet kode på WordPress skal du først finde den.

Hvad er ondsindet kode på et WordPress-websted?

I udseende er ondsindet kode oftest et sæt bogstaver og symboler i det latinske alfabet. Faktisk er dette en krypteret kode, som den eller den handling udføres med. Handlingerne kan være meget forskellige, for eksempel bliver dine nye indlæg straks offentliggjort på en tredjepartsressource. Dette er i bund og grund at stjæle dit indhold. Koder har også andre "opgaver", for eksempel at placere udgående links på webstedets sider. Opgaverne kan være de mest sofistikerede, men én ting er klar: ondsindede koder skal jages og fjernes.

Hvordan kommer ondsindede koder ind på et websted?

Der er også mange smuthuller for koder at komme ind på siden.

  • Oftest er disse temaer og plugins downloadet fra "venstre" ressourcer. Selvom en sådan penetration er typisk for såkaldte krypterede links. Eksplicit kode ender ikke på siden.
  • Indtrængen af ​​en virus, når et websted hackes, er den farligste. Som regel giver hacking af et websted dig mulighed for ikke kun at placere en "engangskode", men også installere kode med elementer af malware (ondsindet program). For eksempel finder du en kode og sletter den, men den gendannes efter noget tid. Der er igen mange muligheder.
  • Lad mig bemærke med det samme, at det er svært at bekæmpe sådanne vira, og manuel fjernelse kræver viden. Der er tre løsninger på problemet: Den første løsning er at bruge antivirus-plugins, for eksempel et plugin kaldet BulletProof Security.

    Denne løsning giver gode resultater, men tager tid, om end lidt. Der er en mere radikal løsning til at slippe af med ondsindede koder, herunder komplekse vira, som er at gendanne webstedet fra tidligere lavet sikkerhedskopier af webstedet.

    Da en god webmaster gør dette med jævne mellemrum, kan du rulle tilbage til en ikke-inficeret version uden problemer. Den tredje løsning er for de rige og dovne, bare kontakt et specialiseret "kontor" eller en individuel specialist.

    Sådan leder du efter ondsindet kode på WordPress

    Det er vigtigt at forstå, at ondsindet kode på WordPress kan være i enhver fil på webstedet, og ikke nødvendigvis i arbejdstemaet. Han kan komme med et plugin, et tema eller "hjemmelavet" kode taget fra internettet. Der er flere måder at forsøge at finde ondsindet kode på.

    Metode 1: Manuelt. Du ruller gennem alle webstedets filer og sammenligner dem med filerne i en uinficeret sikkerhedskopi. Hvis du finder en andens kode, skal du slette den.

    Metode 2: Brug af WordPress Security Plugins. For eksempel, . Dette plugin har en fantastisk funktion, der scanner webstedsfiler for tilstedeværelsen af ​​andres kode, og plugin'et klarer denne opgave perfekt.

    Metode 3. Hvis du har rimelig support-hosting, og det ser ud til, at der er en anden på webstedet, så bed dem om at scanne dit websted med deres antivirus. Deres rapport viser alle inficerede filer. Åbn derefter disse filer i en teksteditor og fjern den ondsindede kode.

    Metode 4. Hvis du kan arbejde med SSH-adgang til webstedsbiblioteket, så gå videre, det har sit eget køkken.

    Vigtig! Uanset hvordan du søger efter ondsindet kode, før du søger og derefter sletter koden, skal du lukke adgangen til webstedets filer (slå vedligeholdelsestilstand til). Husk om koder, der i sig selv gendannes, når de slettes.

    Søg efter ondsindede koder ved hjælp af eval-funktionen

    Der er sådan en funktion i PHP kaldet eval. Det giver dig mulighed for at udføre enhver kode på dens linje. Desuden kan koden krypteres. Det er på grund af kodningen, at den ondsindede kode ligner et sæt bogstaver og symboler. To populære kodninger er:

  • Base64;
  • Rot13.
  • Følgelig ser eval-funktionen i disse kodninger sådan ud:

    • eval(base64_decode(...))
    • eval (str_rot13 (...)) //i interne anførselstegn, lange, uklare sæt bogstaver og symboler..

    Algoritmen til at søge efter ondsindet kode ved hjælp af eval-funktionen er som følger (vi arbejder fra det administrative panel):

    • gå til webstedseditoren (Udseende→ Editor).
    • kopier filen functions.php.
    • åbn den i en teksteditor (for eksempel Notesblok++) og søg efter ordet: eval.
    • Hvis du finder det, skal du ikke skynde dig at slette noget. Du skal forstå, hvad denne funktion "beder" om at blive udført. For at forstå dette skal koden afkodes. Til afkodning findes der online værktøjer kaldet dekodere.
    Dekodere/enkodere

    Dekodere virker ganske enkelt. Du kopierer den kode, du vil dekryptere, indsætter den i dekoderfeltet og afkoder.

    I skrivende stund fandt jeg ikke en eneste krypteret kode fundet i WordPress. Jeg fandt koden fra Joomlas hjemmeside. I princippet er der ingen forskel på at forstå afkodning. Lad os se på billedet.

    Som du kan se på billedet, viste eval-funktionen efter afkodning ikke en frygtelig kode, der truer webstedets sikkerhed, men et krypteret copyright-link fra skabelonens forfatter. Den kan også fjernes, men den kommer tilbage efter opdatering af skabelonen, hvis du ikke bruger .

    Afslutningsvis vil jeg gerne bemærke, for ikke at få en virus på webstedet:

    • Ondsindet kode på WordPress kommer ofte med temaer og plugins. Installer derfor ikke skabeloner og plugins fra "venstre", uverificerede ressourcer, og hvis du gør det, tjek dem omhyggeligt for tilstedeværelsen af ​​links og eksekutive funktioner i PHP. Efter installation af plugins og temaer fra "ulovlige" ressourcer, skal du tjekke webstedet med antivirussoftware.
    • Sørg for at lave periodiske sikkerhedskopier og udføre andre.

    WordPress er et af de mest populære indholdsstyringssystemer, der bruges til en række forskellige formål, lige fra blogging til e-handel. Der er et bredt udvalg af WordPress plugins og temaer. Det sker, at nogle af disse udvidelser falder i hænderne på webmastere, efter at en angriber har arbejdet på dem.

    Til sin egen fordel kunne han efterlade reklamelinks eller kode i dem, som han vil administrere dit websted med. Mange WordPress-brugere har ikke meget erfaring med webprogrammering og ved ikke, hvordan de skal håndtere denne situation.

    For dem gennemgik jeg ni af de mest effektive værktøjer til at opdage ondsindede ændringer i koden på et kørende websted eller installerede tilføjelser.

    1. Theme Authenticity Checker (TAC)

    Theme Authenticity Checker (TAC) er et WordPress-plugin, der scanner hvert installeret tema for mistænkelige elementer som usynlige links eller Base64-krypteret kode.

    Efter at have opdaget sådanne elementer, rapporterer TAC dem til WordPress-administratoren, hvilket giver ham mulighed for selvstændigt at analysere og om nødvendigt rette kildetemafilerne:

    2. Udnyt Scanner

    Exploit Scanner scanner hele dit websteds kildekode og WordPress-databaseindhold for tvivlsomme indeslutninger. Ligesom TAC forhindrer dette plugin ikke angreb eller bekæmper deres konsekvenser automatisk.

    Det viser kun opdagede symptomer på infektion til webstedsadministratoren. Hvis du vil fjerne ondsindet kode, skal du gøre det manuelt:

    3. Sucuri Sikkerhed

    Sucuri er en velkendt WordPress sikkerhedsløsning. Sucuri Security-plugin'et overvåger filer, der er uploadet til et WordPress-websted, vedligeholder sin egen liste over kendte trusler og giver dig også mulighed for at fjernscanne webstedet ved hjælp af den gratis Sucuri SiteCheck-scanner. For et abonnementsgebyr kan du yderligere styrke dit websteds beskyttelse ved at installere en kraftfuld firewall Sucuri Website Firewall:

    4. Anti-Malware

    Anti-Malware er et plugin til WordPress, der kan finde og fjerne trojanske scripts, bagdøre og anden ondsindet kode.

    Indstillinger for scanning og sletning kan tilpasses. Dette plugin kan bruges efter registrering gratis på gotmls.

    Pluginnet får regelmæssigt adgang til producentens websted, sender malware-detektionsstatistikker og modtager opdateringer. Derfor, hvis du ikke ønsker at installere plugins på dit websted, der overvåger dets drift, bør du undgå at bruge Anti-Malware:

    5. WP Antivirus Site Protection

    WP Antivirus Site Protection er et plugin, der scanner alle filer, der er uploadet til et websted, inklusive WordPress-temaer.

    Pluginnet har sin egen signaturdatabase, som automatisk opdateres via internettet. Det kan fjerne trusler automatisk, underrette webstedets administrator via e-mail og meget mere.

    Pluginnet er installeret og fungerer gratis, men har flere betalte tilføjelser, som er værd at være opmærksomme på:

    6. AntiVirus til WordPress

    AntiVirus til WordPress er et brugervenligt plugin, der kan scanne dit websted regelmæssigt og give dig besked om sikkerhedsproblemer via e-mail. Pluginnet har en brugerdefineret hvidliste og andre funktioner:

    7. Quterra Web Malware Scanner

    Quterras scanner tjekker en hjemmeside for sårbarheder, tredjeparts kodeindsprøjtninger, vira, bagdøre osv. Scanneren har så interessante funktioner som heuristisk scanning og detektering af eksterne links.

    Grundlæggende scannerfunktioner er gratis, mens nogle ekstra tjenester vil koste dig $60 om året:

    8. Wordfence

    Hvis du leder efter en omfattende løsning på dit websteds sikkerhedsproblemer, skal du ikke lede længere end Wordfence.

    Dette plugin giver konstant beskyttelse til WordPress mod kendte typer angreb, to-faktor autentificering, understøttelse af en "sortliste" af IP-adresser på computere og netværk, der bruges af hackere og spammere, og scanning af webstedet for kendte bagdøre.

    Dette plugin er gratis i sin grundlæggende version, men det har også premium-funktionalitet, som producenten anmoder om et beskedent abonnementsgebyr for:

    9. Wemahu

    Wemahu overvåger ændringer i dit websteds kode og søger efter skadelig kode.

    Databasen, hvor malware er opdaget, genopfyldes ved hjælp af crowdsourcing-metoden: brugerne selv genopfylder den ved at sende resultaterne af scanning af inficerede WordPress-installationer til plugin-forfatterens websted. Pluginnet understøtter også afsendelse af rapporter via e-mail og andre nyttige funktioner.

    Livets sandhed er, at siden kan blive hacket før eller siden. Efter succesfuld udnyttelse af sårbarheden forsøger hackeren at få fodfæste på webstedet ved at placere hacker-webskaller og -downloadere i systemmapper og introducere bagdøre i scriptkoden og CMS-databasen.

    Scannere hjælper med at opdage indlæste web-shells, bagdøre, phishing-sider, spam-e-mailere og andre typer af ondsindede scripts - alt det, de kender og er på forhånd føjet til signaturdatabasen med skadelig kode. Nogle scannere, såsom AI-BOLIT, har et sæt heuristiske regler, der kan detektere filer med mistænkelig kode, som ofte bruges i ondsindede scripts, eller filer med mistænkelige attributter, som kan downloades af hackere. Men selvom der bruges flere scannere på hostingen, kan der desværre være situationer, hvor nogle hacker-scripts forbliver uopdagede, hvilket faktisk betyder, at angriberen står tilbage med en "bagdør" og kan hacke siden og få fuld kontrol over den. til enhver tid. øjeblik.

    Moderne malware- og hackerscripts er væsentligt forskellige fra dem for 4-5 år siden. I øjeblikket kombinerer udviklere af ondsindet kode sløring, kryptering, dekomponering, ekstern indlæsning af ondsindet kode og andre tricks for at narre antivirussoftware. Derfor er sandsynligheden for at gå glip af ny malware meget højere end før.

    Hvad kan der gøres i dette tilfælde for mere effektivt at opdage vira på webstedet og hacker-scripts på hostingen? Det er nødvendigt at bruge en integreret tilgang: indledende automatiseret scanning og yderligere manuel analyse. Denne artikel vil diskutere muligheder for at opdage skadelig kode uden scannere.

    Lad os først se på, hvad du præcis skal kigge efter under et hack.

  • Hacker scripts.
    Oftest ved hacking er filer, der downloades web-shells, bagdøre, "uploadere", scripts til spam-mailings, phishing-sider + formularbehandlere, døråbninger og hacking-markørfiler (billeder fra hackergruppens logo, tekstfiler med "besked" fra hackere osv.)
  • Indsprøjtninger (kodeindsprøjtninger) i eksisterende .
    Den næstmest populære type hosting af ondsindet og hackerkode er injektioner. Mobil- og søgeomdirigeringer kan injiceres i eksisterende websteds .htaccess-filer, bagdøre kan injiceres i php/perl-scripts, og virale javascript-fragmenter eller omdirigeringer til tredjepartsressourcer kan indlejres i .js- og .html-skabeloner. Injektioner er også mulige i mediefiler, for eksempel.jpg eller. Ofte består ondsindet kode af flere komponenter: selve den ondsindede kode er gemt i exif-headeren af ​​jpg-filen og udføres ved hjælp af et lille kontrolscript, hvis kode ikke ser mistænkelig ud for scanneren.
  • Databaseindsprøjtninger.
    Databasen er det tredje mål for en hacker. Her er statiske indsættelser mulige, , , , som omdirigerer besøgende til tredjepartsressourcer, "spionerer" på dem eller inficerer den besøgendes computer/mobilenhed som følge af et drive-by-angreb.
    Derudover giver skabelonmotorer dig i mange moderne CMS (IPB, vBulletin, modx osv.) mulighed for at eksekvere PHP-kode, og selve skabelonerne er gemt i databasen, så PHP-koden for web-skaller og bagdøre kan bygges direkte ind i databasen.
  • Injektioner i cachetjenester.
    Som et resultat af forkert eller usikker konfiguration af cachingtjenester, for eksempel memcached, er injektioner i cachede data "on the fly" mulige. I nogle tilfælde kan en hacker injicere ondsindet kode på et websteds sider uden direkte at hacke webstedet.
  • Injektioner/initierede elementer i serversystemkomponenter.
    Hvis en hacker har fået privilegeret (root) adgang til serveren, kan han erstatte elementer fra webserveren eller cacheserveren med inficerede. En sådan webserver vil på den ene side give kontrol over serveren ved hjælp af kontrolkommandoer, og på den anden side fra tid til anden indføre dynamiske omdirigeringer og ondsindet kode på sidens sider. Ligesom i tilfældet med en indsprøjtning i en cachingtjeneste, vil webstedsadministratoren højst sandsynligt ikke være i stand til at opdage, at webstedet er blevet hacket, da alle filerne og databasen vil være originale. Denne mulighed er den sværeste at behandle.
  • Så lad os antage, at du allerede har tjekket filerne på hostingen og databasedumpen med scannere, men de fandt ikke noget, og virussen er stadig på siden, eller den mobile omdirigering fortsætter med at fungere, når du åbner sider. Hvordan søger man videre?

    Manuel søgning

    På unix er det svært at finde et mere værdifuldt kommandopar til at finde filer og fragmenter end find / grep.

    Find . -navn '*.ph*' -mtime -7

    vil finde alle filer, der er blevet ændret i den sidste uge. Nogle gange "vrider" hackere ændringsdatoen for scripts for ikke at opdage nye scripts. Så kan du søge efter php/phtml-filer, hvis attributter er ændret

    Find . -navn '*.ph*' -сtid -7

    Hvis du skal finde ændringer i et bestemt tidsinterval, kan du bruge det samme fund

    Find . -navn '*.ph*' -newermt 2015-01-25 ! -newermt 2015-01-30 -ls

    For at søge filer er grep uundværligt. Det kan søge rekursivt gennem filer efter et bestemt fragment

    grep -ril ‘stummann.net/steffen/google-analytics/jquery-1.6.5.min.js’ *

    Når du hacker en server, er det nyttigt at analysere filer, der har guid/suid-flaget sat

    find / -perm -4000 -o -perm -2000

    For at afgøre, hvilke scripts der i øjeblikket kører og indlæser hosting-CPU'en, kan du ringe

    lsof +r 1 -p `ps axww | grep httpd | grep -v grep | awk ‘ ( if(!str) ( str= ) else ( str=str””))END(print str)’` | grep vhosts | grep php

    Vi bruger vores hjerner og hænder til at analysere filer på hosting
  • Vi går til upload-, cache-, tmp-, backup-, log-, billedmapper, hvori noget er skrevet af scripts eller uploadet af brugere, og scanner indholdet for nye filer med mistænkelige udvidelser. For eksempel, for joomla kan du tjekke .php-filerne i mappen images:find ./images -name '*.ph*'. Hvis noget bliver fundet, vil det sandsynligvis være malware.
    For WordPress giver det mening at tjekke mappen wp-content/uploads, backup- og cache-temamapper for scripts.
  • Leder efter filer med mærkelige navne
    For eksempel php, fyi.php, n2fd2.php. Filer kan søges
    • - ved ikke-standard kombinationer af tegn,
    • - tilstedeværelsen af ​​numrene 3,4,5,6,7,8,9 i filnavnet
  • Vi leder efter filer med usædvanlige udvidelser
    Lad os sige, at du har en hjemmeside på WordPress eller for dem vil filer med filtypenavne .py, .pl, .cgi, .so, .c, .phtml, .php3 ikke være helt almindelige. Hvis der opdages scripts og filer med disse udvidelser, vil de højst sandsynligt være hackerværktøjer. Procentdelen af ​​falske registreringer er mulig, men den er ikke høj.
  • Vi leder efter filer med ikke-standard attributter eller oprettelsesdato
    Mistanke kan være forårsaget af filer med attributter, der adskiller sig fra dem, der findes på serveren. For eksempel blev alle .php scripts uploadet via ftp/sftp og har brugeren bruger, og nogle blev oprettet af brugeren www-data. Det giver mening at tjekke de nyeste. Eller hvis scriptfilens oprettelsesdato er tidligere end webstedets oprettelsesdato.
    For at fremskynde søgningen efter filer med mistænkelige attributter er det praktisk at bruge Unix find-kommandoen.
  • Vi leder efter døråbninger ved hjælp af et stort antal .html- eller .php-filer
    Hvis der er flere tusinde .php- eller .html-filer i mappen, er dette højst sandsynligt en døråbning.
  • Logfiler til hjælp

    Webserver, e-mail-tjeneste og FTP-logfiler kan bruges til at opdage ondsindede scripts og hacker-scripts.

    • At korrelere datoen og klokkeslættet for afsendelse af et brev (som kan findes fra mailserverloggen eller serviceheaderen på et spambrev) med anmodninger fra access_log hjælper med at identificere metoden til at sende spam eller finde spamafsenderens script.
    • Analyse af FTP xferlog-overførselsloggen giver dig mulighed for at forstå, hvilke filer der blev downloadet på tidspunktet for hacket, hvilke der blev ændret og af hvem.
    • I en korrekt konfigureret mailserverlog eller i serviceheaderen på en spam-e-mail, hvis PHP er korrekt konfigureret, vil der være et navn eller fuld sti til afsenderscriptet, som hjælper med at bestemme kilden til spam.
    • Ved hjælp af logfilerne for proaktiv beskyttelse af moderne CMS og plugins kan du bestemme, hvilke angreb der blev udført på webstedet, og om CMS'et var i stand til at modstå dem.
    • Ved at bruge access_log og error_log kan du analysere en hackers handlinger, hvis du kender navnene på de scripts, han kaldte, IP-adressen eller brugeragenten. Som en sidste udvej kan du se POST-anmodninger den dag, hvor webstedet blev hacket og inficeret. Ofte giver analysen dig mulighed for at finde andre hacker-scripts, der blev downloadet eller allerede var på serveren på tidspunktet for hacket.
    Integritetskontrol

    Det er meget nemmere at analysere et hack og lede efter ondsindede scripts på et websted, hvis du sørger for dets sikkerhed på forhånd. Proceduren for integritetstjek hjælper med rettidigt at opdage ændringer i hosting og bestemme kendsgerningen om hacking. En af de enkleste og mest effektive måder er at sætte webstedet under et versionskontrolsystem (git, svn, cvs). Hvis du konfigurerer .gitignore korrekt, ser ændringskontrolprocessen ud som at kalde kommandoen git status, og søgning efter ondsindede scripts og ændrede filer ligner git diff.

    Du vil også altid have en sikkerhedskopi af dine filer, hvortil du kan "rulle tilbage" siden i løbet af få sekunder. Serveradministratorer og avancerede webmastere kan bruge inotify, tripwire, auditd og andre mekanismer til at spore adgang til filer og mapper og overvåge ændringer i filsystemet.

    Desværre er det ikke altid muligt at konfigurere et versionskontrolsystem eller tredjepartstjenester på serveren. I tilfælde af delt hosting vil det ikke være muligt at installere et versionskontrolsystem og systemtjenester. Men det gør ikke noget, der er en hel del færdige løsninger til CMS. Du kan installere et plugin eller et separat script på webstedet, der sporer ændringer i filer. Nogle CMS implementerer allerede effektiv ændringsovervågning og en integritetskontrolmekanisme (for eksempel Bitrix, DLE). Som en sidste udvej, hvis hostingen har ssh, kan du oprette et reference snapshot af filsystemet med kommandoen

    Kampagne "2 til prisen for 1"

    Kampagnen er gyldig indtil udgangen af ​​måneden.

    Når du aktiverer tjenesten "Site under overvågning" for en hjemmeside, er den anden på samme konto forbundet gratis. Efterfølgende websteder på kontoen - 1.500 rubler om måneden for hvert websted.