Ondsinnede javascript-skript. Finne og fjerne skadelig kode på WordPress

Skadelig JavaScript

Min mening, som er at det er enklere og mer effektivt å beskytte mot injiserte ondsinnede nettleserskript (lagrede XSS-angrep) ved bruk av nettleserverktøy, ble uttalt tidligere: . Nettleserbeskyttelse mot JavaScript, som består av å legge til filtreringskode på nettsidens html-sider, er antagelig pålitelig, men tilstedeværelsen av slik beskyttelse eliminerer ikke behovet for også å bruke et serverfilter. For de samme XSS-angrepene kan du organisere en ekstra forsvarslinje på serveren. Vi må også huske på muligheten for at en angriper introduserer ikke nettleserbaserte, men serversideskript (php) i en HTML-melding sendt fra et nettsted, som nettleseren ikke vil kunne gjenkjenne.

Et angripende skript, enten det er nettleserbasert eller serverbasert, er et program; man må tenke at programmet alltid vil ha noen symbolske forskjeller fra "ren" html. La oss prøve å finne slike forskjeller og bruke dem til å bygge et HTML-filter på serveren. Nedenfor er eksempler på skadelig JavaScript.

XSS:

Litt tekst


Litt tekst

Kryptert XSS:

Litt tekst


Litt tekst

Nettlesere gjenoppretter tekst fra karakterprimitiver, ikke bare plassert inne i html-beholdere (mellom åpnings- og lukketaggene), men også inne i selve kodene (mellom< и >). URL-koding er tillatt i http-adresser. Dette gjør det vanskelig å gjenkjenne ondsinnet kode på serversiden, siden samme tegnsekvens kan representeres på forskjellige måter.

XSS-ormer:

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





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

Ovennevnte XSS-ormer er bare noen av de mange som ble sendt inn til Robert Hansens (aka RSnake) konkurranse i januar 2008 om den korteste ondsinnede JavaScript-ormen (konkurranseresultater).

Tegn på XSS-angrep

Et XSS-skript er et program som får tilgang til DOM-objekter (Document Object Model) og deres metoder. Ellers er det neppe på noen måte skadelig. For eksempel JavaScript-streng
onckick="var a = "xss""
påvirker ikke dokumentobjektmodellen, så selv om den er innebygd i en html-tag, er en slik streng ufarlig. Bare ved å manipulere HTML-dokumentobjekter og deres metoder kan en hacker forårsake betydelig skade på et nettsted. For eksempel linjen
onmousemove="document.getElementsByTagName("body").innerHTML="XSS""
erstatter allerede innholdet på siden.

Et tegn på tilgang til DOM-metoder er parenteser, samt prikker til venstre for likhetstegnet. Parenteser kan også brukes i html for å sette en farge i rgb()-formatet, men fonten og bakgrunnsfargene i html er satt på minst tre andre måter. Derfor kan parenteser ofres uten at det går ut over uttrykksevnen til html-teksten. Det er nødvendig å akseptere som regel at parentesene er inne i taggen (det vil si mellom< и >) - dette er veldig farlig, hvis vi mottar en melding fra en bruker på serveren, inneholder denne meldingen parentes inne i taggene, så er det mest hensiktsmessige vi bør gjøre å blokkere en slik melding.

Prikken kan inneholde html-tagger: når du spesifiserer lenkeadressen (tag ); når du angir størrelsen på html-elementer (style="height:1.5in; width:2.5in;" ). Men tegnsekvenser av formen
bokstavpunkt er lik
kan ikke være i html-koder. Hvis den angitte sekvensen er tilstede inne i en html-tag, inneholder meldingen fra brukeren sannsynligvis et skript og bør blokkeres.

Et annet åpenbart faretegn er "+"-symbolet inne i taggen. Det er ikke noe slikt i skriptløs html. Hvis vi finner plusser inne i kodene, blokkerer vi meldingen nådeløst.

