Introducción
Este informe identifica instancias de la API de Kubernetes accesibles que responden con un 200 OK HTTP a nuestras sondas. Si bien esto no significa que estas instancias estén completamente abiertas o sean vulnerables a un ataque, es probable que este nivel de acceso no fuera intencionado y que estas instancias sean una superficie de ataque innecesariamente expuesta. También permiten la fuga de información sobre versiones y compilaciones.
Proceso de escaneo
Se escanea con una solicitud HTTP utilizando el URI /versión. Explorando todo el espacio de IPv4 en los puertos 6443 y 443. Se incluyen solo los servidores de Kubernetes que responden con un 200 OK (con la respuesta JSON adjunta) y, por lo tanto, se divulga la información de la versión en su respuesta. Para obtener un mapeo de todos los servicios de la API de Kubernetes en su red o circunscripción (incluidos los que no permiten el acceso), consulte el Informe de identificación de dispositivos .
Mitigación
Si recibe una notificación de una instancia a la que se puede acceder, considere implementar la autorización de acceso o bloqueo en el nivel del firewall para reducir su superficie de ataque expuesta.
Puede leer más sobre cómo asegurar el acceso a la API de Kubernetes en esta guía oficial .
Para obtener más información sobre los esfuerzos de escaneo, consulte la página de resumen de escaneo de Internet.
Nombre de archivo: scan_kubernetes
CAMPOS
timestamp | Hora en que se sondeó la IP en UTC+0 |
ip | La dirección IP del dispositivo en cuestión. |
protocol | Protocolo en el que se produjo la respuesta HTTP (siempre TCP) |
port | Puerto que se está consultando (puerto 6443 y puerto 443) |
hostname | Nombre DNS inverso del dispositivo en cuestión |
tag | Etiqueta configurada como «kubernetes» |
version | Información de la versión si la hay |
asn | ASN de donde reside el dispositivo en cuestión |
geo | País donde reside el dispositivo en cuestión |
region | Estado/Provincia/Región administrativa donde reside el dispositivo en cuestión |
city | Ciudad en la que reside el dispositivo en cuestión |
naics | Código del sistema de clasificación de la industria de América del Norte |
sic | Código del sistema de clasificación industrial estándar |
http | versión http |
http_code | Código de respuesta HTTP: en este caso siempre 200 |
http_reason | El motivo del texto para ir con el código HTTP; en este caso, siempre «OK» |
content_type | El tipo MIME del cuerpo de la solicitud. |
server | Tipo de servidor HTTP |
date | La fecha y hora en que se envió el mensaje. |
major | Versión principal de Kubernetes |
minor | Versión secundaria de Kubernetes |
git_version | Versión Git de Kubernetes |
git_commit | Etiqueta cuando se construye desde la fuente |
git_tree_state | Estado del árbol Git |
build_date | Fecha de compilación de Kubernetes |
go_version | Ir a la versión |
compiler | Compilador |
platform | Plataforma sobre la que se construyó |
handshake | Versión TLS negociada |
cipher_suite | El CipherSuite más alto que se pudo negociar |
cert_length | Longitud de la clave del certificado (1024 bits, 2048 bits, etc.) |
subject_common_name | El nombre común (CN) del certificado SSL |
issuer_common_name | El nombre común de la entidad que firmó el certificado SSL |
cert_issue_date | Fecha en que el certificado SSL entró en vigencia |
cert_expiration_date | Fecha en que caduca el certificado SSL |
sha1_fingerprint | Huella digital SHA1 del certificado |
cert_serial_number | Número de serie del certificado |
ssl_version | Versión SSL/TLS |
signature_algorithm | Algoritmo de firma utilizado |
key_algorithm | Algoritmo clave utilizado |
subject_organization_name | El nombre de la organización del sujeto (ON) del certificado |
subject_organization_unit_name | El nombre de la unidad organizativa del sujeto del certificado. |
subject_country | El país del sujeto del certificado. |
subject_state_or_province_name | El nombre del estado o provincia del sujeto del certificado. |
subject_locality_name | El nombre de la localidad del sujeto del certificado. |
subject_street_address | La dirección postal del sujeto del certificado. |
subject_postal_code | El código postal del sujeto del certificado. |
subject_surname | El apellido del sujeto del certificado. |
subject_given_name | El nombre de pila del sujeto del certificado. |
subject_email_address | La dirección de correo electrónico del sujeto del certificado. |
subject_business_category | La categoría empresarial del sujeto del certificado. |
subject_serial_number | Número de serie del sujeto del certificado |
issuer_organization_name | Nombre de la organización emisora |
issuer_organization_unit_name | Nombre de la unidad organizativa emisora |
issuer_country | País del emisor |
issuer_state_or_province_name | Estado o provincia del emisor |
issuer_locality_name | Localidad del emisor |
issuer_street_address | Dirección postal del emisor |
issuer_postal_code | Código postal del emisor |
issuer_surname | Apellido del emisor |
issuer_given_name | Nombre del emisor |
issuer_email_address | Dirección de correo electrónico del emisor |
issuer_business_category | Categoría de negocio del emisor |
issuer_serial_number | Número de serie del emisor |
sha256_fingerprint | Huella digital SHA256 del certificado |
sha512_fingerprint | Huella digital SHA512 del certificado |
md5_fingerprint | MD5 huella dactilar del certificado |
cert_valid | ¿Es válido el certificado (S/N)? |
self_signed | ¿El certificado está autofirmado (S/N)? |
cert_expired | Si el certificado ha caducado (S/N) |
validation_level | Nivel de validación del certificado, por ejemplo, DV, OV, EV |
browser_trusted | ¿Certificado de confianza del navegador (S/N)? |
browser_error | Errores de certificado del navegador encontrados al escanear |
raw_cert | Copia del certificado sin procesar |
raw_cert_chain | Copia de la cadena de certificados sin procesar |
EJEMPLO
"timestamp","ip","protocol","port","hostname","tag","version","asn","geo","region","city","naics","sic","sector","http","http_code","http_reason","content_type","server","date","major","minor","git_version","git_commit","git_tree_state","build_date","go_version","compiler","platform","handshake","cipher_suite","cert_length","subject_common_name","issuer_common_name","cert_issue_date","cert_expiration_date","sha1_fingerprint","cert_serial_number","ssl_version","signature_algorithm","key_algorithm","subject_organization_name","subject_organization_unit_name","subject_country","subject_state_or_province_name","subject_locality_name","subject_street_address","subject_postal_code","subject_surname","subject_given_name","subject_email_address","subject_business_category","subject_serial_number","issuer_organization_name","issuer_organization_unit_name","issuer_country","issuer_state_or_province_name","issuer_locality_name","issuer_street_address","issuer_postal_code","issuer_surname","issuer_given_name","issuer_email_address","issuer_business_category","issuer_serial_number","sha256_fingerprint","sha512_fingerprint","md5_fingerprint","cert_valid","self_signed","cert_expired","validation_level","browser_trusted","browser_error","raw_cert","raw_cert_chain"
"2010-02-10 00:00:00",192.168.0.1,tcp,6443,node01.example.com,kubernetes,,64512,ZZ,Region,City,0,0,,HTTP/1.1,200,OK,application/json,,"Tue, 10 May 2022 14:24:13 GMT",1,20,v1.20.13,2444b3347a2c45eb965b182fb836e1f51dc61b70,clean,2021-11-17T13:00:29Z,go1.15.15,gc,linux/amd64,TLSv1.2,TLS_AES_256_GCM_SHA384,2048,example.com,example.com,"2012-11-14 11:18:27","2021-11-12 11:18:27",03:39:9E:5D:77:19:38:C4:49:DE:C3:3D:9B:E6:13:ED:5A:F1:42:55,B3F13DFBDBA2D8B2,2,sha256WithRSAEncryption,rsaEncryption,,,US,,,,,,,,,,,,,,,,,,,,,,E1:D1:6E:87:49:B9:AC:74:B4:AC:9B:77:85:27:69:97:0D:16:B1:F6:63:F0:26:51:AA:89:42:39:66:BD:47:D0,1C:E9:04:22:90:46:68:0B:8B:54:33:38:C6:20:5F:EE:A6:73:A6:B5:2C:7D:12:94:DE:F1:CC:11:2E:72:0B:97:C2:7D:19:BF:E0:6B:98:A9:21:D9:9D:5A:CB:38:0B:D8:7E:E2:8E:2B:EA:15:EC:60:11:1E:41:E3:FB:4C:20:9F,F1:8A:02:48:3C:6B:F4:00:CC:5C:D5:B0:71:E4:FA:00,N,N,Y,unknown,N,"x509: failed to load system roots and no roots provided",,
"2010-02-10 00:00:01",192.168.0.2,tcp,6443,node02.example.com,kubernetes,,64512,ZZ,Region,City,0,0,"Retail Trade",HTTP/1.1,200,OK,application/json,,"Tue, 10 May 2022 14:24:12 GMT",1,23,v1.23.3+e419edf,6f5a5295923a614a4202a7ad274b38b69f9ca8c0,clean,2022-02-25T06:26:46Z,go1.17.5,gc,linux/amd64,TLSv1.2,TLS_AES_256_GCM_SHA384,2048,example.com,example.com,"2012-11-14 11:18:27","2021-11-12 11:18:27",03:39:9E:5D:77:19:38:C4:49:DE:C3:3D:9B:E6:13:ED:5A:F1:42:55,B3F13DFBDBA2D8B2,2,sha256WithRSAEncryption,rsaEncryption,,,US,,,,,,,,,,,,,,,,,,,,,,E1:D1:6E:87:49:B9:AC:74:B4:AC:9B:77:85:27:69:97:0D:16:B1:F6:63:F0:26:51:AA:89:42:39:66:BD:47:D0,1C:E9:04:22:90:46:68:0B:8B:54:33:38:C6:20:5F:EE:A6:73:A6:B5:2C:7D:12:94:DE:F1:CC:11:2E:72:0B:97:C2:7D:19:BF:E0:6B:98:A9:21:D9:9D:5A:CB:38:0B:D8:7E:E2:8E:2B:EA:15:EC:60:11:1E:41:E3:FB:4C:20:9F,F1:8A:02:48:3C:6B:F4:00:CC:5C:D5:B0:71:E4:FA:00,N,N,Y,unknown,N,"x509: failed to load system roots and no roots provided",,
"2010-02-10 00:00:02",192.168.0.3,tcp,6443,node03.example.com,kubernetes,,64512,ZZ,Region,City,0,0,,HTTP/1.1,200,OK,application/json,,"Tue, 10 May 2022 14:24:12 GMT",1,16+,v1.16.9-aliyun.1,4f7ea78,,2020-05-08T07:29:59Z,go1.13.9,gc,linux/amd64,TLSv1.2,TLS_AES_256_GCM_SHA384,2048,example.com,example.com,"2012-11-14 11:18:27","2021-11-12 11:18:27",03:39:9E:5D:77:19:38:C4:49:DE:C3:3D:9B:E6:13:ED:5A:F1:42:55,B3F13DFBDBA2D8B2,2,sha256WithRSAEncryption,rsaEncryption,,,US,,,,,,,,,,,,,,,,,,,,,,E1:D1:6E:87:49:B9:AC:74:B4:AC:9B:77:85:27:69:97:0D:16:B1:F6:63:F0:26:51:AA:89:42:39:66:BD:47:D0,1C:E9:04:22:90:46:68:0B:8B:54:33:38:C6:20:5F:EE:A6:73:A6:B5:2C:7D:12:94:DE:F1:CC:11:2E:72:0B:97:C2:7D:19:BF:E0:6B:98:A9:21:D9:9D:5A:CB:38:0B:D8:7E:E2:8E:2B:EA:15:EC:60:11:1E:41:E3:FB:4C:20:9F,F1:8A:02:48:3C:6B:F4:00:CC:5C:D5:B0:71:E4:FA:00,N,N,Y,unknown,N,"x509: failed to load system roots and no roots provided",,
Fuente: https://www.shadowserver.org/what-we-do/network-reporting/accessible-kubernetes-api-server-report/