Blog sobre seguridad informática, privacidad, anonimato, hacking ético, programación y sistemas operativos en general.

Mostrando las entradas con la etiqueta linux-hardening. Mostrar todas las entradas
Mostrando las entradas con la etiqueta linux-hardening. Mostrar todas las entradas

martes, 30 de enero de 2018

SecHackLabs: Linux Hardening - Asegurando el sistema de arranque o BootLoader.


Un atacante que tiene acceso físico a tu sistema puede bypassear fácilmente una gran cantidad de la seguridad de su sistema, especialmente controles de usuario y contraseña, además puede reiniciar este, cambiar la configuración de arranque del sistema, la manera cómo cargan los procesos y su orden de arranque. Usted necesita asegurar el arranque de su sistema y tener conocimiento total sobre que está pasando durante el proceso de arranque para poder endurecer/proteger su sistema contra este tipo de ataques.

Si un atacante puede reiniciar tu sistema, puede crear dos grandes problemas. El primero es que los sistemas GNU/Linux ofrecen una gran cantidad de acceso a todo aquel que puede cómo ellos inician el sistema. El segundo, es que pudiendo apagar tu sistema es un excelente ataque DoS/DDoS. Entonces, tener control sobre quien está habilitado para reiniciar tu sistema, cómo puede interactuar cada usuario con el bootloader o cargador de arranque y cual kernel pueden ellos iniciar es una decisión en la que debes ser altamente estricto.

Además, cuales servicios inician y su orden de arranque pueden exponer tu sistema a futuros riesgos, además, muchos de los servicios que se inician en un sistema que se instaló tal y cómo venía por defecto o en sistema no endurecido (unhardened) son innecesarios. Muchos de los servicios exponen tu sistema a riesgos, debido a sus particulares funcionalidades, a lo largo de este post dejaré unas buenas reglas para asegurar y organizar el proceso de arranque de tu sistema.

· Protegiendo tu GRUB con contraseña.

GNU GRUB (GNU GRand Unified Bootloader) es un gestor de arranque múltiple, desarrollado por el proyecto GNU que nos permite elegir qué Sistema Operativo arrancar de los instalados.

Se usa principalmente en sistemas operativos GNU/Linux. El sistema operativo Solaris ha usado GRUB como gestor de arranque en sistemas x86 desde la revisión 10 1/06. Para más información, ver aquí.

Al ser este el paquete que nos da la opción de arrancar nuestro sistema y además, nos permite elegir con cual kernel arrancarlo, es ALTAMENTE recomendado la asignación de una contraseña que debamos introducir al momento de intentar arrancar uno de los kernel instalados. En una entrada anterior que publicamos, explicamos lo fácil que es cambiar la contraseña del usuario ROOT y cualquier otro usuario en un sistema GNU/Linux que no tiene protección del GRUB. Ver publicación.

En este post explicamos la manera cómo podiamos obtener acceso a un sistema GNU/Linux cómo root, sin necesidad de usar contraseñas, cracks, ni nada por el estilo, solamente usando las funcionalidades propias del sistema. Para los hackers, programadores, especialistas en seguridad informática y usuarios preocupados por su privacidad y seguridad, esto puede significar un riesgo inminente, pero como dijimos, es un error de configuración de nuestro GRUB y podemos corregirlo para que nadie pueda cambiar nuestra contraseña root de esta manera (Este cambio también puede realizarse con discos externos en un entorno chroot en discos que no estén cifrados). Para configurar de manera correcta nuestro GRUB, debemos realizar lo siguiente:

1) Creamos una contraseña que pueda ser reconocida por el GRUB, usando el comando #grub-mkpasswd-pbkdf2, escribimos la contraseña que deseemos y la confirmamos, si todo sale bien saldrá algo similar a lo que se muestra en la imagen:


2) Abrimos el archivo /etc/grub.d/40_custom con nuestro editor de texto favorito y añadimos las siguientes líneas en el final:

set superusers='user'
password_pbkdf2 'user' 'password'

Importante: El '$user' puede ser cualquiera, a tu gusto pero debes colocar el mismo user en los dos campos requeridos. En el campo password colocamos la contraseña generada en el paso anterior, esta comprende todo lo que aparece desde grub.pbkdf2.sha512.10000.* hasta el final. Las comillas no son necesarias.

