Comment nous avons écrit un système antifraude à quatre mains et trois têtes

Un article sur la création d'une solution interne pour détecter et prévenir les transactions frauduleuses effectuées dans les services bancaires par Internet d'une petite mais très fière banque au Tatarstan. Vous apprendrez dans cet article pourquoi et qui a besoin d'antifraude, pourquoi le développement interne s'est avéré moins cher que l'achat d'une solution prête à l'emploi et à quoi mèneront quelques lignes de code avant la nouvelle année.


Quelques mots sur vous - un spécialiste de la sécurité de l'information dans une entreprise informatique qui s'est avéré accidentellement (ou peut-être pas très) être un chef de produit dans l'équipe de la solution anti-fraude. La société informatique elle-même est engagée dans le développement de logiciels bancaires sur Internet.


Comment tout a commencé?


Pour la banque elle-même, tout a commencé avec le fait que la Banque centrale de la Fédération de Russie a téléchargé un projet d' amendements et d'ajouts au Règlement n ° 382-P , qui stipulait que la banque devrait empêcher le transfert de fonds sans le consentement du client. En outre, conformément à l' ordonnance de la Banque de Russie n ° 2831-U , la banque est tenue de signaler à la Banque centrale tous les incidents, y compris les actions des fraudeurs.


Pour moi, l'histoire a commencé par une demande d'aide à la formation des exigences fonctionnelles et à l'étude de l'intégration avec le service bancaire à distance existant (ci-après - RBS). Et c'est parti ...


Entrer les données


Avant le développement, il est nécessaire de rechercher le sujet, d'étudier les développements prêts à l'emploi ratisser parcourir le marché.
Au cours de l'étude, il s'est avéré:


  • les moyens les plus courants pour voler de l'argent à RBS - ingénierie sociale et phishing
  • en utilisant l'ingénierie sociale, ils piratent le système bancaire ou forcent le client à transférer volontairement de l'argent
  • le montant volé par les fraudeurs pour l'année n'est pas si important, la banque dépense pour l'enquête et une compensation d'environ 10% de ce montant
  • le coût d'une solution anti-fraude prête à l'emploi dépasse de 5 à 10 fois le montant de la fraude (le coût de l'intégration de la parole n'a pas encore disparu ...)
  • il est nécessaire de signaler à FinCERT, assurez-vous
  • vous pouvez mettre en évidence quelques cas très fréquents et importants

En analysant le sujet de la lutte antifraude, les articles codezombie m'ont beaucoup aidé. Il y a 4 ans, il a écrit sur l'antifraude utilisé dans le commerce électronique, sur son expérience. Dans mon cas, les détails étaient différents, mais les informations étaient très précieuses.


Sur la base de ces conditions, il a été décidé de confier le projet à l'équipe de développement engagée dans les intégrations et résolvant les problèmes des autres équipes, cette équipe comprenant les développeurs les plus expérimentés et les plus cool. Malheureusement, dans l'équipe de 3 développeurs au fil du temps, il n'en restait que deux. J'étais engagé dans l'arriéré, la formation des exigences, la documentation et l'organisation des réunions (nous travaillons sur scrum, mais sinon). Il se trouve que dans l'équipe, 4 mains ont écrit le code et 3 têtes ont résolu le problème.


Cas qui ont été combattus


Ne pensez pas que la banque ne s'est pas battue avant avec le mal avec des escrocs. Combattu avec des moyens abordables. Cependant, le nombre d'incidents liés au piratage de RBS avait tendance à augmenter. Un schéma populaire de 2018 était un divorce dans les espaces ouverts d'Avito - les fraudeurs utilisant des méthodes d'ingénierie sociale ont reconnu le numéro de carte, et dans le dialogue, ils ont reconnu SMS pour entrer dans le RB. Ainsi, ils ont reçu un accès complet aux services bancaires par Internet d'un client particulier. En 2019, des escrocs ont commencé à téléphoner à des clients au nom des services de sécurité de la banque, menaçant de perdre tout l'argent, ont découvert les informations de connexion ou les ont exhortés à transférer tous les fonds sur un «compte sécurisé».


L'objectif principal de l'équipe de développement était de créer un mécanisme pour identifier les nouveaux appareils clients et arrêter les transactions financières suspectes. Pourquoi exactement de nouveaux appareils? Les analyses ont montré que le plus souvent, ils ont accès à la banque à distance via un smartphone afin de recevoir des codes de confirmation via des notifications PUSH, plutôt que des messages SMS.


De plus, FinCERT a commencé à envoyer des listes de détails impliqués dans des opérations frauduleuses, c'est-à-dire qu'ils devaient être bloqués.


Développement et intégration dans Antifraud



Nous avions 2 programmeurs .NET sympas, une architecture de microservices RBS, une API REST, une douzaine de listes noires de formes variées et un tas d'intégrations de toutes sortes et couleurs, et il n'y avait pas de testeurs ou d'ingénieur devops. Non pas que c'était une réserve nécessaire pour se protéger de tous les escrocs. Mais si vous devez toujours le faire, vous ne vous arrêterez pas. La seule chose qui m'a inquiété, ce sont les faux positifs. Il n'y a rien de plus impuissant, irresponsable et gâté que l'opérateur antifraude qui a volé 20 billets en 5 minutes. Je savais que tôt ou tard nous rencontrerions cela.

