Vous êtes sur la page 1sur 4

Introduction à la sécurité logicielle

Par Guiffou Joël


Le 14 février 2022
Objectifs
 C’est quoi un logiciel?
 Fonctionnement des logiciels
 Objectifs de la sécurité logicielle
 C’est quoi un bug
 Vulnérabilités et failles logicielles
 Exploitation et exploit
 Comment sécuriser un logiciel ?

Qu’est-ce qu’un logiciel ?


En informatique, un logiciel est un ensemble de séquences
d’instructions interprétables par une machine et d’un jeu de données
nécessaires à ces opérations. Le logiciel détermine donc les tâches qui peuvent
être effectuées par la machine, ordonne son fonctionnement et lui procure
ainsi son utilité fonctionnelle. Les séquences d’instructions appelées
programmes ainsi que les données du logiciel sont ordinairement structurées
en fichiers. La mise en œuvre des instructions du logiciel est appelée exécution
et la machine chargée de cette mise en œuvre est appelée ordinateur ou
calculateur. Un logiciel peut être classé comme système, applicatif, standard,
spécifique, ou libre, selon la manière dont il interagit avec le matériel, selon la
stratégie commerciale et selon les droits sur le code source des programmes.
Le terme logiciel propriétaire est aussi employé.
Tout programme s’exécutant sur un appareil électronique (ordinateur,
téléphone, etc.) est un logiciel.

Fonctionnement des logicielles


Les logiciels ou programmes s’exécutent de manière conforme à leurs
spécifications (leurs codes). Le comportement d’un programme dépend donc
de son code, de l’environnement dans lequel il est exécuté et des données qui
lui a été fourni.
En quoi consiste la sécurité logicielle ?
Sécuriser un logiciel consiste à garantir dans ce logiciel les principes
suivants :
 L’intégrité : Garantir que les données du logiciel et le logiciel lui-même
n’ont pas étés altérées de manière volontaire ou non
 La confidentialité : Garantir que les données du logiciel et le logiciel lui-
même ne sont accessibles que par des personnes autorisées
 La disponibilité : Garantir l’accès au logiciel et a ses données par les
utilisateurs à n’importe quel moment
 La non-répudiation : Garantir qu’aucune opération dans le logiciel ne
puisse être niée par l’un des acteurs
 L’authentification : S’assurer de l’identité des utilisateurs du logiciel
Les actions d’un attaquant malveillant envers le logiciel consistera donc à
porter atteinte à l’une ou plusieurs de ces propriétés.

C’est quoi un Bug ?


Un Bug est un défaut de conception d’un programme à l’ origine d’un
disfonctionnement. Ce disfonctionnement peut entrainer l’arrêt du logiciel (le
logiciel n’est plus disponible), altérer les données (l’intégrité n’est plus
satisfaite), etc. L’origine d’un bug peut être une mauvaise conception, une
mauvaise programmation, une mauvaise configuration, la non-prise en
compte de certain cas d’exécution, etc.

Vulnérabilité
Une vulnérabilité est une faille dans le logiciel donnant la possibilité à
un attaquant de porter atteinte à l’intégrité, la confidentialité, la
disponibilité, la non-répudiation ou l’authentification du logiciel.

Exploitation et exploit
L’exploitation ici consiste pour un attaquant à se servir de manière
abusive d’une faille du logiciel à son avantage. L’exploit fait référence au
moyen utilisé pour exploiter la faille.

Sécuriser un logiciel
Contrairement à ce que vous pouvez penser, on ne développe pas un
logiciel avant de le sécuriser. Des bugs peuvent s’introduire dans le logiciel
depuis la conception et présenter des vulnérabilités dans le logiciel. Il faut dont
appliquer des méthodes et des techniques de sécurité à chaque étape du
développement du logiciel. D’où l’intégration de la sécurité dans les phases du
cycle de développement logiciel.
# 1 Planification
Durant cette première phase du cycle de vie du développement du logiciel, les
développeurs et les experts en sécurité doivent réfléchir aux risques communs
qui pourraient nécessiter une attention pendant le développement et s'y
préparer.
# 2 Exigences et analyse
Dans la deuxième étape, les exigences et l'analyse, des choix sont faits
concernant la technologie, les langages et les Frameworks de développement
qui seront utilisés. C'est à ce moment-là que les experts doivent considérer
quelles vulnérabilités pourraient menacer la sécurité des outils sélectionnés,
afin de faire les choix de sécurité appropriés tout au long de la conception et du
développement.
# 3 Architecture et conception
Durant cette phase, les équipes doivent suivre les directives d'architecture et
de conception pour faire face aux risques qui ont déjà été pris en compte et
analysés au cours des étapes précédentes. Lorsque les vulnérabilités sont
corrigées au début de la phase de conception, vous pouvez être assurés
qu'elles n'impacteront pas votre logiciel durant le développement. Des
processus comme la modélisation des menaces et l'analyse des risques
d'architecture rendent le processus de développement beaucoup plus simple
et plus sûr.
# 4 Développement
Pendant la phase de développement, les équipes doivent s'assurer qu'elles
utilisent des normes de codage sécurisées. Tout en effectuant les revues de
code habituelles pour s'assurer que le projet implémente bien les
caractéristiques et fonctions spécifiées, les développeurs doivent également
prêter attention à toutes les vulnérabilités de sécurité dans le code.
# 5 Test
La phase de test doit inclure des tests de sécurité, en utilisant des outils
DevSecOps automatisés pour améliorer la sécurité des applications.
Il est important de se rappeler que l'approche DevOps nécessite des tests
continus tout au long du cycle de vie de développement du logiciel. Tester plus
tôt et tester souvent est le meilleur moyen de s'assurer qu’à la fois vos produits
et votre cycle de vie de développement du logiciel sont sécurisés dès le départ.
Cela signifie que les équipes doivent commencer les tests dès les premiers
stades de développement, et que les tests de sécurité ne s'arrêtent pas une fois
l’équipement déployé et mis en œuvre.
# 6 Maintenance
Bien que les tests puissent être approfondis, la vraie vie montre que la réalité
n'est jamais la même que l'environnement de test. Il faut donc se préparer à
traiter les erreurs ou les risques non détectés auparavant et s’assurer que la
configuration définie pour le produit ai été faite correctement.

Conclusion
La notion de logiciel étant vaste, il existe des méthodes et des techniques de
sécurités particulières à chaque type de logiciel. Dans la suite nous nous
intéresserons à la sécurité des sites web. De plus, La sécurité logicielle est un
domaine très important pour l’avenir des logiciels dans le monde. Néanmoins
une sécurité à 100% d’un système ne saurait exister.

Vous aimerez peut-être aussi