3) Una vez que tengamos todo esto hecho, generamos un archivo de configuración de nuestro GRUB con los nuevos parámetros, utilizamos el comando grub-mkconfig -o /boot/grub/grub.cfg y esperamos a que finalize el proceso.

Una vez realizados estos pasos, cada vez que queramos iniciar nuestro sistema o modificar algún parametro en el GRUB al inicio, debemos proporcionar las credenciales asignadas anteriormente, solucionando de este modo el problema anteriormente mencionado. Si alguien desea ingresar sin las credenciales, sencillamente verá un error así:


Esperamos que este post haya sido de su utilidad, cualquier duda o sugerencia pueden dejarla en los comentarios.


domingo, 14 de enero de 2018

SecHackLabs: Contenido de Linux hardening.


Anteriormente habiamos iniciado con una serie de publicaciones sobre Linux Hardening, las cuales por motivos de tiempo habian quedado pausadas. Ahora hemos decidido continuarlas y para hacer que todo sea más fácil para nuestros lectores, en este post se estará actualizando cada una de las entregas que hagamos en Linux Hardening, al igual que lo estamos haciendo con la serie "Hacking con Nmap."

Propósitos de Linux Hardening.

1. Los propósitos de esta serie de publicaciones se basan en algunos principios subyacentes que son cruciales para mantener su seguridad.

• Sea minimalista y minimice el riesgo.
• Defensa en profundidad.
• Vigilancia.

Una comprensión de estos principios, en combinación con los ejemplos y un poco de sentido común, puede ayudarlo a mitigar el riesgo de un ataque a sus equipos. 

Sea minimalista y minimice el riesgo.

El primer principio, el del minimalismo, también se puede expresar con el acrónimo KISS o Keep It Simple Stupid (Mantén esto simple estúpido). La forma más segura de reducir los riesgos para sus hosts es no introducir riesgos en primer lugar. Por ejemplo, muchas distribuciones instalan servicios, herramientas, aplicaciones y funciones que podría representar un riesgo para su equipo. En algunos casos estas activan e inician servicios automaticamente. También crean usuarios para estos servicios y aplicaciones que a menudo no son necesarios o podrían ser utilizados por un atacante para comprometer su equipo. El primer paso para minimizar el riesgo para sus equipos es eliminar este excesivo e innecesario material. El segundo paso es asegurarte de que estés controlando lo que está instalado e instalará en sus equipos. No instale más de lo que necesita, no ejecute servicios o funciones que no necesita, y no tenga usuarios que no necesita.

Esto es algo que tienes que hacer desde cero con la instalación de un nuevo host hardened o si desea hacer hardening a un host existente. Obviamente, minimizando la funcionalidad de un sistema existente es más difícil. Debe asegurarse de estar completamente al tanto de que todas las funciones que se necesiten funcionen y asegúrarse de no desactivar o eliminar algo que se requiere en ese equipo para proporcionar la funcionalidad requerida. Endurecer un equipo de producción requiere pruebas exhaustivas y recomiendamos que continúe solo si tiene la capacidad de anular cualquier cambio y revertir a su configuración original en caso de que un cambio de seguridad tenga un efecto adverso. 

Defensa en profundidad.

El segundo principio de buena seguridad es la defensa en profundidad. En su forma más básica, la defensa en profundidad significa tomar un enfoque en capas para defender a sus equipos. El concepto de defensa en profundidad propone el uso de capas de tecnología, políticas y procesos para proteger sus sistemas. Esto significa que, siempre que sea posible en su entorno, no confíe en una sola capa para la defensa de tus equipos.

Podemos tomar de ejemplo su conectividad a Internet. Solo instalando un firewall entre su red interna e Internet no es suficiente. Además de un firewall entre su red e Internet, debe proteger sus hosts internos individuales, instalar un sistema IDS de algún tipo, realizar pruebas de penetración regulares y escaneo de vulnerabilidad de su equipo. Debe aplicar este principio a todos los componentes de seguridad de su equipo.

Vigilancia.

