2009-07-07 5 views
0

En utilisant t-sql, comment puis-je savoir si toutes les connexions SQL ont des mots de passe forts sur les serveurs SQL 2000 et 2005?tsql- mots de passe forts

Toute aide, très appréciée.

Cordialement Manjot

+1

Les mots de passe sont hachés pour une très bonne raison ... c'est l'un d'entre eux. – Eric

Répondre

1

Vous ne pouvez pas! Ce serait un problème de sécurité si vous pouviez identifier les mots de passe faibles. Vous pouvez forcer tous les utilisateurs à modifier leurs mots de passe et à appliquer une stratégie de mot de passe.

Le pirate:

// pseudocode: 
foreach (var username in 
    exec(@"SELECT username FROM hypothetical.fn_get_users_with_weak_passwords()")) 
    PerformDictionaryAttack(username); 

Pas si bon ... est-ce pas?

+0

J'ai des droits d'administrateur système. Et à des fins de vérification, j'ai besoin de trouver si un mot de passe est faible. N'y a-t-il rien à vérifier? – Manjot

+0

Manjot: non. Ce n'est pas grave si vous êtes sysadmin ou non. Les administrateurs * peuvent changer les mots de passe * mais ils ne peuvent pas voir les mots de passe courants. –

+0

Eh bien, pour être plus précis, ** officiellement ** il n'y a aucun moyen de le faire. –

1

Je ne peux pas imaginer un auditeur qui sait ses trucs vous demander de vérifier la force des mots de passe dans une base de données, comme indiqué ci-dessus, vous ne pouvez pas demander des mots de passe sur un serveur Db quels que soient vos droits sont. Il est plus probable qu'ils vous demanderont quel est votre processus pour les mots de passe et la force du mot de passe. Les connexions doivent être liées à un compte de domaine et le contrôleur de domaine doit avoir un profil en place qui force les mots de passe forts, au moins dans le monde Windows.

Pour les non utilisateurs, c'est-à-dire les applications Web, les rapports, etc., un compte fonctionnel doit être créé au niveau du domaine pour l'application, ou mieux encore, pour le groupe utilisant la base de données. À des fins d'audit, c'est essentiellement ce que nous faisons, d'un point de vue administratif, il est beaucoup plus facile de laisser les contrôleurs de domaine Windows faire leur travail et gérer le côté connexion des choses.

0

Oui, c'est possible, en quelque sorte. SQL 2005 peut être lié à la stratégie de mot de passe de stratégie de groupe. Cela signifie que vous pouvez avoir des mots de passe de connexion SQL ayant la même longueur, l'expiration, etc. que vos connexions NT. Bien sûr, si vous n'avez pas de politique là-bas, pourquoi sont-ils préoccupés par les connexions SQL?

Pour les deux versions, vous pouvez utiliser NGS Squirrel pour forcer la force des hachages de mot de passe. Si vous déchiffrez les mots de passe rapidement (jour? Semaine? Mois?), Ils ne sont pas assez bons. Si vous voulez une solution T-SQL pure, vous pouvez émuler Squirrel en utilisant la fonction pwdencrypt et une boucle pour exécuter toutes les permutations.

Sinon: non. Vous pouvez seulement vérifier un mot de passe en le criblant ...

En fait, nous utilisons des comptes de service/système de domaine partout: nous n'avons aucune connexion SQL du tout.

+0

Politique de vérification serait très bien Merci pour votre commentaire. – Manjot

0

Je pense que votre meilleur pari est d'essayer une approche de force brute en utilisant un gooddictionary, SQL Ping 3 semble que ce serait faire le travail.

Questions connexes