En général, il n'y avait rien de mal à l'intégration. Le SLA a fixé une limite de 3 secondes pour répondre aux demandes. À l'heure actuelle, le temps de réponse moyen est de 0,3 seconde. L'architecture du microservice a facilité l'intégration avec la solution existante en ajoutant trois lignes pour envoyer une demande au microservice antifraude. La vérification a lieu avant confirmation par SMS ou notification PUSH.


Un petit croquis de l'architecture de la solution:


Au premier stade de développement, l'objectif était fixé - vérifier deux conditions importantes. Premièrement, le périphérique à partir duquel la transaction est tentée est nouveau pour le client ou est-il approuvé. Deuxièmement, si les accessoires ne figurent pas dans les listes noires. Ces deux conditions suffisent à bloquer 70% des incidents, pour le reste, plus d'informations sont nécessaires, par exemple, y a-t-il eu une connexion par login / mot de passe, ou par numéro de carte, depuis quel pays avez-vous entré le RBS, etc.


Pour appliquer la vérification, vous n'avez pas besoin de tant de données - un identifiant unique du client, l'identifiant de son appareil (créé sur les clients eux-mêmes - des applications mobiles et des bibliothèques JS sur le site), le montant du transfert, les détails du transfert. Sur la base de ces données, une décision est prise d'autoriser ou de bloquer l'opération. Dès que l'ensemble du système a fonctionné correctement en fonctionnement industriel, l'équipe est passée à l'étape suivante. Il existe des listes blanches et un chargement automatique des listes depuis FinCERT. Pour le moment, l'envoi de rapports d'incidents à FinCERT lui-même via l'API est débogué (il s'agit d'une longue histoire distincte).


Actuellement, les paiements suivants ont été vérifiés dans le système Antifraud: paiements P2P par numéro de carte, réapprovisionnement d'un numéro de téléphone, transfert par détails, réapprovisionnement de portefeuilles électroniques. Les fraudeurs transfèrent souvent de 2 000 à 3 000 roubles vers des numéros de téléphone ou des portefeuilles. Dans le cas des cartes, les montants sont généralement proches de la somme de tous les fonds disponibles du client. En plus des vérifications, une page a été créée pour les opérateurs Antifraud, il est impossible de rendre un système complètement autonome - une personne est nécessaire pour surveiller les événements, enquêter sur les incidents, bloquer / débloquer, créer des rapports sur le système. Il est difficile de créer un site lorsqu'il y a deux développeurs backend dans une équipe. Cependant, il n'est jamais trop tard pour apprendre (c'est cool quand des spécialistes en T font partie de l'équipe!).


Au tout début, lors de la planification et de l'analyse, il y avait beaucoup de réflexions sur l'introduction de l'apprentissage automatique, des règles dynamiques, des antivirus dans le client RBS. Cependant, à en juger par l'expérience des fournisseurs et d'autres banques, plus de la moitié des cas peuvent être fermés en appliquant des règles statiques. Toutes les autres méthodes nécessitent des ressources importantes et ne sont pas aussi efficaces. C'est pourquoi, une équipe de deux développeurs et d'un analyste (que je considère comme moi-même) suffit pour mettre en œuvre les mesures de protection minimales et les exigences des régulateurs.


La douleur


La règle de base dans le développement d'Antifraud - ne faites pas de mal. Tous les changements et nouvelles méthodes doivent être testés d'abord sur le test, puis sur la bataille en mode surveillance pour vous assurer qu'il n'y a pas de problèmes. Dans le pire des cas, des erreurs peuvent entraîner des pertes financières et une perte de fidélité des clients. Dans notre cas, l'erreur a provoqué la souffrance des opérateurs enquêtant et gérant le système Antifraud.


C'était le soir, la veille du nouvel an. Le système a mis en œuvre la vérification non seulement des appareils mobiles, mais également des navigateurs clients. Utilisation d' EverCookie . Les développeurs ont inclus la fonctionnalité, mais ne l'ont pas testée, car la bibliothèque n'a pas été introduite sur les fronts. Ce n'est que le dernier jour ouvrable de 2019, le programmeur frontal a décidé de verser la branche dans la prod (enfin, ne laissez pas la même chose pour l'année prochaine!). Pour cette raison, pendant le week-end du Nouvel An, les opérateurs Antifraud ont empilé beaucoup de travail sous la forme de faux positifs du système. On ne peut pas dire que c'était critique, cependant, les opérateurs sont un peu désolés ... après tout, le travail est devenu 5 fois plus important qu'avant le changement.


Résumé


En moins d'un an, une très petite équipe a mis en place le système Antifraud pour les services bancaires par Internet. Malheureusement, il reste encore beaucoup de travail. Après avoir parlé avec des représentants de banques et de fournisseurs au forum Antifraud Russie, il est devenu clair que les escrocs inventent de nouvelles façons chaque année, vous ne pouvez pas vous détendre dans ce domaine.


Si c'est intéressant, j'écrirai plus sur les solutions logicielles, l'analyse de marché et comment implémenter Scrum dans une équipe de 3 personnes.

Source: https://habr.com/ru/post/fr484070/


All Articles