Una de las mayores amenazas para su seguridad es simplemente no hacer nada. No importa cuán seguros estén sus equipos en este momento, ellos, a diferentes velocidades, se volverán menos seguros con el paso del tiempo. Esto es una consecuencia de la entropía simple, como cambios en sus aplicaciones, entorno y requisitos que alteran la configuración y el potencial de sus sistemas. También es una consecuencia de la naturaleza cambiante de las amenazas en su contra. Lo que te has protegido ahora puede no ser lo que necesita para protegerse en el futuro. Esto es más obviamente manifestado como nuevas vulnerabilidades y exploits de esas vulnerabilidades que se descubren en los sistemas operativos, aplicaciones y herramientas que tiene en ejecución.

Debe asegurarse de incluir administración de seguridad y monitoreo como parte de sus actividades regulares de administración de sistemas. Verifique sus registros, audite a sus usuarios y grupos, y supervisa tus archivos y objetos en busca de actividad sospechosa. Conozca las rutinas y la configuración de sus hosts; cuanto más comprenda sobre los ritmos normales de sus equipos, más fácil será detectar anomalías que podrían indicar que estás bajo ataque o que has sido vulnerado.

También debe asegurarse de estar al día con vulnerabilidades, amenazas y exploits. A lo largo de estas publicaciones hablaremos sobre algunas de las fuentes de información que puede utilizar para hacer esto. Deberías suscribirte o revisar la información relacionada con la seguridad que distribuyen sus proveedores, así como aquellos disponible de fuentes de terceros como SANS o CIS.

Finalmente, realice pruebas de vigilancia. Y prueba de nuevo. Realice evaluaciones regulares de seguridad de su equipo y entorno. Buscar vulnerabilidades utilizando herramientas como Nessus, metasploit, nmap o herramientas comerciales. Considere el uso de terceras partes para realizar la prueba de penetración de su entorno y equipos. La garantía de seguridad continua es vital para asegurarse de que se mantente protegido y endurecido contra ataques.


Síguenos en Facebook, Twitter, unete a nuestra charla en Riot, únete a IRC o únete a Telegram.

* Contenido de Linux Hardening.

lunes, 27 de noviembre de 2017

KeePassXC: Un potente, seguro y moderno gestor de contraseñas multiplataforma.


https://keepassxc.org/logo.pngKeePassXC es un gestor de contraseñas multiplataforma con una interfaz gráfica de usuario y está escrito en C++.

La base de datos completa siempre se cifra con el algoritmo de cifrado AES (alias Rijndael) estándar de la industria utilizando una clave de 256 bits. KeePassXC es un port de Keepass Password Safe que se creó con el objetivo de ampliar y mejorar con nuevas características y correcciones de errores para proporcionar un administrador de contraseñas de código abierto moderno, totalmente multiplataforma y rico en funciones.


  •     Multiplataforma.

KeePassXC es una bifurcación de la comunidad de KeePassX, el puerto multiplataforma de KeePass para Windows. Cada característica funciona multiplataforma y se probó exhaustivamente en múltiples sistemas para proporcionar a los usuarios la misma apariencia en todos los sistemas operativos compatibles.


  •     Código abierto.

El código fuente completo se publica bajo los términos de la Licencia Pública General de GNU. Consideramos que el código abierto es un prerrequisito vital para cualquier producto de software de seguridad crítica. Por esa razón, KeePassXC es y siempre será gratis. ¡Las contribuciones de todos son bienvenidas!

  •     Características adicionales comparado con KeepassX.

* Auto-Type en las tres plataformas principales (Linux, Windows, macOS)

* Cifrado Twofish

* Soporte YubiKey pregunta-respuesta

* Generación TOTP

* Importación de archivos CSV

* Interfaz de línea de comando (keepassxc-cli)

* Hardening con DEP y ASLR

* Generador de contraseñas autónomo

* Medidor de calidad de contraseña

* Usar favicons de sitios web cómo iconos de entrada

* Fusión de bases de datos

* Recarga automática cuando la base de datos se modificó externamente

* Soporte para integrar la aplicación de escritorio con KeePassHTTP mediante la extensión KeePassHTTP-Connector (más adelante se explicará su uso y funcionamiento) disponible para Mozilla Firefox y Google Chrome.

* Muchas correcciones de errores


Para obtener una lista completa de las nuevas características y cambios, eche un vistazo al registro de cambios completo de KeePassXC.

  •     Requisitos

KeePassXC tiene los siguientes requisitos de tiempo de ejecución:


