SlideShare a Scribd company logo
1 of 26
Download to read offline
3. MECANISMUL PROTEC IEI
3.1. Tipuri de protec ii

Tipuri de protec ii:
controlul tipurilor de informa ii
•
protec ia inter-proces (între utilizatori)
•
protec ia intra-proces (între softul de sistem i cel de aplica ii)
•
ş

Tipuri de mecanisme de protec ie:
protec ia intrinsec gestion rii memoriei
•
privilegiile multi-nivel
•
ă

ă

Algoritm de lucru:
→

se semnaleaz “violarea protec iei” →
ă

→ se genereaz o întrerupere soft dedicat

→

ă

ă

→ se ini iaz o procedur de r spuns adecvat
ă

ă

ă

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

ă

verificare “on chip”

1
Segment: “cuanta” de memorie cu atribute de protec ie precizate
•segmentare ← modularizare programe
•atributul de arhitectur pentru un segment este un SELECTOR
ă

•între SELECTOR i segmentul vizat este un DESCRIPTOR
ş

DESCRIPTOR-ul permite:
rezervarea unei zone de memorie pentru segment
definirea dimensiunii segmentului în func ie de cantitatea de informa ii care trebuie stocat
restric ionarea accesului în segment

ă

Proces:
•execu ia a unul sau mai multe programe
•nivelul de privilegiu este dinamic (dup programul în curs de rulare)
ă

•atribute: spa iul adreselor, utilizarea registrelor, stiv , date
ă

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

2
3.2. Protec ia rezultat din gestionarea memoriei
ă

Separarea spa iului adreselor în:
•adrese globale – TI = 0
•adrese locale – TI = 1

Utilizarea tabelelor de descriptori – GDT i LDT
ş

Delimitarea segmentelor de lucru – BAZA i LIMITA
ş

Alocarea de propriet i segmentelor de lucru – ACCES; se impun constrângeri de utilizare
ă

Definirea cuantei de informa ie (granularitatea) i a compatibilit ii cu alte procesoare –
ALTE_PROPRIET I
ă

ş

Ă

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

3
1. Verific ri la înc rcarea selectorului:
ă

ă

1.A – Verificarea tipului de segment relativ la registrul segment folosit; câmpuri implicate: S, P/D, ED
1.B – Verificarea existen ei descriptorului pentru segmentul vizat; câmpuri implicate: ACCES
1.C – Verificarea dac segmentul vizat este în memoria intern ; câmpuri implicate: P
ă

ă

1.D – Verificarea respect rii regulilor nivelelor de privilegii; câmpuri implicate: DPL, C
ă

2. Verific ri la înc rcarea descriptorului în registrul cache:
ă

ă

2.A – Verificarea dac sunt respectate limitele segmentului; câmpuri implicate: LIMITA, ED
ă

2.B – Verificarea dac segmentul este folosit conform atributelor din octetul ACCES; câmpuri
implicate: W, R
ă

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

4
Observa ii:

GDT nu poate fi accesat de c tre oricare utilizator – mecanism suplimentar de protec ie; ea con ine
informa ii despre LDT i deci impune configura ia segmentelor de sistem i, implicit, a segmentelor
de lucru
ă

ă

ş

ş

GDT i LDT au, de regul , dimensiuni fixate indiferent de evolu ia num rului de segmente de lucru
pentru un program: ACCES = 00H – „descriptor nul”
ă

ă

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

5

ş
3.3. Protec ia rezultat din mecanismul privilegiilor multi-nivel
ă

Nivelele de protec ie
nivel 0 –

cel mai privilegiat; con ine nucleul sistemului de operare:
gestionarea memoriei, multiprocesarea, controlul resurselor I/O;

nivel 1 –

restul sistemului de operare;

nivel 2 –

soft dedicat i supervizor sistem;

nivel 3 –

soft de aplica ii

ş

Algoritm de lucru:
verificare “on chip” a „autoriza iei” de acces în func ie de „clasificarea” informa iei vizate →
→ se semnaleaz “violarea protec iei” →
ă

→ se genereaz o întrerupere soft dedicat

→

ă

ă

→ se ini iaz o procedur de r spuns adecvat

