Parliamo spesso del fatto che la sicurezza di un sito web WordPress non è una questione che si può affrontare una volta e mai più. C’è bisogno di un monitoraggio costante e vigile, e la mole di lavoro può essere scoraggiante.

Nelle situazioni in cui è necessario monitorare la sicurezza di più siti web, l’API di Kinsta può essere uno degli strumenti chiave da utilizzare. Ciò è particolarmente vero quando si gestisce una serie di siti non collegati tra loro. In queste situazioni, vorrete l’automazione e la visibilità che l’API può dare.

In questo post analizzeremo l’utilizzo dell’API di Kinsta per migliorare la sicurezza. L’obiettivo principale sarà quello di bloccare gli IP e monitorare i loro effetti utilizzando i vari endpoint disponibili. Prima, però, dobbiamo considerare il difficile compito della gestione della sicurezza del sito.

Le sfide della gestione della sicurezza di un sito web

Essendo il sistema di gestione dei contenuti (CMS) più diffuso del pianeta, WordPress è un obiettivo primario per hacker e malintenzionati. Per questo motivo, WordPress punta molto sulla sua sicurezza di base.

Anche se i numeri sembrano buoni sulla carta – circa il 3% dei siti ha qualche tipo di infezione o risorse bloccate – questo non significa che ci si possa rilassare. Infatti, ci sono molte minacce da considerare quando si tratta del proprio sito web WordPress:

Data la complessa gamma di attacchi, gestire la sicurezza di un singolo sito WordPress può essere già abbastanza impegnativo. Tuttavia, quando si è responsabili di più siti, la complessità e la portata si moltiplicano. Una rete di siti avrà sempre bisogno di un approccio presente e proattivo al monitoraggio della sicurezza. Questo è ancora più difficile se si gestisce un gruppo di siti senza alcuna connessione.

Per questo motivo, un modo efficiente ed efficace per monitorare e proteggere tutti i siti di cui ci si occupa avrà un valore enorme. Kinsta è in grado di fornire questo servizio a tutti i clienti.

Come l’API di Kinsta può migliorare la sicurezza di un sito

La sezione Informazioni sul sito della dashboard di MyKinsta. I dettagli di base mostrano il centro dati del sito, i dettagli dell'ambiente, il percorso del sito, l'indirizzo IP, la versione di WordPress, il nome dell'ambiente e le risorse disponibili. Ci sono anche dettagli sull'accesso e sulle credenziali SFTP/SSH.
La dashboard MyKinsta.

Indipendentemente dal piano scelto, ogni cliente Kinsta ha accesso all’API di Kinsta. Questo potente strumento permette di interagire con i propri siti in molti modi programmatici. Sono disponibili molti endpoint diversi che si “agganciano” ad aspetti del nostro hosting, il che significa che si ha a disposizione un modo solido per gestire la sicurezza di tutti i propri siti.

L’API di Kinsta permette di automatizzare varie attività legate alla sicurezza e ci sono molti endpoint rilevanti:

Anche se questi strumenti si possono trovare all’interno della dashboard di MyKinsta, ci sono molte ragioni per cui offriamo anche un’opzione programmatica. Per molti versi, l’API di Kinsta offre diversi vantaggi rispetto alla dashboard:

  • Automazione. È possibile automatizzare le attività di sicurezza scrivendo script o utilizzando strumenti di terze parti. In questo modo si risparmia tempo e si riducono gli errori manuali.
  • Operazioni di massa. L’API permette di eseguire operazioni di sicurezza su più siti contemporaneamente. Se fate parte di un’agenzia o sviluppate siti web WordPress per lavoro, questo aspetto vi sarà utile.
  • Integrazione. Se utilizzate già una serie di strumenti di sicurezza che vi piacciono, l’API di Kinsta vi permetterà di integrarli nella vostra configurazione. Ciò permette di trasformare la vostra offerta di sicurezza in qualcosa di unico per il vostro sito.

Ma basta parlare: entriamo nel vivo dell’utilizzo dell’API di Kinsta per lavorare con gli indirizzi IP. Inizieremo con attività semplici e vedremo in seguito le applicazioni avanzate.

Implementare le restrizioni IP con l’API di Kinsta

Uno dei modi più semplici per rafforzare la sicurezza del sito è il blocco degli IP. In questo modo si può tagliare la testa al toro e impedire l’accesso al proprio sito. Il vantaggio principale è la mitigazione degli attacchi brute force.

