We hebben het er vaak over dat de beveiliging van je WordPress website geen “set up and forget” taak is. Het moet constant en nauwlettend door jou in de gaten worden gehouden en dat kan al snel een flinke klus lijken.

In situaties waarin je de beveiliging van meerdere websites moet bewaken, kan de Kinsta API een van je belangrijkste hulpmiddelen zijn. Dit geldt vooral als je een aantal onderling niet verbonden sites beheert. In deze situaties wil je de automatisering en zichtbaarheid die de API je kan geven.

In it artikel zullen we onderzoeken hoe we de Kinsta API kunnen gebruiken voor betere beveiliging. De nadruk zal liggen op het blokkeren van IP’s en het monitoren van de effecten daarvan met behulp van de verschillende beschikbare endpoints. Maar eerst moeten we nadenken over de moeilijke taak van het beheer van de sitebeveiliging.

De uitdagingen van het beheren van de beveiliging van je website

Als het populairste content management systeem (CMS) ter wereld is WordPress een doelwit bij uitstek voor hackers en kwaadwillenden. Daarom is WordPress druk bezig met zijn beveiliging.

Hoewel de cijfers er op papier goed uitzien – ongeveer drie procent van de sites heeft een of andere infectie of niet te bereiken bronnen – betekent dit niet dat je niks hoeft te doen. Er zijn namelijk genoeg bedreigingen waar je rekening mee moet houden als het gaat om je WordPress website:

Gezien de complexe reeks aanvallen kan het beheren van de beveiliging van een enkele WordPress site al een uitdaging genoeg zijn. Maar als je verantwoordelijk bent voor meerdere sites, worden die complexiteit en reikwijdte vermenigvuldigd. Een netwerk van sites zal altijd een aanwezige en proactieve benadering van beveiligingsmonitoring nodig hebben. Dit is nog moeilijker als je een heleboel sites beheert die niks met elkaar te maken hebben.

Daarom is een efficiënte en effectieve manier om elke site waar je voor zorgt te monitoren en te beveiligen van enorme waarde. Kinsta kan dit gelukkig aan elke klant bieden.

Hoe de Kinsta API de beveiliging van je site kan verbeteren

De sectie Site Informatie van het MyKinsta dashboard. De basisgegevens tonen het datacenter van de site, omgevingsdetails, sitepad, IP-adres, WordPress-versie, omgevingsnaam en de beschikbare resources. Er zijn ook details over SFTP/SSH-toegang en referenties.
Het MyKinsta dashboard.

Ongeacht het pakket dat je afneemt, heeft elke Kinsta klant toegang tot de volledige Kinsta API. Met deze krachtige tool kun je op veel programmatische manieren communiceren met je sites. Er zijn veel verschillende endpoints beschikbaar die ‘inhaken’ op aspecten van onze hosting, wat betekent dat je een stevige manier hebt om de beveiliging van al je sites te regelen.

Met de Kinsta API kun je verschillende beveiligingsgerelateerde taken automatiseren en er zijn veel relevante endpoints:

  • Binnen de Site Tools kun je IP’s op je blocklist ophalen en bijwerken.
  • Er is een endpoint om de fout- en toegangslogs van je site te bekijken en te beheren.
  • Je kunt analytics van al je sites ophalen dankzij een handvol endpoints die statistieken over prestaties ophalen.

Hoewel je deze tools kunt vinden in het MyKinsta dashboard, zijn er veel redenen waarom we ook een programmatische optie bieden. In veel opzichten biedt de Kinsta API je verschillende voordelen ten opzichte van het dashboard:

  • Automatisering. Je kunt beveiligingstaken automatiseren door scripts te schrijven of externe  tools te gebruiken. Dit kan tijd besparen en handmatige fouten verminderen.
  • Bulkbewerkingen. Met de API kun je beveiligingstaken op meerdere sites tegelijk uitvoeren. Als je deel uitmaakt van een bureau of je ontwikkelt WordPress websites voor de kost, dan zal dit aspect handig zijn.
  • Integratie. Als je al een pakket met beveiligingstools gebruikt dat je bevalt, kun je deze met de Kinsta API integreren in je setup. Hierdoor kun je je beveiligingsvoorziening omvormen tot iets unieks voor jouw site.