ă

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

6

ă

ă

ă
Regulile generale de protec ie impuse de privilegiile multi-nivel:
1.

Datele pot fi accesate în segmente cu acela i nivel de privilegiu sau în segmente
aflate pe nivele mai pu in privilegiate

2.

Programele pot fi accesate CALL, JMP) în segmente cu acela i nivel de privilegiu.
Accesul prin nivele este restric ionat: se face numai prin POR I

ş

(

ş

:ulpmexE
Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

7
3.4. Protec ia datelor i a programelor
ş

a) Accesul datelor
Datele pot fi accesate în segmente de date (selectoare în DS, ES, FS, GS, SS)
sau în segmente de program citibile (selector în CS)
Indicatori ai nivelului de privilegiu:
DPL :

nivelul de privilegiu al descriptorului (bi ii 5-6 din ACCES); clasific nivelul de privilegiu
al segmentului de date i autorizeaz în cazul segmentului de program

RPL :

nivelul de privilegiu cerut (bi ii 0-1 din SELECTOR); este nivelul impus
de cel care furnizeaz selectorul

ă

ă

ş

ă

nivelul de privilegiu curent (men inut automat de c tre procesor);
este nivelul de privilegiu al segmentului curent de program care d autoriza ia de acces.
Deci: CPL = DPL al descriptorului accesat cu SELECTORUL din CS, pentru programul curent
ă

ă

CPL

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

8

:
Regula 1 devine:
max (CPL, RPL) ≤ DPL
EPL = max (CPL, RPL)
EPL ≤ DPL

adic , pentru accesul datelor în segmente de date i în segmente de program non-conforme,
ş

ă

programul curent trebuie s fie cel pu in tot atât de privilegiat ca i segmentul vizat
ş

ă

(autoriza ia programului trebuie s fie mai puternic decât clasificarea segmentului)
ă

ă

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

9
Verific ri :
ă

VERIFICAREA I (tip 1.A i 2.B):
ş

Se verific tipul de segment în func ie de registrul segment în care se încarc selectorul
ă

ă

i în func ie de octetul ACCES

ş

Registru
segment
rs

Tipuri de segmente permise
Seg.date“RO” Seg.date“RW” Seg.progr.“EO” Seg.progr.“ER”

DS

da

da

nu

da

ES,FS,GS

da

da

nu

da

SS

nu

da

nu

nu

CS

nu

nu

da

da

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

10
VERIFICAREA a II-a (tip 1.D):
max(CPL, RPL) ≤ DPL
DPL – pentru segmentul vizat (clasificare)
CPL – pentru programul care ruleaz (autoriza ie)
ă

Excep ii:
pentru stiv trebuie ca: DPL = CPL.
b) segmentele de program "conforme" C=1) sunt exceptate

)a

ă

(

VERIFICAREA a III-a (tip 2.A):
Se verific încadrarea în LIMITA indicat de descriptor:
ă

Pentru ED = 0 trebuie ca AE curent ≤ LIMITA
ă

Pentru ED = 1 trebuie ca AE curent > LIMITA
ă

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

11

ă
b) Accesul segmentelor de program

•

Segmente de program care sunt doar executabile (selector în CS).

•

Instruc iunile folosite sunt de tip “JMP”, “CALL” i “RETURN”
ş

VERIFICAREA I (tip 1.A i 2.B):
ş

Se verific tipul de segment în func ie de registrul segment în care se încarc selectorul (CS)
ă

ă

i în func ie de octetul ACCES inând seama c segmentul este de tip “EO”
ă

ş

VERIFICAREA a II-a (tip 1.D) – se aplic Regula 2:
ă

CPL = DPL
DPL – pentru programul vizat (clasificare)
CPL – pentru programul care ruleaz (autoriza ie)
ă

Excep ie:
segmentele de program „conforme” C=1) sunt exceptate

(

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

12
Observa ii:
a) CALL c tre segmente de program cu nivel de privilegiu mai mare se face numai prin por i
ă

b) RETURN se poate face la un segment de program cu acela i nivel de privilegiu sau mai pu in privilegiat
ş

VERIFICAREA a III-a (tip 2.A):
Se verific încadrarea în LIMITA indicat de descriptor:
ă