Sebbene la dashboard di MyKinsta permetta di lavorare con la propria blocklist, l’API di Kinsta offre una maggiore flessibilità se serve. Consideriamo uno scenario in cui si fa parte di un’agenzia WordPress che gestisce più siti di clienti con uno dei nostri piani Kinsta Agency.

Usare l’API di Kinsta per bloccare gli indirizzi IP

Per prima cosa, serve un elenco di indirizzi IP che si desidera bloccare. La nostra documentazione contiene alcuni metodi per farlo, come ad esempio l’utilizzo di statistiche per individuare gli indirizzi che effettuano molte richieste non memorizzate in un breve lasso di tempo.

Il cruscotto delle statistiche dell'hosting MyKinsta mostra le prestazioni del componente della cache. Un grafico a barre sovrapposte mostra il tasso di risposta della cache nel tempo, con barre arancioni che rappresentano i bypass della cache, che rappresentano la maggior parte dell'area del grafico. Un grafico a torta suddivide i componenti della cache. Una piccola tabella elenca il principale bypass della cache, ovvero il percorso wp-cron.php.
La schermata delle statistiche nella dashboard di MyKinsta.

Da qui è possibile iniziare a utilizzare l’API di Kinsta per limitarli. Per prima cosa, è necessario utilizzare l’endpoint Environments per ottenere un elenco di siti. Questo includerà sia i siti live che quelli di staging:

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);

Successivamente, si può utilizzare l’endpoint Denied IPs per effettuare una richiesta a GET che restituisca la blocklist attuale in formato JSON. La risposta includerà un array di oggetti IP bloccati:

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

La richiesta associata a PUT permetterà di aggiungere un IP alla blocklist, per il quale dovrete specificare l’ID dell’ambiente:

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);

Un’aggiunta andata a buon fine restituirà un codice di risposta 200, insieme a result: null in un file JSON. Potreste automatizzare ulteriormente l’intero processo con uno script o uno strumento per eseguirlo ogni volta che dovete aggiornare la blocklist.

Monitoraggio dell’attività del sito web con l’API di Kinsta

Implementare misure di sicurezza preventive come le restrizioni IP è eccellente, ma è anche fondamentale monitorare l’attività del sito per individuare potenziali minacce alla sicurezza. Potete osservare una serie di indicatori chiave per ogni sito:

  • Modelli di traffico insoliti o picchi di volume
  • La frequenza dei tentativi di accesso falliti
  • Comportamento generale sospetto degli utenti
  • Prestazioni incoerenti del sito o modelli insoliti di downtime.

La dashboard di MyKinsta può inviarvi notifiche e avvisi in tempo reale su molti aspetti del sito. In questo modo potrete intervenire quando si verifica un potenziale problema di sicurezza.

Una notifica di completamento del monitoraggio di Kinsta APM dalla dashboard MyKinsta. La notifica indica che il monitoraggio è stato completato e indica per quanto tempo è stato attivato. È presente anche un pulsante nero per visualizzare i risultati. In fondo è presente un testo di avviso su come lo strumento APM potrebbe avere un impatto sulle prestazioni del sito.
Una scheda di notifica nella dashboard di MyKinsta.

L’API di Kinsta ha diversi endpoint che permettono di recuperare e consultare i log del sito e molto altro. Se lo desiderate, potrete anche impostare sistemi di monitoraggio e di avviso automatizzati in base alle vostre esigenze.

Individuare attività dannose con i log e le metriche del sito

Consideriamo uno scenario in cui la vostra agenzia ha bisogno di monitorare attività sospette su un sito di un singolo cliente. Ci sono alcuni approcci che si possono adottare per un monitoraggio proattivo quando non si ha una notifica come punto di partenza.

Anche in questo caso, dovrete recuperare l’elenco degli ambienti, poiché gli endpoint richiedono un ID. Una volta ottenuto, potete dare un’occhiata all’endpoint logs. La richiesta ha due campi obbligatori:

  • file_name accetta una stringa contenente i log error, access o kinsta-cache-perf.
  • lines consente di specificare il numero di righe che la richiesta restituisce dal registro, che deve essere inferiore a 20.000.

Questo può aiutarvi a capire se c’è qualche motivo di preoccupazione. Gli approfondimenti, grazie all’endpoint metrics, possono aiutarvi a colmare le lacune. Le metriche che sceglierete di analizzare dipenderanno dalla situazione specifica.

