Jde o to, ze CTRL+ALT+DEL ve woknach odchytava primo kernel, a zadna aplikace nemuze na stisk techto klaves reagovat. Smyslem toho celeho je, aby nikdo nemohl vytvorit aplikaci, ktera se bude tvarit jako prihlasovaci obrazovka a bude zachytavat hesla.
PS:
Na druhou stranu ale by takova aplikace mohla cekat jen na "CTRL+ALT" a ten DEL si muze domystet. Kdysi davno jsme meli jeden server s NT 4.0, a jen pouhou nahodou jsme nasli v adresari system32 textovy soubour, ve kterem bylo heslo na administratora v plaintextu. I kdyz jsme ten server projeli ruznymi anti-virotvymi programy, preinstalovali jsme service-pack, tak stejne po kazde zmeni hesla se v tom txt souboru objevilo aktualizovane heslo. Nakonec jsme museli cely server preinstalovat. Takze zpusoby jak to cele objejit tu urcite jsou.
A co, ze to odhadnes? Jak zmacken DEL, tak se vyhodi systemove okno, cili to stejne neochcis. No, ikdyz je fakt ze keyboard hook tohle myslim normalne odchyti .... jediny rozdil je secure environment treba u UAC, tam skutecne zadny hook nefunguje.
Pokud NT4.0, tak je mozne, ze tohle tam nefungovalo, navic zcela samozrejme, pokud to odchytavas keyloggerem pred startem systemu nebo proste rootkitem, tak je vcelku jasne, ze to bude fungovat at se budes snazit sebevic neco detekovat.
Nezabudnem na to keď na jednom kvm boli Windows servery a Linux stroje. Prišiel šéf ku konzole v očakávaní že zatiaľ čo sa monitor zobudí zo sleepu tak odomkne svoj obľúbený Windows server a naslepo a prihlási sa. Nuž a ako to býva zvykom, tak restartol iný produkcny Linux server :-)
Na WIndows XP tuhle událost kernel pouštěl do okna s názvem SAS Windows vlastněného procesem winlobogn.exe (nebo možná logongui.exe, něco na ten způsob). Takže pokud jste chtěli tuto kombinaci zachytit (a měli k tomu dost práv), dalo se toto okno "zahookovat".
Na vyšších než XP jsem netestoval, ale myslím, že princip SAS okna tam zůstal.
Nevím, jak DirectX, ale low level keyboard hook (WH_KEYBOARD_LL) tuto zkratku není schopen zachytit (a to se také nachází dost nízko).
> winlogon.exe. Je to tak i na novějších verzích Windows, ale winlogon hooky už nefungují a to okno běží na vlastní privilegované ploše, kam se nic bez podpisu MS nedostane. (Ale pořád si můžete napsat vlastní backend pro ověření hesla a Windows vám jej ochotně předají.)
Na ten desktop winlogonu jsem měl problém dostat se i v XP, ale to se dalo obejít injekcí kódu přímo do toho procesu.
Vlastní ověření samozřejmě bude fungovat.
Zrovna zde bych se koncepce Microsoftu zastal. Z hlediska bezpečnosti je kritické, aby nebylo možné vytvořit běžnou uživatelskou aplikaci, kterou si někdo na desktopu pustí a přitom aplikace budí dojem, je nerozpoznatelná od skutečného přihlašovacího dialogu.
Pokud k takto sdílenému počítači, terminálu s puštěným falešným přihlašovacím dialogem přijde jiný uživatel, tak je vyplní přihlašovací údaje včetně hesla, odešle, falešný dialog bežící pod jiným uživatelem ho sice nepřihlásí (nemá k tomu oprávnění založit session), ale zaloguje na konto útočníka přihlašovací údaje. Ale pokud dokáže rychle ukončit session a poté naběhne normální přihlašovací okno, tak třeba podvedený uživatel jen nabude dojmu, že se přepsal v heslu.
Pro přechod do přihlašovacího dialogu, kdy se zapisují citlivé údaje, je tedy potřeba nastavit mechanizmus, který nemůže útočník, korektně přihlášený uživatel emulovat.
https://en.wikipedia.org/wiki/Secure_attention_key
Například Trinity Desktop Environment (TDE) nabízí možnost zapnout Secure Attention Key, kdy jsou veškeré event device (klávesnice atd.) filtrované démonem běžícím pod systémovým uživatelem a teprve pak jsou posílané do běžící X session uživatele. Tím je zajištěné, že stisk 'ctrl+alt+del' nelze v běžné aplikaci odchytit/je již zpracovaná démonem a ten provede ukončení session a vynucení zobrazení pravého přihlašovacího dialogu. Přitom zkratka by měla být taková, aby se nekryla s ničím v jiných aplikacích a zároveň nebyla vyvolaná omylem. Minimálně pokud násilně session ukončuje. Pokud přes nějakou vrstvu, třeba virtualizaci vytvoří overlay dialog s dotazem na ukončení session, tak volba složitosti není tak kritická.
Tolik teorie, mě třeba na Trinity SAK daemon v některých případech nechodil dobře, X session pak nechodila správně s mým nastavení přepínání češtiny a idikací na LED atd. Takže mám na svém notebooku a jiných počítačích SAK volbu zakázanou. Ale obecně je správný princip a na Windows předpokládám, že je zadrátovaný do systému a odladěný, takže chodit bude spolehlivě.
Jádro Linuxu tento problém řeší i pro textové konzole
https://www.kernel.org/doc/Documentation/SAK.txt
Jak jsou na tom jiná, majoritní desktopová prostředí (KDE, Gnome atd.) nevím, očekávám, že enterprise verze KDE tuto vlastnost mají. Naopak prostředí/systémy, které jí nenabízí mohou být (oprávněně) z výběrových řízení do státní zprávy i při výběru do firem vyřazené. Alternativou jsou RSA tokeny ale i u nich by měla být autentizace dvoufaktorová a zadávání hesla je přirozená volba.
Takže ač si myslím, že Bill Gates nikdy nebyl dobrý programátor a systémový architekt, tak tato volba byla správná. Přitom i ta kombinace, kterou uživatelé a programátoři znali a nikdy by jí do aplikace jako validní zkratku nedali (způsobovala reset počítače), byla zvolená dobře. Vybrat takové Winkey + ALT nebo něco podobného, co se snadněji vyvolává, by to byla celkem otrava s množstvím omylem vyvolaných dialogů pro ukončení sezení.
Jednoho „Otce Internetu“ se podařilo vyrobit i u nás doma, v České republice. Možná se ještě pamatujete, jak koncem loňského roku zavítal do Prahy sám šéf Microsoftu Bill Gates. Událost to byla natolik významná, že se jí věnovala i Česká televize. Ta o návštěvě natočila reportáž, kterou odvysílala 5. prosince 2001 v Událostech na ČT1, a v ní neváhala označit Billa Gatese přímo za otce Internetu.
To si nenechal líbit pan Petr Nachtman, který se dožadoval u ČT vysvětlení a opravy, a svou relevantní korespondenci s televizí zveřejnil mj. na Neviditelném psu. Zde je malá ukázka odpovědi autora reportáže, redaktora J.F.Potužníka:
" … vězte, že obecný termín „duchovní otec“, který Česká televize přiřkla Billu Gatesovi, není ani projevem servility, ani nedbalé přípravy faktů. Jako autor rozhovoru s Billem Gatesem jsem se tímto titulem snažil ve zkratce říci, že na současném stavu Internetu – na jeho rozšíření a dostupnosti – má náš host zjevnou zásluhu (a to je myslím vzhledem k jeho osobní roli i významu produktů Microsoftu nepochybné)."
Šlo hlavně o to, že MS aktivně protlačoval svuj "internet", totiž MSN ( https://en.wikipedia.org/wiki/MSN_Dial-up#Early_history ) a přístup na opravdový internet komplikoval.
Zbohatl proto, že je to výborný obchodník a manažer. Několikrát byl ve správný čas na správném místě a uměl slíbit tu správnou věc. A pak ji uměl sehnat.
Jeho programátorské dovednosti s jeho úspěchem nijak nesouvisí. Ale i v těch byl dost nadprůměrný. Dokázal vymyslet, navrhnout a zprogramovat řadu věcí. Například ve dvou lidech navrhli programovací jazyk a zprogramovali překladač (v assembleru). A dostali to k platícím zákazníkům. Také to je vědec, už na univerzitě dostal několik ocenění za výzkum algoritmizace. Prostě uměl od všeho dost na to, aby dokázal vytvořit kompletní produkt. A bohatý je proto, že ten produkt uměl prodat.
Dnes máte obor plný úzkých specialistů, kteří sólo nezvládnou ani Tetris. Jejich znalosti algoritmizace jsou na úrovni "Ó en jakej kvádr? Šak to zkusim pustit a uvidim, zda to doběhne, ne?" A schopnost navrhnout a zprogramovat překladač jazyka bagatelizují tím, že dnes si přece můžou stáhnout gramatiku z internetu a o zbytek se postará Antlr. Představa, že by dokázali sami napsat aplikaci, co zpracovává nějaké soubory a má komplexní uživatelské rozhraní (spreadsheet, emailový klient atd.), je dost naivní. Vrcholem jejich dovednosti je připsat nový formulář do existující aplikace. Bez šablony nedokáží vyřešit ani takovou věc, jak třebas udělat, aby se ten program na Alt+F4 zeptal, zda se má uložit rozdělaná práce. No, spíš je ani nenapadne, že by to řešit měli. Ale to jim nebrání se otírat o člověka, který s mizernými nástroji udělal za pár let více práce, než oni s dobrými nástroji za celou karieru.
Ehm :-)
In his second year, Gates devised an algorithm for pancake sorting as a solution to one of a series of unsolved problems[36] presented in a combinatorics class by Harry Lewis, one of his professors. Gates' solution held the record as the fastest version for over thirty years;[36][37] its successor is faster by only one percent.[36] His solution was later formalized in a published paper in collaboration with Harvard computer scientist Christos Papadimitriou.[38]
On toho za ty dva roky zvládl docela dost.
Ovsem on ukradl i tento algoritmus. Gatesovi byli celkem bohati lide, takze meli kucharku. Jeho otec byl pedant a vyzadoval, aby livance byly vzdy serazeny podle velikosti. Maly Bill casto pobyval v kuchyni, kdyz kucharka smazila livance. Sedel u stolu, zral extra livance, ktere na te dobromyslne zene vyskenral a pozoroval, jak radi livance podle velikosti. Kucharka za ta leta vyvinula postup razeni livancu pomoci podberky, protoze jinak by se z razeni livancu pro dva dospele a tri haranty zblaznila. Bill pak jen prepsal do programu postup, ktery od ni odkoukal.
A niekedy ked on nebol na tom spravnom mieste tak tam bola jeho mamicka ;-).
https://en.wikipedia.org/wiki/Mary_Maxwell_Gates
In 1980, she discussed her son's company with John Opel, a fellow committee member and the chairman of International Business Machines Corporation (IBM).
No vidíš, a když na to přimontuješ mobil tak máš multifunkční selfie tyč a můžeš jít trénovat scénu z Titaniku :-P