drošība · 6 min · 26.07.2026

Hanwha kameras programmaparatūrā atrasts GitHub žetons ar admina tiesībām uz simtiem repozitoriju

Drošības pētnieks 24. jūlijā publicēja Hanwha Vision novērošanas kameras programmaparatūras analīzi. Kameras tīmekļa saskarnes failos viņš atrada GitHub piekļuves žetonu ar administratora tiesībām uz simtiem repozitoriju Hanwha organizācijā. Žetons atkārtojās aptuveni 30 failos.

Tie ir tie paši faili, ko pārlūkprogramma lejupielādē brīdī, kad kameras administrators atver pieteikšanās lapu. Pētnieks nosūtīja īsu ziņojumu uz Hanwha drošības e-pasta adresi. Apstiprinājums par žetona atsaukšanu pienāca 12 stundu laikā.

Divi šifrēšanas slāņi un viens obfuscēts binārs

Programmaparatūru katram kameras modelim Hanwha publicē atklāti. Iekšpusē pētnieks atrada failu fwimage.tgz, ko binwalk atzīmēja kā šifrētu. Ārējo slāni izdevās atvērt ar paroli, kas sastāv no burtiem HTW plus modeļa numura, tātad HTWXNP-9300RW. Šo shēmu 2025. gada jūnijā aprakstīja Matt Brown, reversējot XNF-8010RW programmaparatūru ar IDA Pro. Brown toreiz izņēma NAND mikroshēmu no plates un atrada binārā iekodētu virkni zeppelin, no kuras tiek atvasinātas modeļu paroles.

Šoreiz iekšā bija vēl viens fwimage.tgz ar citu šifrēšanas shēmu. Atbildi deva binārais fails fwupgrader no ārējā arhīva. AES atslēga tajā ir XOR operācijā ar nelielu statisku tabulu un tiek salikta kopā izpildes laikā. Inicializācijas vektors glabājas atklātā tekstā. Pats fwupgrader izsauc openssl komandrindas rīku. Arī komandas fragmenti ir obfuscēti tāpat.

Atjaunotā komanda izskatās šādi:

openssl enc -md sha256 -aes-256-cbc -d -K <KEY> -iv <IV> -in <INPUT> -out <OUTPUT>

Atslēga un inicializācijas vektors ir iekodēti binārajā failā. Tie ir vienādi visai modeļu līnijai, tāpēc pētnieks abus publicēja sava raksta tekstā.

Vite ierakstīja visu CI vidi klienta pusē

Ar atšifrētu rootfs pētnieks palaida trufflehog. Rezultāts bija GitHub žetons, kas atkārtojās aptuveni 30 failos. Cēlonis ir tas, kā tiek būvēta kameras saskarne: būvēšanā izmantots Vite. Viena mainīgā vērtība tajā tiek iestatīta uz visu process.env saturu. Tas nozīmē, ka CI darba vides mainīgie nonāk klienta kodā, ko nolasa pārlūks.

Failos redzams objekts ar ierakstiem DATAPORT: "9090", GIT_LFS_SKIP_SMUDGE: "1", KUBERNETES_SERVICE_PORT_HTTPS: "443", npm_config_userconfig: "/home/docker/.npmrc" un GITHUB_NPM_TOKEN ar žetonu, kas sākas ar ghp_.

Man šo kameru nav, ko pārbaudīt, bet, manuprāt, tas nozīmē, ka ikviens, kurš atvēris šo kameru administratora saskarni, visticamāk ir saņēmis šo GitHub žetonu pa tīklu.

Tā raksta pētnieks. Viņš pieļauj arī otru variantu, ka faili palika tikai kameras diskā un pārlūkam netika sūtīti. Pārbaudīt to viņš nevarēja, jo fiziskas kameras rokās nebija.

500 programmaparatūras, trīs ar žetonu

Lai saprastu, vai atradums nav vienreizējs, pētnieks nokopēja no Hanwha vietnes visas programmaparatūras, ko izdevās atrast. Sanāca ap 500 failu, kaut gan modeļu sarakstā bija vairāk nekā 600 kameru. Ar aprakstīto metodi atšifrēt izdevās 62 % no tiem. GitHub žetons bija trijos failos. Visos trijos tas bija viens un tas pats žetons.

Pārējie faili ar šo pieeju nepadevās. Kāpēc tieši šie trīs, raksta autors neskaidro.

Aizsardzības departamenta adreses CI mainīgajos

Tajā pašā vides mainīgo blāķī bija arī IP adreses no diapazona, kas piešķirts ASV Aizsardzības departamentam: SWARM_MASTER_NFS_ADDRESS ar 55.101.212.23, OTEL_ELASTIC_URL ar adresi http://55.101.212.21:5601 un CIMIP ar 55.101.211.213.

Skaidrojumu pētnieks pats atzīmē kā minējumu. Hanwha Vision agrāk sauca Samsung Techwin. Tas ir Hanwha Group meitas uzņēmums. Grupā ietilpst arī Hanwha Aerospace un Hanwha Defense USA. Viena versija ir kopīga CI platforma vairākiem grupas uzņēmumiem. Otra ir tā, ka kāda komanda iekšējiem servisiem paņēmusi svešu publisko IP diapazonu, pieņemot, ka ar to nekad nesaskarsies.

Iepriekšējā reize bija pirms gada

2025. gadā pēc Brown publikācijām Hanwha Vision izplatīja paziņojumu par programmaparatūras atšifrēšanas atslēgu atklāšanu. Uzņēmums tajā norādīja, ka par drošības pārkāpumiem vai nopietnām datu noplūdēm saistībā ar šiem kameru produktiem nav ziņots. Problēma esot ierobežota ar Wisenet 5 bāzētajām X un T sērijām, Wisenet Q sēriju, Wisenet A sēriju un vecākām PNM daudzsensoru kamerām. Uzņēmums arī uzsvēra, ka modificētu programmaparatūru nevar uzstādīt bez ierīces paroles.

Šoreiz situācija ir citāda. Atšifrēšanas atslēga pati par sevi ļauj apskatīt programmaparatūras saturu, taču kameras pārņemšanai joprojām vajag ierīces paroli. GitHub žetons ar administratora tiesībām uz simtiem repozitoriju dod rakstīšanas piekļuvi kodam, no kura tiek būvētas nākamās programmaparatūras versijas.

Kļūda pati ir triviāla. Tā atkārtojas visur, kur būvēšanas rīks tiek palaists ar pilnu CI vidi. Vite ģenerētajā kodā aizstāj process.env ar burtisku objektu, tāpēc viss, kas tajā brīdī atrodas vidē, ieceļo failā, ko saņem katrs saskarnes lietotājs. Pieejamā atbilde ir norādīt konkrētus mainīgos ar define vai envPrefix, nevis izmest visu vidi.

Žetons ir atsaukts. AES atslēga un inicializācijas vektors, kas atver XNP-9300RW līnijas programmaparatūru, tagad ir publiski pieejami pētnieka rakstā. Programmaparatūras failus Hanwha vietnē joprojām var lejupielādēt bez konta.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no drošībasaistītie