En bruker med gode intensjoner som legger til en kommentar ved hjelp av en visuell editor, vil aldri ty til kryptering med symbolske primitiver i html-tagger. Bruken av symbolske primitiver i tagger gir ingen fordeler i form av ekstra uttrykksmidler; det krever bare ekstra skrivetid. I de fleste tilfeller skulle man tro at en velmenende bruker ikke en gang vet at det er visse karakterprimitiver i HTML. Derav regelen: et og-tegnet inne i en tag er bevis på et angrep på nettstedet. Følgelig, hvis vi ser dette, blokkerer vi meldingen.

En lignende regel bør vedtas angående "%"-symbolet, som kan brukes i url-koding. Imidlertid brukes prosenter også i "ren" html for å angi de relative størrelsene på elementer. Farlige kombinasjoner er de der "%"-tegnet umiddelbart etterfølges av en bokstav eller et tall.

Nøytralisering av serverskript

I motsetning til JavaScript-tolker i nettlesere, tillater ikke PHP-tolken på serveren friheter når du skriver programtekst. Derfor, for å nøytralisere et mulig serverskript, er det nok å fullstendig erstatte i brukerens HTML-melding alle tegnene som er avgjørende når du skriver et PHP-program med HTML-primitivene. De som må byttes ut er først og fremst dollar- og understrekingstegn, punktum, parenteser, firkantede og krøllede parenteser, pluss- og minustegn og skråstrek.

PHP-filter for HTML-meldinger

$message er html-meldingen mottatt fra den visuelle editoren til serveren.

// husk lengden på meldingen $lenmessage = strlen($message); // kuttet ut kommentartaggen $message = preg_replace("//", "", $message); // kuttet ut hver tagg der "src"-attributtet refererer til en ekstern ressurs $message = preg_replace("/]+?src[\w\W]+\/\/[^>]+?>/i" , " ", $melding); // kutt ut hver tagg som inneholder et hvilket som helst tegn bortsett fra: - a-z 0-9 / . : ; " = % # mellomrom $message = preg_replace("/]+[^->a-z0-9\/\.\:\;\"\=\%\#\s]+[^>]+?> /i", "", $melding); // kuttet ut hver tagg som inneholder sekvensen ". a-z =" $message = preg_replace("/]+?\.+?\=[^>]+?>/i", "", $message); // kuttet ut hver tagg som inneholder sekvensen "% a-z" eller "% 0-9" $message = preg_replace("/]+?\%+?[^>]+?>/i", "", $ beskjed); // kuttet ut hver tag som inneholder sekvensen "script" eller "js:" $message = preg_replace("/]*?script[^>]*?>/i", "", $message); $message = preg_replace("/]*?js:[^>]*?>/i", "", $message); // kuttet ut hver tagg som starter med et annet tegn enn "a-z" eller "/" $message = preg_replace("/]*?>/i", "", $message); // sjekk: hvis meldingen er forkortet, så avslutt programmet $lenmessage2 = strlen($message); if ($lenmessage != $lenmessage2) ( skriv ut "Beskjeden kan ikke legges til"; exit; ) // utfør ende-til-ende erstatning av farlige tegn med deres tilsvarende primitiver $message = str_replace("$", "$" , $melding); $message = str_replace("_", "_", $message); $message = str_replace(".", ".", $message); $message = str_replace(chr(92), "\", $message); // \ $message = str_replace("(", "(", $message); $message = str_erstatt()", ")", $message); $message = str_replace("[", "[", $message); $message = str_replace("]", "]", $message); $message = str_replace("(", "(", $message); $message = str_erstatt()", ")", $message); $message = str_replace("?", "?", $message); // nå er meldingen verifisert, skriptene i den er nøytralisert

Det skal bemerkes at filteret ikke fjerner sammenkoblede tagger. La oss si at vi har det
Klikk her!
Filteret vil bare kutte ut , men den sammenkoblede (lukkende) taggen forblir. Hvis du sender meldinger som inneholder tagger uten tilsvarende par til nettleseren, kan du oppleve problemer i form av en "skjevhet" på nettstedet. Det er ikke kjent hvilken åpningstagg nettleseren vil matche den gjenværende uparrede lukketaggen. Derfor, og også av sikkerhetsmessige årsaker, skal ikke meldinger der noe er kuttet ut av filteret sendes til nettleseren i det hele tatt. Det er bedre å skrive ut noe som "Beskjeden kunne ikke legges til" og avslutte programmet.