Genoeg gepraat – laten we eens kijken hoe je de Kinsta API kunt gebruiken om met IP adressen te werken. We beginnen met eenvoudige taken en kijken later naar geavanceerde toepassingen.

IP restricties implementeren met de Kinsta API

Een van de eenvoudigste manieren om de beveiliging van je site te verbeteren is door IP restricties. Hiermee kun je de toegang tot je site helemaal blokkeren. Het belangrijkste voordeel is het beperken van brute force aanvallen.

Hoewel je met het MyKinsta dashboard kunt werken met je blokkadelijst, heeft de Kinsta API meer flexibiliteit als je die nodig hebt. Laten we eens kijken naar een scenario waarbij je een WordPress bureau bent dat meerdere klantensites beheert op een van onze Kinsta Agency pakketten.

De Kinsta API gebruiken om IP adressen te beperken

Eerst moet je een lijst hebben met IP adressen die je wilt beperken. Onze documentatie bevat een aantal methoden hiervoor, zoals het gebruik van analytics om adressen te achterhalen die veel niet-cachebare verzoeken doen in een korte tijdspanne.

Het analysedashboard van de MyKinsta hosting toont de prestaties van de cachecomponent. Een gestapeld staafdiagram toont de cache hit rate in de tijd, met oranje balken die cache bypasses vertegenwoordigen die het grootste deel van het grafiekgebied uitmaken. Een taartdiagram splitst de cache componenten op. Een kleine tabel toont de top cache omleiding, namelijk het wp-cron.php pad.
Het analysescherm in het MyKinsta dashboard.

Vanaf hier kun je de Kinsta API gebruiken om ze te beperken. Allereerst moet je het Environments endpoint gebruiken om een lijst met sites op te halen. Dit omvat zowel je live als testsites:

const siteId = 'YOUR_site_id_PARAMETER';

const resp = await fetch(
  `https://api.kinsta.com/v2/sites/${siteId}/environments`,
  {
    method: 'GET',
    headers: {
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    }
  }
);

const data = await resp.text();
console.log(data);

Vervolgens kun je het endpoint Denied IPs gebruiken om een GET verzoek in te dienen dat je huidige blokkadelijst in JSON format retourneert. Het antwoord zal een array van geblokkeerde IP objecten bevatten:

{
- "environment": [
"id": "abc123",
"ip-list": [
"192.168.1.1",
]
    }
}

Met het bijbehorende PUT verzoek kun je een IP toevoegen aan je blokkadelijst, waarvoor je de omgevings-ID moet opgeven:

const resp = await fetch(
  `https://api.kinsta.com/v2/sites/tools/denied-ips`,
  {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json',
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    },
    body: JSON.stringify({
      environment_id: '54fb80af-576c-4fdc-ba4f-b596c83f15a1',
      ip_list: ['127.0.0.1']
    })
  }
);

const data = await resp.json();
console.log(data);

Een succesvolle toevoeging zal een responscode200 terugsturen, samen met result: null in een JSON bestand. Je kunt het hele proces verder automatiseren met een script of tool om het uit te voeren wanneer je de blocklist weer moet bijwerken.

Websiteactiviteit monitoren met de Kinsta API

Het implementeren van preventieve beveiligingsmaatregelen zoals IP-beperkingen is niet alleen erg handig, maar het is ook cruciaal om de activiteit op je website te controleren op potentiële beveiligingsrisico’s. Je kunt kijken naar een aantal belangrijke indicatoren voor elk van je sites:

  • Ongebruikelijke verkeerspatronen of volumepieken
  • De frequentie van mislukte inlogpogingen
  • Algemeen verdacht gebruikersgedrag
  • Inconsistente siteprestaties of ongebruikelijke downtimepatronen.

