瀏覽代碼

INF: OS data security

Jan Potocki 4 年之前
父節點
當前提交
826d1812ec
共有 1 個檔案被更改,包括 13 行新增0 行删除
  1. 13
    0
      W4-INF-kierunek-mgr.md

+ 13
- 0
W4-INF-kierunek-mgr.md 查看文件

1
+# Mechanizmy ochrony danych w systemach operacyjnych
2
+
3
+Ponieważ podstawowym zadaniem systemu operacyjnego jest zapewnienie możliwości (pseudo)równoczesnego wykonywania wielu procesów użytkownika – czyli uruchomionych w systemie programów – istotne jest zabezpieczenie przed wzajemnym czytaniem lub nadpisywaniem pamięci systemowej (RAM) przez różne procesy. We współczesnych systemach ten rodzaj ochrony jest zapewniany przez __wirtualizację pamięci__ (chociaż nie jest to jedyny jej cel).
4
+
5
+W systemie ze stronicowaną pamięcią wirtualną, każdy proces posiada swoją własną przestrzeń adresową, której rozmiar zależy od długości słowa maszynowego (w przypadku procesorów i systemów 64-bitowych – 2<sup>64</sup> bajtów) i generalnie może być znacznie większy od rozmiaru pamięci zainstalowanej fizycznie. Stosowane w takiej wirtualnej przestrzeni adresowej przez programy __adresy logiczne__ są tłumaczone przez system operacyjny na __adresy fizyczne__ dzięki __tablicom stron__, przechowującym informację o przyporządkowaniu określonych fragmentów przestrzeni adresowej procesu (stron) do odpowiednich fragmentów pamięci fizycznej (ramek).  
6
+Aby utrudnić ataki na oprogramowanie za pomocą exploitów, dodatkowo może zostać zastosowana __randomizacja przestrzeni adresowej__ (ang. ___ASLR – Adress Space Layout Randomization___). Polega ona na losowym rozmieszczaniu kluczowych obszarów (np. segmentu danych i segmentu stosu) w wirtualnej przestrzeni adresowej procesu, dzięki czemu atakującemu trudniej jest przewidzieć, w którym miejscu powinien podłożyć potrzebne do dokonania ataku dane (np. spreparowany adres powrotny z funkcji).
7
+
8
+Zabezpieczenia pamięci czasami da się obejść wykorzystując podatności architektury procesora, takie jak odkryte w 2018 roku różne warianty ataku __Spectre__, na które procesory podatne są w różnym stopniu – w przypadku architektury x86 generalnie procesory firmy Intel podatne są na więcej wariantów niż procesory firmy AMD, ale problem dotyczy też innych architektur (np. ARM). Ataki te polegają na odpowiednim wykorzystaniu chybień __spekulatywnego wykonywania kodu__ – czyli wykonywania przez część jednostek procesora fragmentu kodu, do którego może nastąpić skok, zanim będzie wiadomo czy rzeczywiście ten skok nastąpi – do pośredniego odczytywania przez zawartość różnych buforów procesora danych z pamięci, do których nie powinno być dostępu. Skutecznie wykonany atak Spectre może np. umożliwić wyciek kluczy kryptograficznych.
9
+
10
+Innym zadaniem realizowanym przez system operacyjny jest ochrona danych przechowywanych w pamięci masowej (na dysku) przed dostępem przez różnych użytkowników. Służą do tego uprawnienia na poziomie systemu plików:
11
+
12
+* __w systemach uniksowych (m. in. Linux)__ – każdy plik ma przypisanego właściciela zwykłego (konto użytkownika) i właściciela grupowego (grupę użytkowników) oraz istnieją, nie licząc specjalnych, trzy rodzaje uprawnień – do odczytu (r), zapisu (w) i wykonania (x) – które podstawowo przydziela się osobno dla właściciela, właściciela grupowego i wszystkich pozostałych użytkowników, a jeżeli taki podział nie jest wystarczający – można wykorzystać listy ACL, które pozwalają te same uprawnienia przydzielać dowolnym innym użytkownikom lub grupom,
13
+* __w systemie Windows z systemem plików NTFS__ – każdy plik ma przypisanego właściciela (użytkownika <ins>albo</ins> grupę), istnieje pięć podstawowych rodzajów uprawnień (pełna kontrola, modyfikacja, wykonanie, odczyt, zapis) i wiele rodzajów specjalnych (np. przejęcie na własność), które przydziela się dla konkretnych użytkowników lub grup za pomocą list ACL, oprócz tego występuje dość skomplikowane dziedziczenie uprawnień w hierarchii katalogów.

Loading…
取消
儲存