Nous insistons souvent sur le fait que la sécurité de votre site WordPress n’est pas une tâche que l’on peut régler et oublier. Elle nécessite une surveillance constante et vigilante de votre part, et cette tâche peut s’avérer décourageante.

Dans les situations où vous devez contrôler la sécurité de plusieurs sites web, l’API Kinsta peut être l’un de vos outils clés. C’est particulièrement vrai lorsque vous gérez un certain nombre de sites non connectés. Dans ces situations, vous aurez besoin de l’automatisation et de la visibilité que l’API peut vous offrir.

Dans cet article, nous allons explorer l’utilisation de l’API Kinsta pour une meilleure sécurité. Nous nous concentrerons principalement sur le blocage des IP et le contrôle de leurs effets à l’aide des différents points de terminaison disponibles. Cependant, nous devons d’abord nous pencher sur la tâche difficile que représente la gestion de la sécurité d’un site.

Les défis de la gestion de la sécurité de votre site web

En tant que système de gestion de contenu (CMS) le plus populaire de la planète, WordPress est une cible de choix pour les pirates et les acteurs malveillants. C’est pourquoi WordPress est très attentif à la sécurité de son cœur.

Si les chiffres semblent bons sur le papier – environ 3 % des sites sont infectés ou ont des ressources bloquées -, cela ne signifie pas que vous devez vous reposer sur vos lauriers. En fait, il existe de nombreuses menaces à prendre en compte lorsqu’il s’agit de votre site WordPress :

Compte tenu de la complexité des attaques, la gestion de la sécurité d’un seul site WordPress peut s’avérer assez difficile. Cependant, lorsque vous êtes responsable de plusieurs sites, cette complexité et cette portée se multiplient. Un réseau de sites nécessitera toujours une approche présente et proactive de la surveillance de la sécurité. C’est encore plus difficile si vous gérez un lot de sites sans aucune connexion.

C’est pourquoi un moyen efficace et efficient de surveiller et de sécuriser chaque site dont vous vous occupez aura une valeur énorme. Kinsta peut fournir ce service à tous ses clients.

Comment l’API de Kinsta peut améliorer la sécurité de votre site

Le tableau de bord MyKinsta.
Le tableau de bord MyKinsta.

Quel que soit votre plan, tous les clients de Kinsta ont accès à l’API complète de Kinsta. Cet outil puissant vous permet d’interagir avec vos sites de nombreuses manières programmatiques. De nombreux points de terminaison sont disponibles pour se connecter à certains aspects de notre hébergement, ce qui signifie que vous disposez d’une méthode solide pour gérer la sécurité de tous vos sites.

L’API Kinsta vous permet d’automatiser diverses tâches liées à la sécurité, et il existe de nombreux points de terminaison pertinents :

  • Dans les Outils de site, vous pouvez récupérer et mettre à jour les IP sur votre liste de blocage.
  • Il existe un point de terminaison pour consulter et gérer les journaux d’erreurs et d’accès de votre site.
  • Vous pouvez obtenir des analyses de chacun de vos sites grâce à une poignée de points de terminaison qui récupèrent des mesures de performance.

Bien que vous puissiez trouver ces outils dans le tableau de bord MyKinsta, il y a de nombreuses raisons pour lesquelles nous offrons également une option programmatique. À bien des égards, l’API Kinsta vous offre plusieurs avantages par rapport au tableau de bord :

  • Automatisation. Vous pouvez automatiser les tâches de sécurité en écrivant des scripts ou en utilisant des outils tiers. Vous pouvez ainsi gagner du temps et réduire les erreurs manuelles.
  • Opérations groupées. L’API vous permet d’effectuer des tâches de sécurité sur plusieurs sites à la fois. Si vous faites partie d’une agence ou si vous développez des sites WordPress pour gagner votre vie, cet aspect vous sera utile.
  • Intégration. Si vous utilisez déjà une suite d’outils de sécurité que vous appréciez, l’API de Kinsta vous permettra de les intégrer dans votre configuration. Cela vous permet de transformer votre dispositif de sécurité en quelque chose d’unique pour votre site.

Mais trêve de bavardage, entrons dans les détails de l’utilisation de l’API Kinsta pour travailler avec les adresses IP. Nous commencerons par des tâches simples et nous nous pencherons plus tard sur les applications avancées.

Implémenter des restrictions IP avec l’API Kinsta