Het MyKinsta dashboard kan je realtime meldingen en waarschuwingen sturen over veel aspecten van je site. Dit kan je helpen om in actie te komen als er een potentieel beveiligingsprobleem is.

Een melding over de voltooiing van de Kinsta APM monitoring vanuit het MyKinsta-dashboard. In de melding staat dat de monitoring is voltooid en hoe lang deze was ingeschakeld. Er is ook een zwarte knop om de resultaten te bekijken. Onderaan staat een adviserende tekst over hoe de APM tool de prestaties van de site kan beïnvloeden.
Een meldingskaart in het MyKinsta dashboard.

De Kinsta API heeft verschillende endpoints waarmee je onder andere de logs van je site kunt opvragen en bekijken. Je kunt desgewenst ook geautomatiseerde monitorings- en waarschuwingssystemen instellen die uniek zijn voor jouw behoeften.

Kwaadaardige activiteiten vinden met sitelogs en statistieken

Laten we eens kijken naar een scenario waarin je bureau verdachte activiteiten op een individuele site van een klant moet controleren. Er zijn een paar benaderingen die je kunt gebruiken voor proactieve monitoring als je geen melding als uitgangspunt hebt.

Ook hier moet je je lijst met omgevingen ophalen, omdat de endpoints een ID nodig hebben. Als je dit eenmaal hebt, kun je het logs endpoint bekijken. Het verzoek heeft twee verplichte velden:

  • file_name accepteert een string die de error, access, of kinsta-cache-perf logs bevat.
  • lines laat je het aantal regels specificeren dat het verzoek retourneert van het log, dat onder de 20.000 moet zijn.

Dit kan je helpen erachter te komen of er reden tot zorg is. De diepere inzichten, dankzij het metrics endpoint, kunnen helpen de lege plekken op te vullen. De statistieken die je kiest om naar te kijken hangen af van de specifieke situatie.

Je kunt bijvoorbeeld bandbreedte controleren om er zeker van te zijn dat je niet wordt getroffen door een gecoördineerde aanval op een site. Met de query parameters kun je een begin- en endpoint voor het tijdsbestek instellen, evenals een intervaltijd. De JSON retournering geeft je bandbreedte details voor de specifieke site:

