Bài giảng Hệ điều hành - Chương 9: An ninh hệ thống - Đại học Bách khoa TP.HCM

pdf 56 trang ngocly 3470
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Chương 9: An ninh hệ thống - Đại học Bách khoa TP.HCM", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_he_dieu_hanh_chuong_9_an_ninh_he_thong_dai_hoc_bac.pdf

Nội dung text: Bài giảng Hệ điều hành - Chương 9: An ninh hệ thống - Đại học Bách khoa TP.HCM

  1. Chương 9 An ninh hệ thống 9.1 Môi trường an ninh hệ thống 9.2 Cơ sở về mật mã hóa 9.3 Xác nhận ng ười dùng 9.4 Tấn công từ nội bộ 9.5 Tấn công từ bên ngoài 9.6 Các cơ chế bảo vệ 9.7 Các Hệ thống tin cậy 1
  2. 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ảo mật dữ liệu Phô bày dữ liệu Toàn vẹn dữ liệ u Sửa bậ y, làm lộ n xộn Sẵn sàng Từ chối phục vụ Các mục tiêu an ninh dữ liệu và các mối ₫e dọa 2
  3. Các tác nhân bất hợp pháp Các loại tác nhân bất hợp pháp thông thường : 1. Tò mò vô tình của người không chuyên. 2. S ự rình mò của người bên trong hệ thống 3. C ố gắ ng tống tiền 4. Tình báo thương mại hay quân sự 3
  4. Sự mất dữ liệu bất ngờ Các nguyên nhân thông thường : 1. Hoạt ₫ộng của trời ₫ất - hỏa hoạn, lụt lội, chiến tranh 2. Lỗ i phần cứng hay ph ần mềm - CPU hư,disk hư,chương trình có lỗi 3. Lỗ i con người - nhập sai, gắn băng/₫ĩa sai 4
  5. 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
  6. Mật mã hóa dùng khóa bí mật • Thay thế từng ký tự — mỗi ký tự ₫ược thay thế bằng ký tự khác nhờ bảng ánh xạ. • Với 1 khóa mật biến trước, — dễ dàng tìm ₫ược khóa giải mật. • Còn ₫ượ c gọi là mật mã hóa ₫ối xứng. 6
  7. Mật mã hóa dùng khóa bí mật (Public-Key) • 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. — giữ kín khóa bí mật • Khóa công khai là khóa ₫ể mật mã hóa — khóa bí mật là khóa ₫ể giải mật. 7
  8. Các hàm 1 chiều • Hàm ₫ược ₫ặc tả bởi công thức phụ thuộc x, sao cho vớ i x xác ₫ịnh : — dễ dàng tính ₫ược y = f(x) • Nhưng n ếu biết y — thì thực tế, không thể tính ₫ược x. 8
  9. Chữ ký ₫iện tử (b) • chữ ký ₫iện tử của 1 user trên 1 document là chuỗi byte có ₫ược từ qui trình thực hiện a. • User gởi document + chữ ký của mình trên document ₫ó ₫ể chứng thực. 9
  10. Xác nhận người dùng (User Authentication) Về nguyên tắc, xác nhận người dùng phải nhận dạng ₫ược : 1. cái gì ₫ómàuser cần xác nhận biết. 2. cái gì ₫ómàuser cần xác nhận có. 3. cái gì ₫ómàuser cần xác nhận là cái ₫ó. Xác nhận user là công việc cần phải làm trước khi cho phép người dùng truy cập hệ thống. 10
  11. Xác nhận dùng Passwords (a) Login thành công (b) Login bị từ chối ngay sau khi nhập tên user (c) Login bị t ừ ch ố i sau khi nhập password 11
  12. Xác nhận dùng Passwords • 1 tình huống mà cracker login thành công do username+ password quá dễ 12
  13. Xác nhận dùng Passwords , , , , Salt Password The use of salt to defeat precomputation of encrypted passwords 13
  14. Xác nhận dùng ₫ối tượng vật lý • Card từ — magnetic stripe cards — chip cards: stored value cards, smart cards 14
  15. Xác nhận dùng sinh trắc học A device for measuring finger length. 15
  16. Các biện pháp ₫ối phó với cracker • Hạn chế thời gian user thực hiện login. • G ọi lại tự ₫ộ ng tới số vừa ₫ang ký. • H ạn chế số lần cố gắng login (3). • Có database lư u mọi login • Xem việc nhập name=password như 1 cái bẩy — chương trình login cảnh báo cho nhân viên an ninh biết. 16
  17. An ninh hệ ₫iều hành Trojan Horses • là chương trình free và ₫ể cho người dùng cả tin dễ dàng tiế p cận. — nhưng có chứa code thực hiện ₫iều tai hại nào ₫ó. • ₫ặt version khác của tiện ích phổ dụng trên máy tính của nạ n nhân. — lừa người dùng chạy chương trình này. 17
  18. Nhạy theo trình login (a) Màn hình login thật (b) Màn hình login giả 18
  19. Bom luận lý • Người của công ty viết ứng dụng : — tiềm tàng chứa code gây hại. — chạ y OK miễn sao họ nhập password ₫ặt biệt hàng 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ẽ chạy code gây hại. 19
  20. Cửa sổ bẩy (a) Code bình thường. (b) Code có 1 cửa sổ bẩy. 20
  21. 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
  22. Các tấn công vào hệ thống Các tấn công ₫iển hình : • Xin bộ nhớ, không gian ₫ĩa, băng rồi chỉ ₫ọc. • Th ử gọi các ₫iểm nhập không có. • Ch ạy login rồi ấn nút DEL, RUBOUT, hay BREAK • Th ử hiệu chỉnh các cấu trúc phức tạp của hệ thống. • Th ử làm những việc ₫ược yêu cầu không nên làm. • Thuy ết phục người lập trình thêm cửa sổ bẩy vào hệ th ống. • Giả quên password và nhờ admin giúp tìm password. 22
  23. Các sai lầm về an ninh nổi tiếng (a) (b) (c) The TENEX – password problem 23
  24. Các nguyên tắc thiết kế về an ninh 1. Nên ₫ể thiết kế hệ thống là việc công công. 2. M ặc ₫ịnh nên chỉ cho tối ₫a n l ần truy xuất (3) 3. Ki ểm tra thểm quyền hiện hành 4. Gán process quyền ưu tiên thấp nhất có thể 5. C ơ chế bảo vệ nên : - ₫ơn giản - ₫ồ ng nhất - trong cấp thấp nhất của hệ thống 6. Sơ ₫ồ an ninh nên chấp nhận ₫ượ c về mặt tâm lý 24
  25. An ninh mạng • Mối ₫e dọa từ ngoài — 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. • Cá mụ c tiêu của người viết virus — lây lan nhanh — khó phát hiện — khó giế t • Virus = ₫o ạn chương trình có thể tự nhân bản — ghép code của nó vào chương trình khác. — và thường làm ₫iều tai hại. 25
  26. Các kịch bản tai hại của virus • Thư ₫en • Từ chối dịch vụ khi virus chạy • 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á hèn hạ trong nội bộ công ty : — phá hoại các file của nhân viên khác. 26
  27. Cách virus hoạt ₫ộng (1) • Virus thường ₫ược viết bằng assembly. • rồ i ₫ược chèn vào ứng dụng khác. — dùng công cụ ₫ược gọi là “dropper” • Virus ngủ cho ₫ến khi ứng dụng chạy — nó sẽ tiêm nhiễm qua các ứng dụng khác. — và có thể thi hành ₫oạn code phá hoại của nó. 27
  28. Cách virus hoạt ₫ộng (2) Hàm search() cho phép duyệt tìm ₫ệ quy các file khả thi trên Linux. Virus dùng hàm search() và có thể tiểm nhiễm vào bấ t kỳ file khả thi nào trên máy. 28
  29. Cách virus hoạt ₫ộng (3) a. chương trình khả thi gốc. b. với virus chèn vào ở ₫ầu file. c. với virus chèn vào cuối file. d. với virus chèn vào các chỗ trống trong chương trình. 29
  30. Cách virus hoạt ₫ộng (4) a. sau khi virus ₫ã chiếm ngắt và vector bẩy của hệ thống. b. sau khi OS chiếm lại ₫ược ngắt máy in. c. sau khi virus phát hiện mất ₫iều khiển trên ngắt máy in và chiếm lại. 30
  31. Cách virus lây lan • Virus ₫ược ₫ặt ở chỗ dễ ₫ược copy nhất. • Khi ₫ược copy, virus : — tiêm nhiễm vào các file trên các thiết bị chứa tin — và cố gắng lây lan tiếp sang ₫ường mạng. • Ghép vào e-mail sạch nào ₫ó. — khi ₫ược xem, virsu dùng mailing list ₫ể nhân bản. 31
  32. Các kỹ thuật Antivirus & Anti-Antivirus (a) Chương trình gốc (b) Chương trình bị nhiễm (c) Chương trình bị nhi ễm và bị nén (d) Virus ₫ã mật mã hóa (e) virus ₫ược nén với code nén bị mật mã hóa. 32
  33. Các kỹ thuật Antivirus & Anti-Antivirus Những thí dụ về virus ₫a hình (polymorphism) các ₫oạn code trên ₫ều miêu tả cùng 1 virus. 33
  34. Các kỹ thuật Antivirus & Anti-Antivirus • Kiểm tra tính toàn vẹn. • Ki ểm tra hành vi. • Tránh virus — dùng HĐH sạch — chỉ cài ứng dụng "shrink-wrapped" — 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 • Phục hồi khi bị virus tấn công — dừng máy, boot lại từ ₫ĩa sạch, chạy trình diệt virus. 34
  35. Sâu Internet • Gồm 2 ứng dụng : — bootstrap ₫ể tải sâu lên mạng — bả n thân sâu • Đầu tiên Sâu ẩn mình • rồ i tự nhân bản lên các máy mới. 35
  36. Mobile Code (1) Sandboxing (a) Memory divided into 1-MB sandboxes (b) One way of checking an instruction for validity 36
  37. Mobile Code (2) Applets can be interpreted by a Web browser 37
  38. Mobile Code (3) How code signing works 38
  39. 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
  40. Java Security (2) Examples of specified protection with JDK 1.2 40
  41. Protection Mechanisms Protection Domains (1) Examples of three protection domains 41
  42. Protection Domains (2) A protection matrix 42
  43. Protection Domains (3) A protection matrix with domains as objects 43
  44. Access Control Lists (1) Use of access control lists of manage file access 44
  45. Access Control Lists (2) Two access control lists 45
  46. Capabilities (1) Each process has a capability list 46
  47. 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
  48. Trusted Systems Trusted Computing Base A reference monitor 48
  49. Formal Models of Secure Systems (a) An authorized state (b) An unauthorized state 49
  50. Multilevel Security (1) The Bell-La Padula multilevel security model 50
  51. 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
  52. Orange Book Security (1) • Symbol X means new requirements • Symbol -> requirements from next lower category apply here also 52
  53. Orange Book Security (2) 53
  54. Covert Channels (1) Client, server and Encapsulated server can collaborator processes still leak to collaborator via covert channels 54
  55. Covert Channels (2) A covert channel using file locking 55
  56. 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 Hamlet, Macbeth, Julius Caesar Zebras Merchant of Venice, King Lear 56