El resultat d’un escàner anomena una adreça, un port i alguna cosa que s’hi va negociar. No anomena el procés que hi ha darrere d’aquest socket, i en un amfitrió VPN diversos processos poden compartir la màquina mentre només un d’ells és el túnel. Llegir una cadena de versió d’una utilitat lateral o trobar un fitxer de biblioteca al disc afegeix proves sobre l’amfitrió, no sobre l’oient. La troballa només esdevé accionable quan s’adjunta a un component en execució i després es compara amb l’abast que un avís realment indica.

L’ordre importa: primer el component, segon l’avís, tercer la remediació.

L’informe anomena un port, no un programa

Comença pel punt final que realment s’ha avaluat. Una sonda contra el port d’administració HTTPS va mesurar el servei web, la seva pila TLS i el proxy que hi hagi al davant; no va aprendre res de l’oient OpenVPN o WireGuard en un altre port. Els proxys inversos i els agents de gestió ho empitjoren, perquè el certificat i el bàner poden pertànyer al frontal mentre la biblioteca vulnerable és darrere, en un procés de fons.

Registra la destinació, el transport, el port i el nom del servei amb el resultat, perquè l’abast viatgi amb la troballa.

Què és realment la compilació en execució

En un amfitrió de propòsit general, el paquet instal·lat i la biblioteca carregada són qüestions separades. Una base de dades de paquets pot llistar una versió pedaçada mentre un dimoni de llarga durada encara té l’antic objecte compartit mapat a la memòria, i una imatge d’aparell integrada pot portar les seves pròpies biblioteques que cap gestor de paquets informa. Pregunta al gestor de serveis què s’executa i després inspecciona el procés i les seves enllaços.

systemctl status openvpn-server@server --no-pager
ps -o pid,lstart,args -C openvpn
ss -lntup | grep -E '1194|443'
dpkg -l | grep -i -E 'openvpn|libssl'
ldd "$(command -v openvpn)" | grep -i ssl

L’hora d’inici a la llista de processos és el detall que la gent omet. Un dimoni iniciat abans de l’última actualització de paquets encara executa la compilació que va carregar a l’arrencada, i aquest és exactament el cas en què un inventari diu arreglat i el socket diu el contrari.

Encaixar la compilació amb l’abast d’un avís

Els avisos descriuen productes, versions i de vegades condicions necessàries, i aquests tres camps no sempre s’alineen amb la versió d’un paquet. L’avís de Heartbleed d’abril de 2014 d’OpenVPN és un exemple històric útil perquè separa les versions afectades d’Access Server dels serveis web i els dimonis VPN, que tenien una exposició diferent. La lliçó és llegir quin component cobreix el text en lloc de fer coincidir per patró la paraula OpenSSL.

Aquest avís també és antic. Els seus números de versió corregits ja no són consell d’instal·lació, i una fallada corregida el 2014 no diu res sobre problemes posteriors a la branca que executa avui.

Resoldre el desacord i després tancar l’exposició

Quan l’inventari i l’avaluació no coincideixen, comprova si tots dos descriuen el mateix punt final i el mateix entorn: una altra adreça, un proxy frontal, un segon servei, un procés antic encara lligat al port o una biblioteca integrada que el gestor de paquets no va veure mai. Resol-ho a la frontera abans de reescriure un informe.

Aplica la correcció admesa, reinicia el servei afectat i confirma que la compilació nova és la que ara s’executa. Un fitxer pedaçat al disc amb el procés antic encara servint trànsit no és remediació.

Després ocupa’t del que el component podia haver contingut durant la finestra d’exposició. Pedaçar i substituir credencials responen preguntes diferents, i un certificat desat a prop de l’amfitrió afectat no és per si mateix una llista del que es va filtrar. Segueix el procediment del propietari de l’incident per a la revocació, la retirada de sessions i les actualitzacions de clients, i registra quin component va quedar afectat, per què aplicaven les proves i què ho va tancar. Aquest registre és el que llegirà una revisió posterior.

Articles relacionats