Sécurité des applications et sécurité des logiciels: quelle est la différence?

Monica Chakraborti

Les termes «sécurité des applications» et «sécurité des logiciels» sont souvent utilisés de manière interchangeable. Cependant, il existe en fait une différence entre les deux. Le pionnier de la sécurité de l'information, Gary McGraw, soutient que la sécurité des logiciels est une approche réactive qui prend place après l'installation des logiciels. La sécurité des logiciels, quant à elle, implique une approche active au stade du pré-déploiement. La sécurité doit être établie à toutes les étapes du cycle de vie du développement logiciel (SDLC) pour garantir la sécurité du logiciel. La sécurité des logiciels n'est donc pas la sécurité des applications - elle est énorme.

La sécurité des applications en tant que sous-ensemble de la sécurité des logiciels

Comme vous le savez, les applications sont des liens entre les données et l'utilisateur (ou une autre application). Si un utilisateur souhaite, par exemple, une analyse complète des données médicales d'un patient, cela peut être fait facilement à l'aide d'une application pour éviter les calculs manuels complexes et longs. De même, les opérations bancaires en ligne se font via des applications Web ou des applications mobiles, et les informations non financières sont traitées, transmises et stockées dans le processus. Le Logiciel ne reconnaît pas la confidentialité ou la confidentialité des informations transmises ou transmises sur Internet. Ainsi, le logiciel doit être conçu et développé en fonction de la sensibilité des données traitées. Si les données sont classées comme "publiques", elles sont accessibles sans nécessiter d'authentification de l'utilisateur. Un exemple est l'information trouvée sur la page de contact du site Web ou la page de politique. Cependant, si l'application effectue l'administration des utilisateurs, il doit y avoir une méthode d'authentification multifacteur pour accéder à ces données. Selon la classification des données traitées dans l'application, en plus d'effectuer un codage sécurisé, les données doivent être authentifiées, autorisées et protégées en stockage ou en transit. Il doit être mesuré à chaque étape du SDLC pour protéger le logiciel et les informations sensibles associées. Cette mesure divise les problèmes en phases de pré et post-développement. Cependant, la sécurité des logiciels traite des problèmes avant le déploiement et des problèmes de sécurité des logiciels après le déploiement.

Les activités de sécurité (pré-distribution) des logiciels comprennent:

- Conception logicielle sécurisée - Élaboration de directives de codage sécurisé pour les développeurs - Élaboration de procédures de configuration sécurisées et de normes pour la phase de distribution - Codage sécurisé conformément aux instructions établies - vérification des entrées utilisateur et pertinentes mise en œuvre de stratégies de codage - authentification des utilisateurs - Gestion des sessions des utilisateurs - Contrôle d'accès au niveau des fonctions - Utilisation d'une cryptographie forte pour protéger les données pendant le repos et le transit - Vérification des composants tiers - Suppression de toute faille logicielle

Les activités de sécurité des applications (après affectation) comprennent:

- Tests de sécurité post-hébergement - Détection des lacunes dans la configuration de l'environnement logiciel - Détection de code malveillant (produit par l'arrière-plan, bombe à retardement) - Correctif / Modernisation - Filtrage IP - Suppression des fichiers utilisés - Mise en œuvre de la politique logicielle Surveillance des programmes d'exécution pour augmenter les performances

Pour plus d'informations, consultez le modèle BSIMM (Building Security Maturity Model).

Scénario 1: sécurité des applications Web Les applications Web sont souvent des applications client-serveur dans lesquelles le navigateur agit en tant que client, envoie des demandes à l'utilisateur pour fournir des informations et reçoit des réponses du serveur. Par conséquent, la sécurité des applications Web est associée aux problèmes des clients, à la protection du serveur et à la protection des données pendant le repos et le transit. À moins que des précautions ne soient prises lors de la conception de l'interface utilisateur, il est plus difficile de résoudre les problèmes côté client. Un exemple est les scripts basés sur le site DOM où un objet DOM peut être modifié à partir d'un autre objet DOM à l'aide de Javascript. Les navigateurs modernes offrent plus de protection pour les applications, mais de nombreux programmes prennent en charge la compatibilité avancée, qui comprend un large éventail d'utilisateurs, des versions plus anciennes de navigateurs et des ordinateurs non sécurisés. Par conséquent, lors de la résolution de ces problèmes, la sécurité doit être effectuée par le client pendant la phase de conception. Pendant les phases de développement et de codage de l'application, les composants côté serveur peuvent être protégés à l'aide d'homologues. Cela nécessite l'installation d'un logiciel système / serveur sécurisé. Les logiciels de serveur obsolètes tels qu'Apache Tomcat (3.1 et versions antérieures) ne sont plus pris en charge et il peut y avoir des vulnérabilités imprévues pour ces versions. Ils doivent être immédiatement mis à jour vers la dernière version.

Autres vulnérabilités courantes de sécurité des infrastructures:

- Bannières de serveur détaillées - Pages de mise en cache qui stockent les données localement et en transit - Bundles chiffrés soutenus par le serveur - Adresses réseau du domaine influencées par les cookies - Sécurité des cookies

Scénario 2: La sécurité des applications mobiles

Différents systèmes d'exploitation et systèmes mobiles tels que les smartphones et les tablettes utilisant la conception de sécurité sont plus courants aujourd'hui que les applications Web. Ces appareils et applications exécutés sur ces appareils peuvent constituer une menace sérieuse pour les informations sensibles qu'ils stockent. Les e-mails professionnels et les contacts personnels peuvent être exposés à des réseaux peu fiables. Ces programmes interagissent avec de nombreux services d'assistance. Les appareils peuvent être volés. Il est possible d'installer des logiciels malveillants. Les applications mobiles peuvent être créées à l'envers pour accéder à des informations confidentielles. Ce ne sont là que quelques-unes des possibilités. En outre, certaines applications marketing sur les appareils mobiles peuvent collecter des informations personnelles ou professionnelles, telles que des messages texte, l'historique des appels téléphoniques et des contacts.

