Question:
«Cultes du fret» populaires sur la sécurité
Rory McCune
2013-09-16 20:47:58 UTC
view on stackexchange narkive permalink

Dans le domaine de la sécurité informatique et de l'information, il existe une tendance désagréable à ce que les «meilleures pratiques» spécifiques deviennent des règles d'or inviolables, ce qui conduit les gens à recommander leur application, qu'elles soient appropriées ou non à une situation donnée (similaire à Programmation Cargo Cult)

Un bon exemple de ceci est l'approche commune des politiques de mot de passe qui applique une exigence de taille unique pour tous les 8 caractères combinée à des exigences de complexité élevée, 12 mots de passe précédents stocké dans un historique pour arrêter la réutilisation, 3 tentatives de verrouillage incorrectes et rotation de 30 jours.

La rotation de 30 jours est destinée à réduire la fenêtre d'opportunité pour un attaquant d'utiliser un mot de passe volé, quelle que soit la façon dont il est susceptibles d'amener les utilisateurs à utiliser des mots de passe séquentiels, ce qui signifie que si un attaquant peut déchiffrer une instance, il peut facilement en éliminer d'autres, inversant en fait l'avantage de sécurité prévu.

Les exigences de longueur et de complexité élevées visent à arrêter les attaques forcées. Les attaques par force brute en ligne sont mieux atténuées avec une combinaison de politiques de verrouillage sensibles et de détection d'intrusion, la force brute hors ligne se produit généralement lorsqu'un attaquant a compromis la base de données contenant les mots de passe et est mieux atténuée en utilisant un bon mécanisme de stockage (par exemple, bcyprt, PBKDF2 ) également un effet secondaire involontaire est que cela conduira les utilisateurs à trouver un modèle qui fonctionne et augmente également le risque que les utilisateurs écrivent le mot de passe.

La 3 politique de verrouillage incorrecte est destinée à arrêter les attaques par force brute en ligne, mais la définir trop bas augmente les verrouillages de compte et surcharge les services d'assistance et présente également un risque de déni de service (de nombreux systèmes en ligne ont facilement deviné le nom d'utilisateur des structures comme firstname.lastname, il est donc facile de verrouiller les utilisateurs)

Quels sont les autres exemples de sécurité Cargo-Cult qui sont généralement appliqués de manière inappropriée?

