Chương 9

An ninh hệ

thống

thống

về

9.1 Môi trường an ninh hệ mật mã hóa 9.2 Cơ sở 9.3 Xác nhận người dùng 9.4 Tấn công từ 9.5 Tấn công từ 9.6 Các cơ chế 9.7 Các Hệ

nội bộ bên ngoài bảo vệ thống tin cậy

1

Môi trường an ninh dữ

liệu

Các mối ₫e dọa

Mục tiêu

Mối ₫e dọa

bày dữ

liệu

liệu liệu

Bảo mật dữ Toàn vẹn dữ Sẵn sàng

Phô Sửa bậy, làm lộn xộn chối phục vụ Từ

Các mục tiêu an ninh dữ

liệu và

các mối ₫e dọa

2

Các tác nhân bất hợp pháp

thống

3

Các loại tác nhân bất hợp pháp thông thường : Tò mò vô tình của người không chuyên. 1. rình mò của người bên trong hệ Sự 2. gắng tống tiền Cố 3. Tình báo thương mại hay quân sự 4.

Sự

mất dữ

liệu bất ngờ

Các nguyên nhân thông thường : 1.

-

chiến tranh

hỏa hoạn,

2.

-

lỗi

CPU hư, disk hư, chương trình có

3.

gắn băng/₫ĩa sai

-

Hoạt ₫ộng của trời ₫ất lụt lội, Lỗi phần cứng hay phần mềm Lỗi con người nhập sai,

4

Căn bản về

mật mã hóa

(Cryptography)

Mối quan hệ

giữa dữ

liệu rõ (plaintext) và

dữ

liệu mật (ciphertext)

5

Mật mã hóa dùng khóa bí

mật

bằng ký tự khác nhờ Thay thế —

từng ký tự mỗi ký tự ₫ược thay thế ánh xạ. bảng

dàng tìm ₫ược khóa giải mật.

6

mật mã hóa ₫ối xứng. • Với 1 khóa mật biến trước, — Còn ₫ược gọi là dễ

Mật mã hóa dùng khóa bí

mật

(Public-Key)

mật khóa ₫ể khóa ₫ể mật mã hóa giải mật.

7

Mỗi user chọn cặp khóa : khóa công khai / khóa bí mật. phân phối khóa công khai cho mội người biết. — kín khóa bí giữ — Khóa công khai là mật là khóa bí —

Các hàm 1 chiều

bởi công thức phụ thuộc x, sao cho •

dàng tính ₫ược y = f(x)

thực tế, không thể tính ₫ược x. Hàm ₫ược ₫ặc tả với x xác ₫ịnh : — Nhưng nếu biết y —

8

dễ thì

Chữ ký ₫iện tử

(b)

của 1 user trên 1 document là chuỗi byte •

qui trình thực hiện a.

ký của mình trên document •

9

chữ ký ₫iện tử có ₫ược từ User gởi document + chữ chứng thực. ₫ó ₫ể

