Eenmalige security voorziening

Een content management systemen als Joomla is van zichzelf al behoorlijk beveiligd, maar hackers doen er alles aan om toch binnen te dringen. Er is in en rond de basis van het CMS nog veel te doen om het veiligheidsniveau flink te verhogen. Ik stel daarom een basispakket voor met eenmalige aanpassingen, installatie en configuratie.

Let op: technobabbel!

Voor wie het weten wil, probeer ik hier de belangrijkste maatregelen toe te lichten. Voor alle maatregelen geldt 'voor zover nodig en mogelijk'. Sommige maatregelen zijn specifiek voor Joomla, het CMS dat ik het meest gebruik.

Samengevat komt het neer op:

  • striktere configuratie van applicatie en gebruikers
  • implementatie van een softwarematige firewall
  • monitoring van essentiĆ«le onderdelen en acties

Eenmalige installatie en configuratie

  • Optimaliseren en opschonen
    • verwijderen/uitschakelen van ongebruikte onderdelen en extensies
    • verwijderen van tijdelijke bestanden in Temp map
    • verwijderen van ongebruikte user accounts
    • data tabellen repareren en optimaliseren
    • wijzigen standaard tabelnaam voorvoegsel
    • wijzigen standaard id webmaster
    • bestandspermissies veilig instellen
  • Bescherming aanbrengen tegen
    • zogeheten SQL injecties
    • misbruik van webformulieren
    • upload van onveilige bestanden (scannen op eventuele script code)
  • Beperken van
    • installatiemogelijkheden extensies (tot alleen de webmaster)
    • aanpassingsmogelijkheden user gegevens (tot alleen de webmaster)
    • herkenbaarheid scripttaal en -versie in HTTP headers
    • herkenbaarheid CMS in pagina headers
    • debug-mogelijkheden waarmee informatie over templates en extensies te achterhalen zou zijn
    • toegang tot mappen voor tijdelijke bestanden
    • toegang tot frontend onderdelen, met nauwkeurig gedefinieerde uitzonderingen
    • backend onderdelen, met nauwkeurig gedefinieerde uitzonderingen
    • herkenbaarheid van inlog mogelijkheid op frontend
  • Blokkeren van
    • toegang tot gevoelige configuratie- en systeembestanden
    • mogelijkheden om directories in te lezen
    • site-toegang op basis van eigen zwarte lijst met ip-nummers
    • site-toegang op basis van externe zwarte lijsten met ip-nummers
    • schadelijke useragents (niet standaard browsers)
    • directe bestandsinjecties 
    • bestandsinjecties op afstand
    • bekende inbraakpogingen
    • recidivisten met verdacht gedrag
  • Uitschakelen van
    • directe toegang tot standaard inlogscherm van de backend
    • mogelijkheid nieuwe users via frontend aan te maken (als dit gemist kan worden)
    • aanroep zogeheten PHP easter eggs (waarmee PHP versie te achterhalen zou zijn)

Doorlopende monitoring en melding

  • Mislukte logins op de backend
  • Duidelijke pogingen door beveiliging te breken
  • Herhaaldelijk verdacht gedrag
  • Wijzigingen aan belangrijke bestanden (datum en bestandsomvang)

Doorlopend onderhoud

  • Sessietabel dagelijks opschonen en repareren
  • Cache directories dagelijks opschonen
  • Temp directories dagelijks opschonen