Cela ressemble étrangement à une question de discussion, Rory.
Désolé, Rorry. C'est en effet une question de discussion. La raison de fermeture la plus proche est basée sur l'opinion. Une façon dont je pourrais voir cela est au mieux comme une CW.
@tylerl Adnan oah allez, vis un peu. Brisez certaines règles, faites pipi sous la douche.
@Rook: Ce sont tous des tuyaux! Quelle est la différence?!
@tylerl Oui, mais une question de discussion objectivement (principalement), avec des réponses particulièrement utiles sur les pièges dans lesquels les gens tombent dans la sécurité de l'information.
Huit réponses:
dr jimbob
2013-09-16 22:08:19 UTC
view on stackexchange narkive permalink
  • La source fermée est plus sécurisée que l'open-source car les attaquants peuvent voir le code source et trouver et exploiter des vulnérabilités. Bien que je ne prétende pas que c'est toujours faux, avec logiciel open source, il est au moins possible pour des experts extérieurs d'examiner le logiciel à la recherche de vulnérabilités / portes dérobées béantes, puis de les corriger publiquement. Avec un logiciel source fermé, ce n'est tout simplement pas possible sans un démontage minutieux du binaire. Et bien que vous et la plupart des attaquants n'ayez pas accès au code source, il existe probablement de puissants attaquants (par exemple, le gouvernement américain) qui pourraient être en mesure d'obtenir le code source ou d'y injecter des vulnérabilités secrètes.

  • L'envoi de données sur un réseau est secret si vous cryptez les données . Le chiffrement doit être authentifié pour empêcher un attaquant de modifier vos données. Vous devez vérifier l'identité de l'autre partie à laquelle vous envoyez des informations, sinon un homme du milieu peut intercepter et modifier votre trafic. Même avec l'authentification et l'identification, le cryptage fuit souvent des informations. Vous parlez à un serveur via HTTPS? Les écouteurs du réseau (n'importe qui chez votre FAI) savent exactement combien de trafic vous avez envoyé, à quelle adresse IP et quelle est la taille de chacune des réponses (par exemple, vous pouvez empreinte digitale de diverses pages Web en fonction de la taille de toutes les ressources transférées). De plus, en particulier avec les sites Web AJAX, les informations que vous saisissez conduisent souvent à une réponse du serveur identifiable par ses modèles de trafic. Voir Fuites de canaux secondaires dans les applications Web.

  • Questions de réinitialisation de mot de passe faible - Comment était le courriel de Sarah Palin piraté? Une personne a suivi la procédure de réinitialisation du mot de passe et a pu répondre correctement à chaque question à partir des informations accessibles au public. Quelles questions de réinitialisation de mot de passe une connaissance de Facebook pourrait-elle résoudre?

  • System X est incassable - il utilise un cryptage AES 256 bits et il faudrait probablement un milliard d'ordinateurs ordinaires un million de milliards de milliards de milliards d'années pour se fissurer. Oui, c'est possible ». t être forcé brutalement car cela nécessiterait ~ 2 256 opérations. Mais le mot de passe pourrait être réutilisé ou dans un dictionnaire de mots de passe courants. Ou vous avez bloqué un keylogger sur l'ordinateur. Ou vous avez menacé quelqu'un avec une clé à 5 $ et il vous a donné le mot de passe. Il existe des attaques par canal secondaire. Peut-être que le générateur de nombres aléatoires était défectueux. Les attaques chronométrées existent. Les attaques d'ingénierie sociale existent. Ce sont généralement les liens les plus faibles.

  • Cette faible pratique nous suffit, nous n'avons pas le temps d'attendre pour faire les choses en toute sécurité . Le gouvernement américain n'a pas à se soucier de crypter les flux vidéo de ses drones - qui saura écouter les bonnes fréquences de porteuse; outre les boîtes de cryptage seront lourdes et coûteuses - pourquoi s'embêter?

  • Les ordinateurs quantiques peuvent résoudre rapidement des problèmes de temps exponentiels et casseront toutes les méthodes de chiffrement . Les gens lisent des articles de vulgarisation scientifique sur les ordinateurs quantiques et apprennent qu'ils sont ces entités mystiques super-puissantes qui exploiteront la puissance de calcul d'un nombre presque infini d'univers parallèles pour faire n'importe quoi. Ce n'est qu'en partie vrai. Les ordinateurs quantiques permettront d'effectuer la factorisation et les logarithmes discrets en temps polynomial O (n 3 ) via l'algorithme de Shor rendant RSA, DSA et chiffrement basés sur ces fonctions de trappe facilement cassables. De même, les ordinateurs quantiques peuvent utiliser l'algorithme de Grover pour forcer brutalement un mot de passe qui devrait prendre O (2 N ) temps en seulement O (2 N / 2 ) temps; réduire de moitié efficacement la sécurité d'une clé symétrique - L'algorithme de Grover est connu pour être asymptotiquement optimal pour les ordinateurs quantiques, alors ne vous attendez pas à une amélioration supplémentaire.