Meldingen forventes å bli skrevet til en fil (ikke til en database).

Diskusjon

Jeg vil være takknemlig for kritikk. Skriv til støtteforumet, i seksjonen

1. Pakk den ut i nettstedmappen.
2. følg linken your_site/fscure/
3. alt

Hva kan han gjøre?

1. Automatisk søk ​​etter virus etter signaturer.
2. Søk etter en streng i filer
3. Slette filer
4. Patch ondsinnet kode ved hjelp av regulære uttrykk

Skriptet vil ikke gjøre alt arbeidet for deg og krever minimal kunnskap. Det anbefales å ta en sikkerhetskopi av siden før arbeid.

Hvordan virker det?

Når den først lanseres, oppretter den en indeks over filer. Filen fscure.lst er i mappen. Viser en liste over filer som inneholder potensielt skadelige signaturer. "Potensielt ondsinnet" betyr at du må avgjøre om det er et virus eller ikke. Listen over signaturer er konfigurert i config.php-filen, konstant SCAN_SIGN. Med standardinnstillinger sjekker ikke skriptet js-filer og inneholder ikke signaturer for dem.

De vanligste problemene

1. oppretter ikke fscure.lst-indeksen. Kan skje hvis det ikke er nok rettigheter. Sett 777 på fscure-mappen

2. 5xx feil. Oftest "504 Gateway Time-out". Skriptet har ikke tid til å behandle og krasjer på grunn av tidsavbrudd. I dette tilfellet er det flere måter å fremskynde arbeidet på. Hastighet avhenger først og fremst av størrelsen på indeksen. Det er i filen fscure.lst. Vanligvis kan en fil på opptil 5 MB behandles i 90 % av tilfellene. Hvis det ikke har tid, kan du redusere "grådigheten" til skriptet ved å forby skanning av *.jpg;*.png;*.css i konfigurasjonen.
I config.php-filen.

// skilletegn; define("FILES_EXCLUDE","*.js;*.jpg;*.png;*.css");

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

Det er ikke noe virus i manuset, og det har det aldri vært. Og (HEX)base64.inject.unclassed.6 er en konstruksjon som "echo base64_decode(" , som ofte oppstår og i seg selv er ganske ufarlig. Men i den siste versjonen erstattet jeg denne koden.

Hva gjør du hvis du ikke kan finne viruset selv?

Du kan kontakte meg for å få hjelp. Mine priser er beskjedne. Jeg garanterer arbeidet mitt i 6 måneder. Kostnaden for arbeidet er 800 rubler. for 1 nettsted. Hvis det er flere nettsteder på kontoen din, bestemmes prisen individuelt.

Hvis du klarte å gjøre alt selv, ville jeg vært takknemlig for en økonomisk belønning eller en lenke til siden min.

Mine krav:
yandex
41001151597934

webmoney
Z959263622242
R356304765617
E172301357329

Ondsinnet kode kommer inn på nettstedet gjennom uaktsomhet eller ondsinnet hensikt. Formålet med ondsinnet kode varierer, men i hovedsak skader eller forstyrrer den normal drift av et nettsted. For å fjerne ondsinnet kode på WordPress, må du først finne den.

Hva er ondsinnet kode på et WordPress-nettsted?

I utseende er ondsinnet kode oftest et sett med bokstaver og symboler i det latinske alfabetet. Faktisk er dette en kryptert kode som denne eller den handlingen utføres med. Handlingene kan være svært forskjellige, for eksempel blir de nye innleggene dine umiddelbart publisert på en tredjepartsressurs. Dette er i hovedsak å stjele innholdet ditt. Koder har også andre "oppgaver", for eksempel å plassere utgående lenker på nettstedssider. Oppgavene kan være de mest sofistikerte, men én ting er klart: ondsinnede koder må jaktes og fjernes.

Hvordan kommer skadelige koder inn på et nettsted?