ă

Trebuie ca AE curent ≤ LIMITA
ă

Ajustarea (mic orarea) nivelului de privilegiu al selectorului (autoriza ia)
ş

ARPL

r16mem16, r16


operand 1: SELECTORUL procedurii apelate (care se ajusteaz );
ă

operand 2: SELECTORUL procedurii apelante.
Dac RPL din operandul 1 este numeric mai mic decât al doilea, ZF←1 i RPL din operand 1
←
ş

ă

devine egal cu RPL din operand 2. Altfel, nu se întâmpl nimic
ă

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

13
3.5. Transferul controlului între nivelele de protec ie
Instruc iunile folosite sunt de tip “JMP”, “CALL” i “RETURN”
ş

•Transfer intra-segment: nu se schimb nivelul de privilegiu
ă

ă

•Transfer inter-segment, la acela i nivel de privilegiu: regula 2 este respectat
ş

•Transfer inter-segment la nivele diferite de privilegiu: se folosesc por i

Por ile sunt descriptori de tip b3

•Por ile reprezint un nivel suplimentar de adresare indirect

ă

ă

•SELECTORUL pentru o poart se încarc obligatoriu în CS
ă

ă

•Se utilizeaz pentru:
•apelarea programelor la nivele diferite de privilegiu;
•r spunsul la cererile de întreruperi;
•multiprocesare
ă

ă

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

14
Poarta de apelare

Pentru IA32
(386, 486, Pentium)

Descriere

4

(0100)

12

(1100)

poart de apelare

5

(0101)

05

(0101)

poart de proces

6

(0110)

14

(1110)

poart pentru întreruperi

7

(0111)

15

(1111)

poart pentru „trap”

ă
ă
ă

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

ă
ă

: TIP
:S=0
: DPL al por ii
: P ( „prezent”)
;

;

b0 - b3
b4
b5 - b6
b7

Pentru IA16
(Intel 80286)

ă
ă

Octetul ACCES al unei por i :

15
Etapele apel rii prin poart :
ă

ă

•Din AV care înso e te instruc iunile “JMP”, “CALL” i “RETURN” se p streaz doar SELECTOR;
OFFSET-ul se ignor → se identific un descriptor de tip b3 – poarta de apelare
ă

ă

ş

ş

ă

ă

•Verific ri:
ă

SELECTOR DESTINA IE s nu fie nul
SELECTOR DESTINA IE s fie în limita tabelei de descriptori vizat
Descriptorul vizat s fie pentru segment de program
Segmentul de program s fie prezent i în LIMITA impus
CPL apelant ≤ DPL poart
ă

ă

ă

ă

ă

ş

ă

ă

I.
II.
III.
IV.
V.

•Se determin adresa informa iei din segmentul vizat folosind mecanismul transla iei cu AV din poart ,
format din SELECTOR DESTINA IE i OFFSET DESTINA IE
(RPL din SELECTOR DESTINA IE se ignor )
ă

ă

ş

ă

ă

•Se determin necesitatea schimb rii nivelului de privilegiu; se admit:
•CPL ≥ DPL pentru CALL
•CPL = DPL pentru JMP
•CPL ≤ DPL pentru RETURN
ă

ă

•Se face schimbarea nivelului de privilegiu, dac e necesar
ă

•Se selecteaz i se actualizeaz noua stiv – corespunz toare noului nivel de privilegiu;
pentru a men ine integritatea sistemului :
•în cadrul unui proces, fiecare nivel de privilegiu î i are propria stiv ;
•procese diferite, chiar aflate la acela i nivel de privilegiu, au stive diferite
ă

ă

ă

ş

ş

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

16

ă

şă
Poarta garanteaz c toate transferurile la un nivel superior de privilegiu se fac printr-un punct de intrare sigur
i nu în mijlocul unei proceduri sau al unei instruc iuni sau la o procedur „vulnerabil ”
ă

ă

ă

ă

ş

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

17
Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

18
Schimb rile de stiv cauzate de por ile de apelare
ă

ă

Etapele de actualizare a stivei:
•Se selecteaz o nou stiv cu nivelul de privilegiu corespunz tor noului CPL
ă

