#Linux-Hardening (1): Contraseñas

Enviado por D1nam0 el Sáb, 21/04/2018 - 01:51

Las contraseñas son la clave para un sistema Linux seguro. Aseguran sus cuentas de usuario, sistemas de archivos encriptados, aplicaciones y claves SSH/GPG . Son la principal forma en que una computadora elige confiar en la persona que la usa, por lo que una gran parte de la seguridad consiste simplemente en elegir contraseñas seguras y protegerlas. Una contraseña puede cambiar dráticamente la seguridad de cualquier sistema, asegúrate de elegir la correcta.

Elegir contraseñas seguras.

Cuando la seguridad se basa en una frase de contraseña, debe ser lo suficientemente compleja como para no ser fácilmente adivinada, por ejemplo, que no contenga nada de información personal, o que no pueda ser descifrada usando, por ejemplo, ataques de fuerza bruta. Los principios de las contraseñas fuertes se basan en la longitud y la aleatoriedad . En la criptografía, la calidad de una frase de contraseña se conoce como: seguridad entrópica.

Entre las contraseñas inseguras están aquellas que contienen:


1. Información de identificación personal (por ejemplo, el nombre de su perro, fecha de nacimiento, código de área, videojuego favorito).

2. Sustituciones de caracteres simples en palabras (Ej., s3cur1ty)

3. Palabras o cadenas comunes seguidas o precedidas por números agregados, símbolos o caracteres (p. Ej., linux25102017%)

4. Frases comunes o frases cortas de palabras relacionadas gramaticalmente (por ejemplo, kernel linux), e incluso con la sustitución de caracteres.

