Muze byt na LPC sbernici https://en.wikipedia.org/wiki/Low_Pin_Count , a vubec mohl by treba zlikvidovat originalni BIOS a misto toho podvrhavat neco vlastniho, nebo jen do adresniho prostoru neco strkat. Napada mne spousta moznosti toho co delat s 6ti (VCC+GND+4IO) nohami .
LPC ma minimalne 7 signalovych vodicu. Pokud ma sbernice 4 signaly, uz to neni LPC; LPC ma 4 datove signaly (LAD[3:0]), teoreticky by jste mohl orezat LPC na jediny datovy signal, pak by stacili 4 signaly, ale to uz neni LPC ale jina sbernice. Teoreticky Vam staci jen jeden jediny signalovy vodic pro obousmernou vyjmenu dat (treba iWire, debugWire).
A jsou dve moznosti, bud ten chip pouziva standartni seriovou sbernici, nebo ma sbernici vlastni, v tom pripade by ale musel byt upraveny jeste jiny chip, ke kteremu by se pripojoval.
Ano, ja vim. Ale pokud tam chci jen strcit nejaka data do urciteho mista pri bootu, principielne mi myslim staci ty 4 datove, udelam si nejakou logiku, ktera mi detekuje start mista kdy mam podstrkavat, a na zbytek se muzu vykaslat. Je to takovy quick-n-dirty hack pro konkretni ucel, ale fungovat to muze.
Stejne tak u falsovani SPI nepotrebuju SCK, to si muzu dopocitat (docasovat) z MISO/MOSI.
Spi má signály MISO, MOSI, SCK, SS. Napojíš se na to s tím, že SCK jako zdroj hodin si prostě odbočíš, SS monitoruješ kvůli synchronizaci, MOSI kvůli adrese a příkazům. MISO (data do masteru) přerušíš multiplexerem (původní data/vlastní data) a je to připojeno. S napájením jsi na sedmi drátech.
V SPI FLASH je například UEFI. Nějaký malý procák, který přechroupe při prvním bootu data a uloží si do EEPROM konfiguraci, při druhým bootu něco podstrčí podle toho, co posledně našel... pokud nechá výrobce desku po dovozu z Číny zahořet v serveru s finálním OS a pak to vypne, je to při prvním startu ready.
UEFI umí bootovat i ze sítě apod., jde jenom o to, jakou má zapsanou konfiguraci.
A na co se zaměřit, pokud se při bootu dostanu k natahování systému? Programy si žádají služby systému tak, že nastaví parametry do registrů a zavolají SW přerušení. Stačí si příslušný vektor poslat do své rutiny, tam mít switch na volání, co tě zajímají a zbytek předávat původní rutině. A je jednoznačně dokumentovaný, co program chce a co znamenají hodnoty v registrech. Takže kdybych to měl dělat, půjdu nejspíš tímhle směrem.
Ten clanek je divny. Pokud se najeky chip skutecne nasel, precenuji se jeho moznosti. Pokud se chip skutecne nasel bude to mit pro fy Supermicro fatalni nasledky. Muze se jednat o snahu ovlivnit americke firmy, aby preferovaly HW made in USA. Bloombergu se zameruje na bussines lidi, ne na techniky a hackery. Dokud mi nejaky hacker nepopise detaily tohoto zazracneho chipu a zpusob utoku, tam jsem velmi rezervovany... Uvedomte si, co se stalo, kdyz cinska firma dodala nepovolene technologie na stredni vychod, nasledovalo embargo, ktere bylo likvidacni. Pokud by dodavatel HW dodaval onen zazracny chip ve svych serverech, ocekavam brutalni protiakci ze strany USA, treba embargo na USA technologie pro firmu Supermicro, nebo aspon zakaz dodavat do USA...
Tento clanek take napsal skeptik:
https://www.theregister.co.uk/2018/10/04/supermicro_bloomberg/
> Tento clanek take napsal skeptik:
> https://www.theregister.co.uk/2018/10/04/supermicro_bloomberg/
>
Souhlas, taky jsem ho ráno četl, a pokládám ho za hodně dobrý (včetně diskuse).
Co jsem se zatím nikde nedočetl:
U prostého onboard AMT je BIOS i ME firmware (ME je built-in BMC uvnitř CPU) uložen ve společné SPI flashce. Pokud by ten přídavný čip rozuměl SPI protokolu, a uměl podstrčit svůj vlastní ME firmware (nebo jeho část) tak je vymalováno. Rozhodně už existují nějaké informace / některým lidem se povedlo starší intelí ME Firmware rozbalit a částečně dekompilovat. Mimochodem ten podstrčený čip by musel umět taky přepočítat kontrolní součty, které se v EEPROMce vyskytují a úpravou ME firmwaru by se změnily.
Nebo je v postižených strojích stand-alone BMC, takže ten čip byl vsunutý na SPI vedoucí mezi BMC MCU a jeho EEPROMkou s firmwarem. Akorát že stand-alone BMC je vlastně jenom KVM over IP = IMO patrně nemá přístup do celého paměťového prostoru hostitele (na rozdíl od Intelího on-chip ME). Pravda je, že i stand-alone BMC umožňuje vzdálený přístup na klávesnici, myš a grafiku - což by ale vzbudilo pozornost.
Nejsem si jistý, jestli stand-alone onboard BMC, který poskytuje stroji PCI VGA, má či nemá neomezený bus-mastering přístup na jeho PCI, a pokud ano, tak zda má taky bianco DMA přístup do celého rozsahu hostitelské RAM. Domnívám se, že to jsou dost vachrlaté předpoklady.
No a pak ještě BMC (stand-alone i integrovaný) může používat sideband komunikační kanál k síťovce, na které parazituje. Matně si vybavuju, že tenhle kanál býval taky I2C nebo SPI. Ale přijde mi, že hákovat přístup k síťovce je dost k ničemu, přístup do hostitelského systému touto cestou je dost nepravděpodobný, navíc by ten záškodnický čip musel obsahovat už dost pokročilý OS (protože IP stack) = zjevně hloupost.
Ale jak píšou na TheRegisteru... bůhví kde přesně je pravda. O co šlo doopravdy. Nabízí se spojité spektrum hypotéz.