ă

ă

ă

•Noua valoare a indicatorului de stiv (SS):(SP) este înc rcat din
segmentul de stare al procesului (TSS)
ă

ă

ă

•Câmpul NUM R TOR DE CUVINTE indic num rul de pozi ii din stiv (de câte 4B pentru IA32)
care vor fi copiate din vechea stiv în noua stiv ; se realizeaz transparent pentru utilizator
ă

ă

ă

ă

Ă

ă

Ă

ă

•Se verific dac informa iile care urmeaz a fi copiate au loc în noua stiv

ă

ă

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

19

ă

ă
Explica ia utiliz rii instruc iunilor de tip CALL:
ă

•Transferul cu instruc iunea CALL se face c tre nivele mai privilegiate pentru ca stiva modulului apelat
s se afle la dispozi ia procesului cu un nivel de privilegiu mai mare i nu invers
ă

ş

ă

Evident, RETURN se face c tre nivele cu un nivel de privilegiu inferior
ă

ă

•Este interzis transferul controlului c tre alte nivele de privilegiu prin instruc iuni de tip JMP pentru c
nu exist posibilitatea de a salva selectorul din CS i nu exist posibilitatea de a identifica
(din descriptorul aferent selectorului) nivelul autoriza iei
ă

ă

ş

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

20

ă
Sinteza modalit ilor de transfer al controlului programului – aplicarea Regulii 2:
ă

1.

Un modul de program poate apela (CALL) un modul mai privilegiat (numeric – nivel mai mic)
numai prin poart de apelare

2.

Este interzis apelarea unui modul de program mai pu in privilegiat (numeric – nivel mai mare)

3.

Apelul la acela i nivel de privilegiu este permis i poarta de apelare e op ional

4.

Este interzis saltul (JMP) c tre alte nivele de privilegiu

5.

Saltul la acela i nivel de privilegiu este permis i poarta de apelare e op ional

ă

ă

ă

ş

ş

ă

ă

ş

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

21

ş
Exemplu:

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

22
Folosirea instruc iunii “ARPL”
(Problema „atacului Calului Troian”)

Instruc iunea ARPL este inserat în modulul de program de la nivelul 1 de privilegiu;
ă

RPL este ajustat – devine mai mare numeric → nivelul efectiv de privilegiu se mic oreaz

ă

ş

max (CPL, RPL) = max (1, 3) = 3 > DPL
Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

23
Observa ii

Un modul de program care utilizeaz RPL = 0, poate fi folosit f r pericol la orice nivel de privilegiu:
ă ă

ă

•

max (CPL, RPL) = max (CPL, 0) = CPL

•

Un program la nivel 3 (neprivilegiat) poate utiliza orice RPL:
max (CPL, RPL) = max (3, RPL) = 3

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

24
3.6. Protec ia paginilor
Protec ia paginilor pentru Intel 386, 486 Pentium:
Elementele din directorul de tabele i tabelele paginilor:
ş

Câmpurile R/W, U/S folosesc pentru protec ia paginilor:

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

25
U/S

= 0 – pagina/tabela supervizorului
= 1 – pagina/tabela utilizatorului

•Pagina supervizorului poate fi folosit numai de module de program privilegiate: CPL = 0, 1, 2
ă

•Pagina utilizatorului poate fi folosit la orice nivel
ă

•Dac U/S = 0 în directorul de tabele, U/S din tabela de pagini la care se face referire
nu mai conteaz
ă

ă

= 1 – supervizorul poate scrie în pagini, dac are i permisiunea suplimentar
dat de un câmp din CR0

ă

ş

ă

ă

R/W

Microcontrolere - Capitolul 3
Corneliu BURILEANU ©

