Kort sagt: En skanner för skadlig kod på webbplatser hittar framför allt kända mönster i filer eller på den levererade sidan. Ny och förvrängd kod, bakdörrar i databasen, främmande konton, cronjobb och SSH-nycklar förblir ofta osynliga. ”Inget hittat” betyder därför inte ”rent”. En kontroll blir tillförlitlig först genom kombinationen av skanner, jämförelse med originalet, kontroll av databas och system samt beteendeövervakning.
Den bedrägliga lugnet efter den gröna bockningen
Efter PHP2Shell har många driftansvariga gjort det som ligger nära till hands: kört en skanner. En onlinetjänst kontrollerar startsidan, ett säkerhetstillägg söker igenom webbkatalogen, resultatet är grönt. Därmed verkar frågan vara besvarad om något hände före patchen.
Problemet ligger i principen. De flesta skannrar jämför innehåll med mönster från känd skadlig programvara. För sårbarheterna CVE-2026-109618 och CVE-2026-109619 finns det dock inga publicerade, bekräftade Indicators of Compromise; upptäckten bygger på beteendeanalys. En skanner kan inte söka efter spår som ingen känner till. Bäst hittar den allmän skadlig programvara som lästs in efter ett intrång, förutsatt att den följer kända mönster.
Det gör inte skannrar värdelösa. Det betyder bara att deras resultat måste placeras rätt. Vilka tecken som räknas utöver skannrar beskriver Är jag redan komprometterad?.
Skannrar för skadlig kod på webbplatser: tre konstruktioner
| Konstruktion | Vad den ser | Vad den inte ser |
|---|---|---|
| Extern skanner (onlinetjänst) | levererade sidor, inkluderade skript, omdirigeringar, spärrlistor | Filer, databas, konton, allt som bara levereras under vissa villkor |
| Skanner i CMS:et (tillägg eller extension) | filer i webbkatalogen, delvis databasinnehåll, jämförelse med kärnfiler | Systemnivån, cronjobb, SSH; körs i det möjligen komprometterade systemet |
| Skanner på servern (signaturbaserad) | alla läsbara filer, även utanför webbkatalogen | okända och förvrängda mönster, databas, konton, beteende |
Externa skannrar är användbara för att upptäcka synliga följder, till exempel omdirigeringar eller poster på spärrlistor. Många intrång levererar dock sina spam- eller omdirigeringsinnehåll bara till vissa besökare, till exempel sökmotorer eller mobila enheter. Skannern ser då en ren sida.
Skannrar i CMS:et har mer insyn men ett principiellt problem: de körs i samma system som de ska kontrollera. Kod med tillräckliga rättigheter kan påverka deras resultat, dölja filer eller avaktivera skannern. Serverskannrar arbetar utanför applikationen men är fortfarande hänvisade till mönster.
Vad skannrar i grunden missar
Oavsett konstruktion finns det områden som en fil- eller sidskanner knappast kan täcka:
- Ny eller individuellt förvrängd kod: Varje variant som ser annorlunda ut än kända mönster slinker igenom.
- Databasen: Skript i innehåll, ändrade inställningar, trigger och främmande konton. Mer om det under Kontrollera databasen efter inplanterad kod.
- Åtkomster: extra adminkonton, SSH-nycklar, databasanvändare, konton i webbhotellspanelen.
- Systemtjänster och cronjobb: mekanismer som regelbundet läser in skadlig kod på nytt.
- Oansenliga ändringar i legitima filer: en enda extra rad i en kärnfil som ser ofarlig ut.
- Läckta data: Om åtkomstuppgifter eller kunddata har kopierats visar ingen skanner.
Vad som i stället skapar visshet
Mer säkerhet ger kombinationen av kontrolltyper som arbetar olika:
- Jämförelse med originalet: Den hittar varje förändring av kända filer, oberoende av mönster. Tillvägagångssättet beskriver Jämför CMS-kärnfiler med originalet.
- Riktad sökning efter avvikelser: PHP-filer i uppladdningsmappar, nyligen ändrade filer, förvrängd kod, körbara filer i temporära mappar.
- Kontroll av konton och systemtjänster: Jämför användare, nycklar, cronjobb och tjänster med det kända börläget.
- Logganalys: Förfrågningar mot okända filer, ökningar av fel, ovanliga inloggningar.
- Beteendeövervakning: Webbserverprocesser som startar ett skal, oväntade utgående anslutningar, nya filer i känsliga mappar.
Den sista kategorin är den viktigaste när inga kända spår finns. Den frågar inte hur skadlig kod ser ut utan vad den gör. En webbserverprocess som plötsligt startar ett skal upptäcks, oavsett hur den utlösande koden är förvrängd.
Låt en serverskanner köra från ett rent system över en skrivskyddad kopia i stället för på den misstänkta servern själv. Då kan inplanterad kod inte påverka resultatet.
Så använder ni skannrar på ett förnuftigt sätt
Skannrar har sin plats, som ett verktyg bland flera. En extern skanner passar som regelbunden kontroll av de synliga följderna, till exempel varje vecka. En skanner i CMS:et rapporterar känd skadlig programvara och ändrade kärnfiler i vardagen. En serverskanner kompletterar sökningen efter kända mönster i hela filsystemet.
Avgörande är hur resultatet hanteras. Ett fynd är ett tydligt kontrolluppdrag och motiverar en fullständig undersökning, eftersom sällan bara en fil är berörd. Ett tomt resultat är däremot bara ett uttalande om de kontrollerade mönstren. Anteckna i er dokumentation vilken skanner som kördes när och med vilken version, och skriv inte ”systemet rent” utan ”inga kända mönster hittade”.
För ledningen betyder det: en grön bockning ersätter inte en kontroll av någon som betraktar filer, databas, konton och beteende tillsammans. Efter en incident med möjlig kodkörning, som är tänkbar vid PHP2Shell, bör den kontrollen genomföras.
Rapporterar en skanner däremot ett fynd krävs snabbt men ordnat agerande. Radera inte den rapporterade filen direkt via skannerfunktionen. Säkra först filen och loggarna, så att det går att klargöra hur den kom till servern. Hur en fullständig sanering går till beskriver tjänsten Ta bort skadlig kod och webbshells.
Hur hjälper PHP SOS konkret?
- Vi kombinerar skannrar med jämförelse mot originalet, riktad sökning och analys av konton, tjänster och loggar.
- Vi granskar misstänkta system via säkrade kopior så att resultaten inte påverkas av det komprometterade systemet.
- Vi märker varje resultat ärligt som belagt, sannolikt eller okänt.
- Med säkerhetsövervakningen för webbservrar övervakar vi löpande era servrars beteende, inte bara kända mönster.
Vanliga frågor
Är min webbplats ren om skannern för skadlig kod inte hittar något?
Inte nödvändigtvis. Skannrar hittar framför allt kända mönster. Ny eller väl förvrängd kod, bakdörrar i databasen, främmande konton, cronjobb och SSH-nycklar förblir ofta oupptäckta. Ett tomt resultat är en byggsten, ingen friskrivning.
Vad är skillnaden mellan en extern skanner och en tilläggsskanner?
En extern skanner anropar webbplatsen utifrån och ser bara det som levereras. En tilläggsskanner körs inuti CMS:et och kan läsa filer, men körs i samma system som kanske är komprometterat. Båda har egna blinda fläckar.
Finns det skannersignaturer för PHP2Shell?
För PHP2Shell finns inga publicerade, bekräftade Indicators of Compromise. Skannrar kan därför inte söka riktat efter säkra PHP2Shell-spår. Upptäckten bygger på beteendeanalys och på sökning efter allmänna tecken på en kompromettering.
Vilken skanner är bäst?
Frågan leder fel. Viktigare än en viss produkt är kombinationen av olika kontrolltyper: jämförelse med originalet, sökning i filer och databas, kontroll av konton och systemtjänster samt övervakning av beteendet.