For the complete documentation index, see llms.txt. This page is also available as Markdown.

Sécurité

La sécurité est inhérente à tout projet lié à la finance. Sur BANGK elle fait évidemment l'objet d'une attention accrue. L’utilisation de plusieurs couches logicielles, chacune avec ses propres paradigmes, permet à BANGK d’avoir des services adaptés au mieux à leurs objectifs:

  • les opérations financières sont dans la couche la plus profonde, protégées par de multiples couches logicielles avec chacune leur propres manières de s’authentifier, codées avec un langage strict et testé à +95%,

  • les opérations non sensibles sont dans une couche logicielle accessible, écrite dans un langage modulaire et résilient qui permet de répondre à des besoins d’accessibilité et de performances élevés.

Voici une liste de toutes les vérifications de sécurités pour un signal dans les différentes couches logicielles du projet BANGK :


Stratégie de tests

La plus grande partie de la sécurité sera assurée par des tests. Les tests automatisés concerneront les parties les plus sensibles de l’application (backend, smart contracts…).

Le taux de couverture cible est de 95-99% pour les modules sensibles (finances, transaction, blockchain…) et de 75+% pour les modules non sensibles (design system…).

Ci dessous, différents types de tests mis en place par ordre d’importance :

  • Tests de non régression via API : leur rôle est d’assurer que les différentes fonctionnalités du backend, via API, continuent de fonctionner comme prévu malgré les mises à jour. Ils testent un maximum de formes d’agressions, de cas de bord et de combinaisons de permissions utilisateurs pour s’assurer que les données entrantes et sortantes restent validées conformément à ce qui est attendu pour chaque niveau de permissions.

  • Tests unitaires : ces tests s’occupent de tester les fonctionnalités directement dans le code. Ils sont particulièrement pertinent pour du code algorithmique ou des fonctionnalités de sécurités qui sont au cœur de l’application.

  • Tests manuels : une équipe QA (Quality Assurance) sera mise en place afin de garantir une qualité d’expérience utilisateur optimale à chaque mise à jour de l’application.

  • Alpha/Beta testing : après l’étape d’assurance qualité, chaque mise à jour sera testée par un premier cercle d’utilisateurs internes à l’entreprise (Alpha), puis proposé à un panel de beta testeurs avant d’être déployée au grand public.

  • Autres type de tests :

    • Tests de montée en charge et simulations d’attaques par déni de services (DDOS).

    • Tests automatisés d’accessibilité (contrastes, taille de boutons…), score de performances (p. ex. : lighthouse) et de référencement (SEO).

    • Tests automatisés de crash serveurs pendant les transactions et opérations sensibles et tests de la récupération automatique des données.


Qualité de code

L'équipe de BANGK considère la qualité du code comme une des composantes essentielles de la sécurité d’une application. Dans une application propre et bien pensée, la sécurité s’applique simplement et de manière lisible et efficace. Il est aussi plus facile de comprendre et d’adopter les bonnes pratiques sur toute la durée de vie de l’application.

Voici quelques pratiques mises en place pour garantir la qualité du code :

  • Audit régulier de la qualité de code et de la cyber sécurité par des tiers reconnus.

  • Des pratiques de sécurité simples et lisible, des check-lists exhaustives, des doubles vérifications.

  • Des peer reviews systématiques pour tous.


Monitoring

Que ce soit pour les performances ou la sécurité, un monitoring avec des alertes en temps réel est mis en place avec une personne d’astreinte afin de garantir la continuité des services 24h/24.


Fonctionnalités de sécurité classiques

Pour l’obtention des licences et afin de garantir la meilleure sécurité possible tout au long de la chaîne des technologies, voici quelques-unes des bonnes pratiques retenues :

  • Authentification multi-factorielle.

  • Reconnexion par code PIN, empreinte digitale ou reconnaissance faciale.

  • Analyse du comportement de l’utilisateur par IA afin de déterminer certains motifs de comportements inhabituels.

  • Rate limiting : limiter le nombre de requêtes d’un utilisateur afin d’éviter certains types d’attaques.

  • Infrastructure :

    • Redondance de la base de donnée sur au moins 5 points et sauvegarde toutes les 30 minutes.

    • Redondance des serveurs sur plusieurs data centers et dans plusieurs zones géographiques.

    • Mise en place d’un orchestrateur de conteneurs afin de garantir la résilience des serveurs lors de pics d’utilisations (Kubernetes).

    • Https.

  • Mise en places de couches logicielles de plus en plus profondes, avec chacune un niveau de sécurité en plus.

  • Mise en place d’un backend séparé pour les actions sensibles (transactions, interactions blockchain…).

De manière plus générale, le nécessaire sera fait pour être à minima en adéquation, voire dépasser les exigences en termes de sécurités attendus par la réglementation MiCA.


Fonctionnalités de sécurité innovantes

En plus des fonctionnalités de sécurités classiques voici d’autres fonctionnalités que BANGK mettra en place.

Outils de gouvernance

Dans un cadre traditionnel, le risque qu'un individu prenne des décisions cruciales sans concertation représente un danger majeur pour tout projet. C'est la raison pour laquelle BANGK est conçue selon un modèle de gouvernance collaborative, où les décisions importantes nécessitent l'approbation de plusieurs parties prenantes avant d'être mises en œuvre.

L'idée pourrait être d'instaurer un mécanisme de vote, où un nombre requis de votants — qu'il s'agisse d'administrateurs ou de membres de la communauté — serait nécessaire pour approuver toute action sensible. Ainsi, aucune action critique ne pourrait être entreprise sans l'aval de l'équipe ou de la communauté elle-même.

Killswitch

Pour palier le manque de réactivité d’un système participatif dans une situation d’urgence, un killswitch (bouton d’arrêt) sera mis en place. Il pourra être utilisé dans des cas extrêmes pour interrompre les services financiers et ainsi juguler une potentielle attaque.

Last updated