26

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Mc cap 3

  • 1. 3. MECANISMUL PROTEC IEI 3.1. Tipuri de protec ii Tipuri de protec ii: controlul tipurilor de informa ii • protec ia inter-proces (între utilizatori) • protec ia intra-proces (între softul de sistem i cel de aplica ii) • ş Tipuri de mecanisme de protec ie: protec ia intrinsec gestion rii memoriei • privilegiile multi-nivel • ă ă Algoritm de lucru: → se semnaleaz “violarea protec iei” → ă → se genereaz o întrerupere soft dedicat → ă ă → se ini iaz o procedur de r spuns adecvat ă ă ă Microcontrolere - Capitolul 3 Corneliu BURILEANU © ă verificare “on chip” 1
  • 2. Segment: “cuanta” de memorie cu atribute de protec ie precizate •segmentare ← modularizare programe •atributul de arhitectur pentru un segment este un SELECTOR ă •între SELECTOR i segmentul vizat este un DESCRIPTOR ş DESCRIPTOR-ul permite: rezervarea unei zone de memorie pentru segment definirea dimensiunii segmentului în func ie de cantitatea de informa ii care trebuie stocat restric ionarea accesului în segment ă Proces: •execu ia a unul sau mai multe programe •nivelul de privilegiu este dinamic (dup programul în curs de rulare) ă •atribute: spa iul adreselor, utilizarea registrelor, stiv , date ă Microcontrolere - Capitolul 3 Corneliu BURILEANU © 2
  • 3. 3.2. Protec ia rezultat din gestionarea memoriei ă Separarea spa iului adreselor în: •adrese globale – TI = 0 •adrese locale – TI = 1 Utilizarea tabelelor de descriptori – GDT i LDT ş Delimitarea segmentelor de lucru – BAZA i LIMITA ş Alocarea de propriet i segmentelor de lucru – ACCES; se impun constrângeri de utilizare ă Definirea cuantei de informa ie (granularitatea) i a compatibilit ii cu alte procesoare – ALTE_PROPRIET I ă ş Ă Microcontrolere - Capitolul 3 Corneliu BURILEANU © 3
  • 4. 1. Verific ri la înc rcarea selectorului: ă ă 1.A – Verificarea tipului de segment relativ la registrul segment folosit; câmpuri implicate: S, P/D, ED 1.B – Verificarea existen ei descriptorului pentru segmentul vizat; câmpuri implicate: ACCES 1.C – Verificarea dac segmentul vizat este în memoria intern ; câmpuri implicate: P ă ă 1.D – Verificarea respect rii regulilor nivelelor de privilegii; câmpuri implicate: DPL, C ă 2. Verific ri la înc rcarea descriptorului în registrul cache: ă ă 2.A – Verificarea dac sunt respectate limitele segmentului; câmpuri implicate: LIMITA, ED ă 2.B – Verificarea dac segmentul este folosit conform atributelor din octetul ACCES; câmpuri implicate: W, R ă Microcontrolere - Capitolul 3 Corneliu BURILEANU © 4
  • 5. Observa ii: GDT nu poate fi accesat de c tre oricare utilizator – mecanism suplimentar de protec ie; ea con ine informa ii despre LDT i deci impune configura ia segmentelor de sistem i, implicit, a segmentelor de lucru ă ă ş ş GDT i LDT au, de regul , dimensiuni fixate indiferent de evolu ia num rului de segmente de lucru pentru un program: ACCES = 00H – „descriptor nul” ă ă Microcontrolere - Capitolul 3 Corneliu BURILEANU © 5 ş
  • 6. 3.3. Protec ia rezultat din mecanismul privilegiilor multi-nivel ă Nivelele de protec ie nivel 0 – cel mai privilegiat; con ine nucleul sistemului de operare: gestionarea memoriei, multiprocesarea, controlul resurselor I/O; nivel 1 – restul sistemului de operare; nivel 2 – soft dedicat i supervizor sistem; nivel 3 – soft de aplica ii ş Algoritm de lucru: verificare “on chip” a „autoriza iei” de acces în func ie de „clasificarea” informa iei vizate → → se semnaleaz “violarea protec iei” → ă → se genereaz o întrerupere soft dedicat → ă ă → se ini iaz o procedur de r spuns adecvat ă Microcontrolere - Capitolul 3 Corneliu BURILEANU © 6 ă ă ă
  • 7. Regulile generale de protec ie impuse de privilegiile multi-nivel: 1. Datele pot fi accesate în segmente cu acela i nivel de privilegiu sau în segmente aflate pe nivele mai pu in privilegiate 2. Programele pot fi accesate CALL, JMP) în segmente cu acela i nivel de privilegiu. Accesul prin nivele este restric ionat: se face numai prin POR I ş ( ş :ulpmexE Microcontrolere - Capitolul 3 Corneliu BURILEANU © 7
  • 8. 3.4. Protec ia datelor i a programelor ş a) Accesul datelor Datele pot fi accesate în segmente de date (selectoare în DS, ES, FS, GS, SS) sau în segmente de program citibile (selector în CS) Indicatori ai nivelului de privilegiu: DPL : nivelul de privilegiu al descriptorului (bi ii 5-6 din ACCES); clasific nivelul de privilegiu al segmentului de date i autorizeaz în cazul segmentului de program RPL : nivelul de privilegiu cerut (bi ii 0-1 din SELECTOR); este nivelul impus de cel care furnizeaz selectorul ă ă ş ă nivelul de privilegiu curent (men inut automat de c tre procesor); este nivelul de privilegiu al segmentului curent de program care d autoriza ia de acces. Deci: CPL = DPL al descriptorului accesat cu SELECTORUL din CS, pentru programul curent ă ă CPL Microcontrolere - Capitolul 3 Corneliu BURILEANU © 8 :
  • 9. Regula 1 devine: max (CPL, RPL) ≤ DPL EPL = max (CPL, RPL) EPL ≤ DPL adic , pentru accesul datelor în segmente de date i în segmente de program non-conforme, ş ă programul curent trebuie s fie cel pu in tot atât de privilegiat ca i segmentul vizat ş ă (autoriza ia programului trebuie s fie mai puternic decât clasificarea segmentului) ă ă Microcontrolere - Capitolul 3 Corneliu BURILEANU © 9
  • 10. Verific ri : ă VERIFICAREA I (tip 1.A i 2.B): ş Se verific tipul de segment în func ie de registrul segment în care se încarc selectorul ă ă i în func ie de octetul ACCES ş Registru segment rs Tipuri de segmente permise Seg.date“RO” Seg.date“RW” Seg.progr.“EO” Seg.progr.“ER” DS da da nu da ES,FS,GS da da nu da SS nu da nu nu CS nu nu da da Microcontrolere - Capitolul 3 Corneliu BURILEANU © 10
  • 11. VERIFICAREA a II-a (tip 1.D): max(CPL, RPL) ≤ DPL DPL – pentru segmentul vizat (clasificare) CPL – pentru programul care ruleaz (autoriza ie) ă Excep ii: pentru stiv trebuie ca: DPL = CPL. b) segmentele de program "conforme" C=1) sunt exceptate )a ă ( VERIFICAREA a III-a (tip 2.A): Se verific încadrarea în LIMITA indicat de descriptor: ă Pentru ED = 0 trebuie ca AE curent ≤ LIMITA ă Pentru ED = 1 trebuie ca AE curent > LIMITA ă Microcontrolere - Capitolul 3 Corneliu BURILEANU © 11 ă
  • 12. b) Accesul segmentelor de program • Segmente de program care sunt doar executabile (selector în CS). • Instruc iunile folosite sunt de tip “JMP”, “CALL” i “RETURN” ş VERIFICAREA I (tip 1.A i 2.B): ş Se verific tipul de segment în func ie de registrul segment în care se încarc selectorul (CS) ă ă i în func ie de octetul ACCES inând seama c segmentul este de tip “EO” ă ş VERIFICAREA a II-a (tip 1.D) – se aplic Regula 2: ă CPL = DPL DPL – pentru programul vizat (clasificare) CPL – pentru programul care ruleaz (autoriza ie) ă Excep ie: segmentele de program „conforme” C=1) sunt exceptate ( Microcontrolere - Capitolul 3 Corneliu BURILEANU © 12
  • 13. Observa ii: a) CALL c tre segmente de program cu nivel de privilegiu mai mare se face numai prin por i ă b) RETURN se poate face la un segment de program cu acela i nivel de privilegiu sau mai pu in privilegiat ş VERIFICAREA a III-a (tip 2.A): Se verific încadrarea în LIMITA indicat de descriptor: ă ă Trebuie ca AE curent ≤ LIMITA ă Ajustarea (mic orarea) nivelului de privilegiu al selectorului (autoriza ia) ş ARPL r16mem16, r16  operand 1: SELECTORUL procedurii apelate (care se ajusteaz ); ă operand 2: SELECTORUL procedurii apelante. Dac RPL din operandul 1 este numeric mai mic decât al doilea, ZF←1 i RPL din operand 1 ← ş ă devine egal cu RPL din operand 2. Altfel, nu se întâmpl nimic ă Microcontrolere - Capitolul 3 Corneliu BURILEANU © 13
  • 14. 3.5. Transferul controlului între nivelele de protec ie Instruc iunile folosite sunt de tip “JMP”, “CALL” i “RETURN” ş •Transfer intra-segment: nu se schimb nivelul de privilegiu ă ă •Transfer inter-segment, la acela i nivel de privilegiu: regula 2 este respectat ş •Transfer inter-segment la nivele diferite de privilegiu: se folosesc por i Por ile sunt descriptori de tip b3 •Por ile reprezint un nivel suplimentar de adresare indirect ă ă •SELECTORUL pentru o poart se încarc obligatoriu în CS ă ă •Se utilizeaz pentru: •apelarea programelor la nivele diferite de privilegiu; •r spunsul la cererile de întreruperi; •multiprocesare ă ă Microcontrolere - Capitolul 3 Corneliu BURILEANU © 14
  • 15. Poarta de apelare Pentru IA32 (386, 486, Pentium) Descriere 4 (0100) 12 (1100) poart de apelare 5 (0101) 05 (0101) poart de proces 6 (0110) 14 (1110) poart pentru întreruperi 7 (0111) 15 (1111) poart pentru „trap” ă ă ă Microcontrolere - Capitolul 3 Corneliu BURILEANU © ă ă : TIP :S=0 : DPL al por ii : P ( „prezent”) ; ; b0 - b3 b4 b5 - b6 b7 Pentru IA16 (Intel 80286) ă ă Octetul ACCES al unei por i : 15
  • 16. Etapele apel rii prin poart : ă ă •Din AV care înso e te instruc iunile “JMP”, “CALL” i “RETURN” se p streaz doar SELECTOR; OFFSET-ul se ignor → se identific un descriptor de tip b3 – poarta de apelare ă ă ş ş ă ă •Verific ri: ă SELECTOR DESTINA IE s nu fie nul SELECTOR DESTINA IE s fie în limita tabelei de descriptori vizat Descriptorul vizat s fie pentru segment de program Segmentul de program s fie prezent i în LIMITA impus CPL apelant ≤ DPL poart ă ă ă ă ă ş ă ă I. II. III. IV. V. •Se determin adresa informa iei din segmentul vizat folosind mecanismul transla iei cu AV din poart , format din SELECTOR DESTINA IE i OFFSET DESTINA IE (RPL din SELECTOR DESTINA IE se ignor ) ă ă ş ă ă •Se determin necesitatea schimb rii nivelului de privilegiu; se admit: •CPL ≥ DPL pentru CALL •CPL = DPL pentru JMP •CPL ≤ DPL pentru RETURN ă ă •Se face schimbarea nivelului de privilegiu, dac e necesar ă •Se selecteaz i se actualizeaz noua stiv – corespunz toare noului nivel de privilegiu; pentru a men ine integritatea sistemului : •în cadrul unui proces, fiecare nivel de privilegiu î i are propria stiv ; •procese diferite, chiar aflate la acela i nivel de privilegiu, au stive diferite ă ă ă ş ş Microcontrolere - Capitolul 3 Corneliu BURILEANU © 16 ă şă
  • 17. Poarta garanteaz c toate transferurile la un nivel superior de privilegiu se fac printr-un punct de intrare sigur i nu în mijlocul unei proceduri sau al unei instruc iuni sau la o procedur „vulnerabil ” ă ă ă ă ş Microcontrolere - Capitolul 3 Corneliu BURILEANU © 17
  • 18. Microcontrolere - Capitolul 3 Corneliu BURILEANU © 18
  • 19. Schimb rile de stiv cauzate de por ile de apelare ă ă Etapele de actualizare a stivei: •Se selecteaz o nou stiv cu nivelul de privilegiu corespunz tor noului CPL ă ă ă ă •Noua valoare a indicatorului de stiv (SS):(SP) este înc rcat din segmentul de stare al procesului (TSS) ă ă ă •Câmpul NUM R TOR DE CUVINTE indic num rul de pozi ii din stiv (de câte 4B pentru IA32) care vor fi copiate din vechea stiv în noua stiv ; se realizeaz transparent pentru utilizator ă ă ă ă Ă ă Ă ă •Se verific dac informa iile care urmeaz a fi copiate au loc în noua stiv ă ă Microcontrolere - Capitolul 3 Corneliu BURILEANU © 19 ă ă
  • 20. Explica ia utiliz rii instruc iunilor de tip CALL: ă •Transferul cu instruc iunea CALL se face c tre nivele mai privilegiate pentru ca stiva modulului apelat s se afle la dispozi ia procesului cu un nivel de privilegiu mai mare i nu invers ă ş ă Evident, RETURN se face c tre nivele cu un nivel de privilegiu inferior ă ă •Este interzis transferul controlului c tre alte nivele de privilegiu prin instruc iuni de tip JMP pentru c nu exist posibilitatea de a salva selectorul din CS i nu exist posibilitatea de a identifica (din descriptorul aferent selectorului) nivelul autoriza iei ă ă ş Microcontrolere - Capitolul 3 Corneliu BURILEANU © 20 ă
  • 21. Sinteza modalit ilor de transfer al controlului programului – aplicarea Regulii 2: ă 1. Un modul de program poate apela (CALL) un modul mai privilegiat (numeric – nivel mai mic) numai prin poart de apelare 2. Este interzis apelarea unui modul de program mai pu in privilegiat (numeric – nivel mai mare) 3. Apelul la acela i nivel de privilegiu este permis i poarta de apelare e op ional 4. Este interzis saltul (JMP) c tre alte nivele de privilegiu 5. Saltul la acela i nivel de privilegiu este permis i poarta de apelare e op ional ă ă ă ş ş ă ă ş Microcontrolere - Capitolul 3 Corneliu BURILEANU © 21 ş
  • 22. Exemplu: Microcontrolere - Capitolul 3 Corneliu BURILEANU © 22
  • 23. Folosirea instruc iunii “ARPL” (Problema „atacului Calului Troian”) Instruc iunea ARPL este inserat în modulul de program de la nivelul 1 de privilegiu; ă RPL este ajustat – devine mai mare numeric → nivelul efectiv de privilegiu se mic oreaz ă ş max (CPL, RPL) = max (1, 3) = 3 > DPL Microcontrolere - Capitolul 3 Corneliu BURILEANU © 23
  • 24. Observa ii Un modul de program care utilizeaz RPL = 0, poate fi folosit f r pericol la orice nivel de privilegiu: ă ă ă • max (CPL, RPL) = max (CPL, 0) = CPL • Un program la nivel 3 (neprivilegiat) poate utiliza orice RPL: max (CPL, RPL) = max (3, RPL) = 3 Microcontrolere - Capitolul 3 Corneliu BURILEANU © 24
  • 25. 3.6. Protec ia paginilor Protec ia paginilor pentru Intel 386, 486 Pentium: Elementele din directorul de tabele i tabelele paginilor: ş Câmpurile R/W, U/S folosesc pentru protec ia paginilor: Microcontrolere - Capitolul 3 Corneliu BURILEANU © 25
  • 26. U/S = 0 – pagina/tabela supervizorului = 1 – pagina/tabela utilizatorului •Pagina supervizorului poate fi folosit numai de module de program privilegiate: CPL = 0, 1, 2 ă •Pagina utilizatorului poate fi folosit la orice nivel ă •Dac U/S = 0 în directorul de tabele, U/S din tabela de pagini la care se face referire nu mai conteaz ă ă = 1 – supervizorul poate scrie în pagini, dac are i permisiunea suplimentar dat de un câmp din CR0 ă ş ă ă R/W Microcontrolere - Capitolul 3 Corneliu BURILEANU © 26