Ad esempio, potete controllare la larghezza di banda per assicurarvi di non essere vittime di un attacco coordinato a un sito. I parametri della query permettono di impostare un punto di inizio e di fine dell’intervallo di tempo, oltre a un intervallo di tempo. Il ritorno JSON fornisce i dettagli della larghezza di banda per il sito specifico:

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

Sono disponibili molte altre metriche, come il numero di richieste HTTP al minuto e il tempo medio di risposta. Il vostro compito è quello di esaminare queste metriche e i dati contenuti nei registri per identificare eventuali attività sospette o potenziali minacce alla sicurezza.

Se avete bisogno di una visualizzazione, l’APM di Kinsta può esservi utile:

Lo strumento di monitoraggio live di Kinsta APM mostra i dati sulle prestazioni in un periodo stabilito. Il grafico del tempo di transazione complessivo mostra le barre per i tempi delle transazioni PHP, MySQL, Redis ed esterne ogni giorno. Una tabella in basso elenca le transazioni PHP più lente, la loro durata totale, la durata massima, la durata media e la velocità al minuto.
Lo strumento Kinsta APM, che mostra il tempo complessivo delle transazioni per un determinato periodo.

Combinando tutti gli strumenti di Kinsta – l’API, la dashboard MyKinsta e l’APM – potrete individuare e rispondere rapidamente a potenziali problemi di sicurezza e ridurre al minimo il rischio di danni permanenti al vostro sito e alla sua reputazione.

Automatizzare l’escalation della sicurezza con l’API di Kinsta e MyKinsta

Automatizzare il flusso di lavoro della sicurezza può dare alle vostre risposte maggiore efficienza e mobilitazione. Sebbene il monitoraggio proattivo sia il modo ideale per mantenere i vostri siti sicuri, a volte è necessario un approccio reattivo.

Anche in questo caso le notifiche automatiche sono utili. Una volta ricevuta una notifica da Kinsta, potrete entrare in azione per risolvere il problema. Tuttavia, a differenza di altre attività di sicurezza, questa volta l’API di Kinsta non fa parte del triage.

Al contrario, MyKinsta sarà la vostra guida. La documentazione di Kinsta tratta delle notifiche di monitoraggio del sito a vostra disposizione. Ce ne sono molte, come ad esempio i tempi di inattività del sito, gli errori DNS e molto altro ancora.

Quando identificate una minaccia sul sito, potete ricorrere all’API di Kinsta per gestire gli utenti malintenzionati. Ad esempio, potete aggiungere degli IP a un elenco di blocco o controllare i backup che avete predisposto nel caso in cui si verifichi il peggio.

Ci sono un paio di richieste a GET che aiutano a scoprire quali sono i backup. Se ne manca uno, potete fare una richiesta POST per avviare un backup manuale. Sarà necessario solo l’ID dell’ambiente e un nome per il backup:

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);

L’API di Kinsta permette anche di ripristinare un backup. In effetti, potreste concepire una strategia che recuperi i log del sito, valuti le metriche, esegua un backup in base a parametri e regole specifici, blocchi gli IP dannosi in arrivo e ripristini il backup quando gli attacchi si calmano.

Monitorate costantemente l’attività del sito e modificate il vostro processo di sicurezza in base alle informazioni ottenute da Kinsta API e MyKinsta.

Automatizzando il processo di escalation della sicurezza, potete rispondere più rapidamente alle minacce e ridurre al minimo l’impatto potenziale degli incidenti di sicurezza sul vostro sito.

Best practice per implementare misure di sicurezza basate sulle API

Ogni volta che utilizzate un’API, esponete alcuni aspetti del vostro sito al web. Per questo motivo, è indispensabile seguire alcune pratiche tipiche e accettate per garantire la sicurezza e l’integrità del vostro sito e dei vostri dati.

Ci sono alcune linee guida fondamentali da tenere a mente. Innanzitutto, dovete sempre utilizzare metodi di autenticazione sicuri ogni volta che accedete a un’API. Può trattarsi di una chiave API, di token OAuth o di altro. Kinsta fornisce un endpoint di autenticazione con chiave API a questo scopo:

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);

Ricordate che non dovreste esporre le vostre credenziali API nel codice lato client o nei repository pubblici di controllo della versione. A questo punto dovete verificare cosa offre il vostro linguaggio di programmazione preferito. Ad esempio, Python chiama da un modulo constants.py e PHP utilizza OpenSSL e altri moduli per proteggere le informazioni sensibili.