{
  "app": {
    "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1",
    "display_name": "my-app",
    "metrics": {
      "timeframe": {
        "start": "1679587045511",
        "end": "1679587045511"
      },
      "bandwidth": [
        {
          "time": "1679587045511",
          "value": "value"
        }
…

Er zijn nog veel meer statistieken beschikbaar, zoals het aantal HTTP verzoeken per minuut en de gemiddelde responstijd. Het is jouw taak om naar deze statistieken en de gegevens in de logs te kijken om verdachte activiteiten of potentiële beveiligingsrisico’s te identificeren.

Als je visualisatie nodig hebt, is dit waar de Kinsta APM van pas kan komen:

De Kinsta APM live monitoring tool toont prestatiegegevens over een bepaalde periode. De algemene transactietijdgrafiek toont balken voor PHP, MySQL, Redis en Externe transactietijden per dag. Een tabel onderaan toont de traagste PHP transacties, hun totale duur, maximale duur, gemiddelde duur en snelheid per minuut.
De Kinsta APM tool, die de totale transactietijd voor een bepaalde periode laat zien.

Door alle tools van Kinsta te combineren – de API, het MyKinsta dashboard en de APM – kun je potentiële beveiligingsproblemen snel opsporen en erop reageren en het risico op blijvende schade aan je site en de reputatie ervan minimaliseren.

Beveiligingsescalatie automatiseren met behulp van de Kinsta API en MyKinsta

Het automatiseren van je beveiligingsworkflow kan je reacties meer efficiëntie en mobilisatie geven. Hoewel proactieve bewaking de ideale manier is om je sites veilig te houden, is soms een reactieve aanpak nodig.

Dit is een ander gebied waar geautomatiseerde meldingen van pas komen. Zodra je een melding van Kinsta ontvangt, kun je in actie komen om het probleem op te lossen. In tegenstelling tot andere beveiligingstaken maakt de Kinsta API dit keer echter geen deel uit van de triage.

In plaats daarvan zal MyKinsta je gids zijn. De Kinsta documentatie behandelt de sitemonitoring meldingen die je tot je beschikking hebt. Er zijn er genoeg beschikbaar, zoals downtime van de site, DNS fouten en nog veel meer.

Op het moment dat je een bedreiging op je site identificeert, kun je een beroep doen op de Kinsta API om de kwaadwillende gebruikers aan te pakken. Dit kan zijn het toevoegen van IP’s aan een blokkadelijst of het controleren van de backups die je hebt voor het geval er iets ergs gebeurt.

Er zijn een paar GET verzoeken om je te helpen ontdekken welke backups er zijn. Als je er een mist, kun je een POST verzoek doen om een handmatige backup te starten. Hiervoor heb je alleen het omgevings-ID en een naam voor de backup nodig:

const envId = 'YOUR_env_id_PARAMETER';
const resp = await fetch(
  `https://api.kinsta.com/v2/sites/environments/${envId}/manual-backups`,
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    },
    body: JSON.stringify({
      tag: 'my-awesome-backup'
    })
  }
);

const data = await resp.json();
console.log(data);

Met de Kinsta API kun je ook een backup terugzetten. Je zou een strategie kunnen bedenken die de logs van je site ophaalt, je statistieken beoordeelt, een backup maakt op basis van je specifieke parameters en regels, inkomende kwaadaardige IP’s blokkeert en vervolgens een backup terugzet op een moment dat de aanvallen afnemen.

Houd de activiteit op de site voortdurend in de gaten en herzie je beveiligingsproces op basis van de inzichten die je verkrijgt via de Kinsta API en MyKinsta.

Door je beveiligingsescalatieproces te automatiseren, kun je sneller reageren op bedreigingen en de potentiële impact van beveiligingsincidenten op je site minimaliseren.

Goede praktijken voor het implementeren van API gestuurde beveiligingsmaatregelen

Wanneer je een API gebruikt, stel je aspecten van je site bloot aan het open web. Daarom is het noodzakelijk om een aantal typische en geaccepteerde praktijken te volgen om de veiligheid en integriteit van je site en gegevens te waarborgen.

Er zijn een paar belangrijke richtlijnen om in gedachten te houden. Eerst en vooral moet je altijd veilige authenticatiemethoden gebruiken wanneer je toegang hebt tot een API. Dit kan een API-sleutel, OAuth-tokens of iets anders zijn. Kinsta biedt hiervoor een API-sleutel authenticatie-endpoint:

const resp = await fetch(
  `https://api.kinsta.com/v2/validate`,
  {
    method: 'GET',
    headers: {
      Authorization: 'Bearer <YOUR_TOKEN_HERE>'
    }
  }
);

const data = await resp.text();
console.log(data);

Onthoud dat je je API-referenties niet in client-side code of openbare versiebeheer-repositories moet plaatsen. Hier moet je kijken naar wat de programmeertaal van je keuze biedt. Python gebruikt bijvoorbeeld een constants.py module en PHP gebruikt OpenSSL en andere modules om gevoelige informatie te beschermen.

Er zijn nog een paar andere belangrijke overwegingen die je moet maken:

  • Gegevensverwerking. Als je gevoelige gegevens ophaalt via de Kinsta API, zorg er dan voor dat je die gegevens op een veilige manier behandelt en opslaat. Je wilt ook geaccepteerde praktijken volgen voor gegevensversleuteling, toegangscontrole en naleving van alle privacyregels.
  • Regelmatig testen en bijwerken. Je testproces moet continu zijn, en dit is iets wat je ook kunt bereiken met de Kinsta API. Deze constante en voortdurende tests en updates zorgen ervoor dat je site en de beveiliging effectief blijven tegen zich ontwikkelende bedreigingen.

Tot slot is het volgen van het principe van de minste privileges bijna verplicht wanneer je een toegangsniveau instelt voor je team of externe diensten. In het kort: verleen alleen het minimale toegangsniveau dat elke gebruiker of dienst nodig heeft om taken uit te voeren. Bovendien moet je onnodige toestemmingen regelmatig controleren en intrekken.

Rapportage over IP-beperkingen en activiteitenmonitoring

Voor het beveiligingsbeheer van klantensites is het een goede gewoonte – en zo goed als cruciaal – om regelmatig en transparant te rapporteren over hoe effectief je strategie is. Je klanten verdienen het om op de hoogte te blijven van de stappen die je neemt om hun sites te beschermen en de resultaten van je inspanningen. Dit helpt om vertrouwen op te bouwen en de waarde aan te tonen van wat je biedt.

Daarom wil je ervoor zorgen dat de rapporten die je levert zoveel mogelijk informatie geven aan je klanten. Met Kinsta kun je putten uit een reeks statistieken en inzichten voor elke afzonderlijke site:

  • Het aantal geblokkeerde IP-adressen.
  • Trends in verdachte activiteiten, zoals mislukte inlogpogingen of ongebruikelijke verkeerspatronen.
  • De prestaties en uptime van je site. Deze kunnen indicatief zijn voor potentiële beveiligingsproblemen.

Natuurlijk heb je nog veel meer beschikbaar. Toch is het belangrijk om deze inzichten op de beste manier voor je klanten te presenteren. Hier zijn een paar tips over wat je moet vermelden:

  • De acties die je hebt ondernomen als reactie op geïdentificeerde bedreigingen, zoals backups van de site of beveiligingspatches.
  • Gebruik tools voor datavisualisatie om duidelijke, toegankelijke en begrijpelijke informatie over de beveiliging van een site te presenteren. Grafieken, diagrammen en dashboards kunnen je klanten helpen om op de hoogte te blijven van de huidige beveiliging en of je inspanningen effectief zijn.
  • Je moet proberen context en uitleg te geven bij de gegevens die je presenteert. Het is een vergissing om aan te nemen dat je klanten een diepgaand technisch begrip hebben van beveiligingsconcepten. Gebruik in plaats daarvan gewone taal en geef voorbeelden om hen te helpen het belang en de ernst te begrijpen van de statistieken en trends waarover je rapporteert.

Wees over het algemeen transparant over alle uitdagingen of beperkingen die je tegenkomt met de beveiliging van de site. Bij moeilijke bedreigingen of problemen is het een goed idee om er open over te zijn en uit te leggen wat je doet om het te verbeteren.

Hier kan het nuttig zijn om aanbevelingen te doen voor verdere verbeteringen van de beveiliging. Deze komen voort uit je inzichten en analyse. Het kan bijvoorbeeld gaan om suggesties voor aanvullende beveiligingsmaatregelen, zoals het implementeren van twee-factor authenticatie of het bijwerken van verouderde plugins.

Samenvatting

De Kinsta API biedt veel mogelijkheden voor een veelheid aan sitetaken. Maar als het op beveiliging aankomt, is het een sterke manier om je site en gebruikers veilig te houden. Je kunt er taken mee automatiseren zoals het ophalen van logs, het controleren op ongewone activiteiten en het automatisch blokkeren van IP’s.

We houden van de overtuigende en krachtige aanpak om de API te koppelen aan andere apps en tools. Op deze manier kun je je site volledig programmatisch beveiligen. In combinatie met de visualisatiemogelijkheden via de Kinsta APM kan je site nog lang veilig blijven.

Hoe zou jij de Kinsta API willen gebruiken om de beveiliging van je site te beheren? Deel je gedachten en inzichten in de comments hieronder!

Jeremy Holcombe Kinsta

Content & Marketing Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems ;).