Professional Documents
Culture Documents
Page 2
INTRODUCTION
Cette Annexe au contrat est prvue pour aider les dveloppeurs de logiciels et leurs
clients, ngocier et saisir des termes contractuels et des modalits importantes, relies
la scurit du logiciel dvelopper ou livrer. La raison pour ce projet est que la plupart
des ententes ne parlent pas de ces problmes et que les parties ont des opinions
normment diffrentes sur ce qui a t convenu. Nous croyons qu'noncer clairement
ces termes est la meilleure faon d'assurer que les deux parties puissent prendre des
dcisions informes sur la faon de procder.
Comme l'a indiqu John Pescatore, un directeur de recherche :
La scurit d'un logiciel commercial s'amliorera lorsque le march
exigera une meilleure scurit. Au minimum, chaque demande de
soumission pour un logiciel devrait demander au fournisseur de dtailler la
faon dont il teste leurs produits pour les vulnrabilits de scurit. Cette
tape commencera convaincre les fournisseurs de logiciels prts
l'emploi et les dveloppeurs impartis que les socits estiment la
scurit.
Nous demandons avec instance aux Clients et Dveloppeurs d'utiliser ce document
comme cadre de travail pour discuter des attentes et ngocier les responsabilits. Cette
Annexe est prvue pour tre jointe une entente de dveloppement de logiciel. Ces
dispositions sont ngociables, signifiant qu'elles peuvent et devraient tre discutes par le
Client et le Dveloppeur. Pour plus d'information gnrale sur les ententes concernant les
logiciels, veuillez vous reporter http://www.nolo.com.
Page 3
http://horizon-cumulus.ca
Page 4
PROPOS DU PROJET
Ce document a t cr par la Fondation de lOpen Web Application Security Project, un
organisme sans but lucratif, dvou la cration d'outils et de documentation gratuits et
libres relis aux logiciels scuriss. Pour faciliter une utilisation dans l'entente prive, ce
document est plac dans le domaine public. Vous pouvez trouver des dtails
supplmentaires
propos
de
ce
projet
au
http://www.owasp.com/documentation/legal.html. Nous accueillons les commentaires
tant des producteurs que des consommateurs de logiciels, ainsi que de la communaut
juridique.
OBJECTIONS
Les quelques pages suivantes couvrent certaines des objections frquemment entendues
utiliser cette langue dans les ententes de dveloppement de logiciel :
1.
Ce document devrait tre considr comme point de dpart pour votre entente. Vous
pouvez ne pas aimer toutes les activits ou pourriez vouloir en suggrer plus. Vous
pourriez vouloir assigner les responsabilits diffremment. Ce document n'est pas prvu
pour saisir exactement les besoins de tous les Clients et Dveloppeurs de logiciels. Il est
prvu pour fournir un cadre de travail, pour discuter des principaux sujets qui sont
importants, pour assurer que le logiciel est finalement scuris. Aprs avoir eu une
discussion de scurit et avoir conclu une entente, vous devriez personnaliser cette
entente en consquence.
2.
Cette entente n'est PAS une faon de placer un plus gros fardeau sur le dveloppeur du
logiciel. La question n'est pas de savoir sil y a des cots associs la scurit, c'est
vident qu'il y en a. La bonne question est plutt de savoir quelles activits devraient tre
ralises par les deux parties, pour minimiser ces cots et lorsqu'elles devraient survenir.
Cette annexe est intentionnellement silencieuse sur la question de la partie qui devrait
payer pour les activits dcrites aux prsentes. Tandis que plusieurs de ces activits
devraient dj tre en cours, et sont attendues par plusieurs Clients, elles ne sont pas
habituellement pratiques dans l'industrie du logiciel. La question de la partie qui paie (et
combien) devrait faire partie de la ngociation.
Page 5
Calculer les cots de la scurit est trs difficile. Tandis qu'il y a des cots associs la
ralisation d'activits de scurit, il y a galement des cots importants associs avec le
fait de les ignorer. Nous sommes convaincus que la faon la plus rentable de dvelopper
un logiciel est de rduire la possibilit que des failles de scurit soient prsentes et de
minimiser le temps entre la prsentation d'une faille et sa correction.
Une distinction importante faire en calculant les cots est entre l'tablissement de
mcanismes de scurit et les activits d'assurance qui s'assurent que ces mcanismes
sont adquats et efficaces. Tenter d'ajouter des mcanismes la fin d'un cycle de vie peut
provoquer de srieux problmes de conception et augmentera normment les cots.
Cette entente encourage les dcisions htives sur les mcanismes, pour minimiser ces
cots. De faon similaire, attendre juste avant le dploiement pour raliser des activits
d'assurance, comme la rvision de code et les essais de pntration, augmentera aussi
normment les cots. Nous croyons que la faon la plus rentable de gagner l'assurance
est de placer un niveau d'effort constant dans l'assurance, travers tout le cycle de vie.
3.
Cette entente prsume que le logiciel tant dvelopp est raisonnablement important pour
une grande entreprise ou une agence gouvernementale. Nous avons slectionn un
niveau de rigueur , pour l'entente qui est atteignable par la majorit des organisations
de dveloppement de logiciels et identifieront et greront la plupart des risques communs.
Cependant, pour un logiciel qui sera utilis dans des applications vitales, comme les
logiciels mdicaux, financiers ou relis la dfense, vous pourriez vouloir augmenter le
niveau de rigueur. Vous pourriez vouloir ajouter des activits supplmentaires de rvision,
de documentation et d'essais. Vous pourriez vouloir amliorer les processus pour trouver,
diagnostiquer et remdier aux vulnrabilits. Pour les applications moins sensibles, vous
pourriez vouloir rduire ou retirer des activits.
4.
Cette entente est prvue pour faciliter les discussions propos de la partie qui prendra le
risque pour les vulnrabilits de scurit dans le logiciel. une extrmit du spectre, le
Client pourrait prendre tout le risque et le Dveloppeur pourrait livrer un code avec
beaucoup de vulnrabilits. l'autre extrmit, le Dveloppeur pourrait prendre tous les
Page 6
risques et assumer la responsabilit pour livrer un code parfait. Ces deux extrmes sont
irralisables.
Actuellement, dans cette entente, le Dveloppeur prend le risque pour les problmes qui
ont t couverts dans les exigences ou devraient tre couverts par des efforts raisonnables
de tests. Mais les mesures correctrices de nouveaux problmes de scurit doivent
tre payes par le Client. Nous croyons que ceci est un quilibre utile, puisque le
Dveloppeur peut limiter son risque et encourage le Client faire corriger les exigences
de scurit ds le dpart. Mais il y a plusieurs autres solutions possibles ce problme.
Veuillez nous laisser savoir si vous avez des suggestions de remplacement et que nous
pouvons inclure dans les versions futures de ce document.
Notez que la discussion ici ne couvre que le risque associ la correction des
vulnrabilits de scurit dans le code et n'inclut pas les cots associs la rcupration
des incidents de scurit, selon toute exploitation de ces vulnrabilits. Nous sommes
intresss dans les pratiques exemplaires dans ce domaine.
5.
Presque tous les projets de logiciels utilisent une quantit importante de code de tierce
partie, comme les bibliothques, les cadres de travail et les produits. Ce code est tout
aussi important d'un point de vue de scurit, que le code personnalis dvelopp
prcisment pour votre projet.
Nous croyons que la responsabilit d'assurer la scurit de ce code est mieux d'tre
assume par le Dveloppeur, bien qu'il puisse ne pas avoir la pleine capacit lui-mme de
garantir cette scurit. Cependant, la scurit doit faire partie de la dcision dvelopper
ou acheter et ceci semble la meilleure faon de l'encourager.
Le Dveloppeur, bien sr, a l'option de transfrer cette responsabilit aux fournisseurs de
logiciel de tierce partie. Le Dveloppeur peut galement analyser le code de tierce partie
lui-mme ou embaucher des experts de scurit pour l'analyser pour lui.
6.
Finalement, nous croyons qu'il n'y a pas de solution de remplacement pour intgrer la
scurit dans le processus de contrat du logiciel. Actuellement, nous croyons qu'il y a des
msententes srieuses propos de la livraison de la scurit du code, en vertu de
Page 7
7.
Page 8
ANNEXE L'ENTENTE
Cette Annexe est faite pour _____________________ ( Entente ) entre le Client et le
Dveloppeur. Le Client et le Dveloppeur conviennent de maximiser la scurit du
logiciel, conformment aux dispositions suivantes.
8.
PHILOSOPHIE
Cette Annexe est prvue pour clarifier les droits et obligations relis la scurit
de toutes les parties d'une relation de dveloppement de logiciel. Au plus haut
niveau, les parties conviennent que :
(a)
Les dcisions de scurit seront bases sur le risque. Les dcisions propos de
la scurit seront prises conjointement avec le Client et le Dveloppeur, selon une
comprhension arrte des risques impliqus.
(b)
Les activits de scurit seront quilibres. Un effort de scurit sera peu prs
galement distribu travers tout le cycle de vie du dveloppement du logiciel.
(c)
(d)
Les vulnrabilits sont attendues. Tous les logiciels comportent des anomalies
et certaines de celles-ci creront des problmes de scurit. Le Client et le
Dveloppeur s'efforceront d'identifier les vulnrabilits aussi tt que possible dans
le cycle de vie.
(e)
(f)
9.
(a)
(b)
(c)
(d)
(e)
(f)
Page 10
10.
(a)
Validation et codage. Les exigences doivent prciser les rgles pour canoniser,
valider et coder chaque entre l'application, que ce soit des utilisateurs, des
systmes de fichiers, des bases de donnes, des rpertoires ou des systmes
externes. La rgle par dfaut doit tre que toutes les entres sont invalides,
moins qu'elles ne correspondent une spcification dtaille de ce qui est permis.
De plus, les exigences doivent prciser l'action prendre, lorsqu'une entre
invalide est reue. Prcisment, l'application ne doit pas tre susceptible aux
injections, aux dbordements, aux violations, ou d'autres attaques d'entre
corrompue.
(b)
(c)
Contrle d'accs. Les exigences doivent inclure une description dtaille de tous
les rles (groupes, privilges, autorisations) utiliss dans l'application. Les
exigences doivent galement inclure tous les biens et fonctions fournis par
l'application. Les exigences doivent compltement prciser les droits d'accs
exacts de chaque bien et fonction pour chaque rle. Une matrice de contrle
d'accs est le format suggr pour ces rgles.
(d)
Gestion d'erreur. Les exigences doivent dtailler la faon dont les erreurs
survenant pendant le traitement seront gres. Certaines applications devraient
fournir des rsultats selon le meilleur effort, dans l'ventualit d'une erreur, tandis
que d'autres devraient mettre fin au traitement immdiatement.
(e)
Journalisation. Les exigences doivent prciser que les vnements portant sur la
scurit et doivent tre journalises, comme les attaques dtectes, les tentatives
choues d'ouverture de session, et les tentatives de dpasser les autorisations. Les
exigences doivent galement prciser l'information saisir avec chaque
vnement, y compris l'heure et la date, la description de l'vnement, les dtails
de l'application et autre information utile dans les efforts d'investigation
informatique.
Page 11
(f)
(g)
(h)
(i)
Configuration scurise. Les exigences doivent prciser que les valeurs par
dfaut pour toutes les options de configuration pertinentes de scurit doivent tre
scurises. Aux fins de vrification, le logiciel devrait pouvoir produire un rapport
facilement lisible, montrant tous les dtails pertinents de configuration de scurit.
(j)
11.
PERSONNEL ET ORGANISATION.
(a)
(b)
(c)
Page 12
12.
ENVIRONNEMENT DE DVELOPPEMENT
(a)
(b)
13.
(a)
(b)
14.
RVISIONS DE SCURIT.
(a)
(b)
(c)
(d)
Page 13
15.
ASSURANCE
(a)
(b)
(c)
16.
(a)
(b)
(c)
(d)
Page 14
(e)
(f)
Page 15