* Qt5 (5.2 o más reciente): qtbase y qttools5

* libgcrypt (1.6 o más reciente)

* zlib

* libxi, libxtst, qtx11extras (opcional para Auto-Type en X11/Linux)

* libyubikey, libykpers-1 (opcional para el soporte de YubiKey)


Al usar la versión de AppImage o Snap Package, estas dependencias ya se incluyen con la aplicación.


Para construir KeePassXC a partir del código fuente, también se requieren las siguientes dependencias de compilación:


* make

* cmake (3.1 o más nuevo)

* c++ (4.7 o posterior) o clang ++ (3.0 o posterior)

* encabezados para todas las dependencias de tiempo de ejecución (paquetes * -dev o * -devel)


El código fuente puede ser descargado desde aquí: https://keepassxc.org/download#source

  •     Instalación en sistemas específicos.

 1. Linux.


    ArchLinux:  pacman -S keepassxc

    Debian: apt install keepassxc

    Fedora: dnf install keepassxc

    Otras distribuciones: https://keepassxc.org/download#linux

2. Windows.

Descargando el ejecutable desde aquí: https://keepassxc.org/download#windows


3. Macintosh.

Descargando la AppImage desde aquí: https://keepassxc.org/download#mac 
Inicialización y configuración de KeePassXC.

Una vez instalado KeePassXC en nuestra computadora, lo siguiente es ejecutarla, lo podemos hacer desde la terminal (en sistemas Unix/Linux) o bien desde el menú de nuestra PC. Una vez abierto nos mostrará algo cómo esto:




En nuestro caso daremos en "Create new database". Si tenemos una base de datos anterior creada con KeePassX por ejemplo, damos en "Open existing database". En la primera opción se nos abrirá el gestor de archivo que tengamos y nos permitirá elegir la ubicación y el nombre de la base de datos que vamos a crear.




Una vez guardada nos solicitará una clave maestra, esta clave es de suma importancia ya que todos los datos que almacenemos en la base de datos pueden ser accedidos usando dicha contraseña. Si eres paranoico y deseas extra-seguridad, puedes crear un archivo de clave el cual se solicitará cada vez que abras KeePassXC. Tenga en cuenta que si pierde el archivo la base de datos quedará inutilizable ya que esta no se podrá desbloquear con solo la clave maestra.




Bien, ahora que ya hemos creado nuestra base de datos tendremos una pantalla cómo esta:




En la parte izquierda podemos Añadir/Modificar Grupos (Por ejemplo podemos crear dos grupos, uno para los accesos de la empresa y otro para accesos personales) y en la parte derecha es donde añadiremos los datos de acceso de la siguiente manera:




Ahora damos en "Apply", "Ok" y quedará guardada la entrada. Podemos añadir tiempo de expiración a la entrada creada habilitando la opción "Expires" en la imagen anterior.

Se creará la entrada y quedará así:



Dando click derecho sobre la entrada tendremos opciones tales cómo "Copiar/Modificar usuario", "Copiar/Modificar contraseña", "Abrir URL", "Clonar entrada", entre otras más.

Una vez cerrado KeePassXC la base de datos se bloqueará y nos solicitará la clave maestra la próxima vez que intentemos abrirla, además si configuramos el archivo de clave también lo solicitará.




KeePassXC posee además un generador de contraseñas en la sección "Tools", aunque en este post explicamos cómo crear contraseñas ultra-seguras, así mismo una gran variedad de configuraciones en la sección "Tools -> Settings", entre las cuales se destaca el apartado "Security" con opciones interesantes cómo el bloqueo automatico de contraseñas, el limpiado automático de las contraseñas/usuarios copiados.





 Recomendaciones.


* La base de nuestra seguridad son las contraseñas, elige siempre contraseñas confiables. Para realizar este proceso puedes basarte en este post.

* Nunca dejes en lugares de fácil acceso frases de contraseña o archivos de clave, si es posible mentaliza la clave maestra y guarda el archivo en un medio extraíble encriptado.

Esperamos que esta publicación haya sido de utilidad, cualquier inquietud o sugerencia dejarla en los comentarios en bien, en los medios que indicamos a continuación.
Síguenos en Facebook, Twitter, unete a nuestra charla en Riot (Para charlar con nosotros online), únete a IRC o únete a Telegram.

