Misure di sicurezza del kernel. Non so molto sul modello di sicurezza della memoria di Windows, perché non uso Windows e non mi interessa, ma ti scommetto tutto ciò che ci sono parti di memoria che non ti è permesso modificare, no importa cosa Mai. Anche come amministratore.
Perché?
Ecco tre motivi per cui mi viene in mente:
- Ti impedisce di danneggiare accidentalmente parte del sistema - in altre parole, è una cosa dell'esperienza utente
- Protezione contro malware
- DRM
Quest'ultima è una motivazione speciale per Microsoft. Microsoft spedisce i prodotti DRM in Windows a cui i publisher di contenuti si affidano per "proteggere" i loro media (ho messo le virgolette tra virgolette perché DRM fa un lavoro molto discutibile di quello). Microsoft guadagna i loro sistemi DRM; quindi, sono finanziariamente motivati a mantenere i loro sistemi DRM robusti (più è robusto un sistema DRM, più difficile da rompere).
Ora, il DRM sarebbe estremamente facile da interrompere se l'utente fosse in grado di caricare qualsiasi cosa nel proprio computer, ovunque, perché caricheranno semplicemente una DLL nell'applicazione multimediale che viene indirizzata e riverseranno i dati decrittografati su disco. Pertanto *, gli sviluppatori del kernel di Windows avranno implementato la protezione della memoria , che impedisce alle applicazioni di modificare alcune parti della memoria. La mia ipotesi è che almeno il kernel si contrassegni come memoria protetta (altrimenti si riuscirebbe ad aggirare le protezioni della memoria su altre parti del sistema), insieme al contenuto protetto da DRM.
Va bene. Ma come?
Questa è una semplificazione, ma in sostanza, un kernel del sistema operativo è un ponte tra il software nell'hardware. Ogni volta che un programma vuole fare qualcosa che sia collegato in remoto all'hardware, che si tratti di parlare con un bus USB o di accedere ai dischi o allocare memoria, è necessario passare attraverso il kernel. Pertanto, il kernel può includere la logica su quale memoria è "legale" allocare o accedere e cosa no. E se un'applicazione tenta di modificare lo spazio degli indirizzi di un'altra applicazione che viene caricata nella memoria protetta, l'applicazione di modifica riceverà un errore dal kernel che gli dice che ciò che ha appena tentato di fare non è permesso.
* Questa non è l'unica ragione per implementare la protezione della memoria. Qualsiasi sistema operativo che afferma di essere sicuro ma senza protezione della memoria è stato implementato da idioti, incompetenti o, più probabilmente, entrambi. Ho scelto di concentrarmi sull'aspetto DRM in questo caso.