Comment puis-je empêcher les programmeurs de capturer les données entrées par les utilisateurs?

10

Je développe une application web avec un fort accent sur la sécurité. Quelles mesures peuvent être prises pour empêcher ceux qui travaillent sur l'application (programmeurs, administrateurs de base de données, personnel d'assurance qualité) de capturer des valeurs saisies par l'utilisateur qui devraient être bien protégées, telles que les mots de passe, les numéros de sécurité sociale, etc.?

Peter Smith
la source
3
Je vous suggère de publier la question dans: security.stackexchange.com/?as=1
NoChance
"Prévenir" est un mot très fort. Vous ne pouvez pas empêcher de mauvais acteurs de faire de mauvaises choses. Ce que vous pouvez faire, c'est apprendre et appliquer des principes de sécurité fondamentaux comme le «moindre privilège», la «séparation des tâches» et le «refus implicite», architecturer les choses de manière sécurisée et embaucher des personnes en qui vous pouvez avoir confiance. Avoir des plans réalisables en place pour atténuer les dommages lorsque l'inévitable se produit finalement.
Robert Harvey
Les termes techniques des technologies dont vous avez besoin: hachage et chiffrement.
Robert Harvey

Réponses:

22

C'est assez simple. Les banques le font tout le temps.

Vous avez trois groupes de personnes impliqués. Ce sont des groupes de sécurité. Avec des autorisations distinctes.

Les développeurs ne peuvent pas attribuer d'autorisations de sécurité et ne peuvent pas voir les données de production.

Les opérateurs ne peuvent pas attribuer d'autorisations de sécurité et ne peuvent pas créer de logiciel.

Les responsables de la sécurité qui définissent les autorisations et ne peuvent ni créer de logiciel ni faire fonctionner le logiciel.

Les développeurs créent des logiciels. Les opérateurs l'installent et l'exploitent. Les agents de sécurité assurent que les deux groupes sont séparés.

S.Lott
la source
8
OK, mais un développeur peut toujours ajouter quelque chose dans le système qui envoie des données de production par e-mail à son compte privé; ou écrit les données de production sur un serveur où il les récupérera. Je pense que la seule façon de contourner cela est d'avoir un régime d'examen des codes rigoureux.
Dawood ibn Kareem
3
Il y a toujours ce niveau de confiance qui est accordé aux employés. Quelqu'un doit avoir les clés du palais, et si vous ne pouvez pas croire qu'ils comprennent le pouvoir qui leur est donné, alors nous ne devrions peut-être pas donner ces clés à cette personne en premier lieu.
Chris
1
Oui, mais avoir des clés qui nécessitent plus d'une personne (comme le régime de révision du code) signifie que vous avez besoin de deux pour vous "égarer" avant d'être compromis et cela est moins probable qu'un "seul" employé s'égare et abuse de la clé donnée à leur. Tout est une question d'équilibre entre la confiance et les conséquences de l'abus de cette confiance. Et n'oubliez pas que les gens et les circonstances changent. Une personne digne de confiance lorsque les clés sont remises peut se produire des choses dans la vie par lesquelles elle devient moins digne de confiance ...
Marjan Venema
1
@EmmadKareem: correct. Le responsable de la sécurité définit et réinitialise les groupes et les mots de passe, mais ne peut pas voir les données. Seuls les opérateurs peuvent voir des données réelles. Pensez aux données comme de l'argent réel géré par des scrutateurs réels. Les programmeurs ne touchent pas à l'argent; seuls scrutateurs. De même, les agents de sécurité ne touchent pas à l'argent; seuls les scrutateurs touchent l'argent.
S.Lott
1
@EmmadKareem: les DBA ne sont pas des développeurs. Il existe deux groupes: la sécurité et les données. Les DBA de données sont une partie spéciale des "opérations". Ils ne devraient pas être autorisés à modifier la sécurité; ils ne peuvent pas écrire de code; ils verront cependant les données et doivent être traités comme des opérateurs et non comme des développeurs.
S.Lott
2

Les programmeurs n'ont pas accès aux serveurs de production. Mais quelqu'un doit y avoir accès. Il n'y a aucun moyen de contourner cela. Et il y a toujours une chance que quelqu'un devienne fou et abuse de son accès.

Les données hachées / salées sont théoriquement sécurisées même auprès des personnes qui ont un accès complet pour les consulter. Mais la plupart des données ne conviennent pas au hachage.

Lord Tydus
la source