Aktuális helyzet: PHP2Shell. Két kritikus PHP-rés (CVSS 9,2) lehetővé teszi kártékony kód futtatását bejelentkezés nélkül. Javítások 2026. 10. 21. óta.Mi a teendő most →

Webszerver-naplók kiértékelése egy támadás után: az access-napló helyes olvasása

A naplófájlok egy támadás után gyakran a legfontosabb nyomok. Így mentse helyesen az access-, error- és PHP-naplókat, találja meg a feltűnő kéréseket, és kerülje el a kiértékelés tipikus hibáit.

Állapot 5 perc olvasási időÚtmutatók

Röviden: Aki egy támadás után ki akarja értékelni az access-naplót, először változatlanul lementi a naplókat, utána csak másolatokkal dolgozik. Keresett elemek: 200-as státuszú kérések ismeretlen PHP-fájlokra, feltűnő POST-kérések, hozzáférések a feltöltési könyvtárakhoz és időbeli minták. A PHP2Shellhez nincsenek közzétett, megerősített Indicators of Compromise, ezért több naplóforrás összképe számít.

Először mentés, utána kiértékelés

A naplófájlokat a legtöbb szerveren automatikusan rotálják, és egy rögzített idő után törlik. Egy támadás után ezért az első lépés a meglévő naplók lementése, mielőtt eltűnnének. Ez akkor is érvényes, ha még nem biztos abban, hogy egyáltalán történt-e valami. A PHP2Shellről a szakmai sajtó azt javasolja, hogy a naplókat 2026. 10. 20-tól őrizze meg.

# Naplók másolása időbélyegekkel és ellenőrző összegek rögzítése
ZIEL=/root/sicherung-logs-$(date +%F)
mkdir -p "$ZIEL"
cp -a /var/log/nginx /var/log/apache2 /var/log/php* "$ZIEL"/ 2>/dev/null
cp -a /var/log/auth.log* /var/log/syslog* "$ZIEL"/ 2>/dev/null
find "$ZIEL" -type f -exec sha256sum {} + > "$ZIEL.sha256"

A mentést tegye ki emellett egy másik rendszerre is. A szerverhez hozzáférő támadó különben utólag módosíthatná a naplókat. Az ellenőrző összegek később megmutatják, hogy a másolat változatlan. Ha bíróság előtt is megálló mentésre van szükség, például feljelentéshez vagy a biztosításhoz, a mentést egy IT-forenzikának kell átvennie.

Fontos

Ellenőrizze a naplórotációt (/etc/logrotate.d/), és átmenetileg hosszabbítsa meg a megőrzést, hogy az elemzés alatt ne törlődjenek további fájlok.

Hol vannak a naplók, és hogyan épül fel egy sor

A tárolási helyek a disztribúciótól és a kezelőfelülettől függnek. Tipikus útvonalak:

Rendszer Access- és error-napló
Debian, Ubuntu Apache-csal /var/log/apache2/
RHEL, AlmaLinux, Rocky Apache-csal /var/log/httpd/
Nginx /var/log/nginx/
Plesk /var/www/vhosts/system/<domain>/logs/
PHP-FPM /var/log/php*-fpm.log vagy a journalban

Az elterjedt Combined formátumban minden sor tartalmazza a kliens címét, a dátumot és az időpontot, a kérés metódusát és útvonalát, a státuszkódot, a válasz méretét bájtban, a referert és a user-agentet. Ügyeljen az időbélyeg időzónájára, különösen ha a naplókat UTC-ben megadott üzenetekkel veti össze. A PHP2Shell javításait például 2026. 10. 21-én 14:00 UTC-kor adták ki, vagyis német idő szerint 16 órakor.

Ha a weboldala proxy, CDN vagy load balancer mögött van, a naplóban esetleg csak ennek a címe szerepel. A látogató valódi címe ekkor egy külön mezőben vagy az előtte álló szolgáltatás naplóiban található.

