Si la spécification est défectueuse, doit-elle quand même être suivie?

28

J'ai été mandaté pour développer une intégration à l'une des applications de mon employeur vers un système externe développé par notre client. Spécification de notre client pour l'intégration qui présente des défauts flagrants liés à la sécurité. Les failles permettraient à un utilisateur non autorisé d'accéder au système pour afficher des données restreintes.

J'ai souligné les failles et leurs risques potentiels pour la sécurité si elles sont implémentées comme prévu et fourni une alternative sans la faille, mais (en bref), le client m'a dit de "faire comme nous l'avions spécifié".

Un programmeur a-t-il une responsabilité éthique de NE PAS implémenter du code avec des risques de sécurité connus? À quel moment les exigences d'un client l'emportent-elles sur la responsabilité éthique que nous avons en tant que développeurs de logiciels de créer des applications sécurisées?

Nick Orlando
la source
9
Vous avez souligné les risques, mais avez-vous également souligné la probabilité et (peut-être plus important encore) l'impact de ces risques sur certains aspects de leurs opérations? Êtes-vous sûr que le client comprend parfaitement les risques et dispose d'une documentation à cet effet?
Thomas Owens
7
J'ai récemment jeté ça dans ma tête dans certains de mes travaux. Si nous faisons la même comparaison par rapport à un constructeur de ponts, dans lequel on lui demande de construire un pont qui n'a pas ces supports gênants et obstructifs en dessous, ou ne peut supporter que le poids de deux voitures, alors pour sa réputation, il vais probablement refuser. Je pense qu'il doit vraiment arriver un moment où c'est le devoir d'un ingénieur / d'une personne de refuser. Certes, la grande majorité des griefs de conception ne se rapprochent pas du risque de blessure ou de mort.
Katana314
2
@ Katana314 Il n'y a certainement aucun risque de blessure physique ou de mort avec mon scénario actuel. Celui-là est certainement plus facile à répondre ... Mais vous avez frappé le clou sur la tête, je pense. Des recherches supplémentaires m'ont conduit au Code de déontologie de l'ACM , qui semble renforcer notre responsabilité d'identifier et de signaler tout problème prévisible.
Nick Orlando
3
@TheSoftwareDev Assez juste, mais j'ajouterai simplement que parfois les risques humains peuvent être plus profonds que nous ne le pensons. Un risque pour la sécurité permettant à un pirate de prendre facilement les informations des gens et de voler leur identité, les laissant sans abri pour se suicider plus tard; Une faille de réseau social qui permet à un harceleur d'intercepter les communications privées d'une femme au sujet d'une réunion dans un restaurant, puis de la suivre physiquement et de la piéger c'est un peu morbide de penser CELA de façon créative, mais nous pouvons parfois oublier à quel point nos projets pourraient être utilisés.
Katana314
1
@gnat Pas vraiment un doublon. La question connexe concerne l'approche générale de l'éthique des logiciels, celle-ci demande dans quelle mesure le PO devrait se battre avant de dire «plus mon problème».
Rath

Réponses:

40

Je pense que vous avez fait votre part en soulignant le problème et en suggérant une alternative. S'ils insistent pour que vous fassiez des choses qui les exposent à un certain niveau de risque, vous devez vous assurer d'avoir une trace papier (et des copies de sauvegarde) montrant qu'ils l'ont explicitement demandé, connaissant les risques encourus. Si vous êtes vraimentinquiets, vous pouvez leur dire que vous feriez avec plaisir ce qu'ils veulent, s'ils signent d'abord une sorte de document juridique / avis de non-responsabilité dans lequel ils reconnaissent les risques associés à ce qu'ils vous ont demandé de faire (et bien sûr, demandez à un avocat rédiger un tel document). Personnellement, je ne connais aucun précédent pour un tel document pour cette situation, mais je suis sûr que vous pourriez trouver un avocat pour vous aider. Si votre entreprise a un service juridique, il pourrait s'agir d'une activité avec laquelle il pourrait y avoir une responsabilité civile. Et bien sûr, si c'est si grave, vous devriez également en discuter avec votre manager.

Je pense que la seule situation où il pourrait être OK de simplement refuser de faire le travail serait si c'est un logiciel pour un système où la faille qui vous inquiète pourrait conduire à la compromission du système de telle sorte qu'elle pourrait résulter dans la mort très probable / blessures graves ou une sorte de perte de propriété catastrophique.

FrustratedWithFormsDesigner
la source
4
Ou la responsabilité personnelle ... c.-à-d., Si cela vous fera virer ou pire
Dan Pichelman
5
Il n'y a aucun document que le client ou l'employeur pourrait signer qui accorderait au PO l'immunité contre les poursuites civiles. Il peut, selon la nature de son emploi, relever de la définition et de la protection d'une relation d'agence avec son entreprise, offrant un bouclier de responsabilité, mais en l'absence d'un tel bouclier, "je ne suivais que des ordres" n'est pas un moyen de défense non n'importe comment bien documenté. Le plaignant / l'accusation peut simplement dire "vous auriez pu simplement arrêter; même si quelqu'un d'autre l'aurait fait, ce serait sur leur tête maintenant, pas sur la vôtre".
KeithS
2
Le mieux que l'entreprise puisse faire est de garantir la couverture de la responsabilité financière du PO, y compris les frais judiciaires et juridiques. L'entreprise ne peut pas aller en prison pour lui s'il s'avère qu'il a enfreint une loi.
KeithS
1
@BazzPsychoNut: On dirait que le PO a déjà essayé de signaler les risques et de les expliquer, et qu'il est ignoré. S'ils ne peuvent pas / ne veulent pas simplement refuser de faire le travail, je pense qu'ils doivent se couvrir le plus possible le cul et devraient également consulter un avocat (qui, je le soupçonne, leur donnerait des conseils plus spécifiques sur la situation et leur dirait également les couvrir leur cul).
FrustratedWithFormsDesigner
1
+1 pour la trace papier, et soyez également prudent si vous êtes impliqué dans le déploiement. Bien qu'il soit peu probable qu'il y arrive, il existe de nombreuses lois (la loi sur la protection des données au Royaume-Uni par exemple) qui font qu'un traitement négligent des données personnelles peut devenir une infraction grave.
Matt