L’un des moyens les plus simples de renforcer la sécurité de votre site est la restriction d’IP. Cela vous permet de couper la tête du serpent et de bloquer complètement l’accès à votre site. Le principal avantage est l’atténuation des attaques par force brute.

Bien que le tableau de bord MyKinsta vous permette de travailler avec votre liste de blocage, l’API de Kinsta offre une plus grande flexibilité si vous en avez besoin. Considérons un scénario dans lequel vous êtes une agence WordPress gérant plusieurs sites clients sur l’un de nos plans d’agence Kinsta.

Utiliser l’API Kinsta pour restreindre les adresses IP

Tout d’abord, vous devez disposer d’une liste d’adresses IP que vous souhaitez restreindre. Notre documentation propose quelques méthodes pour cela, comme l’utilisation de l’analyse pour identifier les adresses qui font beaucoup de requêtes non mises en cache dans un court laps de temps.

L'écran d'analyse dans le tableau de bord MyKinsta.
L’écran d’analyse dans le tableau de bord MyKinsta.

À partir de là, vous pouvez commencer à utiliser l’API Kinsta pour les restreindre. Tout d’abord, vous devez utiliser le point de terminaison Environnments pour récupérer une liste de sites. Cette liste comprendra à la fois votre site en ligne et votre site de 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);

Ensuite, vous pouvez utiliser le point de terminaison Denied IPs pour faire une requête GET qui renvoie votre liste de blocage actuelle au format JSON. La réponse comprendra un tableau d’objets IP bloqués :

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

La requête PUT associée vous permettra d’ajouter une IP à votre liste de blocage, pour laquelle vous devrez spécifier l’ID de l’environnement :

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 ajout réussi renverra un code de réponse 200, ainsi que result: null dans un fichier JSON. Vous pouvez également automatiser l’ensemble du processus à l’aide d’un script ou d’un outil afin de l’exécuter chaque fois que vous devez à nouveau mettre à jour la liste de blocage.

Surveiller l’activité du site web avec l’API Kinsta

La mise en œuvre de mesures de sécurité préventives telles que les restrictions d’IP est une excellente chose, mais il est également essentiel de surveiller l’activité de votre site pour détecter d’éventuelles menaces de sécurité. Vous pouvez surveiller un certain nombre d’indicateurs clés pour chacun de vos sites :

  • Des modèles de trafic inhabituels ou des pics de volume
  • La fréquence des tentatives de connexion échouées
  • Le cComportement général suspect des utilisateurs
  • Des performances incohérentes du site ou des temps d’arrêt inhabituels.

Le tableau de bord MyKinsta peut vous envoyer des notifications et des alertes en temps réel sur de nombreux aspects de votre site. Cela peut vous aider à prendre des mesures lorsqu’il y a un problème de sécurité potentiel.

Une carte de notification dans le tableau de bord MyKinsta.
Une carte de notification dans le tableau de bord MyKinsta.

L’API Kinsta comporte plusieurs points de terminaison qui vous permettent de récupérer et de consulter les journaux de votre site et bien plus encore. Vous pourrez également mettre en place des systèmes de surveillance et d’alerte automatisés, si vous le souhaitez, en fonction de vos besoins.

Détecter des activités malveillantes à l’aide des journaux et des mesures du site

Prenons l’exemple d’un scénario dans lequel votre agence doit surveiller les activités suspectes sur le site d’un client particulier. Vous pouvez adopter plusieurs approches pour une surveillance proactive lorsque vous n’avez pas de notification comme point de départ.

Là encore, vous devrez récupérer votre liste d’environnements, car les points de terminaison ont besoin d’un identifiant. Une fois que vous l’avez, vous pouvez jeter un coup d’œil au point de terminaison logs. La requête comporte deux champs obligatoires :

  • file_name accepte une chaîne contenant les journaux error, access, ou kinsta-cache-perf.
  • lines vous permet de spécifier le nombre de lignes que la requête renvoie à partir du journal, qui doit être inférieur à 20.000.

Cela peut vous aider à déterminer s’il y a lieu de s’inquiéter. Les informations plus approfondies, grâce au point de terminaison metrics, peuvent vous aider à combler les lacunes. Les paramètres que vous choisirez d’examiner dépendront de la situation spécifique.

Par exemple, vous pouvez vérifier la bande passante pour vous assurer que vous n’êtes pas victime d’une attaque coordonnée sur un site. Les paramètres de la requête vous permettent de définir un point de départ et un point d’arrivée, ainsi qu’un intervalle de temps. Le retour JSON vous donne les détails de la bande passante pour le site en question :

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