Parancssor nélkül: naplók a panelben vagy a tárhelyszolgáltatónál

Nem minden üzemeltetőnek van shell-hozzáférése. Megosztott tárhelynél vagy gondozott szervereknél a kezelőfelületek többnyire naplónézetet és az access- és error-naplók letöltését kínálják. Töltse le a fájlokat a teljes elérhető időszakra, és őrizze meg biztonságosan. Kérdezze meg írásban a tárhelyszolgáltatóját, meddig tárolják a naplókat, és lementhetők-e a régebbi állapotok, mielőtt lejárnának.

Vegye figyelembe az adatvédelmet is: a naplók IP-címeket és gyakran további személyes adatokat tartalmaznak. A másolatokat hozzáférés-védetten tárolja, csak olyan személyeknek adja tovább, akiknek a felderítéshez szükségük van rájuk, és rögzítse, mikor törlik őket az incidens lezárása után.

Az access-napló kiértékelése: a legfontosabb lekérdezések

A következő parancsok csak olvasnak, és Nginxhez és Apache-hoz is alkalmasak Combined formátumban. A rotált és tömörített fájlokat a zgrep-pel vagy a zcat-tal keresse át.

LOG=/root/sicherung-logs-2026-10-25/nginx/access.log

# Sikeres kérések PHP-fájlokra, gyakoriság szerint
awk '$9 == 200 && $7 ~ /\.php/ {split($7,p,"?"); print p[1]}' "$LOG" | sort | uniq -c | sort -rn | head -40

# PHP-hívások feltöltési, gyorsítótár- vagy képkönyvtárakban
grep -E '"(GET|POST) /[^ ]*(uploads|cache|images|tmp)/[^ ]*\.php' "$LOG"

# POST-kérések cél és cím szerint
awk '$6 == "\"POST" {print $1, $7}' "$LOG" | sort | uniq -c | sort -rn | head -40

# 5xx hibák óránként: a halmozódások összeomló PHP-folyamatokra utalhatnak
awk '$9 ~ /^5/ {print substr($4, 2, 14)}' "$LOG" | sort | uniq -c

# A rotált naplók bevonása
zgrep -h ' 200 ' /var/log/nginx/access.log.*.gz | grep -c '\.php'

Az első lekérdezésnél különösen azok a fájlnevek érdekesek, amelyeket nem ismer, vagy amelyek nem tartoznak az alkalmazáshoz. Vesse össze a gyanús fájlokat a fájlrendszerrel: mikor hozták létre őket, kihez tartoznak, mi van bennük? Támpontokat ehhez a Webshellek felismerése és eltávolítása útmutató ad.

A PHP2Shell sajátosságai

A PHP2Shellnél a rések a PHP kéréskezelésében vannak. A mod_php esetében már azelőtt bemutattak egy exploitot, hogy az alkalmazáskód egyáltalán futna. Ez azt jelenti: egy teljesen normális oldalra irányuló kérés is elég lehet. Az access-naplóban egy ilyen kérés esetleg feltűnésmentesnek látszik, mert a kérés törzsének tartalma ott nem szerepel.

Nincsenek közzétett, megerősített Indicators of Compromise. Figyeljen ezért a viselkedésre és az összefüggésekre, például 2026. 10. 17-től, a médiabeszámolók szerint az első megfigyelt támadási kísérlet időpontjától:

  • Az 500-as hibák vagy a megszakadt válaszok halmozódása szokásos oldalakon.
  • Üzenetek kimerült memóriáról vagy leállított workerekről az error- és a PHP-FPM-naplóban.
  • Új PHP-fájlok vagy módosított fájlok nem sokkal ilyen halmozódások után.
  • Új cron-feladatok, folyamatok vagy kimenő kapcsolatok a webszerver felhasználója alatt.

