PHP.net forhåndsannonserte i går om to alvorlige sårbarheter som ville bli publisert offentlig kl. 16 mandag 21 Oktober. Disse to sårbarhetene har nå fått tilnavnet “PHP2Shell” og er en av de større sårbarhetene som har blitt publisert de siste årene, PHP står for store deler av internettet så dette påvirker mange. Flere av våre kunder kjører PHP så vi ønsker å informere om situasjonen.

Sårbarhetene er enkle å utnytte og gir i praksis full tilgang til en nettside uten å måtte logge inn. Vi kjører i dag to systemer, ett på vårt nyere moderne cluster som vi drifter selv og et annet hvor infrastrukturen driftes av en underlevernadør. Vi har siden 2024 migrert fleste av våre kunder bort fra det gamle systemet som kjører hos vår underleverandør. De kundene vi har som fortsatt ikke blitt migrert over har blitt varslet om sårbarheten og oppfordres å migrere over. PHP kom i dag med en oppdatering som også fikset sårbarheten i eldre EOL (end-of-life) versjoner som vanligvis ikke får sikkerhetsoppdateringer mer.

Hvis nettsiden din ligger på vårt nye driftsmiljø, så fikk vi kjørt igjennom en oppdatering på våre egne byggmaskiner og alle nettsidene var oppdatert kl. 18 med unntak av PHP sider som krever egne bibliotek for å støtte SOAP (gjelder svært få).

For oppdateringer på vårt gamle driftsmiljø, så har disse blitt oppdatert individuelt. Noen av de trengte sikkerhetsoppdateringen som kom i dag for PHP versjoner under 8.2.

Tidslinje

  1. Vi varslet flere kunder i forkant og tok ned noen nettsider som ikke er kritiske, EOL og/eller kjører på et eldre system.
  2. Patch/fiks for sårbarheten ble publisert av PHP.net kl. 16.
  3. https://pecl.php.net ble tatt ned på grunn av for mye trafikk, noe som gjorde at populære bibliotek som imagick og phpredis ikke var tilgjengelige ved bygging av ny versjon.
  4. Container for PHP ble bygd hos Github av PHP.net, men de første versjonene var ikke ute før 16:50.
  5. Offcenit startet rundt 17:00 å bygge vår egen PHP versjon og container for bla. Wordpress, disse var ferdige kl. 18 og rullet ut til alle kundene våre på vårt nye driftsystem kort tid etterpå.
  6. Wordpress sitt offisielle container var ferdig bygd rundt kl. 20.

Må jeg være bekymret for PHP2Shell?

Hos oss? Nei. Vi har oppdatert og satte inn tiltak på alle sider, selv de som ikke fikk ny PHP versjon før i dag. Selv om uhellet skulle ha vært ute, kjører selv det eldre driftsmiljøet vårt i Kubernetes, noe som allerede er sikrere en ordinære VPS- og docker-baserte systemer. Alt har off-site backup.

For de kundene som er i vårt nye driftsmiljøet vår så har vi allerede gode tiltak mot slike type sårbarheter:

  • Driftsmiljøet bruker Talos Linux, som er ett operativsystem som er laget for å være så sikkert som overhode mulig for noe som er tilgjengelig på nett. Talos er mye brukt i system som krever svært høy sikkerhet.
  • Alle kunder er isolerte både på prosessnivå og på nettverksnivå. Vi har også et robust loggsystem som gjør at vi ser om noe rart skulle skje. Databaser som kjøres er også godt isolert og har bare tilgang på akkurat det som trengs for å kjøre.
  • Bare filer som må kunne endres på kan endres på, resten er låst, noe som begrenser hva en slik sårbarhet kan oppnå og hvor lett de kan komme seg rundt det.
  • Overvåking av runtimemiljøet dette er basert på eBPF med Tetragon. Dette gjør så vi ser alt som skjer inne i ett system med så små detaljer som er mulig å registere.

For de mer tekniske;

  • Vi har read-only filsystem for hele OS’et på alt som kjører PHP.
  • Vi har en nettverksbrannmur for alle applikasjoner som baserer seg på hvem/hvilken applikasjon, port, method og path et sysetm har lov til å kommunisere med.
  • PHP kjører i en egen prosess separat fra web serveren, PHP har ikke tilgang til web serveren sine konfigfiler i heletatt. Filsystemene er helt separate og deler bare en mappe.
  • Ingenting kjører som root/admin (alt er nonRoot), containere har ikke ekstra privilegier og vi har god kontroll på tilgangsstyring.
  • Hvert system får sin egen database og bruker.
  • Vi har ikke unødvendige verktøy i PHP prosessene, så det begrenser hva en aktør kan oppnå fra shell.

Vi har fulgt tett med på utviklingen siden PHP2Shell ble annonsert og ingen av våre kunder har blitt påvirket av PHP2Shell til noen grad.

Vår lille nye WAF

Vi har nylig kjørt ut vår egen WAF (web application firewall), som henter inn signaler fra flere steder for å kunne blokkere og overvåke ondsinnede aktører på tvers av alle kundene våre.

Vi kommer til å bruke dette systemet for å overvåke hyppigheten av angrep med PHP2Shell framover.

For de som er mer tekniske; vår WAF legger i grunn mye av prinsippene fra CSL/ModSecurity og BunkerWeb/CrowdSec, men med en god del “ekstra” som plukker opp mer en hva bare signaturbasert deteksjon vanligvis kan gjøre og kan håndtere store mengder trafikk uten ekstra forsinkelse, alt skjer på under ett milisekund. Ta gjerne kontakt med oss, så kan vi dele mer om hva som gjør systemet unikt og mer effektivt en andre alternativ.