Les facteurs de risque dans les logiciels mobiles comprennent:

- Encodage d'application - Déploiement d'application - Configuration d'application - Configuration d'appareil

Les applications mobiles doivent être capables de capacités internes de détection de racine / jailbreak, de résistance complète à la rétro-ingénierie, d'authentification à multiples facettes, d'empreinte digitale, de détection d'image et de géolocalisation. Sans oublier la nécessité de suivre les instructions de codage en toute sécurité. Pour différents fournisseurs d'appareils mobiles, les magasins d'applications utilisent différents contrôles de sécurité. Assurez-vous que les applications ne sont pas interrompues pendant le processus de distribution. Une résistance complète est particulièrement importante à ce stade. Les appareils qui exécutent ces programmes utilisent leur logiciel et peuvent être configurés en toute sécurité. La configuration des appareils associés à la protection du code d'application, la détection des racines / programmes malveillants, l'authentification et la vérification des canaux doivent être effectuées conformément aux normes de configuration des appareils mobiles. Le point ici n'est pas seulement un programme à souligner; Les logiciels mobiles doivent également être conçus et ajustés en toute sécurité pour toutes ces capacités. La mise en œuvre de la sécurité dans les applications mobiles est plus difficile que les applications Web. Des mesures telles que le déchiffrement et le déchiffrement (pour ne pas casser le code) sont plus nécessaires dans les applications mobiles que dans les applications Web.

Types de test d'application

Les tests sont conçus pour détecter les erreurs de performances, les défauts de conception et d'architecture et les configurations non sécurisées. Certaines applications efficaces pour les contrôles de sécurité sont:

  1. Les tests de sécurité logicielle statique (SAST) se concentrent sur le code source.
  2. Le test de sécurité d'application dynamique (DAST) est conçu pour identifier les vulnérabilités des logiciels et de l'infrastructure.
  3. Le test de sécurité pratique interactif (IAST) utilise une combinaison de DAST et de SAST et effectue une analyse comportementale pour déterminer le flux de données, les entrées / sorties, etc.
  4. L'auto-défense Runtim (RASP) permet aux applications de se protéger à l'aide des fonctionnalités de sécurité du moteur d'exécution telles que la fin de session, l'arrêt du programme, les rapports de plantage, etc. .

Il est important de noter que la sécurité des applications est l'un des nombreux domaines de la sécurité des logiciels.

Les risques logiciels comprennent:

- Application / infrastructure non Web / Web - Conception sûre - Réglage incorrect - Restriction technologique - Cryptage de la transmission - Sécurité de la base de données principale

Comme vous pouvez le voir dans les deux scénarios ci-dessus, les tests de logiciels dans la phase de post-déploiement des applications Web et mobiles varient considérablement. Les applications mobiles ont tendance à être plus perturbatrices que les applications Web. De plus, la sécurité des appareils mobiles est un facteur important dans la sécurité des applications mobiles.

Quelle place occupe la sécurité du réseau dans tout cela?

Il existe une idée fausse répandue sur la sécurité des logiciels, tels que les pare-feu qui limitent les performances des programmes ou des programmes tels que les pare-feu. Les entreprises dépensent beaucoup d'argent pour des mesures de sécurité réseau (telles que des routeurs qui empêchent l'adresse IP d'un ordinateur individuel d'apparaître directement sur Internet).

D'autres contre-mesures courantes comprennent:

- Pare-feu typiques - Programmes de chiffrement / déchiffrement - Programmes antivirus - Programmes de détection / désactivation des logiciels espions - Systèmes d'authentification biométrique - Outils d'analyse et de prévention des pertes de données

Le rapport Verizon Data Breach 2015 ne montre que 9,4% des attaques d'applications Web parmi divers incidents. L'initiative de sécurité des logiciels (SSI) de l'Organisation doit être vue au-delà de la portée de la sécurité des applications et doit être intégrée dans tous les types de logiciels.

[tweetthis remove_hidden_hashtags = "true"] # Appsec et #Swsec sont souvent utilisés de manière interchangeable. Mais il y a une GRANDE différence. Voici pourquoi: [/ tweetthis]

Sécurité des applications et sécurité des logiciels: compléter

Concevoir et coder une application en toute sécurité n'est pas le seul moyen de sécuriser cette application. L'infrastructure, les serveurs et les composants réseau qui s'exécutent sur l'application doivent être configurés en toute sécurité. Pour garder l'application aussi sécurisée que possible, il est important de prendre en compte tous ces éléments, y compris la configuration de l'application et du serveur, le chiffrement de la transmission, le stockage des données d'authentification et l'accès à la base de données où la base de données et les clés de chiffrement sont stockées. Le logiciel et l'infrastructure gérée par logiciel doivent être protégés pour assurer une sécurité maximale. Cela comprend la sécurité des logiciels (dans les phases de conception, de codage et de test) et la sécurité pratique (tests de post-placement, surveillance, débogage, mise à niveau, etc.). La sécurité des logiciels comprend une approche holistique pour améliorer la sécurité des informations de l'organisation, la protection des actifs et la confidentialité des informations non publiques; tandis que la sécurité des applications n'est qu'un domaine tout au long du processus.

La sécurité des applications est la première étape d'un parcours de sécurité logicielle. Apprenez-en plus.