Expérience Timeweb
Toute entreprise a besoin d'un point de vue extérieur sur l'état de la sécurité de l'information des services et produits. Ce problème peut être résolu de différentes manières, dont l'une est la participation aux programmes Bug Bounty.
Bug Bounty Program comme une nouvelle force dans
la chasse aux bogues Bug Bounty est un programme qui fournit des récompenses monétaires ou d'autres avantages pour trouver des bogues, des exploits et des vulnérabilités dans les logiciels. Les programmes Bug Bounty sont mis en œuvre par de nombreuses entreprises, y compris Facebook, Google, Reddit, Apple, Microsoft, etc. Une
entreprise peut lancer elle-même un tel programme, en organisant elle-même tous les processus et interactions. La deuxième option est de se tourner vers des plates-formes spéciales Bug Bounty: nous concluons un accord, et l'armée de chasseurs de bogues commence à travailler.
Timeweb a lancé son programme Bug Bounty il y a environ un an. À cette époque, l'entreprise ne disposait pas de spécialistes expérimentés dans ce domaine, tout devait être fait par essais et erreurs. Sur Internet, presque personne ne partage de recommandations sur la façon de construire ce processus, de sorte que les vélos sont souvent inventés et les connaissances sont généralement transférées lors de conversations avec des collègues à la machine à café.
Dans cet article, nous vous expliquerons comment organiser le lancement du programme Bug Bounty, si vous ne l'avez jamais fait, à quoi vous devez faire attention et comment vous pouvez vérifier l'état du système de sécurité de l'information.
VĂ©rifiez-le!
Pourquoi avons-nous lancé le programme Bug Bounty?
Notre tâche consistait à élever le système de sécurité de l'information à un nouveau niveau de qualité supérieur et à ne pas dépenser trop d'argent. Il est important de noter que Timeweb est une entreprise mature avec une infrastructure complexe et un large éventail de services critiques, il ne nous était donc pas du tout évident à l'époque dans quel ordre tester les services et corriger les vulnérabilités, et par quoi commencer en premier.
Il existe plusieurs façons de vérifier le système de sécurité de l'information. Avant de lancer le programme Bug Bounty, nous avons essayé de considérer et d'analyser diverses options. Parmi eux, l'audit externe est probablement la solution la plus courante au problème. Grâce à l'audit, vous pouvez trouver des problèmes complexes et atypiques, mais même après avoir payé un montant élevé, vous ne pouvez pas être sûr d'obtenir ce dont vous avez vraiment besoin.
Une autre façon est de former l'équipe et de développer les compétences des employés. Ici, vous devez comprendre que les ressources de l'équipe sont encore limitées, et bien sûr, il est impossible de trouver tous les bogues possibles par vous-même.
En ce qui concerne la vérification du système de sécurité de l'information, les tickets et les demandes des clients au support technique aident également s'il est possible de traiter efficacement les commentaires et les messages des utilisateurs.
En parallèle, nous avons discuté avec des collègues et recueilli des avis d'experts sur la manière dont le processus de recherche de bogues dans d'autres entreprises est structuré. Grâce aux recommandations, nous avons décidé de prêter attention au programme Bug Bounty.
Lancement du programme Bug Bounty
Qu'est-ce qu'il est important de considérer au début?
Il existe de nombreux types de programmes et de plates-formes Bug Bounty.
Dans un premier temps, nous avons choisi entre les programmes publics et privés, décidant de rester sur ces derniers. L'accès n'est pas limité dans le programme public: tout le monde peut rechercher des bogues. Dans un programme privé - sur invitation. Dans les deux cas, les bugs ne sont divulgués qu'avec l'accord des parties. Nous avons décidé qu'il était trop tôt pour nous d'ouvrir un programme public: tout d'abord, nous devons nous assurer que nos services et produits ne contiennent pas de vulnérabilités critiques.
Quant à la plateforme Bug Bounty elle-même, nous avons analysé les options existantes et avons choisi la plus adaptée pour nous, optimale en termes de nombre de chasseurs de bogues et de coût des services.
Voici une liste des plateformes Bug Bounty les plus connues du marché:
Nous devons également mentionner la plate - forme Open Bug Bounty - une plate -forme non commerciale Bug Bounty qui unit les passionnés de sécurité de l'information et popularise le piratage éthique. Les chercheurs peuvent signaler un bug trouvé dans le travail de n'importe quel logiciel, pour lequel l'entreprise offre une récompense (paiements en espèces, marchandises, remises ou leurs propres produits). Timeweb, par exemple, fournit un hébergement gratuit pour les chasseurs de bogues. Veuillez noter que conformément à la politique Open Bug Bounty, vous ne pouvez signaler que les bogues qui n'impliquent pas d'intervention active, par exemple, vous ne pouvez pas signaler RCE et SQL.
Tout d'abord, nous avons construit le travail au sein de l'entreprise: nous avons déterminé comment les services doivent interagir entre eux, qui est responsable de la correction des bogues, qui surveille la mise à jour du périmètre et les réponses aux rapports.
Avant de démarrer le programme, nous vous conseillons de vous assurer que vous avez fait tout ce que vous pouviez, trouvé tous les bogues possibles par vous-même. Il est également important de connaître l'intérieur et l'extérieur du produit que vous prévoyez de mettre au travail des chasseurs de sacs: quels problèmes y a-t-il maintenant, quels étaient; si des erreurs systématiques apparaissent. Ces informations vous permettront de définir la portée correcte - de manière succincte mais complète pour fournir des données d'entrée et décrire la demande de chasseurs de bogues.
La plateforme a été sélectionnée, la préparation a été effectuée - nous commençons
Nous formons un scop
Nous allons vous dire ce que nous avons compris au cours de l'année de l'existence du programme
Scope, complété sur la plateforme Bug Bounty, une sorte d'offre - un accord entre l'entreprise et la communauté des chasseurs de bogues. Les informations suivantes doivent être incluses dans le champ d'application:
- indiquer le but: la présence d'effets néfastes ou de conséquences destructrices que nous aimerions vérifier
- des informations sur les bogues déjà connus, non pertinents ou sans intérêt pour l'entreprise (aucune récompense n'est fournie pour les trouver)
- règles et limites pour la recherche de vulnérabilités à respecter
- taille des récompenses.
Plus vous passez de temps à explorer la portée, mieux c'est. Essayez de remplir tous les éléments avec soin et en détail, afin qu'à l'avenir, vous puissiez résoudre tous les incidents en fonction des informations spécifiées.
Un exemple de sections cadrées avec le contenu des points sur l'exemple de notre programme actuel:
Comment choisissez-vous ce que vous devez vérifier en premier? Nous vous conseillons d'inclure dans le programme un service ou un aspect qui a probablement le plus besoin d'être vérifié. Il est impossible de comprendre immédiatement ce que vous devez rechercher exactement, vous ne pouvez choisir qu'une direction, il est important de trouver les points les plus problématiques. Avec chaque nouveau rapport et chaque nouveau programme, nous augmentons notre expérience et comprenons plus clairement où aller ensuite.
Jusqu'à présent, tous nos services et produits ne sont pas répertoriés sur la plateforme Bug Bounty. Cela a été fait délibérément, car certains services, par exemple, ont été créés sur la base de solutions open source: des équipes tierces sont engagées dans leur développement et leur support, nous pensons donc que cela n'a aucun sens de les exposer au sein de notre plateforme Bug Bounty, puisque notre équipe ne surveille que la pertinence. de ces services.
Il vaut la peine de se demander si vous pouvez changer le produit inclus dans le programme Bug Bounty: y a-t-il une équipe qui peut le développer; les nuances de l'architecture le permettent.
Pour notre part, lors des programmes Bug Bounty, nous avons constamment recherché tous les services et le réseau par nous-mêmes. Cela nous a permis d'économiser de l'argent: nous avons corrigé les bogues trouvés et mis à jour la portée.
Un élément important du programme consiste à déterminer le niveau de gravité de la vulnérabilité découverte et à établir le montant de la récompense. Essayez de capturer une relation transparente entre la gravité de l'erreur et la taille de la récompense. Plus il est transparent, moins il y a de questions pour vous! Il est recommandé de lier la taille du prix à l'échelle CVSS(une norme ouverte pour évaluer la criticité de la vulnérabilité). De plus, les plates-formes Bug Bounty affichent généralement des manuels et des instructions sur la façon de déterminer le montant de la récompense. Les gestionnaires de site peuvent vous aider. Pour naviguer dans le niveau de rémunération du travail des chasseurs de sacs, vous pouvez vous rendre sur le portail HeadHunter et analyser les salaires indiqués. Si les pirates ne sont plus actifs, cela vaut peut-être la peine d'augmenter la récompense.
Chez Timeweb, nous évaluons de manière indépendante la criticité de la situation en fonction de son impact sur l'entreprise. Notre échelle de gravité de l'impact sur l'entreprise comprend 4 niveaux:
- faible (recevoir des informations non critiques sur d'autres utilisateurs, par exemple, le nom de connexion ou la possibilité de changer d'avatars; ainsi que la violation de l'intégrité et de la disponibilité de ces informations)
- medium ( , , ; )
- high ( “” ; : , , , ; )
- critical ( ; ).
En plus des informations fournies ci-dessus, nous regardons le type de vulnérabilité (RCE, XSS, injection SQL) et l'importance du serveur qui a été piraté ou réussi à accéder.
Ainsi, afin d'établir le niveau de gravité du bogue trouvé, nous analysons le type de vulnérabilité, l'importance du serveur et le degré d'impact sur l'entreprise. Sur la base de ces critères, nous déterminons le niveau de chaque vulnérabilité trouvée, qui détermine le montant de la rémunération du bug hunter. Cependant, nous ajoutons qu'il est impossible de tout prendre en compte, et souvent lors de la détermination du niveau de criticité d'un bug trouvé, on ne peut pas se passer de subjectivité.
Une description plus détaillée du processus d'évaluation de la gravité de la vulnérabilité est donnée dans les tableaux:
Tableau des scores du serveur / service
Chronologie de Bug Bounty: comment Ă©tait-ce?
Programme # 1
Lâcher prise: panneau d'hébergement Timeweb.ru Scop
: Scop a été compilé sur la base d'exemples d'autres entreprises. Spoiler: Ne le faites pas! Mais il fallait bien commencer quelque part.
Résultats: Au cours de la semaine, nous avons reçu 20 rapports, principalement avec l'indication de vulnérabilités critiques, et ... nous avons dépensé tout l'argent que nous avons mis sur le compte (plusieurs milliers de dollars). Au cours de ces 7 jours, nous avons vu des schémas de problèmes récurrents: de multiples problèmes de filtrage des entrées et d'affichage des données, diverses violations de la logique métier de l'application, ainsi que d'autres risques pour le Top Ten OWASP. Nous avons décidé de suspendre le programme et, pour le mois suivant, nous ne faisions que corriger les bogues trouvés et les analyser.
Dès que nous avons analysé ces 20 rapports, nous avons compris la marche à suivre: où creuser pendant le développement, comment travailler correctement avec la sécurité.
Programme # 2
Nous y renonçons : Panneau d'hébergement Timeweb.ru (encore une fois)
Scop: Nous avons corrigé Scop en fonction des rapports reçus plus tôt: supprimé les vulnérabilités corrigées et nous sommes concentrés sur ce qui nous intéresse.
Résultats: Cette fois, nous avons reçu de nombreux rapports critiques, mais plus spécifiques et spécifiques. Toutes les tâches de Bug Bounty ont été identifiées comme urgentes. Grâce au deuxième programme, nous avons ajusté les processus de développement et les corrections de bogues.
Programme n ° 3
Nous donnons pour être déchiré: panneau VDS Timeweb.ru , vérifiezsite officiel
Résultats: Reçu environ 40 rapports avec des bogues de gravité variable.
Étant donné que nos produits ont des fonctionnalités similaires, ils héritent parfois non seulement de fonctions, mais aussi de bogues les uns des autres. Il s'est avéré que le nouveau panneau contenait des bogues qui avaient déjà été trouvés dans les précédents programmes Bug Bounty. Ces bogues ont été enregistrés dans la portée en tant que doublons, nous n'avons donc pas eu à les payer à nouveau.
De nombreux problèmes avec les formulaires et les vulnérabilités XSS ont été trouvés sur le site.
Programme n ° 4
Portée: Le principal objectif du quatrième programme était de trouver une injection SQL.
Résultats:Avant de lancer le programme, nous avons indépendamment étudié son fonctionnement et effectué nous-mêmes des recherches sur notre produit: nous n'avons trouvé qu'une ou deux vulnérabilités non critiques. Deux semaines après le lancement de ce programme dans la nuit, nous avons reçu un rapport très attendu: un chasseur de bogues a démontré un vecteur d'attaque avec un effet destructeur sur une base de données de facturation utilisant blind-SQLi. Nous avons pu rapidement fermer cette vulnérabilité en 5 minutes: c'était dans la précédente version globale du noyau, qui est encore utilisée comme plug-ins pour plusieurs actions dans les dernières versions globales des panneaux de contrôle (hébergement virtuel, VDS, webmasters). Nous avons été ravis d'avoir pu détecter un problème aussi grave et le résoudre à temps. Entre autres choses, nous avons minutieusement vérifié toutes les autres sections de code similaires par analogie.
Programme # 5
Nous le donnons Ă la merci: HĂ©bergement virtuel Timeweb
L'hébergement virtuel est, grosso modo, un serveur physique divisé entre des centaines de clients. Les clients hébergent leurs applications Web et leurs répertoires de travail sur ce serveur, disposent d'un accès SSH et FTP au serveur. Chacun de nos clients a ses propres clients. Sur un tel serveur, nos scripts de service, services et autres personnalisations sont en cours d'exécution, qui interagissent avec d'autres services et bases de données de service.
Portée:L'objectif principal des chasseurs de bogues était simple: trouver des vecteurs pour augmenter les privilèges vers root. Nous attendions également une recherche de vecteurs d'influence sur les autres utilisateurs et leurs ressources, une recherche de vecteurs d'influence sur nos scripts de service et une recherche de vecteurs d'attaque sur d'autres serveurs, aussi bien d'hébergement virtuel que de serveurs de services, auxquels il y aurait une accessibilité hypothétique.
Résultats: Nous avons alloué un serveur spécial sans clients pour les chasseurs de bogues, similaire en fonctionnalité aux serveurs de production. Pour le moment, les chasseurs de bogues n'ont trouvé que 10 bogues. Deux rapports ont montré des vecteurs d'attaque avec élévation des privilèges vers root, mais n'ont pas réussi à atteindre d'autres serveurs. Ces problèmes ont été immédiatement résolus.
Avant de lancer le cinquième programme, nous nous sommes plongés dans la mise à jour des serveurs et des logiciels, en traitant les faiblesses, en déployant des services de service sur un réseau local inaccessible au réseau externe. Grâce à ce programme, nous refactorisons les systèmes internes sur le serveur. Cela nous a permis de remarquer des erreurs avant même qu'ils ne nous en parlent.
Et oĂą vous a-t-il conduit?
À propos des résultats du programme Bug Bounty
Pendant près d'un an du programme Bug Bounty, nous avons reçu 72 rapports. Parmi ceux-ci, 36 rapports ne respectent pas les règles de notre champ d'application. Cependant, les chasseurs de bogues ont trouvé 7 vulnérabilités critiques, 9 bogues élevés et 10 bogues de gravité moyenne et faible.
Pour obtenir un tel résultat, nous avons dépensé plus de 15 000 $ en rémunération des chasseurs de bogues (hors frais de plateforme). La plus petite récompense était de 50 $ (pour une vulnérabilité qui vous permet de recevoir des informations sur le mode de paiement de toute facture via IDOR). La récompense la plus élevée payée à ce jour est de 1 500 $. Rémunération moyenne: environ 423 $.
Quant aux résultats de qualité: nous
préservons le tonus des muscles IB
Puisque le programme Bug Bounty implique une recherche constante et continue de bogues, notre équipe de sécurité de l'information est en alerte 24/7.
On peut dire que les chasseurs de bogues simulent les actions des hackers. Ils créent chaque jour une activité «nuisible» sanctionnée, nous obligeant à garder les yeux ouverts et à garder nos gardes.
suivre la tendance
Baghunters utilise de nouveaux services, des utilitaires inconnus et des techniques de piratage modernes. Grâce à cela, nos spécialistes peuvent mettre à jour leurs compétences et leurs connaissances.
améliorer le service et les produits
La sécurité de l'information en général et les processus de Bug Bounty en particulier visent toujours à améliorer et développer des services et des produits pour le client.
engager une communauté d'experts
Dans la mise en œuvre de la sécurité de l'information, non seulement nos administrateurs internes sont impliqués, mais également une communauté d'experts à part entière avec diverses expériences et connaissances.
Nous avons souvent demandé aux chasseurs de bogues comment reproduire le bogue trouvé et même comment le corriger. Les spécialistes étaient prêts à communiquer directement dans Telegram, enregistrer une vidéo, ce pour quoi nous sommes très reconnaissants.
nous observons la discipline
Lorsque nous travaillons avec les plates-formes Bug Bounty, nous sommes responsables de la fermeture des bogues non seulement pour nous-mêmes et pour les clients, mais aussi pour les chasseurs de bogues, ils attendent des commentaires. L'interaction se déroule conformément aux réglementations établies, nous devons régulièrement mettre à jour les informations sur les rapports actuels.
Dans les 3 jours, nous devions répondre au bughunter à son rapport: l'erreur a-t-elle trouvé un bug, quel est son niveau de gravité. Bien sûr, nous pourrions donner une réponse d'ici une semaine, mais ce comportement ne sera pas convivial pour les pirates et pourrait aliéner les chasseurs de bogues.
Nous comprenons mieux les utilisateurs Les
Baghunters sont les mêmes utilisateurs et clients qui nous offrent une certaine expérience utilisateur en termes de sécurité de l'information.
Y a-t-il une vie après Bug Bounty?
Nous continuons à travailler avec un programme privé Bug Bounty avec une plate-forme éprouvée. Nous aimerions construire efficacement tous les processus internes pour fermer et corriger les bogues. Dès que nous comprendrons que les chasseurs de bogues avec lesquels nous interagissons actuellement sont devenus moins actifs, nous essaierons de passer à d'autres sites, y compris plus grands, Bug Bounty afin de recevoir encore plus de rapports et de trouver tous les problèmes possibles.
Un autre domaine de développement pour nous a été la mise en œuvre des principes de développement sécurisé. En règle générale, les développeurs font de la programmation fonctionnelle et la sécurité passe au second plan. Il est important de faire de la vérification de la sécurité du code un élément clé de toute révision de code.
L'équipe Timeweb essaie de mettre en œuvre de nouveaux outils modernes pour l'audit de la sécurité des informations des services. Nous avons découvert certaines des ressources grâce à la coopération avec les chasseurs de sacs.
Progressivement, nous impliquons le personnel de support technique dans la résolution des problèmes de sécurité de l'information: nous formons des collègues et renforçons l'équipe.
Nous sommes prêts à parler indéfiniment du programme Bug Bounty. Peut-être avez-vous encore des questions pour nos experts - écrivez dans les commentaires, ce qui est intéressant et utile à lire. Nous essaierons de répondre à toutes les questions ci-dessous ou d'expliquer plus en détail dans les articles suivants.