De nombreuses autres mesures sont disponibles, telles que le nombre de requêtes HTTP par minute et le temps de réponse moyen. Votre tâche consiste à examiner ces mesures et les données contenues dans les journaux afin d’identifier toute activité suspecte ou toute menace potentielle pour la sécurité.

Si vous avez besoin d’une visualisation, c’est là que l’APM de Kinsta peut vous être utile :

L'outil Kinsta APM, montrant le temps de transaction global pour une période donnée.
L’outil Kinsta APM, montrant le temps de transaction global pour une période donnée.

En combinant tous les outils de Kinsta – API, tableau de bord MyKinsta et APM – vous pouvez détecter et répondre rapidement aux problèmes de sécurité potentiels et minimiser le risque de dommages permanents à votre site et à sa réputation.

Automatiser l’escalade de la sécurité à l’aide de l’API Kinsta et de MyKinsta

L’automatisation de votre flux de travail de sécurité peut donner à vos réponses plus d’efficacité et de mobilisation. Bien que la surveillance proactive soit le moyen idéal de maintenir la sécurité de vos sites, il est parfois nécessaire d’adopter une approche réactive.

C’est un autre domaine où les notifications automatisées sont utiles. Dès que vous recevez une notification de Kinsta, vous pouvez passer à l’action pour résoudre le problème. Cependant, contrairement à d’autres tâches de sécurité, l’API de Kinsta ne fait pas partie du triage cette fois-ci.

C’est MyKinsta qui vous servira de guide. La documentation de Kinsta couvre les notifications de surveillance de site à votre disposition. Il y en a beaucoup, comme les temps d’arrêt du site, les erreurs DNS, et bien plus encore.

Lorsque vous identifiez une menace sur votre site, vous pouvez faire appel à l’API de Kinsta pour gérer les utilisateurs malveillants. Il peut s’agir d’ajouter des adresses IP à une liste de blocage ou de vérifier les sauvegardes que vous avez mises en place au cas où le pire se produirait.

Il existe quelques requêtes GET pour vous aider à découvrir les sauvegardes existantes. S’il vous en manque une, vous pouvez faire une reqsuête POST pour lancer une sauvegarde manuelle. Vous n’aurez besoin que de l’identifiant de l’environnement et d’un nom pour la sauvegarde :

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 Kinsta vous permettra également de restaurer une sauvegarde. En fait, vous pourriez concevoir une stratégie qui récupère les journaux de votre site, évalue vos mesures, effectue une sauvegarde en fonction de vos paramètres et règles spécifiques, bloque les IP malveillantes entrantes, puis restaure une sauvegarde à un moment où les attaques se calment.

Surveillez en permanence l’activité du site et adaptez votre processus de sécurité en fonction des informations obtenues grâce à l’API Kinsta et à MyKinsta.

En automatisant votre processus d’escalade de la sécurité, vous pouvez répondre aux menaces plus rapidement et minimiser l’impact potentiel des incidents de sécurité sur votre site.

Bonnes pratiques pour la mise en œuvre de mesures de sécurité basées sur l’API

Chaque fois que vous utilisez une API, vous exposez des aspects de votre site au web ouvert. C’est pourquoi il est impératif de suivre certaines pratiques typiques et acceptées pour garantir la sécurité et l’intégrité de votre site et de vos données.

Il convient de garder à l’esprit quelques lignes directrices essentielles. Tout d’abord, vous devez toujours utiliser des méthodes d’authentification sécurisées lorsque vous accédez à une API. Il peut s’agir d’une clé API, de jetons OAuth ou d’autre chose. Kinsta fournit un point de terminaison d’authentification par clé d’API à cette fin :

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

N’oubliez pas que vous ne devez pas exposer vos identifiants d’API dans le code côté client ou dans les référentiels de contrôle de version publics. C’est ici que vous devez regarder ce que votre langage de programmation de choix offre. Par exemple, Python fait appel à un module constants.py, et PHP utilise OpenSSL et d’autres modules pour protéger les informations sensibles.

Il y a également d’autres considérations importantes à prendre en compte :

  • Traitement des données. Lorsque vous récupérez des données sensibles par l’intermédiaire de l’API de Kinsta, veillez à les traiter et à les stocker de manière sécurisée. Vous devrez également respecter les pratiques acceptées en matière de cryptage des données, de contrôle d’accès et de conformité aux réglementations relatives à la protection de la vie privée.
  • Tests et mises à jour réguliers. Votre processus de test doit être continu, ce que vous pouvez également réaliser avec l’API Kinsta. Ces tests et mises à jour constants et continus garantissent que votre site et sa sécurité restent efficaces face à l’évolution des menaces.