J'ajouterais un corollaire à votre premier, et c'est "Open source est plus sûr que source fermée parce qu'il y a beaucoup de gens qui examinent le code pour les problèmes."
@Xander - Je ne suis pas sûr de vouloir aller aussi loin (même si dans la pratique, je suis d'accord, et si je choisissais entre une source ouverte et fermée pour quelque chose de haute sécurité, je préférerais la version ouverte comme je peux examinez-le pour les trous majeurs). Il existe quelques exemples de failles de sécurité majeures existant dans le code open source depuis des années. La vraie faiblesse de l'open source est que les attaquants pourraient délibérément introduire du code subtilement défectueux qui échappe aux responsables. Le mieux serait probablement d'avoir une source fermée en interne développée par des équipes d'experts / auditeurs en sécurité (vous pouvez voir, mais personne d'autre ne le peut).
"Mon ordinateur est invulnérable car il n'est pas / n'a jamais été / ne sera jamais connecté à Internet."
@drjimbob Ou logiciel avec open source mais entièrement développé en interne sans utiliser un fouillis de contributeurs (c.f. Red Hat Enterprise Linux).
@Xander Exemple concret: [ProFTP] (http://www.zdnet.com/blog/security/open-source-proftpd-hacked-backdoor-planted-in-source-code/7787)
J'ajouterais un autre corollaire: * populaire * l'open source est plus sécurisé que fermé, je pourrais créer ma propre suite de cryptage et l'open source, mais cela risque de ne pas être sécurisé car personne ne s'en soucierait suffisamment pour essayer de l'améliorer
"réduire de moitié efficacement la sécurité d'une clé symétrique". Pas assez. C'est une diminution exponentielle. Une clé 64 bits est bien plus que «deux fois moins sécurisée» qu'une clé 128 bits. Une clé de 2048 bits est également beaucoup moins sécurisée qu'une clé de 4096 bits, mais c'est toujours presque impossible à forcer.
@Anorov - Désolé, je suppose que vous avez été confus par mon mauvais choix de mot: "réduit de moitié la taille de clé d'une clé symétrique". L'algorithme de Grover permet à l'ordinateur quantique de réduire le forçage brutal d'AES-128 à une opération de 2 ^ 64 fois; donc au lieu de N = O (2 ^ 128) pour la force brute, il faut sqrt (N) = O (2 ^ 64) temps (accélération quadratique). Deuxièmement, notez la partie clé * symétrique * (RSA est asymétrique). La clé RSA / DSA 2048 bits par rapport aux ordinateurs quantiques n'est que 8 fois plus puissante que la clé 4096 bits en raison de l'algorithme Shor. L'algorithme de Grover n'a pas de sens pour RSA - vous forcez brutalement par factorisation - n'essayez pas toutes les clés.
@Anorov - Contre les ordinateurs conventionnels factorisation contre un tamis de champ de nombre général L (1/3); Les clés RSA 4096/2048/1024 bits sont équivalentes aux clés symétriques 156/117/87 bits, donc oui, RSA-4096 devrait être ~ 2 ^ 39 fois plus difficile que RSA-2048. Accordé contre un tamis L (1/4) contre l'affacturage qui, selon certains, pourrait être bientôt découvert publiquement sur la base de [travaux de journalisation discrets récents] (http://eprint.iacr.org/2013/095); RSA 4096/2048/1024 bits réduit à des clés symétriques 96/75/59 bits.
@ratchetfreak Vous voulez dire quelque chose comme cet obscur truc d'OpenSSL, n'est-ce pas?
Certains des logiciels open source les plus populaires se sont avérés au cours des deux dernières années avoir des problèmes de sécurité flagrants malgré leur ouverture et la possibilité ** que de nombreuses personnes l'examinent.Certains d'entre eux ont même eu de graves problèmes que nous constatons depuis une décennie ou plus.Bien qu'il soit possible de le corriger assez immédiatement une fois le problème détecté.** TOUS ** les logiciels open source et fermés ont des problèmes et ce fait ne disparaîtra jamais.
Tom Leek
2013-09-16 22:07:35 UTC
view on stackexchange narkive permalink

Quelques exemples:

  • Des touches plus grandes. RSA 4096 bits, AES 256 bits ... plus de bits sont toujours meilleurs. (Voir les commentaires: il ne sert à rien d'avoir des clés plus grandes que la taille qui garantit le statut "ne peut pas le casser du tout"; mais des clés plus grandes impliquent une surcharge du réseau et du processeur, parfois en grande quantité.)

  • Application automatique de "fonctions sûres" comme snprintf () au lieu de sprintf () (cela ne fera pas grand-chose à moins que le programmeur ne teste la possibilité de tronquer, et cela n'empêchera pas d'utiliser une chaîne fournie par l'utilisateur comme chaîne de format). Des points supplémentaires pour strncpy () qui ne fait pas ce que la plupart des gens semblent supposer (en particulier, cela ne garantit pas un '\ 0' final).

  • "Pureté du gestionnaire de sécurité". En application de la séparation des tâches et des rôles, toutes les décisions «liées à la sécurité» devraient être prises par un spécialiste de la sécurité, distinct des concepteurs et développeurs du projet. Souvent poussé à l'extrême malavisé, où le gars qui décide quels ports réseau doivent être laissés ouverts sur un pare-feu n'a aucune connaissance du projet, et refuse délibérément d'apprendre quoi que ce soit à ce sujet, car une décision indépendante est plus importante qu'une décision éclairée .

Pourriez-vous expliquer pourquoi une clé plus grande n'est peut-être pas meilleure qu'une clé plus petite?
Des clés plus grandes impliquent une bande passante et une utilisation du processeur plus élevées et peuvent également impliquer des problèmes d'interopérabilité; au-delà des tailles où la clé, en elle-même, est "incassable avec la technologie basée sur la Terre", la longueur supplémentaire est juste un poids mort. RSA-2048 et AES-128 sont déjà à ce stade.
Je vois. Si j'étais vous, j'ajouterais cela à votre réponse.
Je suis d'accord avec votre sentiment que plus de bits n'est pas toujours mieux - [parfois c'est plus faible - car AES-256 à rond réduit est plus faible contre certaines attaques que AES-128] (http://eprint.iacr.org/2009 /374.pdf). Mais lorsque les millisecondes supplémentaires de temps CPU ne sont pas un problème (par exemple, le cryptage de quelques fichiers), plus de bits ne font pas nécessairement mal et peuvent protéger contre les progrès de la méthode d'attaque. RSA-2048 est comparable à une puissance de 112 bits en supposant un tamis de champ de nombres généraux L (1/3) = e ^ O (N ^ 1/3), bien que [les récentes découvertes mathématiques réduisent cela à L (1/4) = e ^ O (N ^ 1/4) pour le journal discret] (http://eprint.iacr.org/2013/095).
Certains s'attendent à ce que cela soit étendu à l'affacturage, ce qui ne laisserait RSA-2048 qu'une force équivalente d'environ 75 bits (en faisant l'hypothèse sommaire des mêmes constantes que l'analyse de 112 bits dans notre analyse big-O) tandis que RSA-4096 serait d'environ 96 -bit fort. RSA-768 a été cassé une fois avec un effort distribué et avait 76 bits de sécurité en utilisant l'ancien tamis L (1/3). De même, on pourrait choisir AES-256, si vous craignez que vos adversaires construisent un ordinateur quantique à un moment donné et soient capables de casser AES-128 en 2 ^ 64 avec l'algorithme de Grover. Encore une fois, d'accord * toujours * utiliser plus gros est faux, mais parfois cela a du sens.
@drjimbob c'est le point de cultiver la cargaison, en ignorant les raisons ou le contexte qui rendent une déclaration donnée valide ...
Et c'est pourquoi `strlcpy` doit être préféré à` strncpy` lors de la copie de chaînes entières.
rook
2013-09-16 22:24:20 UTC
view on stackexchange narkive permalink

Je vais ajouter mes propres exemples appsec que j'ai vus lors de la consultation:

  • "Je vais vous envoyer un zip chiffré et inclure le mot de passe dans le même e-mail ..." m'est arrivé plus d'une fois. Une porte verrouillée ne restera pas verrouillée si vous laissez la clé dans la porte.
  • "Mais vous n’avez pas pu obtenir l’injection SQL et SMTP , nous avons appelé sanitize () sur tout! ". Il n'y a aucun moyen de sécuriser les variables pour chaque utilisation, vous devez utiliser la routine d'assainissement pour le travail.
  • "Nous ne pouvons pas être piratés car nous utilisons uniquement la plate-forme / langue / OS XXX". Chaque plate-forme a des problèmes de sécurité, période↑.
  • "Nous avons une évaluation de sécurité annuelle, vous ne pourrez rien trouver." Fréquence! = Qualité . Avoir des évaluations fréquentes est une bonne chose, mais cela ne garantit rien!
  • "Nous avons un WAF, ce qui signifie que nous n'avons pas besoin de patchanything." Ouais, alors cela se produit ... J'avais un client qui ne corrigeait pas les vulnérabilités CSRF connues, car ils supposaient que le WAF serait capable d'arrêter ces attaques. (Aucun WAF ne peut le faire. J'ai trouvé un jour un WAF qui prétendait pouvoir "empêcher tout le top 10 de owasp", et l'interface de gestion HTTP du WAF était vulnérable au CSRF.)
Ne serait-il pas possible pour un WAF d'injecter et de vérifier automatiquement les jetons CSRF?
@SLaks Je n'ai rien vu de tel.
Je me demande pourquoi...
En ce qui concerne votre premier point, la plupart des entreprises avec lesquelles j'ai eu affaire doivent le faire pour contourner les filtres de leur système de messagerie. Les scanners (GMail inclus) ne vous permettront pas d'envoyer des fichiers zip contenant des fichiers exe, vous devez donc crypter le fichier zip pour l'envoyer (bien que personnellement je renomme simplement le fichier zip en zop, puis GMail le laisse tranquille! )
* WAF * = Web Application Firewall, pour ceux (comme moi) qui ne connaissent pas l'acronyme.
AviD
2013-09-17 02:33:56 UTC
view on stackexchange narkive permalink
  • Les mots de passe doivent être salés et hachés avant d'être stockés dans la base de données. SHA-1 est un bon ajustement, SHA-512 est parfait.

J'entends encore celui-là de la part de nombreux professionnels de la sécurité, de la formation à la sécurité et des guides de sécurité actuels.

512> 1. Plus c'est gros, mieux c'est?
Corrigez-moi si je me trompe, mais avec les vulnérabilités de collision dans SHA-1, aucun des algorithmes SHA-2 (SHA-256, SHA-512, etc.) ne serait-il meilleur?
@Hyppy C'est le point, ce sont des "cultes de la cargaison" - c'est-à-dire pas correct. Quant à votre point - SHA-2 n'est pas non plus acceptable pour la protection par mot de passe - voir http://security.stackexchange.com/a/31846/33
Shurmajee
2013-09-18 10:12:49 UTC
view on stackexchange narkive permalink

Utiliser SSL uniquement pour la page de connexion plutôt que pour toutes les zones authentifiées d'un site Web.

Ou pire encore, la page de connexion utilise http, mais intègre une iframe https ou publie des messages sur une cible https. Trivial à utiliser SSL Strip pratiquement indétectable. (Stackexchange OpenID, je vous regarde).
Oh mec, celui-ci me dérange vraiment!J'ai également vu des sites Web qui sont HTTPS, mais l'iframe de connexion est HTTP.Comme wtf, quel développeur a proposé ce travail brillant ??
Graham Hill
2013-09-17 14:42:19 UTC
view on stackexchange narkive permalink

Juste un, mais c'est un gros problème: "La sécurité de l'information est un problème technologique, qui peut être résolu avec la technologie."

Numeron
2016-04-28 06:00:57 UTC
view on stackexchange narkive permalink

Afin d'empêcher les gens de découvrir si certains utilisateurs existent dans le système - en masquant si le mot de passe était incorrect ou le nom d'utilisateur était invalide lors d'une tentative de connexion infructueuse, ... tout en offrant en même temps un formulaire de réinitialisation de mot de passe qui perd cette information.

void_in
2013-09-16 22:45:46 UTC
view on stackexchange narkive permalink

"Notre site Web ne peut pas être piraté car nous utilisons SSL". Monsieur, cela le rend plus facile à exploiter s'il est vulnérable, car même votre IDS / IPS est rendu inutile par le flux SSL.

Votre système de détection / prévention des intrusions pourrait avoir des copies de vos clés privées et être capable de décrypter le trafic TLS entrant / sortant.
@drjimbob La plupart du temps, ce n'est pas le cas. Et même avec la clé privée, SSL n'est pas quelque chose qui va protéger le site Web contre tout type d'exploitation au niveau de l'application.
Eh bien, TLS peut empêcher, par exemple, les écoutes du réseau d'écouter les mots de passe, les cookies de session, ainsi que l'URL / les données auxquelles on accède. De nombreux sites qui prétendent être "piratés" ont simplement quelqu'un utilisant un compte administrateur avec un mot de passe capturé et en altérant le contenu. D'accord, TLS n'est de toute façon pas un fourre-tout - il empêche uniquement les écoutes / falsifications du réseau (et vous devriez vraiment utiliser TLSv1.2 - bien que ce soit bien pour les serveurs d'accepter TLSv1.1 à partir d'anciens navigateurs; vous ne devriez vraiment pas utilisez n'importe quel SSL ou TLSv1.0). D'accord, cela n'empêche pas l'injection SQL, CSRF, XSS, le débordement de tampon, etc.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...