Yaakov's Group | Ciberseguridad

Fortalecimiento de su servidor GitHub Enterprise

Comparte este post en tus redes sociales

GitHub almacena su código fuente, versiones y una gran cantidad de información invaluable en emisiones y solicitudes de extracción. Si bien GitHub Enterprise Server (GHES), nuestra solución de alojamiento propio, proporciona una gran seguridad de forma predeterminada, los administradores pueden tomar medidas adicionales para fortalecer aún más su dispositivo. Esta publicación lo guiará a través de las configuraciones más importantes.

Configure una contraseña segura de Management Console

Management Console es la herramienta de administración GHES más poderosa. Entre otras cosas, le permite otorgar a las personas acceso de shell administrativo. Establezca una contraseña segura para acceder a ella y cámbiela  con regularidad (por ejemplo, con cada actualización de versión de GHES).

Revisar permisos de administrador

Los administradores del sitio tienen derechos de acceso significativos (por ejemplo, suplantar a los usuarios o acceder a todos los repositorios privados), por lo tanto, considere mantener pequeña la cantidad de personas en esa lista. Una buena regla general es tener dos administradores del sitio por zona horaria que puedan ayudar a los usuarios normales en un día laboral promedio.

Recuerde que los administradores del sitio pueden crear tokens de acceso personal con el alcance del administrador del sitio, para la automatización. Asegúrese de que estos tokens solo se usen en sistemas que estén completamente asegurados y auditados.

Los administradores con acceso de shell administrativo tienen derechos completos sobre el dispositivo; por ejemplo, pueden promocionarse como administradores del sitio. Cada administrador debe usar su propia clave SSH protegida con frase de contraseña para que sus actividades sean auditables. También recomendamos usar la última sección en una clave SSH pública para describir el propietario o la función de esa clave cuando la agregue a la Consola de administración. Aquí hay un ejemplo:

ssh-ed25519 AAA...key...ZZZ Mona Lisa, Employee ID 123
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
                              SSH key comment section

Intente mantener el número de personas con acceso de shell administrativo lo más pequeño posible.

Tenga en cuenta que es probable que haya dos claves que no desee eliminar de la lista de acceso del shell administrativo. Primero, la clave que utiliza la réplica de GHES para conectarse al primario en una configuración de alta disponibilidad. Generalmente se llama admin-ssh-key. En segundo lugar, la clave que permite que el servidor de respaldo GHES se conecte al primario.

Al igual que los tokens de Persona Access, las claves SSH sin frase de contraseña, que se utilizan para tareas automatizadas como el servidor de respaldo, solo deben usarse y almacenarse en sistemas seguros.

Los administradores con plataforma de virtualización, hipervisor o acceso físico a la máquina también podrían acceder a los datos de GitHub. Nuevamente, trate de mantener pequeño el número de personas en esa lista.

 

Actualice GitHub Enterprise Server regularmente

Le recomendamos encarecidamente que siga la frecuencia de actualización quincenal de GitHub y que se mantenga en la última versión de parche en caliente compatible. Esto garantiza que su dispositivo contenga todas las últimas correcciones de seguridad. Debería poder aplicar estas actualizaciones de parches en caliente (por ejemplo, de 2.20.4 a 2.20.5) durante las horas de trabajo sin interrupción del usuario, ya que no requieren tiempo de inactividad.

También recomendamos realizar actualizaciones de la versión completa (por ejemplo, de 2.20.5 a 2.21.3) al menos dos veces al año. Al hacer esto, siempre estará ejecutando una versión compatible de GHES, y también tendrá todas nuestras funciones más recientes.

Habilite la autenticación de dos factores para todos los usuarios

Considere requerir autenticación de dos factores (2FA) si su método de autenticación lo admite. Si está utilizando cuentas integradas o cuentas LDAP, puede usar las instalaciones 2FA de GitHub. La mayoría de los proveedores de SAML también admiten 2FA y recomendamos encarecidamente aprovechar esa característica para una postura de seguridad mejorada.

Habilitar la seguridad de la capa de transporte (TLS)

Habilitar “solo TLS” en la Consola de administración de su dispositivo asegura que todo el tráfico web desde y hacia el dispositivo esté encriptado. Recomendamos permitir solo los protocolos TLS modernos y más seguros 1.2 y 1.3.

Habilitar aislamiento de subdominio

Habilitar el aislamiento del subdominio aislará adecuadamente los diferentes componentes de GitHub entre sí. Esto es importante ya que sus usuarios de GitHub Enterprise pueden cargar cualquier código HTML en sus sitios de páginas de GitHub en sus dispositivos. Si el aislamiento del subdominio no está habilitado, este código podría ser un vector de ataque que permita el acceso a otros componentes de GitHub a través de secuencias de comandos entre sitios.

Active el modo privado y desactive las páginas públicas.
Al activar el modo privado en la Consola de administración, puede asegurarse de que solo los usuarios con credenciales de inicio de sesión válidas puedan ver cualquier contenido en su dispositivo.

Además, deshabilitar las páginas públicas garantiza que no se pueda acceder a la información de las páginas de GitHub sin credenciales válidas.

Deshabilitar el acceso de lectura Git anónimo

La desactivación de todo el acceso de lectura Git anónimo garantiza que siempre se necesiten credenciales válidas para acceder a su código fuente.

Revise la configuración y los permisos del servidor de respaldo
Ejecute copias de seguridad periódicas con las utilidades de copia de seguridad de GitHub en una máquina de copia de seguridad dedicada. Asegúrese de que la máquina de respaldo ejecute una distribución de Linux actualizada con las últimas correcciones de seguridad y limite el número de usuarios con acceso a ese sistema. Todos los datos de GitHub (código fuente, versiones, comentarios de problemas, …) se almacenan sin cifrar de forma predeterminada en el host de copia de seguridad.

Use un servidor proxy saliente

Sus usuarios de GHES pueden configurar webhooks que pueden filtrar información potencialmente confidencial (por ejemplo, emitir comentarios) a servidores web externos si su dispositivo tiene acceso a Internet. La configuración de un proxy saliente le permite controlar qué servidores web externos se pueden usar. Póngase en contacto con los servicios profesionales de GitHub para obtener información sobre cómo configurar dicho servidor proxy.

Restrinja los puertos de red de acceso público

Los usuarios habituales de GHES solo deberían poder acceder al dispositivo a través de los puertos HTTPS / 443 y SSH / 22. Una forma popular de lograrlo es usar un equilibrador de carga frente al dispositivo GHES que solo reenvía estos puertos. Además, los administradores pueden usar un host de bastión para conectarse directamente a los puertos administrativos del dispositivo GHES.

Un diseño de red de alta disponibilidad con máquina de respaldo y servidor proxy saliente podría verse así:

Hardened GitHub Enterprise Server architecture diagram

 

Fuente: Git Hub

 

 

Deja un comentario