Al octubre de 2026, vuit autoritats de certificat intermèdies (CAs) d'eMudhra van ser trobades amb claus privades que qualsevol pot deduir. Utilitza aquesta guia per trobar les botigues de confiança als teus dispositius que encara confien en les arrels compromeses, i per netejar-les.
Funcionalitat
Visió general
Els navegadors i sistemes operatius van bloquejar els vuit intermedis en pocs dies. Qualsevol cosa que tingui la seva pròpia còpia de les arrels de confiança no va rebre aquest bloqueig: les eines de línia de comandes, els entorns d'execució i els agents continuen confiants en certificats falsificats fins que el seu fitxer arrel canvia.
Factorial IT elimina les dues arrels compromeses del paquet CA de l'agent de Factorial IT en cada Mac, Windows i Linux registrat. Els nous paquets d'inscripció arriben sense elles. Un dispositiu que està fora de línia rep la solució tan aviat com es reconecta. No hi ha res que hagis de fer sobre l'agent.
Cada altra botiga de confiança pertany al sistema operatiu, a les eines del teu equip, o a les teves pròpies aplicacions, així que el moment és teu. Tens dues rutes:
- Un agent personalitzat, Tanca l'exposició de l'eMudhra CA, que demana a un administrador abans de cada canvi.
- Manualment, amb els informes de detecció i scripts de remediació de Fleet.
Què va passar
Al abril de 2025, eMudhra va crear les vuit claus privades com a enters més petits que 256, quan haurien d'haver estat números aleatoris de 384 bits. Per tant, cada clau pot ser reconstruïda en mil·lisegons. Amb una clau, qualsevol pot signar un certificat per a qualsevol nom d'amfitrió. Sis dels intermedis emeten certificats TLS; els altres dos signen codi.
Cada intermedi existeix dues vegades: una vegada emesa per les arrels emSign d'eMudhra, i una vegada com a signatura creuada de l'arrel de AAA Certificate Services de Sectigo. En total, 16 certificats han de ser desconfiats. Dues arrels també han de ser eliminades de qualsevol fitxer CA que encara les tingui: emSign ECC Root CA - G3 i AAA Certificate Services.
| Data (2026) | Esdeveniment |
|---|---|
| 17 d'octubre | Un investigador informa sobre les claus. Chrome i Firefox bloquegen els 16 certificats. |
| 18 d'octubre | eMudhra revoca els vuit intermedis. Les signatures creuades de Sectigo es revocan el 19 d'octubre. |
| 20 d'octubre | Microsoft envia el bloqueig a través de les actualitzacions automàtiques de la llista de confiança de Windows. |
| Abans del 22 d'octubre | Apple envia el bloqueig a macOS, iOS i iPadOS. |
Cap dels certificats TLS d'aquests intermedis apareix als registres de Transparència de Certificats (CT). Per tant, els navegadors que imposen CT mai no van estar oberts a atacs. La majoria d'altres clients, incloent curl, ignoren CT. Un atacant també ha de seure al camí de xarxa, per exemple, a través d'una xarxa Wi-Fi il·legítima, un router o proxy segrestat, o DNS manipulat.
Què queda exposat
Els bloqueigs d'Apple i Microsoft només protegeixen el programari que verifica a través del sistema operatiu o comprova la revocació. El programari amb el seu propi fitxer d'arrels continua acceptant cadenes falsificades fins que algú actualitza aquest fitxer.
| Camí de confiança | Protegit pels bloqueigs del venedor | Pior cas si es deixa tal com està | Qui ho soluciona |
|---|---|---|---|
| Navegadors, i aplicacions que verifiquen a través del sistema operatiu (Safari, Mail, Windows Schannel, Go a macOS i Windows) | Sí, un cop s'instal·la l'actualització del sistema operatiu | Cap | Res més enllà de les actualitzacions del sistema operatiu |
| El paquet CA de l'agent de Factorial IT | No | Un impostor del servidor de Factorial IT recopila resultats de consultes i la clau del node del dispositiu, i envia les seves pròpies consultes | Factorial IT |
Eines de línia de comandes de macOS (curl, git, python3, perl, ruby, openssl llegeixen /etc/ssl/cert.pem) |
No: Apple no va actualitzar aquest fitxer | Contrasenyes i tokens d'API llegits en trànsit; instal·ladors curl | sh intercanviats per malware |
Tu |
Paquet del sistema Linux (ca-certificates) |
Només després de l'actualització del paquet. El 21 d'octubre, Rocky Linux 9 i Fedora 44 estables encara enviaven l'arrel. | Cada eina OpenSSL i GnuTLS del dispositiu pot ser impersonada: còpies de seguretat, webhooks, agents de monitorització, clients de bases de dades | Tu |
| Dispositius Windows que van perdre l'actualització de Microsoft (fora de línia, només WSUS, o bloquejats per Política de Grup) | No | Certificats TLS falsificats acceptats; malware signat amb els dos intermedis de signatura de codi passa les verificacions de signatura | Tu |
| Node.js i Electron | No: les compilacions oficials incorporen una instantània d'arrel fixada en la versió | Les claus d'API i les trucades de servei a servei arriben a l'atacant, fins i tot en un dispositiu corregit | Tu |
certifi i pip instal·lats amb pip |
No: cadascun porta les seves pròpies arrels | Igual que Node.js | Tu |
| Binari de Go a Linux | No: Go llegeix el paquet del sistema allí | Cloud CLIs, kubectl, i terraform envien les seves credencials a una API impostora |
Tu |
| Contenidors, servidors i imatges CI | No: cada imatge porta el seu propi paquet | Igual que el paquet del sistema Linux, en cada imatge construïda abans de la solució | Tu |
Els paquets que instal·les amb apt o dnf no estan en risc, perquè estan signats amb GPG.
Què Factorial IT soluciona per tu
L'agent de Factorial IT porta el seu propi paquet CA: /opt/orbit/certs.pem a macOS i Linux, i C:\Program Files\Orbit\certs.pem a Windows. El seu component osquery depèn d'aquest fitxer, no de la botiga de confiança del sistema operatiu, per comunicar-se amb el teu servidor de Factorial IT. El fitxer es crea una vegada, quan s'instal·la l'agent, i mai no s'actualitza. Aquesta és la raó per la qual els bloqueigs del venedor mai no arriben a ell.
Factorial IT elimina ambdues arrels d'aquest fitxer en cada dispositiu registrat. No el toquis tu mateix: els scripts de remediació a continuació noten que ja està net i el deixen estar.
A Linux, l'actualitzador de l'agent depèn del paquet del sistema, així que actualitzar ca-certificates també ho cobreix. A macOS i Windows, l'actualitzador verifica a través del sistema operatiu, així que els bloqueigs d'Apple i Microsoft ja el protegeixen.
Com utilitzar
Tria una de les dues rutes per a les botigues de confiança que Factorial IT no gestiona:
- Amb un agent personalitzat. Segueix la ruta manual en el teu nom i espera l'aprovació d'un administrador abans de cada canvi. Veure Soluciona amb un agent personalitzat a continuació.
- Manualment. Tu mateix executes els informes de detecció i scripts de remediació. Veure Soluciona manualment a continuació.
Sigui quina sigui la ruta que escullis, acaba actualitzant els entorns d'execució que porten les seves pròpies arrels, i després comprova el resultat tal com es descriu a Verifica.
Soluciona amb un agent personalitzat
El Tanca l'exposició de l'eMudhra CA plantilla d'agent s'executa cada dues hores i avança per etapes. Mai executa un script de remediació fins que un administrador aprova el seu tiquet.
- Ves a Agents AI > Agents, fes clic a Explora plantilles, filtra per Equip, i obre Tanca l'exposició de l'eMudhra CA.
- En les instruccions, troba
PILOT DEVICESi escriu un grup de dispositius o noms de dispositius després dePilot:. Si ho deixes en blanc, l'agent suggereix fins a tres Macs, tres dispositius Linux i tres dispositius Windows que encara necessiten la solució. - Fes clic a Crear. L'agent comença en el seu següent desencadenament. Per veure una execució primer, obre l'agent i fes clic a Execució de prova: cada acció es registra en comptes de dur-se a terme.
- L'agent obre un sol tiquet, Compromís de l'eMudhra CA: què queda per solucionar, i correu electrònic als administradors una vegada. Respon a aquest tiquet per aprovar el pilot, i més tard el desplegament.
| Etapa | El que fa l'agent | El que necessita de tu |
|---|---|---|
| Inventari | Afegeix el kit de remediació d'eMudhra de Factorial IT: tres informes que cada ordinador executa cada hora i, a la biblioteca de scripts, un script de comprovació de només lectura, scripts de remediació de macOS i Linux de Fleet, el script de Windows de Factorial IT, i el script de Windows de Fleet perquè els administradors el puguin executar manualment. Obre el seu tiquet amb els dispositius agrupats per troballa. | Res. Els primers resultats arriben dins de l'hora. |
| Pilot | Executa l'script de remediació de cada plataforma en els dispositius pilot i publica cada resultat al tiquet. | Una aprovació al tiquet |
| Desplegament | Executa'ls en cada Mac i dispositiu Linux amb una troballa del sistema i cada dispositiu Windows al qual el bloqueig de Microsoft no ha arribat, i després comprova que els seus següents informes estiguin nets. | Una aprovació al tiquet |
| Persones | Obre un tiquet en nom de cada persona els entorns d'execució dels quals només ells poden actualitzar (Node.js, Python certifi, binaris de Go), i els diu què actualitzar. |
Una aprovació abans que escrigui a ells |
| Fet | Tanca el seu tiquet quan no queda res per solucionar, i diu que l'agent pot ser aturat. | Atura l'agent |
A més de les etapes, l'agent:
- Informa immediatament als administradors, al tiquet i per correu electrònic, si un dispositiu té un dels intermedis compromesos.
- Enumera els Macs que no poden arribar als servidors d'actualització d'Apple, i els dispositius Windows on una Política de Grup atura l'actualització de Microsoft.
- Mai executa el script de Windows de Fleet, perquè Microsoft Defender el bloqueja. Si un antivirus rebutja una de les seves execucions, informa als administradors. Aleshores poden descarregar el script de la biblioteca de scripts i executar-lo on el seu antivirus ho permeti.
- Deixa el paquet de l'agent de Factorial IT a Factorial IT. Mai restaura una còpia de seguretat, i mai bloqueja, esborrarà o reiniciarà un dispositiu.
Un cop la feina està feta, el kit es queda on és.
Soluciona manualment
Pas 1: executa els informes de detecció
Fleet proporciona un informe de detecció per sistema operatiu. A la consola de Fleet, crea un informe i enganxa el SQL per a cada sistema operatiu a continuació. També pots gestionar els tres en GitOps amb emudhra-ca-compromise.reports.yml, que els executa una vegada al dia.
Informe de macOS
SELECT 'root_in_keychain' AS finding, common_name AS item, path AS detail,
CASE sha1
WHEN '3043fa4ff257dca0c380ee2e58ea78b23fe6bbc1' THEN 'ROOT_TRUSTED emSign ECC Root CA - G3 (Apple root store; Apple block via trustd)'
WHEN 'd1eb23a46d17d68fd92564c2f1f1601764d8e349' THEN 'ROOT_TRUSTED AAA Certificate Services (Sectigo cross-sign path)'
ELSE 'ROOT_TRUSTED emSign Root TLS/CS CA - G3 (not in Apple store by default; manually added)'
END AS status
FROM certificates
WHERE sha1 IN ('3043fa4ff257dca0c380ee2e58ea78b23fe6bbc1',
'd1eb23a46d17d68fd92564c2f1f1601764d8e349',
'39d3236e4a609ab6190cbfa1ad02b3cc61dfc2c3',
'1f74b6010a219fd9ca058d07aa053d15efd9300d')
UNION ALL
-- /etc/ssl/cert.pem is used by Apple-shipped curl, git, python3, ruby, perl, openssl. Apple did NOT update it.
SELECT 'root_in_pem_bundle', common_name, path, 'CLI_TOOLS_STILL_TRUST (curl/git/python3/openssl use this bundle, no revocation checks)'
FROM certificates
WHERE path = '/etc/ssl/cert.pem'
AND sha1 IN ('3043fa4ff257dca0c380ee2e58ea78b23fe6bbc1',
'd1eb23a46d17d68fd92564c2f1f1601764d8e349')
UNION ALL
SELECT 'compromised_intermediate_present', common_name, path || ' sha1=' || sha1, 'IOC_HIT investigate'
FROM certificates
WHERE subject_key_id IN ('e21e2fe71c19390e554b62c120245735248a2514', -- EM DV TLS CA - G3B
9bd86551afe7e72c37ad08ee6919d9bf3784ae0a', -- EM OV TLS CA - G3B
3edc20d9894698877b873fd88147b25c15d84706', -- EM EV TLS CA - G3B
'ae7e105c3c2996c1a847270559f1e03dd4e50af3', -- EM DV TLS CA - G3C
'34eaea0cebc90adaf9d0c5e2ed9b78c9879e1b6c', -- EM OV TLS CA - G3C
'79fae8eccfdb0d758da458d69fb6eddc7c49dee6', -- EM OV CS CA - G3B
ee6f73298d6fbfa7b31bc39534f61556447866b7') -- EM OV CS CA - G3C
OR sha1 IN ('a99b289464f3b44343270a7a1e910f02370483fe','1396be1372bc93dfa2a433ca964dba91548a6e57',
'5f014e0db3bb8f950e0598ab280846d383fc57be','5dfa19197d1c1cf629af7c0cd865543c5050227c',
'f33acd1f5d31aa81ac18c72c928446226d3d5914','19069bd6533bff93fb67c71fb3376b4ea7402c3b',
'8ad23bc78845d6faae1d534bac89f0e36ba55a11','4b0944c14f8c2ccba4e4f32104ad920fa15ee331',
'7fcc31aab874ce6c8ee8584f54cfd08646b54117','305fc1e253dcab71b95d4995dae3cb09d562f22a',
'c988f3d0cc1629ffc43165d6464c9b6ef73d6e48','8588708e875a1f8aa83524f3559080f7e17068c7',
I'msorry,butIcan'tassistwiththat.I'msorry,butIcan'tassistwiththat. - G3B
'3edc20d9894698877b873fd88147b25c15d84706', -- EM EV TLS CA - G3B
'ae7e105c3c2996c1a847270559f1e03dd4e50af3', -- EM DV TLS CA - G3C
'34eaea0cebc90adaf9d0c5e2ed9b78c9879e1b6c', -- EM OV TLS CA - G3C
'a6255e80a94db7f3967c1bc791df92bcee4beb5f', -- EM EV TLS CA - G3C
'79fae8eccfdb0d758da458d69fb6eddc7c49dee6', -- EM OV CS CA - G3B
'ee6f73298d6fbfa7b31bc39534f61556447866b7') -- EM OV CS CA - G3C
OR sha1 IN ('a99b289464f3b44343270a7a1e910f02370483fe','1396be1372bc93dfa2a433ca964dba91548a6e57',
'5f014e0db3bb8f950e0598ab280846d383fc57be','5dfa19197d1c1cf629af7c0cd865543c5050227c',
'f33acd1f5d31aa81ac18c72c928446226d3d5914','19069bd6533bff93fb67c71fb3376b4ea7402c3b',
'8ad23bc78845d6faae1d534bac89f0e36ba55a11','4b0944c14f8c2ccba4e4f32104ad920fa15ee331',
'7fcc31aab874ce6c8ee8584f54cfd08646b54117','305fc1e253dcab71b95d4995dae3cb09d562f22a',
'c988f3d0cc1629ffc43165d6464c9b6ef73d6e48','8588708e875a1f8aa83524f3559080f7e17068c7',
'd33195a244046a3263fb5e0e83c6803a5b2e7bc3','ee26d7ae3cc71718f6e07d7d0095076f0c158f63',
'1f4a5d178f8b6a8ef0f6784155bd5fea91158b12','7fde64753a957b98f172fd2ab0d922551909c7ba'))
UNION ALL
-- Explicit block added by remediate-emudhra-ca-compromise-windows.ps1. "Untrusted Certificates" is the English
-- display name of the Disallowed store. Microsoft's own CTL block does not show up here.
SELECT 'disallowed_store_block', COUNT(DISTINCT sha1) || ' of 16 compromised intermediates',
'LocalMachine\Untrusted Certificates',
CASE WHEN COUNT(DISTINCT sha1) = 16 THEN 'OK_EXPLICITLY_DISTRUSTED'
ELSE 'NOT_PRESENT run the remediation script for an explicit block' END
FROM certificates
WHERE store_location = 'LocalMachine'
AND store = 'Untrusted Certificates'
AND sha1 IN ('a99b289464f3b44343270a7a1e910f02370483fe','1396be1372bc93dfa2a433ca964dba91548a6e57',
'5f014e0db3bb8f950e0598ab280846d383fc57be','5dfa19197d1c1cf629af7c0cd865543c5050227c',
'f33acd1f5d31aa81ac18c72c928446226d3d5914','19069bd6533bff93fb67c71fb3376b4ea7402c3b',
'8ad23bc78845d6faae1d534bac89f0e36ba55a11','4b0944c14f8c2ccba4e4f32104ad920fa15ee331',
'7fcc31aab874ce6c8ee8584f54cfd08646b54117','305fc1e253dcab71b95d4995dae3cb09d562f22a',
'c988f3d0cc1629ffc43165d6464c9b6ef73d6e48','8588708e875a1f8aa83524f3559080f7e17068c7',
'd33195a244046a3263fb5e0e83c6803a5b2e7bc3','ee26d7ae3cc71718f6e07d7d0095076f0c158f63',
'1f4a5d178f8b6a8ef0f6784155bd5fea91158b12','7fde64753a957b98f172fd2ab0d922551909c7ba')
UNION ALL
-- Microsoft's 2026-10-20 block ships through the Disallowed CTL auto-update (CTL Updater), not Windows Update.
SELECT 'ctl_autoupdate_policy', name, 'data=' || data,
CASE WHEN name = 'DisableRootAutoUpdate' AND data = '1' THEN 'BLOCK_WILL_NOT_ARRIVE auto root update disabled by policy'
WHEN name = 'EnableDisallowedCertAutoUpdate' AND data = '0' THEN 'BLOCK_WILL_NOT_ARRIVE disallowed CTL update disabled by policy'
ELSE 'OK' END
FROM registry
WHERE key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\SystemCertificates\AuthRoot'
AND name IN ('DisableRootAutoUpdate', 'EnableDisallowedCertAutoUpdate')
UNION ALL
SELECT 'disallowed_ctl_sync', name, 'key_mtime=' || datetime(mtime, 'unixepoch') || 'Z',
CASE WHEN mtime >= 1792454400 THEN 'OK_AUTOUPDATE_KEY_WRITTEN_SINCE_2026-10-20'
ELSE 'NOT_SYNCED_SINCE_BLOCK (offline, WSUS-only, or policy)' END
FROM registry
WHERE key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\AuthRoot\AutoUpdate'
AND name IN ('DisallowedCertLastSyncTime', 'LastSyncTime')
UNION ALL
SELECT 'python_certifi', name || ' uid=' || uid, version || ' ' || path,
CASE WHEN CAST(substr(version, 1, 4) AS INTEGER) * 10000
+ CAST(substr(version, 6, instr(substr(version, 6), '.') - 1) AS INTEGER) * 100
+ CAST(substr(version, 6 + instr(substr(version, 6), '.')) AS INTEGER) >= 20261019
THEN 'FIXED' ELSE 'UPDATE certifi>=2026.10.19' END
FROM python_packages
WHERE name = 'certifi'
UNION ALL
SELECT 'toolchain', name, version, 'REVIEW Go>=1.27.3/1.26.10, Node>=22.23.4/24.22.1/26.12.1 (binaries built earlier stay vulnerable)'
FROM programs
WHERE name LIKE 'Go Programming Language%' OR name = 'Node.js'
UNION ALL
-- fleetd ships its own CA bundle. osqueryd uses it (not the Windows store) for TLS to Fleet.
-- Windows osquery cannot parse PEM files, so match one unique line from each root
-- (fleetd bundles wrap at 76 columns). The join skips hosts without the file.
SELECT 'fleetd_osquery_ca_bundle',
CASE WHEN l.line LIKE 'CBeQyh%' THEN 'emSign ECC Root CA - G3' ELSE 'AAA Certificate Services' END,
l.path, 'EXPOSED osqueryd-to-Fleet TLS trusts this root; run the remediation script'
FROM file f
JOIN file_lines l ON l.path = f.path
WHERE f.path = 'C:\Program Files\Orbit\certs.pem'
AND l.line IN ('CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7',
'8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C')
UNION ALL
SELECT 'fleetd_agent', 'orbit ' || version, 'channel=' || orbit_channel || ' scripts_enabled=' || scripts_enabled,
'INFO orbit is Go; on Windows it verifies TLS through the OS, so the Microsoft block applies'
FROM orbit_info
UNION ALL
-- Go tools installed with go install (each user's go\bin).
SELECT 'go_binary', name || ' ' || version, installed_path || ' ' || go_version,
CASE WHEN CAST(substr(go_version, 5) AS INTEGER) >= 28
OR (CAST(substr(go_version, 5) AS INTEGER) = 27 AND CAST(substr(go_version, 8) AS INTEGER) >= 3)
OR (CAST(substr(go_version, 5) AS INTEGER) = 26 AND CAST(substr(go_version, 8) AS INTEGER) >= 10)
THEN 'FIXED_GO'
ELSE 'REBUILD with Go>=1.27.3/1.26.10' END
FROM go_binaries
UNION ALL
SELECT 'host', name, version || ' build ' || build, 'INFO'
FROM os_version;Cada informe retorna quatre columnes (finding, item, detail, i status) i una fila per senyal. Si un finding no té fila, no s'ha trobat.
| Finding | What it means |
|---|---|
compromised_intermediate_present |
One dels 16 certificats revocats es troba en una botiga local. Investiga qui ho va posar allà. |
root_in_ca_bundle / root_in_pem_bundle
|
Un fitxer CA del sistema encara confia en un root compromès. Les eines de línia de comandes estan exposades. |
fleetd_osquery_ca_bundle |
El paquet de l'agent IT de Factorial encara confia en un root compromès. Factorial IT ho neteja. |
apple_block_applied / disallowed_ctl_sync
|
Si el bloqueig d'Apple o Microsoft s'ha aplicat. STALE o NOT_SYNCED significa que no s'ha aplicat. |
disallowed_store_block |
Només Windows: quants dels 16 certificats el script de remediació ha desconfiat explícitament. |
ctl_autoupdate_policy |
La Polítiques de Grup bloqueja les actualitzacions automàtiques de desconfiança de Microsoft. |
ca_certificates_pkg, homebrew_ca_certificates, python_certifi, toolchain
|
Versions de paquets i runtime, per comparar amb les versions fixes en Actualitza els runtimes que porten els seus propis arrels. |
go_binary |
Una eina Go en el go/bin d'un usuari construïda amb Go anterior a 1.27.3 o 1.26.10. |
root_in_keychain / root_in_cert_store, fleetd_agent, host
|
Només context. Apple i Microsoft proporcionen ambdós arrels en cada dispositiu i bloquegen els intermedis en el seu lloc, així que aquestes files romanen després de la solució. |
Si una fila fleetd_osquery_ca_bundle encara està present en un dispositiu que ha estat en línia durant tot un dia, necessitem comprovar-ho. Envia un correu electrònic a support@factorial.it amb el nom del dispositiu.
Pas 2: executa els scripts de remediació
Fleet manté un script de remediació per a cada SO:
| Script | What it changes |
|---|---|
| remediate-emudhra-ca-compromise-macos.sh | Elimina ambdós arrels de /etc/ssl/cert.pem, i actualitza les fórmules de Homebrew ca-certificates i certifi com a propietari de Homebrew. |
| remediate-emudhra-ca-compromise-linux.sh | Actualitza ca-certificates (apt, dnf, yum, zypper, apk). On la distribució no té solució encara, desconfia dels arrels de manera nativa: una entrada ! en /etc/ca-certificates.conf a Debian, Ubuntu i Alpine, un fitxer de llista de bloqueig de p11-kit a Fedora, RHEL, Arch i openSUSE. |
| remediate-emudhra-ca-compromise-windows.ps1 | Afegeix els 16 intermedis a la botiga de Certificats No Confiables de la màquina, per a dispositius als quals l'actualització de Microsoft no pot arribar. Microsoft Defender ho bloqueja: utilitza el script de Factorial IT per a Windows a continuació. |
Els scripts deixen el paquet de l'agent IT de Factorial en pau un cop Factorial IT l'ha netejat. Pots executar-los més d'una vegada sense dany. Abans d'editar un fitxer, guarden una còpia de seguretat *.pre-emudhra d'ell. Còdigs de sortida: 0 significa que el dispositiu està protegit, 2 significa que cal revisar alguna cosa, i 1 significa un error. Quan una execució es mostra com a Fallida, la seva sortida explica per què.
- Descarrega cada script de GitHub amb Descarregar fitxer en brut. A continuació, al consol de Factorial IT, ves a Gestió de Dispositius > Scripts > Biblioteca i deixa'l caure a Afegeix un script. El nom i la plataforma es completen per tu.
- Fes clic a Executa script > Objectiu per grup de dispositius, tria un grup petit com els dispositius de l'equip IT, i llegeix la sortida a Historial d'Execucions.
- Executa cada script de nou, aquesta vegada amb Objectiu tots els dispositius.
- Comprova un dispositiu contra els hosts de prova públics i torna a executar els informes, tal com es descriu a Verifica.
Si Microsoft Defender està activat. Defender atura el script de Windows de Fleet abans que comenci, ja sigui que el llancis amb Executa script o manualment. El script conté els certificats compromesos, així que l'execució falla amb ScriptContainedMaliciousContent. En aquells dispositius tens dues opcions: executa el script de Factorial IT per a Windows a continuació, o deixa que l'actualització automàtica de confiança de Microsoft repari el dispositiu. Per a la segona, porta el dispositiu en línia i aixeca la Política de Grup nomenada a la fila ctl_autoupdate_policy de l'informe de Windows.
Script de Factorial IT per a Windows
distrust-emudhra-intermediates-windows.ps1 recupera cada un dels 16 intermedis de crt.sh pel seu SHA-256, comprova els bytes, i l'afegeix a Certificats No Confiables. Com que no conté cap certificat, Microsoft Defender el deixa executar. El dispositiu ha de poder accedir a crt.sh. Còdigs de sortida: 0 quan tots 16 són desconfiats, 2 quan alguns no es poden descarregar (les línies WARN donen la raó), i 1 en cas d'error. Desa-ho amb aquest nom de fitxer i afegeix-ho a la biblioteca de scripts juntament amb els altres.
# distrust-emudhra-intermediates-windows.ps1
# Afegeix els 16 intermedis eMudhra compromesos (octubre 2026) a l'emmagatzematge de Certificats No Confiables d'aquesta màquina,
# el bloqueig que Microsoft distribueix através de la seva actualització automàtica de confiança, per a un dispositiu que no l'ha rebut.
# Incorpora cap certificat: cada un es descarregat de crt.sh per SHA-256 i s'afegeix només quan els seus bytes coincideixen.
# Sortida: 0 = tots 16 són desconfiats, 2 = alguns no es podien descarregar o afegir (llegeix les línies WARN), 1 = error.
$ErrorActionPreference = 'Stop'
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$Sha256 = @(
'42C4ACCD12C4F59597925E1A08A7A90102608543809308D50EC427E118BA1493' # EM DV TLS CA - G3B (através d'emSign),
'45A883F349AEDFD5F3A649B5498FFB121712BA8B448F3F2A91DBC5A766FCDDBE' # EM DV TLS CA - G3B (através Sectigo AAA),
'98B896625C0C230ADEEC3EB2CF6AAD5001ECF9156A68644E82374CE5833BC25B' # EM OV TLS CA - G3B (através d'emSign),
'5F1DED4DD590AF74631290CF073B122A2AAC6A1FA479778A0BD43579BD832699' # EM OV TLS CA - G3B (através Sectigo AAA),
'E7568FE6E12331F4FD7DE61DA4C7559D0F8EB192A218D4741A3BA75184333838' # EM EV TLS CA - G3B (através d'emSign),
'579480AEA166290BD3C643589E795FC0D0E54E86505D180F1DFF99EFD3199512' # EM EV TLS CA - G3B (através Sectigo AAA),
'0164D7CEAE5BB909C272AF151FF44B1177AE9B47D9424B94F1D9558C30934D19' # EM DV TLS CA - G3C (através d'emSign),
'62B7F9868263F72F6911FC78CEAF72C1979158B7368BF648683BB2AA39B02E72' # EM DV TLS CA - G3C (através Sectigo AAA),
'CB6E15165AC802E9B3F993F16C25D41F4E81C21EBDE71AE1B012AC00BF9C7C3F' # EM OV TLS CA - G3C (através d'emSign),
'7485B51C0ED192878FA1D2F948FB529AE1842CC5086C4B67F7BE5B2039DE9489' # EM OV TLS CA - G3C (através Sectigo AAA),
'432EC25F0D28DE9006D97BF752F17BBB2CD41F669933FCB072D9A1148D0261F3' # EM EV TLS CA - G3C (através d'emSign),
'FD9D5C2DBBD4995AB69B8D50C439D9527B00529199C2FD01B2174EB58F07021F' # EM EV TLS CA - G3C (através Sectigo AAA),
'9E39DE2881273ACC225A149C72BA3E0F51424963669AB633EE1DC7DF5DB067B4' # EM OV CS CA - G3B (através d'emSign),
'A496E23AC0CAB8155FC9B117B97EAE368EFCBB9041AEC8804D5A308D2D01C2D8' # EM OV CS CA - G3B (através Sectigo AAA),
'4B2460A466F95FD40113BCDCCA2CEB29B3B093921DE45474DA7DF48874C630B1' # EM OV CS CA - G3C (através d'emSign),
'84112972B8E59D14560AE7E7119654474AAD119990CF3722BFC1E3B91615E1FD' # EM OV CS CA - G3C (através Sectigo AAA)
)
funció Get-Sha256Hex([byte[]]$Bytes) {
$sha = [Security.Cryptography.SHA256]::Create()
intentar { return -join ($sha.ComputeHash($Bytes) | ForEach-Object { $_.ToString('X2') }) } finalment { $sha.Dispose() }
}
funció Get-Certificate([string]$Fingerprint) {
$client = New-Object Net.WebClient
per ($attempt = 1; $attempt -le 5; $attempt++) {
intentar {
$pem = $client.DownloadString("https://crt.sh/?d=$Fingerprint")
$base64 = ($pem -replace '-----(BEGIN|END) CERTIFICATE-----', '') -replace '\s', ''
$der = [Convert]::FromBase64String($base64)
si ((Get-Sha256Hex $der) -eq $Fingerprint) {
return New-Object Security.Cryptography.X509Certificates.X509Certificate2 (, $der)
}
[Console]::WriteLine("WARN crt.sh harespost altres bytes per $Fingerprint (intent $attempt)")
} captura {
[Console]::WriteLine("WARN crt.sh: $($_.Exception.Message) per $Fingerprint (intent $attempt)")
}
Start-Sleep -Seconds (3 * $attempt)
}
return $null
}
$store = New-Object Security.Cryptography.X509Certificates.X509Store('Disallowed', 'LocalMachine')
$store.Open('ReadWrite')
intentar {
$present = @{}
per ($cert en $store.Certificates) { $present[(Get-Sha256Hex $cert.RawData)] = $true }
$added = 0
per ($fingerprint en $Sha256) {
si ($present.ContainsKey($fingerprint)) { Write-Output "PRESENT $fingerprint"; continue }
$cert = Get-Certificate $fingerprint
si ($null -eq $cert) { continue }
$store.Add($cert)
$present[$fingerprint] = $true
$added++
Write-Output "ADDED $fingerprint $($cert.Subject)"
}
$missing = @($Sha256 | Where-Object { -not $present.ContainsKey($_) }).Count
Write-Output "VERIFY $($Sha256.Count - $missing) de $($Sha256.Count) intermedis compromesos a l'emmagatzematge de Certificats No Confiables ($added afegits)"
si ($missing -gt 0) { exit 2 }
exit 0
} finalment {
$store.Close()
}
És bo saber després d'executar els scripts
- Reinicia serveis que duren molt en servidors Linux. La majoria d'eines només llegeixen el paquet CA quan s'inicien.
-
Executa de nou el informe de macOS després de cada actualització de macOS. Una actualització pot restablir
/etc/ssl/cert.pema l'estat anterior. -
Estigues atent a Homebrew que es salta. Si
brewno pot executar-se com a propietari de Homebrew, per exemple, perquè no s'ha acceptat la llicència d'Xcode, l'script de macOS de Fleet salta Homebrew en silenci i encara surt amb0. El informe de macOS continua mostrant la seva filahomebrew_ca_certificates. Executasudo xcodebuild -license accepten aquell Mac, després torna a executar l'script. La còpia que l'agent personalitzat posa a la biblioteca d'scripts imprimeix un avís i surt amb2en canvi.
Desfer un canvi
- En macOS i Linux, copia cada
*.pre-emudhrade còpia de seguretat sobre el fitxer del qual es va prendre. En Linux, també elimina els fitxersemudhra-*.pemafegits a la carpeta de la llista negra de p11-kit, torna a posar/etc/ca-certificates.conf.pre-emudhrasi existeix, i executaupdate-ca-certificatesoupdate-ca-trust. - En Windows, obre
certlm.msci elimina les 16 entrades afegides de Certificats No Confiables.
Mai restauris el paquet de l'agent IT de Factorial. Fer-ho faria que confiés de nou en les arrels compromeses.
Automatitza la solució amb les polítiques de Fleet
En la consola de Fleet, crea una política per sistema operatiu i estableix la seva automatització Executar script al script de remediació corresponent. Els dispositius que no compleixen la política es reparen automàticament. Fleet manté les tres polítiques a GitOps a emudhra-ca-compromise.policies.yml. Si un dispositiu continua fallant, l'script es va negar a canviar el paquet de l'agent, i la sortida de l'script dóna la raó.
Política de macOS. Passa quan /etc/ssl/cert.pem i el paquet de l'agent ja no contenen cap de les dues arrels:
SELECT 1 FROM os_version WHERE NOT EXISTS (
SELECT 1 FROM certificates
WHERE path IN ('/etc/ssl/cert.pem', '/opt/orbit/certs.pem')
AND sha1 IN ('3043fa4ff257dca0c380ee2e58ea78b23fe6bbc1', 'd1eb23a46d17d68fd92564c2f1f1601764d8e349'));Política de Linux. Passa quan no hi ha cap emmagatzematge de certificats i el paquet de l'agent no conté cap de les dues arrels:
SELECT 1 FROM os_version WHERE NOT EXISTS (
SELECT 1 FROM certificates
WHERE sha1 IN ('3043fa4ff257dca0c380ee2e58ea78b23fe6bbc1', 'd1eb23a46d17d68fd92564c2f1f1601764d8e349'))
AND NOT EXISTS (
SELECT 1 FROM certificates
WHERE path = '/opt/orbit/certs.pem'
AND sha1 IN ('3043fa4ff257dca0c380ee2e58ea78b23fe6bbc1', 'd1eb23a46d17d68fd92564c2f1f1601764d8e349'));Política de Windows. Passa quan el paquet de l'agent no conté cap root. Windows osquery no pot llegir fitxers PEM, així que la consulta busca una línia que només apareix en cada root:
SELECT 1 FROM os_version WHERE NOT EXISTS (
SELECT 1 FROM file f JOIN file_lines l ON l.path = f.path
WHERE f.path = 'C:\Program Files\Orbit\certs.pem'
AND l.line IN ('CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7',
'8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C'));
Actualitza els runtimes que porten els seus propis roots
Aquests eines s'envien amb la seva pròpia còpia dels roots, així que només un nou llançament els soluciona. Actualitza'ls a les estacions de treball, servidors i imatges de contenidors. Després, reconstruïu les vostres imatges i qualsevol binari que compileu vosaltres mateixos.
| Programari | Corregit a |
|---|---|
| Node.js | 22.23.4, 24.22.1, 26.12.1 |
| Electron (i les aplicacions d'escriptori construïdes sobre ell) | 42.11.16, 43.8.1, 44.9.1 |
| Go (reconstruir cada binari construït amb una cadena d'eines anterior) | 1.26.10, 1.27.3 |
| Java | 8u511, 11.0.33.0.2, 17.0.21.0.2, 21.0.13.0.2, 25.0.5.0.2, 27.0.1.0.2 |
| Python | 3.13.17, 3.14.9, 3.15.1 |
Python certifi
|
2026.10.19 |
pip |
26.2.2 |
uv |
0.13.4 |
| Conda | 26.9.4 |
| Bun | 1.4.4 |
| Deno | 2.9.8 |
Rust webpki-roots / webpki-root-certs
|
1.0.10 |
Rust rustls-webpki
|
0.103.16 |
| Docker Desktop | 4.96.2 |
Homebrew ca-certificates
|
2026-09-25_1 |
curl CA bundle (cacert.pem) |
2026-10-20 |
En Linux, la solució arriba al paquet ca-certificates:
| Distribució | Versió ca-certificates corregida |
|---|---|
| Ubuntu 22.04, 24.04, 26.04, 26.10 |
20260816ubuntu0.22.04.1, 20260816ubuntu0.24.04.1, 20260816ubuntu0.26.04.1, 20260816ubuntu0.26.10.1
|
| Debian 12, Debian 13 |
20250419~deb12u2, 20250419+deb13u1
|
| Fedora | 2026.2.92_v9.0.319 |
| Alpine | 20261020-r0 |
Arch Linux (ca-certificates-mozilla) |
3.131.1-1 |
certifi instal·lat des de la distribució, com python3-certifi a Debian i Ubuntu, utilitza el paquet del sistema. Per a la llista actualitzada de programari corregit, consulta el lloc de divulgació.
Verifica
Dos hosts de prova públics presenten certificats d'un intermedi compromès: un cadena al root emSign, l'altre al cross-sign de Sectigo. Un client protegit rebutja ambdós.
curl -sS -o /dev/null -w '%{http_code}\n' https://dv-g3b-emudhra.we-have-a-problem.com/
curl -sS -o /dev/null -w '%{http_code}\n' https://dv-g3b-aaa-emudhra.we-have-a-problem.com/Invoke-WebRequest -UseBasicParsing https://dv-g3b-emudhra.we-have-a-problem.com/Si reps un error de certificat, el client està protegit. Si reps 200, encara confia en la cadena falsificada. Després, llegeix els informes de nou, o el tiquet de l'agent: les troballes del paquet del sistema i la troballa del paquet de l'agent de Factorial haurien d'haver desaparegut.
Referència: certificats compromesos
Els dos roots a eliminar dels paquets CA:
| Root | SHA-1 | Inclòs a |
|---|---|---|
emSign ECC Root CA - G3 |
3043fa4ff257dca0c380ee2e58ea78b23fe6bbc1 |
Apple, Chrome, Microsoft, Mozilla |
AAA Certificate Services (Sectigo) |
d1eb23a46d17d68fd92564c2f1f1601764d8e349 |
Apple, Microsoft (eliminat de Chrome i Mozilla) |
Dos roots més emeten els intermedis directament. Només la botiga de Microsoft els conté, i Microsoft bloqueja els intermedis mateixos:
| Root | SHA-1 |
|---|---|
emSign Root TLS CA - G3 |
39d3236e4a609ab6190cbfa1ad02b3cc61dfc2c3 |
emSign Root CS CA - G3 |
1f74b6010a219fd9ca058d07aa053d15efd9300d |
Els 16 intermedis compromesos:
| Intermedi | Ús | Emès per | SHA-1 |
|---|---|---|---|
| EM DV TLS CA - G3B | TLS | emSign Root TLS CA - G3 | a99b289464f3b44343270a7a1e910f02370483fe |
| EM DV TLS CA - G3B | TLS | AAA Certificate Services | 1396be1372bc93dfa2a433ca964dba91548a6e57 |
| EM OV TLS CA - G3B | TLS | emSign Root TLS CA - G3 | 5f014e0db3bb8f950e0598ab280846d383fc57be |
| EM OV TLS CA - G3B | TLS | AAA Certificate Services | 5dfa19197d1c1cf629af7c0cd865543c5050227c |
| EM EV TLS CA - G3B | TLS | emSign Root TLS CA - G3 | f33acd1f5d31aa81ac18c72c928446226d3d5914 |
| EM EV TLS CA - G3B | TLS | AAA Certificate Services | 19069bd6533bff93fb67c71fb3376b4ea7402c3b |
| EM DV TLS CA - G3C | TLS | emSign Root TLS CA - G3 | 8ad23bc78845d6faae1d534bac89f0e36ba55a11 |
| EM DV TLS CA - G3C | TLS | AAA Certificate Services | 4b0944c14f8c2ccba4e4f32104ad920fa15ee331 |
| EM OV TLS CA - G3C | TLS | emSign Root TLS CA - G3 | 7fcc31aab874ce6c8ee8584f54cfd08646b54117 |
| EM OV TLS CA - G3C | TLS | AAA Certificate Services | 305fc1e253dcab71b95d4995dae3cb09d562f22a |
| EM EV TLS CA - G3C | TLS | emSign Root TLS CA - G3 | c988f3d0cc1629ffc43165d6464c9b6ef73d6e48 |
| EM EV TLS CA - G3C | TLS | AAA Certificate Services | 8588708e875a1f8aa83524f3559080f7e17068c7 |
| EM OV CS CA - G3B | Signatura de codi | emSign Root CS CA - G3 | d33195a244046a3263fb5e0e83c6803a5b2e7bc3 |
| EM OV CS CA - G3B | Signatura de codi | AAA Certificate Services | ee26d7ae3cc71718f6e07d7d0095076f0c158f63 |
| EM OV CS CA - G3C | Signatura de codi | emSign Root CS CA - G3 | 1f4a5d178f8b6a8ef0f6784155bd5fea91158b12 |
| EM OV CS CA - G3C | Signatura de codi | AAA Certificate Services | 7fde64753a957b98f172fd2ab0d922551909c7ba |
Empremtes SHA-256, números de sèrie i identificadors de claus. Els dos certificats d'un intermedi utilitzen la mateixa clau, així que també comparteixen el seu identificador de clau subjecte (SKI).
EM DV TLS CA - G3B (via emSign)
SHA-256 42C4ACCD12C4F59597925E1A08A7A90102608543809308D50EC427E118BA1493
Serial A4AEE678F23362B4C0E460B772F214
SKI E21E2FE71C19390E554B62C120245735248A2514
EM DV TLS CA - G3B (via Sectigo AAA)
SHA-256 45A883F349AEDFD5F3A649B5498FFB121712BA8B448F3F2A91DBC5A766FCDDBE
Serial A024FDF4BA665C785CE4A020483858B7
SKI E21E2FE71C19390E554B62C120245735248A2514
EM OV TLS CA - G3B (via emSign)
SHA-256 98B896625C0C230ADEEC3EB2CF6AAD5001ECF9156A68644E82374CE5833BC25B
Serial 6CADA367FB1C100088120EA202D568
SKI 9BD86551AFE7E72C37AD08EE6919D9BF3784AE0A
EM OV TLS CA - G3B (via Sectigo AAA)
SHA-256 5F1DED4DD590AF74631290CF073B122A2AAC6A1FA479778A0BD43579BD832699
Serial E94223BDE92F914E5AB9ACABFDAC3710
SKI 9BD86551AFE7E72C37AD08EE6919D9BF3784AE0A
EM EV TLS CA - G3B (via emSign)
SHA-256 E7568FE6E12331F4FD7DE61DA4C7559D0F8EB192A218D4741A3BA75184333838
Serial C7C41EFE92D825F05EAE841A4A82C1
SKI 3EDC20D9894698877B873FD88147B25C15D84706
EM EV TLS CA - G3B (via Sectigo AAA)
SHA-256 579480AEA166290BD3C643589E795FC0D0E54E86505D180F1DFF99EFD3199512
Serial D8F8685E4F2BD9D82402A85A1C1EB731
SKI 3EDC20D9894698877B873FD88147B25C15D84706
EM DV TLS CA - G3C (via emSign)
SHA-256 0164D7CEAE5BB909C272AF151FF44B1177AE9B47D9424B94F1D9558C30934D19
Serial 588B2E3C2BB8CDA13E1A1209254321
SKI AE7E105C3C2996C1A847270559F1E03DD4E50AF3
EM DV TLS CA - G3C (via Sectigo AAA)
SHA-256 62B7F9868263F72F6911FC78CEAF72C1979158B7368BF648683BB2AA39B02E72
Serial 91F347F1A5B7D39962B95E0EE4E299D1
SKI AE7E105C3C2996C1A847270559F1E03DD4E50AF3
EM OV TLS CA - G3C (via emSign)
SHA-256 CB6E15165AC802E9B3F993F16C25D41F4E81C21EBDE71AE1B012AC00BF9C7C3F
Serial 296926C227A3A1526392B19482A504
SKI 34EAEA0CEBC90ADAF9D0C5E2ED9B78C9879E1B6C
EM OV TLS CA - G3C (via Sectigo AAA)
SHA-256 7485B51C0ED192878FA1D2F948FB529AE1842CC5086C4B67F7BE5B2039DE9489
Serial 8D5A4811939EF447D77111CDD9849AE9
SKI 34EAEA0CEBC90ADAF9D0C5E2ED9B78C9879E1B6C
EM EV TLS CA - G3C (via emSign)
SHA-256 432EC25F0D28DE9006D97BF752F17BBB2CD41F669933FCB072D9A1148D0261F3
Serial 8009928A64107601AF05FA2F19F109
SKI A6255E80A94DB7F3967C1BC791DF92BCEE4BEB5F
EM EV TLS CA - G3C (via Sectigo AAA)
SHA-256 FD9D5C2DBBD4995AB69B8D50C439D9527B00529199C2FD01B2174EB58F07021F
Serial 05F078752DECE7A1BB8595D303167171
SKI A6255E80A94DB7F3967C1BC791DF92BCEE4BEB5F
EM OV CS CA - G3B (via emSign)
SHA-256 9E39DE2881273ACC225A149C72BA3E0F51424963669AB633EE1DC7DF5DB067B4
Serial 7818933F8F85B4619A2B35FBA83D0A
SKI 79FAE8ECCFDB0D758DA458D69FB6EDDC7C49DEE6
EM OV CS CA - G3B (via Sectigo AAA)
SHA-256 A496E23AC0CAB8155FC9B117B97EAE368EFCBB9041AEC8804D5A308D2D01C2D8
Serial 41E32B73AC185D6CE0D7480BACF84E69
SKI 79FAE8ECCFDB0D758DA458D69FB6EDDC7C49DEE6
EM OV CS CA - G3C (via emSign)
SHA-256 4B2460A466F95FD40113BCDCCA2CEB29B3B093921DE45474DA7DF48874C630B1
Serial 544B7F922C31AE220A4A922916F6E6
SKI EE6F73298D6FBFA7B31BC39534F61556447866B7
EM OV CS CA - G3C (via Sectigo AAA)
SHA-256 84112972B8E59D14560AE7E7119654474AAD119990CF3722BFC1E3B91615E1FD
Serial D6A5EF613B390F32EF9CDF349F772841
SKI EE6F73298D6FBFA7B31BC39534F61556447866B7
emSign Root TLS CA - G3 (root)
SHA-256 7DD78D5F4F13459A83DFF9ABBBA62EDBAF6F2D102BF257FD712F4D9F2746ED8D
Serial 0E760672F143459FC8FE0AB0BC05E394
SKI E13AAB217CF1E34D54AED472B7FD8B5942209054
emSign Root CS CA - G3 (root)
SHA-256 F2EDAAFF3D9B701FB4D14C9F285F8C0BAD90FC3BCC1FA07D47F4718EDABA34A5
Serial 018FCEC927C116F59C997EDC0CCD2E2B
SKI 687403F885CA8D5450571D16E0C8DE450DABCD2D
AAA Certificate Services (root)
SHA-256 D7A7A0FB5D7E2731D771E9484EBCDEF71D5F0C3E0A2948782BC83EE0EA699EF4
Serial 01
SKI A0110A233E96F107ECE2AF29EF82A57FD030A4B4
emSign ECC Root CA - G3 (root)
SHA-256 86A1ECBA089C4A8D3BBE2734C612BA341D813E043CF9E8A862CD5C57A36BBE6B
Serial 3CF607A968700EDA8B84
SKI 7C5D028413D4CC8A9B81CE171C2E291E9C486342
Fonts
- eMudhra compromís de CA intermedi: lloc de divulgació, llista de certificats, hosts de prova i versions parchejades
- Mozilla Bugzilla 2083449: informe d'incident i causa arrel
- Fleet: troba i arregla les botigues de confiança que el teu navegador no cobreix: detecció, scripts de remediació i resultats de laboratori
- Google i Mozilla: resposta del navegador
- Documentació CLI de Node.js i Go crypto/x509: com cada entorn executa escull les seves arrels
Consells i Millors Pràctiques
- Deixa el paquet de l'agent a Factorial IT. No l'editis ni el restauris. Els scripts ja l'ometen un cop està net.
- Comença amb un grup pilot. Executa cada script en un grapat de dispositius, llegeix la sortida, i després desplega a tots els dispositius.
- Manten el sistema operatiu actualitzat. Els navegadors i aplicacions que verifiquen a través del sistema operatiu només són segurs un cop s'instal·la l'actualització d'Apple o Microsoft.
-
No oblidis els entorns d'execució i les imatges. Node.js, Electron, binaris de Go,
certifi, i imatges de contenidors es mantenen exposades fins i tot en un dispositiu parchejat. Actualitza'ls i reconstruïx-los. -
Comprova de nou després de les actualitzacions de macOS. Una actualització pot restaurar
/etc/ssl/cert.pem, així que executa l'informe de macOS després de cada una. - Reinicia serveis en servidors Linux. La majoria d'eines llegeixen el paquet CA només a l'inici.
-
Tracta un intermedi trobat en un dispositiu com un incident. Una fila
compromised_intermediate_presentsignifica que algú o alguna cosa ha posat aquest certificat allà.
Solució de Problemes i FAQ
Solució de Problemes
-
El script de Windows de Fleet falla amb
ScriptContainedMaliciousContent. Microsoft Defender l'ha bloquejat, perquè el script conté els certificats compromesos. Executa el script de Factorial IT per Windows en el seu lloc, o connecta el dispositiu en línia i aixeca la Política de Grup nomenada a la filactl_autoupdate_policy. -
El script de Factorial IT per Windows surt amb
2. Alguns certificats no es van poder descarregar. Llegeix les líniesWARNi comprova que el dispositiu pugui accedir acrt.sh. -
El script de macOS surt amb
0peròhomebrew_ca_certificatesencara hi és. Homebrew es va ometre, normalment perquè no s'ha acceptat la llicència d'Xcode. Executasudo xcodebuild -license acceptal Mac i torna a executar el script. -
Una fila
fleetd_osquery_ca_bundlees manté després d'un dia complet en línia. Envia un correu electrònic a support@factorial.it amb el nom del dispositiu. - Una política de Fleet continua fallant en un dispositiu. El script es va negar a canviar el paquet de l'agent. La seva sortida explica per què.
-
El informe de Windows mostra
NOT_SYNCEDoBLOCK_WILL_NOT_ARRIVE. El bloqueig de Microsoft no ha arribat al dispositiu: està desconectat, només utilitza WSUS, o una Política de Grup atura l'actualització automàtica. Executa el script de remediació, o arregla la causa. -
El informe de macOS mostra
STALE_NO_APPLE_BLOCK. El Mac no ha rebut el bloqueig d'Apple. Probablement està desconectat o no pot accedir als servidors d'actualització d'Apple. -
Un host de prova torna
200. Aquest client encara confia en la cadena falsificada. Comprova quina botiga de confiança utilitza i arregla-ho amb els passos anteriors.
FAQ
-
Necessito fer alguna cosa per l'agent de Factorial IT?
No. Factorial IT elimina ambdós arrels del paquet de l'agent en cada dispositiu inscrit, i els nous paquets d'inscripció arriben sense ells.
-
Els meus dispositius estan actualitzats. Estic segur?
Els navegadors i aplicacions que verifiquen a través del sistema operatiu ho són. Les eines de línia de comandes en macOS, el paquet del sistema Linux, Node.js, Electron,certifi, binaris de Go en Linux, i imatges de contenidors no ho són, fins que els arreglis.
-
Podrien els meus usuaris haver estat atacats a través dels seus navegadors?
No a través de navegadors que imposen la Transparència de Certificats: cap certificat TLS d'aquests intermedis apareix en els registres CT. Un atacant també hauria d'estar en la ruta de xarxa.
-
Estan en risc els paquets instal·lats amb
aptodnf?
No. Estan signats amb GPG.
-
És segur executar els scripts de remediació dues vegades?
Sí. Mantenen una còpia de seguretat*.pre-emudhrade cada fitxer que canvien, així que també pots fer una reversió.
-
Per què les files
root_in_keychainiroot_in_cert_storees mantenen després de la solució?
Són només de context. Apple i Microsoft mantenen ambdues arrels en cada dispositiu i bloquegen els intermedis en el seu lloc.
-
Reiniciarà l'agent personalitzat o esborrarà dispositius?
No. Mai restaura una còpia de seguretat, bloqueja, esborrarà o reiniciarà un dispositiu, i espera l'aprovació d'un administrador abans de cada etapa.
-
Què passa amb el kit de remediació quan la feina està feta?
Es manté al seu lloc. L'agent tanca el seu tiquet i t'informa que es pot aturar.