La elección correcta para una contraseña es algo largo (8-20 caracteres, dependiendo de la importancia) y completamente aleatorio. Una buena técnica para construir contraseñas seguras y aleatorias es basarlas en los caracteres de cada palabra de una oración. Tome por ejemplo "Somos Security Hack Labs" podría traducirse a 5oS3Ha(|4bS.

Este enfoque podría hacer que sea más fácil recordar una contraseña.


5o = Somos, S3 = Security, Ha( = Hack, |4bS = Labs.


Un mejor enfoque es generar contraseñas pseudoaleatorias con herramientas como pwgen o apg: para memorizarlas, una técnica (para las que se escriben a menudo) es generar una contraseña larga y memorizar una cantidad mínimamente segura de caracteres, anotando temporalmente el total generado cuerda. Con el tiempo, aumente la cantidad de caracteres escritos, hasta que la contraseña esté memorizada totalmente. Esta técnica es más difícil, pero puede proporcionar la confianza de que una contraseña no aparecerá en listas de palabras o ataques de fuerza bruta "inteligente" que combinen palabras y caracteres sustitutos o que pueden ser encontrados en diccionarios para fuerza bruta.
Podemos utilizar las dos herramientas mencionadas anteriormente de la siguiente manera:
* Pwgen.
 

[root@SecHackLabs shl]# pwgen --help Usage:

Options supported by pwgen:
  -c or --capitalize
    Include at least one capital letter in the password
  -A or --no-capitalize
    Don't include capital letters in the password
  -n or --numerals
    Include at least one number in the password
  -0 or --no-numerals
    Don't include numbers in the password
  -y or --symbols
    Include at least one special symbol in the password
  -r <chars> or --remove-chars=<chars>
    Remove characters from the set of characters to generate passwords
  -s or --secure
    Generate completely random passwords
  -B or --ambiguous
    Don't include ambiguous characters in the password
  -h or --help
    Print a help message
  -H or --sha1=path/to/file[#seed]
    Use sha1 hash of given file as a (not so) random generator
  -C
    Print the generated passwords in columns
  -1
    Don't print the generated passwords in columns
  -v or --no-vowels
    Do not use any vowels so as to avoid accidental nasty words


Esas son las opciones generales de la herramienta, una buena manera de usarla para obtener una contraseña segura sería la siguiente:
 

[root@SecHackLabs shl]# pwgen -cnyv 20 100

-c : Incluye al menos una mayúscula en la contraseña.
-n : Incluye al menos un número en la contraseña.
-y : Incluye carácteres especiales en la contraseña.
-v : No usa vocales.
20 : El número de carácteres en la contraseña.
100 : El número de contraseñas generadas.



Nos arrojará contraseñas cómo estas:


* Apg.
 

[root@SecHackLabs shl]# apg -h apg Automated Password Generator Copyright (c) Adel I. Mirzazhanov apg  [-a algorithm] [-r file] [-M mode] [-E char_string] [-n num_of_pass] [-m min_pass_len] [-x max_pass_len] [-c cl_seed] [-d] [-s] [-h] [-y] [-q] -M mode new style password modes -E char_string exclude characters from password generation process -r file apply dictionary check against file -b filter_file apply bloom filter check against filter_file (filter_file should be created with apgbfm(1) utility) -p substr_len paranoid modifier for bloom filter check -a algorithm choose algorithm 1 - random password generation according to password modes 0 - pronounceable password generation -n num_of_pass generate num_of_pass passwords -m min_pass_len minimum password length -x max_pass_len maximum password length -s ask user for a random seed for password generation -c cl_seed use cl_seed as a random seed for password -d do NOT use any delimiters between generated passwords -l spell generated password -t print pronunciation for generated pronounceable password -y print crypted passwords -q quiet mode (do not print warnings) -h print this help screen -v print version information


Una buena manera de usar apg es así:
 

[root@SecHackLabs shl]# apg -a 1 -m 20 -n 20

-a 1 : Genera contraseñas random de acuerdo a los modos de contraseñas.
-m 20 : El mínimo de la contraseña son 20 carácteres.
-n 20 : El número de contraseñas generadas (20).


El resultado será:



También es muy eficaz combinar estas dos técnicas guardando contraseñas aleatorias largas y complejas con un administrador de contraseñas (Keepassxc es la mejor alternativa y al cual más adelante le dedicaremos un apartado en el blog para explicar sus funcionalidades), que a su vez se accederá con una contraseña que deberá usarse solo con ese fin, evitando sobre todo transmitirla alguna vez en cualquier tipo de red. Este método, por supuesto, limita el uso de las contraseñas almacenadas a los terminales donde la base de datos está disponible para lectura (que, por otro lado, podría verse como una característica de seguridad adicional).
*Keepassxc


 

Mantenimiento de contraseñas


Una vez que elija una contraseña segura, asegúrese de mantenerla segura. Tenga cuidado con la manipulación y evite reutilizar contraseñas para que los servidores inseguros no puedan filtrar más información de la necesaria. Los administradores de contraseñas pueden ayudar a administrar grandes cantidades de contraseñas complejas: si está copiando y pegando las contraseñas almacenadas del administrador a las aplicaciones que las necesitan, asegúrese de borrar el buffer de copia o portapapeles cada vez y asegúrese de que no se guarden en ningún tipo de log (por ejemplo, no los pegue en la terminal de comandos, que los almacenaría en archivos como .bash_history).

Como regla, no elijas contraseñas inseguras solo porque las más seguras son más difíciles de recordar. Las contraseñas son un acto de equilibrio. Es mejor tener una base de datos encriptada de contraseñas seguras, protegidas por una clave y una contraseña maestra sólida, que tener muchas contraseñas débiles similares.

Otro aspecto de la fortaleza de la frase de contraseña es que no debe ser fácilmente recuperable desde otros lugares. Si utiliza la misma frase de contraseña para su inicio de sesión y para el cifrado del disco, asegúrese de que /etc/shadow también termine en una partición cifrada o utilice un algoritmo de hash fuerte (es decir, sha-512/bcrypt, no md5) para el hash de contraseña almacenado. Conozca más acerca de los hashes SHA aquí.

Forzando el uso de contraseñas seguras usando pam_cracklib.

pam_cracklib ofrece protección contra ataques de fuerza bruta y ayuda a configurar una política de seguridad aplicable a todo el sistema.

Nota: La cuenta root no se ve afectada por la implementación de políticas con pam_cracklib.

A continuación explicaremos cómo llevar a cabo la implementación de esta política para la creación de contraseñas:

1. Solicitar 2 veces la contraseña en caso de error.
2. 10 caracteres de longitud mínima (opción minlen).
3. Al menos 6 caracteres deben ser diferentes de la contraseña anterior al ingresar una nueva (opción difok).
4. Al menos 1 dígito (opción dcredit).
5. Al menos 1 mayúscula (opción ucredit).
6. Al menos 1 carácter especial (opción ocredit).
7. Al menos 1 minúscula (opción icredit).

Editamos el archivo /etc/pam.d/passwd de la siguiente manera:
 


#%PAM-1.0 password required pam_unix.so sha512 shadow nullok password required pam_cracklib.so retry=2 minlen=10 difok=6 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1


Ahora vemos un ejemplo de los mensajes que nos arroja cada vez que incumplimos uno de los parámetros anteriores y finalmente nos bloquea los intentos:
 

[shl@SecHackLabs ~]$ passwd Changing password for shl. Current password: New password: Retype new password: BAD PASSWORD: is too similar to the old one New password: BAD PASSWORD: it is too simplistic/systematic passwd: Have exhausted maximum number of retries for service passwd: password unchanged

 By: Edu4rdSHL

Etiquetas

Acerca del autor

Sociólogo de profesión y un fiel militante en tecnologías de la privacidad, también editor en la wiki de "Archlinux", el blog "El Binario" y para el portal "Security Hack Labs", me puedes contactar en Telegram como @D1nam0 o bien por mail d1nam0@cryptolab.net

Comentarios

I wanted to write you a very small word to help say thanks a lot the moment again with your great methods you've featured in this case. It's certainly surprisingly generous with you to offer publicly precisely what most people could have offered for sale as an e-book to end up making some bucks on their own, certainly since you could have done it in the event you decided. Those inspiring ideas additionally acted as a good way to fully grasp some people have a similar keenness like my personal own to understand a lot more in terms of this matter. I'm sure there are lots of more enjoyable occasions ahead for many who read through your blog.
nike shox

Subido por longchamp handbags (no verificado) el Mié, 13/05/2020 - 17:56

Enlace permanente

I must express some appreciation to the writer for rescuing me from this type of trouble. Right after searching throughout the the web and seeing methods that were not helpful, I was thinking my life was gone. Existing without the presence of solutions to the issues you have resolved by means of your entire short post is a crucial case, and ones which might have in a wrong way affected my career if I hadn't come across your site. Your natural talent and kindness in playing with the whole lot was very useful. I'm not sure what I would've done if I hadn't encountered such a solution like this. It's possible to at this moment look ahead to my future. Thanks so much for the reliable and effective guide. I won't be reluctant to endorse your web page to any individual who desires assistance on this subject matter.
longchamp handbags

Subido por jordan shoes (no verificado) el Dom, 17/05/2020 - 04:48

Enlace permanente

I must express my respect for your generosity giving support to those who really need help with the concept. Your personal commitment to getting the solution around had been pretty insightful and have in most cases encouraged ladies just like me to reach their targets. Your entire informative tips and hints indicates a lot to me and far more to my office workers. Best wishes; from each one of us.
jordan shoes

I truly wanted to jot down a brief note to be able to appreciate you for some of the magnificent advice you are writing at this site. My incredibly long internet search has at the end of the day been paid with good facts to exchange with my classmates and friends. I 'd assert that most of us website visitors actually are extremely blessed to live in a wonderful site with so many brilliant individuals with beneficial principles. I feel pretty grateful to have used your web pages and look forward to some more amazing times reading here. Thank you once more for a lot of things.
jordans

Añadir nuevo comentario