Det er også mange smutthull for koder for å komme inn på siden.

  • Oftest er dette temaer og plugins som er lastet ned fra "venstre" ressurser. Selv om slik penetrering er typisk for såkalte krypterte lenker. Eksplisitt kode havner ikke på nettstedet.
  • Inntrengningen av et virus når et nettsted blir hacket er den farligste. Som regel lar hacking av et nettsted deg ikke bare plassere en "engangskode", men også installere kode med elementer av skadelig programvare (ondsinnet program). For eksempel finner du en kode og sletter den, men den gjenopprettes etter en stund. Det er igjen mange alternativer.
  • La meg merke med en gang at det er vanskelig å bekjempe slike virus, og manuell fjerning krever kunnskap. Det er tre løsninger på problemet: den første løsningen er å bruke antivirus-plugins, for eksempel en plugin kalt BulletProof Security.

    Denne løsningen gir gode resultater, men tar tid, om enn litt. Det er en mer radikal løsning for å kvitte seg med ondsinnede koder, inkludert komplekse virus, som er å gjenopprette nettstedet fra tidligere laget sikkerhetskopier av nettstedet.

    Siden en god webmaster gjør dette med jevne mellomrom, kan du rulle tilbake til en ikke-infisert versjon uten problemer. Den tredje løsningen er for de rike og late, bare ta kontakt med et spesialisert "kontor" eller en individuell spesialist.

    Slik ser du etter ondsinnet kode på WordPress

    Det er viktig å forstå at ondsinnet kode på WordPress kan være i hvilken som helst fil på nettstedet, og ikke nødvendigvis i arbeidstemaet. Han kan komme opp med en plugin, et tema eller "hjemmelaget" kode hentet fra Internett. Det er flere måter å prøve å finne skadelig kode på.

    Metode 1: Manuelt. Du blar gjennom alle nettstedsfilene og sammenligner dem med filene til en uinfisert sikkerhetskopi. Hvis du finner en annens kode, slett den.

    Metode 2: Bruke WordPress Security Plugins. For eksempel, . Denne plugin-en har en flott funksjon som skanner nettstedsfiler for tilstedeværelse av andres kode, og plugin-en takler denne oppgaven perfekt.

    Metode 3. Hvis du har rimelig støtte for hosting, og det ser ut til at det er noen andre på nettstedet, ber du dem skanne nettstedet ditt med antivirusprogrammet sitt. Rapporten deres viser alle infiserte filer. Deretter åpner du disse filene i et tekstredigeringsprogram og fjerner den skadelige koden.

    Metode 4. Hvis du kan jobbe med SSH-tilgang til nettstedkatalogen, så fortsett, den har sitt eget kjøkken.

    Viktig! Uansett hvordan du søker etter ondsinnet kode, før du søker og deretter sletter koden, lukk tilgangen til nettstedfilene (slå på vedlikeholdsmodus). Husk om koder som i seg selv blir gjenopprettet når de slettes.

    Søk etter ondsinnede koder ved å bruke eval-funksjonen

    Det er en slik funksjon i PHP som heter eval. Den lar deg kjøre hvilken som helst kode på linjen. Dessuten kan koden krypteres. Det er på grunn av kodingen at den skadelige koden ser ut som et sett med bokstaver og symboler. To populære kodinger er:

  • Base64;
  • Rått13.
  • Følgelig ser evalfunksjonen slik ut i disse kodingene:

    • eval(base64_decode(...))
    • eval (str_rot13 (...)) //i interne anførselstegn, lange, uklare sett med bokstaver og symboler..

    Algoritmen for å søke etter ondsinnet kode ved å bruke eval-funksjonen er som følger (vi jobber fra det administrative panelet):

    • gå til nettstedsredigering (Utseende → Redaktør).
    • kopier filen functions.php.
    • åpne den i et tekstredigeringsprogram (for eksempel Notepad++) og søk etter ordet: eval.
    • Hvis du finner det, ikke skynd deg å slette noe. Du må forstå hva denne funksjonen "ber" om å bli utført. For å forstå dette må koden dekodes. For dekoding finnes det nettbaserte verktøy kalt dekodere.
    Dekodere/kodere

    Dekodere fungerer enkelt. Du kopierer koden du vil dekryptere, limer den inn i dekoderfeltet og dekoder.

    I skrivende stund fant jeg ikke en eneste kryptert kode funnet i WordPress. Jeg fant koden fra Joomla-nettstedet. I prinsippet er det ingen forskjell i å forstå dekoding. La oss se på bildet.

    Som du kan se på bildet, viste eval-funksjonen, etter dekoding, ikke en forferdelig kode som truer sikkerheten til nettstedet, men en kryptert copyright-lenke fra forfatteren av malen. Den kan også fjernes, men den kommer tilbake etter oppdatering av malen hvis du ikke bruker .

    Avslutningsvis vil jeg merke, for ikke å få et virus på nettstedet:

    • Ondsinnet kode på WordPress kommer ofte med temaer og plugins. Derfor, ikke installer maler og plugins fra "venstre", ubekreftede ressurser, og hvis du gjør det, sjekk dem nøye for tilstedeværelsen av lenker og utøvende funksjoner til PHP. Etter å ha installert plugins og temaer fra "ulovlige" ressurser, sjekk nettstedet med antivirusprogramvare.
    • Sørg for å ta periodiske sikkerhetskopier og utføre andre.

    WordPress er et av de mest populære innholdsstyringssystemene, brukt til en rekke formål, fra blogging til e-handel. Det er et bredt utvalg av WordPress-plugins og temaer. Det hender at noen av disse utvidelsene faller i hendene på webmastere etter at en angriper har jobbet med dem.

    For sin egen fordel kan han legge igjen reklamelenker eller kode i dem som han vil administrere nettstedet ditt med. Mange WordPress-brukere har ikke mye erfaring med webprogrammering og vet ikke hvordan de skal håndtere denne situasjonen.

    For dem gjennomgikk jeg ni av de mest effektive verktøyene for å oppdage ondsinnede endringer i koden til et nettsted som kjører eller installerte tillegg.

    1. Theme Authenticity Checker (TAC)

    Theme Authenticity Checker (TAC) er en WordPress-plugin som skanner alle installerte temaer for mistenkelige elementer som usynlige lenker eller Base64-kryptert kode.

    Etter å ha oppdaget slike elementer, rapporterer TAC dem til WordPress-administratoren, slik at han uavhengig kan analysere og om nødvendig korrigere kildetemafilene:

    2. Utnytt skanner

    Exploit Scanner skanner hele nettstedets kildekode og WordPress-databaseinnhold for tvilsomme inkluderinger. Akkurat som TAC, forhindrer ikke denne plugin angrep eller bekjemper konsekvensene deres automatisk.

    Den viser bare oppdagede symptomer på infeksjon til nettstedadministratoren. Hvis du vil fjerne ondsinnet kode, må du gjøre det manuelt:

    3. Sucuri Security

    Sucuri er en velkjent WordPress sikkerhetsløsning. Sucuri Security-pluginen overvåker filer lastet opp til et WordPress-nettsted, opprettholder sin egen liste over kjente trusler, og lar deg også eksternt skanne nettstedet ved å bruke den gratis Sucuri SiteCheck-skanneren. For en abonnementsavgift kan du ytterligere styrke nettstedets beskyttelse ved å installere en kraftig brannmur Sucuri Website Firewall:

    4. Anti-Malware

    Anti-Malware er en plugin for WordPress som kan finne og fjerne trojanske skript, bakdører og annen ondsinnet kode.

    Innstillinger for skanning og sletting kan tilpasses. Dette pluginet kan brukes etter registrering gratis på gotmls.

    Programtillegget går regelmessig inn på produsentens nettsted, overfører statistikk for oppdagelse av skadelig programvare og mottar oppdateringer. Derfor, hvis du ikke vil installere plugins på nettstedet ditt som overvåker driften, bør du unngå å bruke Anti-Malware:

    5. WP Antivirus Site Protection

    WP Antivirus Site Protection er en plugin som skanner alle filer lastet opp til et nettsted, inkludert WordPress-temaer.

    Plugin-en har sin egen signaturdatabase, som automatisk oppdateres via Internett. Den kan fjerne trusler automatisk, varsle nettstedadministratoren via e-post og mye mer.

    Plugin er installert og fungerer gratis, men har flere betalte tillegg som er verdt å ta hensyn til:

    6. AntiVirus for WordPress

    AntiVirus for WordPress er en brukervennlig plugin som kan skanne nettstedet ditt regelmessig og varsle deg om sikkerhetsproblemer via e-post. Programtillegget har en tilpassbar hviteliste og andre funksjoner:

    7. Quterra Web Malware Scanner

    Quterras skanner sjekker et nettsted for sårbarheter, tredjeparts kodeinjeksjoner, virus, bakdører osv. Skanneren har så interessante funksjoner som heuristisk skanning og gjenkjenning av eksterne lenker.

    Grunnleggende skannerfunksjoner er gratis, mens noen tilleggstjenester vil koste deg $60 per år:

    8. Wordfence

    Hvis du leter etter en omfattende løsning på nettstedets sikkerhetsproblemer, trenger du ikke lete lenger enn til Wordfence.

    Denne plugin gir konstant beskyttelse for WordPress mot kjente typer angrep, tofaktorautentisering, støtte for en "svarteliste" over IP-adresser til datamaskiner og nettverk brukt av hackere og spammere, og skanning av nettstedet for kjente bakdører.

    Denne plugin-en er gratis i sin grunnleggende versjon, men den har også premium-funksjonalitet, som produsenten ber om en beskjeden abonnementsavgift for:

    9. Wemahu

    Wemahu overvåker endringer i nettstedets kode og søker etter skadelig kode.

    Databasen som skadelig programvare oppdages på fylles på ved hjelp av crowdsourcing-metoden: brukerne fyller på den selv ved å sende resultatene av skanning av infiserte WordPress-installasjoner til nettstedet til plugin-forfatteren. Programtillegget støtter også sending av rapporter via e-post og andre nyttige funksjoner.

    Sannheten i livet er at siden kan hackes før eller siden. Etter å ha utnyttet sårbarheten, prøver hackeren å få fotfeste på nettstedet ved å plassere hacker-nettskall og nedlastere i systemkataloger og introdusere bakdører i skriptkoden og CMS-databasen.

    Skannere hjelper til med å oppdage innlastede nettskall, bakdører, phishing-sider, spam-e-poster og andre typer ondsinnede skript – alt de vet og er forhåndstillagt i signaturdatabasen for skadelig kode. Noen skannere, som AI-BOLIT, har et sett med heuristiske regler som kan oppdage filer med mistenkelig kode som ofte brukes i ondsinnede skript, eller filer med mistenkelige attributter som kan lastes ned av hackere. Men, dessverre, selv om flere skannere brukes på hostingen, kan det være situasjoner der noen hackerskript forblir uoppdaget, noe som faktisk betyr at angriperen sitter igjen med en "bakdør" og kan hacke nettstedet og få full kontroll over det når som helst. øyeblikk.

    Moderne skadevare- og hackerskript er vesentlig forskjellige fra de for 4-5 år siden. For tiden kombinerer utviklere av ondsinnet kode tilsløring, kryptering, dekomponering, ekstern lasting av ondsinnet kode og andre triks for å lure antivirusprogramvare. Derfor er sannsynligheten for å gå glipp av ny skadelig programvare mye høyere enn før.

    Hva kan gjøres i dette tilfellet for mer effektivt å oppdage virus på nettstedet og hackerskript på hostingen? Det er nødvendig å bruke en integrert tilnærming: innledende automatisert skanning og ytterligere manuell analyse. Denne artikkelen vil diskutere alternativer for å oppdage skadelig kode uten skannere.

    Først, la oss se på nøyaktig hva du bør se etter under et hack.

  • Hacker-skript.
    Som oftest, ved hacking, er filer som lastes ned nettskall, bakdører, "opplastingsprogrammer", skript for spam-e-poster, phishing-sider + skjemabehandlere, døråpninger og hackingmarkørfiler (bilder fra hackergruppens logo, tekstfiler med "melding" fra hackere osv.)
  • Injeksjoner (kodeinjeksjoner) i eksisterende .
    Den nest mest populære typen hosting av ondsinnet kode og hackerkode er injeksjoner. Mobil- og søkeomdirigeringer kan injiseres i eksisterende .htaccess-filer på nettstedet, bakdører kan injiseres i php/perl-skript, og virale javascript-fragmenter eller omdirigeringer til tredjepartsressurser kan bygges inn i .js- og .html-maler. Injeksjoner er også mulig i mediefiler, for eksempel.jpg eller. Ofte består ondsinnet kode av flere komponenter: selve den ondsinnede koden er lagret i exif-overskriften til jpg-filen, og utføres ved hjelp av et lite kontrollskript, hvis kode ikke ser mistenkelig ut for skanneren.
  • Databaseinjeksjoner.
    Databasen er det tredje målet for en hacker. Her er statiske innlegg mulige, , , , som omdirigerer besøkende til tredjepartsressurser, "spionerer" på dem eller infiserer besøkendes datamaskin/mobilenhet som et resultat av et drive-by-angrep.
    I tillegg, i mange moderne CMS (IPB, vBulletin, modx, etc.), lar malmotorer deg kjøre PHP-kode, og selve malene lagres i databasen, slik at PHP-koden til nettskall og bakdører kan bygges direkte inn i databasen.
  • Injeksjoner i hurtigbuffertjenester.
    Som et resultat av feil eller usikker konfigurasjon av cachingtjenester, for eksempel memcached, er injeksjoner i hurtigbufrede data mulig. I noen tilfeller kan en hacker injisere ondsinnet kode på sidene til et nettsted uten å direkte hacke nettstedet.
  • Injeksjoner/initierte elementer i serversystemkomponenter.
    Hvis en hacker har fått privilegert (root) tilgang til serveren, kan han erstatte elementer av webserveren eller cacheserveren med infiserte. En slik webserver vil på den ene siden gi kontroll over serveren ved hjelp av kontrollkommandoer, og på den annen side fra tid til annen introdusere dynamiske omdirigeringer og ondsinnet kode på sidens sider. Som ved en injeksjon i en hurtigbuffertjeneste, vil nettstedsadministratoren mest sannsynlig ikke kunne oppdage at siden har blitt hacket, siden alle filene og databasen vil være originale. Dette alternativet er det vanskeligste å behandle.
  • Så la oss anta at du allerede har sjekket filene på hostingen og databasedumpen med skannere, men de fant ikke noe, og viruset er fortsatt på siden, eller mobilviderekoblingen fortsetter å fungere når du åpner sider. Hvordan søke videre?

    Manuelt søk

    På unix er det vanskelig å finne et mer verdifullt kommandopar for å finne filer og fragmenter enn find / grep.

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

    vil finne alle filer som har blitt endret den siste uken. Noen ganger "vrir" hackere endringsdatoen til skript for ikke å oppdage nye skript. Deretter kan du søke etter php/phtml-filer hvis attributter er endret

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

    Hvis du trenger å finne endringer i et bestemt tidsintervall, kan du bruke samme funn

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

    For å søke i filer er grep uunnværlig. Den kan søke rekursivt gjennom filer etter et spesifisert fragment

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

    Når du hacker en server, er det nyttig å analysere filer som har guid/suid-flagget satt

    finn / -perm -4000 -o -perm -2000

    For å finne ut hvilke skript som kjører og laster hosting-CPU, 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 bruker hjernen og hendene våre til å analysere filer på hosting
  • Vi går til opplastings-, cache-, tmp-, backup-, logg-, bildekatalogene, der noe er skrevet av skript eller lastet opp av brukere, og skanner innholdet for nye filer med mistenkelige utvidelser. For joomla kan du for eksempel sjekke .php-filene i katalogen images:find ./images -name ‘*.ph*’. Mest sannsynlig, hvis noe blir funnet, vil det være skadelig programvare.
    For WordPress er det fornuftig å sjekke wp-content/uploads-katalogen, backup- og cache-temakatalogene for skript.
  • Ser etter filer med merkelige navn
    For eksempel php, fyi.php, n2fd2.php. Filer kan søkes
    • - ved ikke-standard kombinasjoner av tegn,
    • - tilstedeværelsen av tallene 3,4,5,6,7,8,9 i filnavnet
  • Vi ser etter filer med uvanlige utvidelser
    La oss si at du har et nettsted på WordPress eller for dem vil filer med filtypene .py, .pl, .cgi, .so, .c, .phtml, .php3 ikke være helt vanlige. Hvis noen skript og filer med disse utvidelsene oppdages, vil de mest sannsynlig være hackerverktøy. Prosentandelen av falske deteksjoner er mulig, men den er ikke høy.
  • Vi ser etter filer med ikke-standard attributter eller opprettelsesdato
    Mistanke kan være forårsaket av filer med attributter som er forskjellige fra de som finnes på serveren. For eksempel ble alle .php-skript lastet opp via ftp/sftp og har brukeren, og noen ble laget av brukeren www-data. Det er fornuftig å sjekke de siste. Eller hvis skriptfilens opprettelsesdato er tidligere enn nettstedets opprettelsesdato.
    For å øke hastigheten på søket etter filer med mistenkelige attributter, er det praktisk å bruke Unix find-kommandoen.
  • Vi ser etter døråpninger som bruker et stort antall .html- eller .php-filer
    Hvis det er flere tusen .php- eller .html-filer i katalogen, er dette mest sannsynlig en døråpning.
  • Logger for å hjelpe

    Webserver, e-posttjeneste og FTP-logger kan brukes til å oppdage ondsinnede skript og hackerskript.

    • Å korrelere dato og klokkeslett for sending av et brev (som kan finnes fra e-postserverloggen eller tjenestehodet til et spambrev) med forespørsler fra access_log hjelper til med å identifisere metoden for å sende spam eller finne spam-avsenderens skript.
    • Analyse av FTP xferlog-overføringsloggen lar deg forstå hvilke filer som ble lastet ned på tidspunktet for hacket, hvilke som ble endret og av hvem.
    • I en riktig konfigurert e-postserverlogg eller i tjenesteoverskriften til en spam-e-post, hvis PHP er riktig konfigurert, vil det være et navn eller en fullstendig bane til avsenderskriptet, som hjelper til med å bestemme kilden til spam.
    • Ved å bruke loggene for proaktiv beskyttelse av moderne CMS og plugins, kan du finne ut hvilke angrep som ble utført på nettstedet og om CMS var i stand til å motstå dem.
    • Ved å bruke access_log og error_log kan du analysere handlingene til en hacker hvis du kjenner navnene på skriptene han ringte, IP-adressen eller brukeragenten. Som en siste utvei kan du se POST-forespørsler den dagen siden ble hacket og infisert. Ofte lar analysen deg finne andre hackerskript som ble lastet ned eller allerede var på serveren på tidspunktet for hacket.
    Integritetskontroll

    Det er mye lettere å analysere et hack og se etter ondsinnede skript på et nettsted hvis du tar vare på sikkerheten på forhånd. Prosedyren for integritetssjekk hjelper til med å oppdage endringer i hostingen i tide og bestemme fakta om hacking. En av de enkleste og mest effektive måtene er å sette nettstedet under et versjonskontrollsystem (git, svn, cvs). Hvis du konfigurerer .gitignore riktig, ser endringskontrollprosessen ut som å kalle opp git status-kommandoen, og å søke etter ondsinnede skript og endrede filer ser ut som git diff.

    Du vil også alltid ha en sikkerhetskopi av filene dine, som du kan "rulle tilbake" nettstedet til i løpet av sekunder. Serveradministratorer og avanserte webmastere kan bruke inotify, tripwire, auditd og andre mekanismer for å spore tilgang til filer og kataloger, og overvåke endringer i filsystemet.

    Dessverre er det ikke alltid mulig å konfigurere et versjonskontrollsystem eller tredjepartstjenester på serveren. Ved delt hosting vil det ikke være mulig å installere et versjonskontrollsystem og systemtjenester. Men det spiller ingen rolle, det er ganske mange ferdige løsninger for CMS. Du kan installere en plugin eller et eget skript på nettstedet som vil spore endringer i filer. Noen CMS implementerer allerede effektiv endringsovervåking og en integritetssjekkmekanisme (for eksempel Bitrix, DLE). Som en siste utvei, hvis hostingen har ssh, kan du lage et referansebilde av filsystemet med kommandoen

    Kampanje "2 for prisen av 1"

    Kampanjen er gyldig ut måneden.

    Når du aktiverer tjenesten "Nettsted under overvåking" for en nettside, kobles den andre på samme konto til gratis. Påfølgende nettsteder på kontoen - 1500 rubler per måned for hvert nettsted.