Comment créer un logiciel sécurisé sur mobile et sur ordinateur

Publié: 2019-03-06

Dans le monde moderne, les problèmes de sécurité attirent plus que jamais l'attention. Divers pirates et escrocs ont commencé à prospérer avec la montée en puissance des crypto-monnaies qui valent des centaines et des milliers de dollars par pièce. Données sensibles de célébrités, informations d'identification bancaires, informations sur les transferts d'argent ou nouvelles technologies - les escrocs en ligne profitent de tout car les gens ont tendance à ignorer les principales mesures de protection.

Cependant, un poisson pue de la tête vers le bas. Sans fonctionnalités de sécurité appropriées conçues par les développeurs de logiciels, il est impossible de protéger vos données côté client. Considérant le fait que les appareils mobiles gagnent en popularité en raison de l'augmentation constante des fonctionnalités alors que les plates-formes de bureau/web restent les mieux notées, nous voulons découvrir comment les auteurs peuvent rendre leurs produits compatibles et sûrs. Vous trouverez des conseils pour les utilisateurs dans la dernière section.

La sécurité en bref

Dans un premier temps, distinguons la sécurité des applications et les logiciels de sécurité. Ces termes peuvent sembler synonymes, mais ils sont liés à différents aspects où la première définition représente la sécurité globale du produit publié et la seconde couvre à la fois les étapes de post-déploiement et de pré-déploiement.

Fondamentalement, les applications logicielles sont des outils simples qui aident les utilisateurs à interagir avec les données, via des gadgets mobiles ou des plates-formes de bureau. Par exemple, si vous souhaitez consulter un dossier médical ou obtenir des informations sur vos transactions récentes, il est beaucoup plus pratique d'utiliser un smartphone ou le site Web d'un hôpital ou d'une banque au lieu d'appeler ou de visiter ces lieux.

Le problème est que le logiciel ne reconnaît pas les types de données classées selon leur sensibilité. Sans catégories et accès programmés manuellement, les applications ne peuvent pas distinguer votre nom des numéros CVV/CVC de votre carte de crédit. Par conséquent, il est important de commencer à construire un système de sécurité approprié dès les premières étapes de développement. Voici quelques conseils sur ce processus :

  • Effectuez un codage sécurisé.
  • Classer les données et définir les exigences d'autorisation.
  • Localisez les bogues et éliminez-les.
  • Évaluez la sécurité à chaque étape de développement.
  • Vérifiez la fiabilité des éléments tiers.
  • Éduquer les développeurs sur les techniques d'escroquerie.
  • Exiger 2FA des employés.
  • Mettez régulièrement à jour le logiciel après sa sortie.

Problèmes de sécurité connus

Il est à peine possible de créer une application protégée solide sans comprendre à quel point les plates-formes mobiles et de bureau sont vulnérables aux pirates. En termes simples, il existe quelques approches traditionnelles pour pénétrer dans des appareils avec une architecture différente, nous proposons donc de les vérifier dès maintenant. Ces points devraient vous aider lors de la phase de conception lorsque vous planifiez les meilleures mesures de sécurité pour les produits mobiles et de bureau.

Smartphones et Tablettes

Mode de vie nomade avec appareils mobiles obligatoires. Ainsi, de nombreuses personnes transfèrent désormais leurs données de base des ordinateurs vers les smartphones ou au moins synchronisent les informations entre deux plates-formes. En conséquence, nous obtenons un autre point où les escrocs peuvent accéder à des données précieuses. Techniquement, il y a trois aspects vulnérables :

  • Matériel de l'appareil.
  • Logiciel lui-même.
  • Réseaux publics.

Par exemple, les voleurs peuvent facilement voler votre téléphone dans une foule, le rooter et accéder à tout ce qui se trouve à l'intérieur du système. Le matériel peut également être truqué si vous achetez des gadgets auprès de distributeurs non officiels. En dehors de ce point faible, les pirates sont connus pour s'introduire dans les smartphones et les tablettes via des réseaux Wi-Fi publics non protégés. Enfin, cela ne vaut rien d'installer des logiciels malveillants via un jeu ou une application multimédia ordinaire s'il est téléchargé depuis la boutique non officielle.

Web et bureau

Les navigateurs et les logiciels téléchargés fonctionnent généralement de la même manière s'ils nécessitent une connexion Internet. Ici, l'application agit comme un côté client qui envoie des requêtes et obtient des résultats tandis que la base de données principale (et les interfaces si vous utilisez un navigateur pour naviguer sur les sites Web) est située sur le serveur connecté. Ainsi, les défis de sécurité se divisent en trois parties :

  • Côté client.
  • Du côté serveur.
  • Processus d'échange de données.

Le problème le plus dangereux est lié aux logiciels hérités, car les escrocs en ligne peuvent facilement s'introduire dans d'anciennes interfaces qui ne sont plus protégées par des systèmes mis à jour. De plus, la mise en cache des pages, les mauvais services de cryptage et les adresses/informations sensibles exposées par les cookies sont des maillons faibles potentiels qui peuvent être utilisés par les pirates.

