Door Anoniem: Door Anoniem: Door Anoniem:
Denk je écht dat er bij Cisco mensen bewuste keuzes gemaakt hebben om zo'n makkelijke root-backdoor in hun applicatie te zetten?
Ja, dat denk ik wel. Het lijkt me sterk dat je zo'n key er per ongeluk instopt. En aangezien het nou niet bepaald de eerste keer is dat er zoiets bij Cisco gevonden is, en Amerikaanse bedrijven in het geheim moeten doen wat de staat hen opdraagt middels national security letters (https://en.wikipedia.org/wiki/National_security_letter) kunnen we hier gerust van een Amerikaanse backdoor spreken.
Dat lijkt me behoorlijk onwaarschijnlijk. Er is hier niet alleen een publieke sleutel in de firmware aanwezig, maar ook een privésleutel die aanvallers eruit kunnen vissen en die dus onversleuteld is. Als bijvoorbeeld de NSA een SSH-backdoor die met een sleutel werkt zou laten verspreiden dan hadden ze hun privésleutel angstvallig voor zich gehouden en die beslist niet onversleuteld aan Cisco geleverd.
Inderdaad - NSA wil wel graag toegang, maar volgens 'NOBUS' - Nobody But Us. De Dual-EC-DRBG rng-met-onbewijsbare-backdoor is een voorbeeld.
Wat me veel waarschijnlijker lijkt is dat ergens tijdens het testen van die firmware iemand voor zichzelf heeft geregeld dat bepaalde handelingen minder omslachtig konden worden uitgevoerd door een sleutelpaar daarvoor te genereren en de privésleutel niet met een wachtwoord te beschermen. En die heeft vervolgens straal vergeten dat weer weg te halen, of werd op een ongelukkig moment ziek of zo. Het is er niet per ongeluk op geplaatst maar het is per ongeluk blijven staan. En de QA-procedures van Cisco hebben deze ongewenste vervuiling dan duidelijk niet afgevangen.
De meer high-end Cisco devices hebben qua software architectuur hebben een hypervisor of (Linux)kernel op de bare metal, waarbinnen het 'OS' (NX OS, of IOS-XE ) draait dat de routing/switch protocollen praat, de forwarding via drivers in de hardware zet, en het "normale" management doet (ssh, telnet, snmp etc).
Het "OS" waarop de netwerk engineer inlogt is dus een proces of guest binnen de kernel. Maar toegang tot het onderliggende Linux OS vanuit dit proces is mogelijk (en nodig) soms - eventueel verstopt als commando's binnen NX-OS/IOS .
En dan wordt het opeens logisch om een ssh authorized key op het onderliggende systeem te hebben, en ook de bijbehorende private key 'beschikbaar' - als het normale gebruik is om vanuit de guest bv iets te doen met firmware images die feitelijk leven in de omgeving van de onderliggende kernel .
En in dat type toegang zal dan niet voldoende afgeschermd zijn op IPv6 .
(zie op
https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/6-x/troubleshooting/guide/b_Cisco_Nexus_9000_Series_NX-OS_Troubleshooting_Guide/b_Cisco_Standalone_Series_NX-OS_Troubleshooting_Guide_chapter_01100.html#concept_F35E820F7A104C169415B7A795FCC68C https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/7-x/programmability/guide/b_Cisco_Nexus_9000_Series_NX-OS_Programmability_Guide_7x/Overview.htmlDus ja, ernstige bug, en failure bij review/QA, maar geen harde aanwijzing "dit doe je alleen maar als je een remote backdoor wilt aanbrengen" - want de keuze voor SSH als connectie /communicatie protocol tussen (guest) processen en een host OS is wel logisch.
Oja - natuurlijk zijn er allerlei HA/Cluster opties , dus 'alleen binden aan localhost' is ook geen simpel antwoord.
De aanwezigheid van een SSH authorized key + private key hoeft dus niet eens een 'vergeten uit te zetten' development optie te zijn maar kan een vrij logische keuze zijn voor platform software met dit design, waarbij alleen het niet hard genoeg afschermen van de toegang de bug is.