Enfin, le respect du principe du moindre privilège est quasiment obligatoire lorsque vous définissez un quelconque niveau d’accès pour votre équipe ou des services tiers. En bref, n’accordez à chaque utilisateur ou service que le niveau d’accès minimal dont il a besoin pour effectuer ses tâches. De plus, examinez et révoquez régulièrement toutes les autorisations inutiles.

Rapports sur les restrictions d’IP et la surveillance de l’activité

En ce qui concerne la gestion de la sécurité des sites clients, une bonne pratique – aussi bonne que cruciale – consiste à fournir des rapports réguliers et transparents sur l’efficacité de votre stratégie. Vos clients méritent d’être tenus au courant des mesures que vous prenez pour protéger leurs sites et des résultats de vos efforts. Cela permet d’instaurer la confiance et de démontrer la valeur de ce que vous offrez.

C’est pourquoi vous devez vous assurer que les rapports que vous fournissez donnent autant d’informations que possible à vos clients. Kinsta peut vous permettre de tirer parti d’une gamme de mesures et d’informations pour chaque site individuel :

  • Le nombre d’adresses IP bloquées.
  • Les tendances en matière d’activités suspectes, telles que les tentatives de connexion échouées ou les modèles de trafic inhabituels.
  • Les performances de votre site et les mesures de temps de fonctionnement. Ces données peuvent être révélatrices de problèmes de sécurité potentiels.

Bien entendu, vous disposez de bien d’autres informations. Néanmoins, il est important de présenter ces informations de la meilleure façon possible pour vos clients. Voici quelques conseils sur ce qu’il convient d’inclure :

  • Les mesures que vous avez prises en réponse aux menaces identifiées, telles que les sauvegardes du site ou les correctifs de sécurité.
  • Utilisez des outils de visualisation des données pour présenter des informations claires, accessibles et compréhensibles sur la sécurité d’un site. Les graphiques, diagrammes et tableaux de bord peuvent aider vos clients à se tenir au courant des dispositions actuelles en matière de sécurité et à déterminer si vos efforts sont efficaces.
  • Vous devez vous efforcer de fournir un contexte et des explications pour les données que vous présentez. C’est une erreur de supposer que vos clients ont une compréhension technique approfondie des concepts de sécurité. Au lieu de cela, utilisez un langage simple et donnez des exemples pour les aider à saisir l’importance et la gravité des mesures et des tendances dont vous rendez compte.

D’une manière générale, faites preuve de transparence en ce qui concerne les difficultés ou les limites que vous rencontrez en matière de sécurité du site. Pour les menaces ou les problèmes difficiles, il est judicieux d’être franc et d’expliquer ce que vous faites pour vous améliorer.

C’est là qu’il peut être utile de proposer des recommandations pour améliorer la sécurité. Celles-ci découleront de vos observations et de votre analyse. Par exemple, vous pouvez suggérer des mesures de sécurité supplémentaires, telles que la mise en place d’une authentification à deux facteurs ou la mise à jour d’extensions obsolètes.

Résumé

L’API Kinsta offre de nombreuses possibilités pour une multitude de tâches liées aux sites. En matière de sécurité, c’est un moyen efficace d’assurer la sécurité de votre site et de vos utilisateurs. Elle vous permet d’automatiser des tâches telles que la récupération de journaux, la vérification d’activités inhabituelles et le blocage automatique d’IP.

Nous apprécions l’approche convaincante et puissante qui consiste à relier l’API à d’autres applications et outils. Vous disposez ainsi d’une méthode programmatique complète pour sécuriser votre site. Associé aux options de visualisation de Kinsta APM, votre site peut rester sûr pendant longtemps.

Comment aimeriez-vous utiliser l’API Kinsta pour gérer la sécurité de votre site ? N’hésitez pas à nous faire part de vos réflexions et de vos idées dans la section des commentaires ci-dessous !

Jeremy Holcombe Kinsta

Rédacteur en chef du contenu et du marketing chez Kinsta, développeur web WordPress et rédacteur de contenu. En dehors de WordPress, j'aime la plage, le golf et le cinéma. J'ai aussi des problèmes avec les personnes de grande taille ;).