Développement de logiciels sécurisés

Maintenant, la question est : comment créer un système fiable pour les deux plates-formes si elles présentent des faiblesses si différentes ? Généralement, il existe trois approches. Vous pouvez choisir le plus approprié, mais assurez-vous de considérer les avantages et les inconvénients de chaque exemple.

Mobile ET Bureau

Dans ce cas, les développeurs doivent créer deux produits (pour les plates-formes mobiles et pour les navigateurs/bureaux) séparément l'un de l'autre. Les applications ne sont ni interconnectées ni synchronisées, alors soyez prêt à faire des dépenses élevées à la fois en argent et en temps car votre équipe devra investir deux fois plus de ressources. En conséquence, deux applications distinctes seront publiées, chacune avec sa propre protection conçue spécifiquement pour les plates-formes cibles.

Mobile AVEC ordinateur de bureau

Cette option permet de lancer un site Web hautement adaptatif, de sorte qu'il affichera correctement tous les éléments pour les utilisateurs Web et mobiles. En conséquence, vous obtenez une plate-forme unique avec un seul point faible basé sur les vulnérabilités Web décrites ci-dessus. Néanmoins, le produit final sera moins fonctionnel que les plates-formes mobiles natives, le contenu se chargera plus lentement et les fonctionnalités globales seront limitées.

Bureau mobile PLUS

Au lieu de créer des projets séparés ou de concevoir un site Web avec une compatibilité mobile, il existe l'option la plus efficace et la plus sécurisée. Diverses équipes, y compris les développeurs de Diceus.com, utilisent cette approche. Il est nécessaire de créer une plate-forme back-end unique, mais d'y installer deux systèmes front-end différents.

Par exemple, un logiciel de base peut être réalisé à l'aide de l'API RESTful qui prend en charge une architecture évolutive pour les mobiles et les ordinateurs de bureau. De plus, React.js est un bon choix pour le front-end Web tandis que les frameworks Xamarin ou Cordova répondront aux besoins des développeurs mobiles multiplateformes.

Passant aux mesures de sécurité, il existe quelques méthodes éprouvées pour l'approche de bureau mobile :

  • Offrez un cryptage de premier ordre. Pour les versions Web, il est nécessaire de disposer d'une véritable technologie de cryptage qui empêche les piratages.
  • Inclure les détections. Vous pourrez repérer les logiciels malveillants à tout moment si les systèmes frontaux ont une connexion solide avec la plate-forme principale.
  • Inclure l'autoprotection. Les applications peuvent utiliser des fonctionnalités d'exécution telles que l'abandon des sessions inactives ou les notifications d'échec.
  • Testez régulièrement le logiciel. Utilisez SAST pour les tests de code, DAST pour les applications et les infrastructures et IAST pour les vérifications de données.
  • Mise à jour et assistance des produits. Alors que les voleurs inventent de nouvelles attaques, il vaut mieux réagir rapidement avec de nouvelles mesures défensives.

Le modèle de développement décrit est le plus équilibré en termes de ressources, de fonctionnalités et de sécurité. Vous devez créer et protéger trois points (un back-end et deux front-ends) au lieu de quatre éléments de produits distincts, mais vous obtenez presque les mêmes fonctionnalités.

Protection pilotée par l'utilisateur

En fin de compte, n'oubliez pas la sécurité côté client. Les développeurs peuvent créer le meilleur système possible, mais la négligence des utilisateurs gâche tout. Lorsque vous utilisez un logiciel spécifique, quel que soit son type, n'oubliez pas l'hygiène Internet : ne faites pas confiance aux e-mails suspects, vérifiez les certificats de cryptage des sites Web, utilisez des antivirus, etc. Activez toujours 2FA pour obtenir des codes de vérification supplémentaires via SMS ou des applications d'authentification. Utilisez des outils d'identification biométrique tels que les empreintes digitales ou la détection de visage pour les smartphones et les tablettes.

Dans l'ensemble, il n'est pas difficile de protéger les données lorsque les développeurs et les utilisateurs savent comment le faire. Les pirates perdraient leur emploi si nous respections tous strictement les règles de sécurité.

Avez-vous des idées à ce sujet? Faites-le nous savoir ci-dessous dans les commentaires ou transférez la discussion sur notre Twitter ou Facebook.

Recommandations des éditeurs :

  • Entretien avec Stu Grubbs, PDG de la société de logiciels de streaming Lightstream
  • 10 développeurs de logiciels à suivre en 2019
  • 5 des fournisseurs de logiciels de jeux les plus populaires
  • Voici les fournisseurs de logiciels iGaming les plus importants et les plus performants
  • Votre logiciel antivirus peut-il ralentir votre vitesse Internet ?