Ci sono anche un paio di altre considerazioni importanti da fare:

  • Gestione dei dati. Quando recuperate dati sensibili attraverso l’API di Kinsta, assicuratevi di gestire e archiviare tali dati in modo sicuro. Dovrete anche seguire le pratiche accettate per la crittografia dei dati, il controllo degli accessi e la conformità alle normative sulla privacy.
  • Test e aggiornamenti regolari. Il processo di test dovrebbe essere continuo e questo è un obiettivo che potete raggiungere anche con l’API di Kinsta. Questi test e aggiornamenti costanti e continui garantiscono che il sito e la sua sicurezza rimangano efficaci contro le minacce in continua evoluzione.

Infine, seguire il principio del minimo privilegio è quasi obbligatorio quando impostate qualsiasi livello di accesso per il vostro team o per i servizi di terze parti. In poche parole, concedete solo il livello minimo di accesso di cui ogni utente o servizio ha bisogno per svolgere le proprie attività. Inoltre, rivedete e revocate regolarmente le autorizzazioni non necessarie.

Reporting sulle restrizioni IP e monitoraggio delle attività

Per quanto riguarda la gestione della sicurezza dei siti dei clienti, è buona norma – e anche fondamentale – fornire un report regolare e trasparente sull’efficacia della vostra strategia. I vostri clienti meritano di essere informati sulle misure che state adottando per proteggere i loro siti e sui risultati dei vostri sforzi. Questo aiuta a creare fiducia e a dimostrare il valore di ciò che offrite.

Per questo motivo, dovrete assicurarvi che i report forniscano il maggior numero di informazioni possibili ai vostri clienti. Kinsta permette di utilizzare una serie di metriche e approfondimenti per ogni singolo sito:

  • Il numero di indirizzi IP bloccati.
  • Tendenze di attività sospette, come tentativi di accesso falliti o modelli di traffico insoliti.
  • Le prestazioni del sito e le metriche di uptime. Queste possono essere indicative di potenziali problemi di sicurezza.

Ovviamente avete a disposizione molto di più. Tuttavia, è importante presentare questi dati nel modo migliore per i vostri clienti. Ecco alcuni suggerimenti su cosa includere:

  • Le azioni intraprese in risposta alle minacce identificate, come i backup del sito o le patch di sicurezza.
  • Usate gli strumenti di visualizzazione dei dati per presentare informazioni chiare, accessibili e comprensibili sulla sicurezza di un sito. Grafici, diagrammi e dashboard possono aiutare i vostri clienti a conoscere le attuali disposizioni in materia di sicurezza e a capire se i vostri sforzi sono efficaci.
  • Dovreste cercare di fornire un contesto e delle spiegazioni per i dati che presentate. È un errore dare per scontato che i vostri clienti abbiano una profonda comprensione tecnica dei concetti di sicurezza. Usate invece un linguaggio semplice e fornite esempi per aiutarli a comprendere il significato e la gravità delle metriche e delle tendenze che state riportando.

In generale, offrite trasparenza su tutte le sfide o le limitazioni che riscontrate nella sicurezza del sito. Nel caso di minacce o problemi difficili, è bene essere chiari e spiegare cosa si sta facendo per migliorare.

In questo caso può essere utile offrire raccomandazioni per ulteriori miglioramenti della sicurezza. Queste raccomandazioni deriveranno dalle vostre intuizioni e analisi. Ad esempio, potreste suggerire ulteriori misure di sicurezza, come l’implementazione dell’autenticazione a due fattori o l’aggiornamento dei plugin obsoleti.

Riepilogo

L’API di Kinsta ha un ampio margine di manovra per una moltitudine di attività del sito. Quando si tratta di sicurezza, però, è un modo vincente per mantenere il vostro sito e i vostri utenti al sicuro. Vi permette di automatizzare attività come il recupero dei log, la verifica di attività insolite e il blocco automatico degli IP.

Ci piace l’approccio convincente e potente di collegare l’API ad altre applicazioni e strumenti. In questo modo, potete avere un metodo programmatico completo per proteggere il vostro sito. Insieme alle opzioni di visualizzazione di Kinsta APM, il vostro sito può rimanere sicuro per molto tempo.

Come vorreste utilizzare le API di Kinsta per gestire la sicurezza del vostro sito? Condividete i vostri pensieri e le vostre idee nella sezione commenti qui sotto!

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 ;).