Xác nhận người dùng Authentication) (User

nguyên tắc, xác nhận người dùng phải nhận dạng

cái gì ₫ó mà user cần xác nhận biết. cái gì ₫ó mà user cần xác nhận có. cái gì ₫ó mà user cần xác nhận là

cái ₫ó.

công việc cần phải làm trước khi cho

Về ₫ược : 1. 2. 3.

Xác nhận user là phép người dùng truy cập hệ

10

thống.

Xác nhận dùng

Passwords

(a) Login thành công bị (b) Login bị (c) Login

11

từ từ chối ngay sau khi nhập tên user chối sau khi nhập password

Xác nhận dùng Passwords

• cracker login thành công do

1 tình huống mà username+ password quá

12

dễ

Xác nhận dùng Passwords

,

,

,

,

Password

Salt

The use of salt to defeat precomputation of encrypted passwords

13

Xác nhận dùng ₫ối tượng vật lý

14

Card từ — — magnetic stripe cards chip cards: stored value cards, smart cards

Xác nhận dùng sinh trắc học

A device for measuring finger length.

15

Các biện pháp ₫ối phó

với cracker

thời gian user thực hiện login.

vừa ₫ang ký. gắng login (3).

lần cố

• • • • • như 1 cái bẩy

Hạn chế Gọi lại tự ₫ộng tới số số Hạn chế Có database lưu mọi login Xem việc nhập name=password —

16

chương trình login cảnh báo cho nhân viên an ninh biết.

An ninh hệ ₫iều hành Trojan Horses

tin dễ dàng

là chương trình free và ₫ể cho người dùng cả tiếp cận. — chứa code thực hiện ₫iều tai hại nào ₫ó. nhưng có

• dụng trên máy tính của

17

₫ặt version khác của tiện ích phổ nạn nhân. — lừa người dùng chạy chương trình này.

Nhạy theo trình login

(a) Màn hình login thật (b) Màn hình login giả

18

Bom luận lý

nhập password ₫ặt biệt hàng

chạy code

19

Người của công ty viết ứng dụng : tiềm tàng chứa code gây hại. — miễn sao họ chạy OK — ngày. nếu người lập trình này rời công ty, không có password ₫ặc biệt cho nó, ứng dụng sẽ gây hại.

Cửa sổ

bẩy

20

(a) Code bình thường. 1 cửa sổ có (b) Code bẩy.

Làm tràn/cạn buffer

• (a) Situation when main program is running • (b) After program A called • (c) Buffer overflow shown in gray

21

Các tấn công vào hệ

thống

nhớ, không gian ₫ĩa, băng rồi chỉ ₫ọc.

gọi các ₫iểm nhập không có.

BREAK

hiệu chỉnh các cấu trúc phức tạp của hệ làm những việc ₫ược yêu cầu không nên làm. thống.

Các tấn công ₫iển hình : • • • • • • bẩy vào hệ

quên password và • admin giúp tìm password.

22

Xin bộ Thử Chạy login rồi ấn nút DEL, RUBOUT, hay Thử Thử Thuyết phục người lập trình thêm cửa sổ thống. Giả nhờ

Các sai lầm về

an ninh nổi tiếng

(a)

(b)

(c)

The TENEX – password problem

23

Các nguyên tắc thiết kế

an ninh

về

thiết kế

việc công công.

thống là cho tối ₫a n lần truy xuất (3)

thể

1. 2. 3. 4. 5.

bảo vệ

nên :

hệ Nên ₫ể Mặc ₫ịnh nên chỉ Kiểm tra thểm quyền hiện hành Gán process quyền ưu tiên thấp nhất có Cơ chế

- - -

thống

6.

an ninh nên chấp nhận ₫ược về

mặt tâm lý

₫ơn giản ₫ồng nhất trong cấp thấp nhất của hệ Sơ ₫ồ

24

An ninh mạng

ngoài

thể

tự

code ₫ược gởi tới máy mục tiêu. code ₫ược thi hành ở ₫ó, thực hiện ₫iều tai hại. mục tiêu của người viết virus lây lan nhanh phát hiện khó giết khó

nhân bản vào chương trình khác.

Mối ₫e dọa từ — — Cá — — — Virus = ₫oạn chương trình có — —

ghép code của nó và thường làm ₫iều tai hại.

25

Các kịch bản tai hại của virus

chối dịch vụ khi virus chạy

• • • •

• trong nội bộ công ty :

hèn hạ hoại các file của nhân viên khác.

26

Thư ₫en Từ Làm hại phần cứng thường xuyên : Mục tiêu nhắm vào máy ₫ối thủ — làm hại — tình báo Các gian trá phá —

Cách virus hoạt ₫ộng

(1)

assembly.

• •

dùng công cụ ₫ược gọi là

Virus thường ₫ược viết bằng rồi ₫ược chèn vào ứng dụng khác. “dropper” — Virus ngủ cho ₫ến khi ứng dụng chạy — — thi hành ₫oạn code phá sẽ có hoại của nó.

27

tiêm nhiễm qua các ứng dụng khác. thể nó và

Cách virus hoạt ₫ộng (2)

thi nào trên tiểm nhiễm file

28

Hàm search() cho phép duyệt quy các tìm ₫ệ thi trên file khả Linux. Virus dùng hàm search() và thể vào bất kỳ khả máy.

Cách virus hoạt ₫ộng (3)

thi gốc.

29

trống trong chương trình. a. chương trình khả b. với virus chèn vào ở ₫ầu file. c. với virus chèn vào cuối file. virus chèn vào các chỗ d. với

Cách virus hoạt ₫ộng (4)

vector bẩy của hệ

thống.

phát hiện mất ₫iều khiển trên ngắt máy in và

a. sau khi virus ₫ã chiếm ngắt và b. sau khi OS chiếm lại ₫ược ngắt máy in. c. sau khi virus chiếm lại.

30

Cách virus lây lan

dễ ₫ược copy nhất.

• •

chứa tin

tiêm nhiễm vào các file trên các thiết bị và

gắng lây lan tiếp sang ₫ường mạng.

cố

mailing list ₫ể

nhân bản.

chỗ Virus ₫ược ₫ặt ở Khi ₫ược copy, virus : — — Ghép vào e-mail sạch nào ₫ó. khi ₫ược xem, virsu dùng —

31

thuật Antivirus

Các kỹ &

Anti-Antivirus

nhiễm nhiễm và

bị

nén

(a) Chương trình gốc (b) Chương trình bị (c) Chương trình bị (d) Virus ₫ã mật mã hóa (e) virus

₫ược nén với code nén bị

mật mã hóa.

32

Các kỹ

thuật Antivirus

& Anti-Antivirus

33

về virus ₫a hình (polymorphism) cùng 1 virus. Những thí các ₫oạn code trên ₫ều miêu tả dụ

Các kỹ

thuật Antivirus

& Anti-Antivirus

• • •

cài ứng dụng "shrink-wrapped"

• virus tấn công dùng HĐH sạch chỉ dùng ứng dụng diệt virus. không click chuột trên các attach của e-mail. backup thông tin thường xuyên

boot lại từ ₫ĩa sạch, chạy trình diệt

34

Kiểm tra tính toàn vẹn. Kiểm tra hành vi. Tránh virus — — — — — Phục hồi khi bị dừng máy, — virus.

Sâu

Internet

tải sâu lên mạng

• • nhân bản lên các máy mới.

35

Gồm 2 ứng dụng : bootstrap ₫ể — bản thân sâu — Đầu tiên Sâu ẩn mình rồi tự

Mobile Code (1) Sandboxing

(a) Memory divided into 1-MB sandboxes (b) One way of checking an instruction for validity

36

Mobile Code (2)

Applets can be interpreted by a Web browser

37

Mobile Code (3)

How code signing works

38

Java Security (1)

• A type safe language

– compiler rejects attempts to misuse variable

• Checks include …

1. Attempts to forge pointers 2. Violation of access restrictions on private class

members

3. Misuse of variables by type 4. Generation of stack over/underflows 5. Illegal conversion of variables to another type

39

Java Security (2)

Examples of specified protection with JDK 1.2

40

Protection Mechanisms Protection Domains (1)

Examples of three protection domains

41

Protection Domains (2)

A protection matrix

42

Protection Domains (3)

A protection matrix with domains as objects

43

Access Control Lists (1)

Use of access control lists of manage file access

44

Access Control Lists (2)

Two access control lists

45

Capabilities (1)

Each process has a capability list

46

Capabilities (2)

• Cryptographically-protected capability

Server

Object

Rights

f(Objects, Rights, Check)

• Generic Rights 1. Copy capability 2. Copy object 3. Remove capability 4. Destroy object

47

Trusted Systems Trusted Computing Base

A reference monitor

48

Formal Models of Secure Systems

(a) An authorized state (b) An unauthorized state

49

Multilevel Security (1)

The Bell-La Padula multilevel security model

50

Multilevel Security (2)

The Biba Model

• Principles to guarantee integrity of data

1. Simple integrity principle

process can write only objects at its security level or lower

2. The integrity * property

process can read only objects at its security level or higher

51

Orange Book Security (1)

• Symbol X means new requirements • Symbol -> requirements from next lower category

apply here also

52

Orange Book Security (2)

53

Covert Channels (1)

Client, server and collaborator processes

Encapsulated server can still leak to collaborator via covert channels

54

Covert Channels (2)

A covert channel using file locking

55

Covert Channels (3)

• Pictures appear the same • Picture on right has text of 5 Shakespeare plays – encrypted, inserted into low order bits of color values

Zebras

Hamlet, Macbeth, Julius Caesar Merchant of Venice, King Lear

56