E jelek egyike sem bizonyíték önmagában. Más nyomokkal együtt azonban olyan képet adnak, amely megválaszolja a feltörés kérdését, vagy mélyebb vizsgálatot indokol. A jelek áttekintését a Már feltörték a rendszeremet? oldalon találja.

További források: error-napló, PHP-FPM és rendszernaplók

Az access-napló csak egy részt mutat. A teljes képhez vegyen igénybe további forrásokat:

# PHP-FPM és webszerver a journalban egy dátumtól
journalctl -u 'php*-fpm*' --since "2026-10-17" --no-pager | tail -200

# Bejelentkezések a szerveren
last -Fa | head -40
grep -E 'Accepted|Failed' /var/log/auth.log | tail -100

# Az összes felhasználó ütemezett feladatainak ellenőrzése
for u in $(cut -d: -f1 /etc/passwd); do crontab -l -u "$u" 2>/dev/null | sed "s/^/$u: /"; done

A kiértékelés tipikus hibái: csak az aktuális naplót keresik át a rotáltak helyett is, az időzónát figyelmen kívül hagyják, és az automatizált szkennerek egyes találatait sikeres támadásnak tekintik. Ugyanilyen kockázatos az ellenkezője: egy feltűnésmentes access-naplót felmentésnek venni, noha az error-naplót és a fájlrendszert még nem ellenőrizték.

Jegyezzen fel minden leletet idővel, forrással és megfigyeléssel egy idővonalon. Ez az idővonal később a döntések, a hatóságoknak vagy biztosítóknak szóló bejelentések és a záró jelentés alapja.

Hogyan segít konkrétan a PHP SOS?

  • Úgy mentjük le a naplókat és a lényeges fájlokat, hogy későbbi vizsgálatokhoz követhetők maradjanak.
  • Az access-, error-, PHP- és rendszernaplókat együtt értékeljük ki, és idővonalat készítünk az incidensről.
  • Feltörésre utaló jelek esetén átvesszük az incidenskezelést (incident response) megfékezéssel és megtisztítással.
  • Úgy állítjuk be a naplórotációt és a megőrzést, hogy a következő incidensnél meglegyenek a szükséges adatok.

Gyakori kérdések

Meddig őrizzem meg a webszerver-naplókat?

Addig, ameddig az adatvédelmi koncepciója megengedi, és egy elemzés értelmes. A PHP2Shellről a szakmai sajtó azt javasolja, hogy a naplókat 2026. 10. 20-tól őrizze meg. Ellenőrizze a naplórotációt, hogy a régebbi fájlokat ne törölje automatikusan.

Megmutatja az access-napló, hogy sikeres volt-e egy támadás?

Önmagában nem. Kéréseket, státuszkódokat és válaszméreteket mutat, de nem azt, hogy milyen kód futott a szerveren. Megbízható kép csak az error-naplóval, a PHP-FPM-naplóval, a fájlmódosításokkal és a rendszernaplókkal együtt áll össze.

Továbbadhatom a naplókból az IP-címeket harmadik feleknek?

Az IP-címek általában személyes adatnak számítanak. Egy incidens felderítéséhez és feljelentésekhez ugyan vannak jogalapok, a továbbadást azonban egyeztetni kell az adatvédelmi felelőssel.

Miért látok a naplóban sok támadást, noha nem történt semmi?

A nyilvános szervereket folyamatosan automatizáltan szkennelik. Ezeknek a kéréseknek a többsége eredménytelen, és 404-gyel vagy 403-mal végződik. Elsősorban azok a kérések érdekesek, amelyek ismeretlen fájlokra 200-as státusszal érkeznek, és azok a minták, amelyek időben egybeesnek más nyomokkal.

Források

Azonnali kapcsolat

Minden óra számít. Írjon nekünk most.

Ismertesse röviden a rendszert, a PHP-verziót és a megfigyelését. Jelentkezünk, tisztázzuk a helyzetet, és távolról dolgozunk, amíg az incidens le nem zárul és dokumentálva nem lesz.

Azonnali segítség