También puedes dejar su donación a nuestra cuenta Paypal.

jueves, 26 de octubre de 2017

#Linux-Hardening (1): Contraseñas.


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: pwgen [ OPTIONS ] [ pw_length ] [ num_pw ]



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

  -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).




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

Esperamos que esta publicación haya sido de utilidad, cualquier inquietud o sugerencia dejarla en los comentarios en bien, en los medios que indicamos a continuación.
 
Síguenos en Facebook, Twitter, unete a nuestra charla en Riot (Para charlar con nosotros online) o únete a Telegram.

También puedes dejar su donación a nuestra cuenta Paypal.
  

lunes, 23 de octubre de 2017

#Linux-Hardening: Concepto.


Si quieres sentirte seguro, asegura tu sistema. 

Uno de los primeros pasos si queremos adentrarnos en el mundo de la Seguridad Informática más allá de la simple ejecución de scripts y de buscar la manera de vulnerar sistemas (escaneando en busca de fallos o cualquier otro método), es sin duda, asegurar a un nivel apropiado el sistema operativo que vamos a utilizar para realizar nuestras pruebas y trabajos que esto implica. 

Está claro que la mayoría de especialistas en Seguridad Informática toman a GNU/Linux cómo su primera alternativa al momento de introducirse en el mundo del hacking, pentesting y todo lo relacionado, debido a la seguridad que ofrecen los sistemas GNU/Linux por naturaleza pero pese a ello no debemos entrar en la zona de confort y confiarnos en que con solamente usar GNU/Linux estamos seguros, la mayoría de seguridad en un sistema depende de la persona que lo utiliza y de las políticas que utiliza para hacerlo seguro.

Tal y cómo lo propusimos en nuestra sala de chat empezaremos con una serie de post identificados con el título #Linux-Hardening y la etiqueta linux-hardening, todo esto con la finalidad de que todo aquel que siga estos post, una vez finalizada la serie tendrá una seguridad garantizada en su sistema operativo y no solo a nivel de software, sino que también tendrá una mentalidad más centrada y responsable sobre importancia de un sistema seguro y de los riesgos permanentes que hay en la red, a los cuales nos exponemos cada vez que establecemos una conexion.

A lo largo de esta serie de post vamos a tratar diferentes temas, desde el hardening básico hasta el hardening al Kernel GNU/Linux, inclusive el hardening a componentes del hardware.

Conceptos a tener en cuenta.


1. Es posible reforzar la seguridad tanto como para inutilizar su sistema. El truco es asegurarlo sin exagerar.

2. Hay muchas otras cosas que se pueden hacer para aumentar la seguridad, pero la mayor amenaza es, y siempre será, el usuario. Cuando piensas en seguridad, tienes que pensar en capas. Cuando una capa se rompe, otra debe detener el ataque. Pero nunca puede hacer que el sistema sea 100% seguro a menos que desenchufe la máquina de todas las redes, la trabe en una caja fuerte y nunca la use.

3. Sé un poco paranoico, eso ayuda. Y sé sospechoso. Si algo suena demasiado bueno para ser verdad, ¡probablemente no lo sea!

4. El principio de privilegio mínimo: cada parte de un sistema solo debería poder acceder a lo que se requiere para usarlo, y nada más.

5. El sistema que utilizaremos para las pruebas será ArchLinux, pero es muy probable que todas las mejoras de seguridad que se realizaran funcionen en la mayoría de distribuciones GNU/Linux, cuando haya una específica para alguna distribución la marcaremos con el hashtag #SoloPara$(distro), ejemplo: #SoloParaArchLinux.

6. Las fuentes de información serán: https://wiki.archlinux.org/ y experiencias propias.

7. Las publicaciones que se hagan las añadiremos en la sección "Publicaciones" de este post y se actualizará con cada entrega, si deseas estar al tanto guarda este post en los favoritos.

Publicaciones.

Con esto finalizamos este post, el cual tenía cómo finalidad informar el concepto general del hardening y la importancia de este.

Cualquier inquietud o sugerencia dejarla en los comentarios, o bien, en los medios que indicamos a continuación.
Síguenos en Facebook, Twitter, unete a nuestra charla en Riot , únete a Telegram o al IRC en Freenode.