Bài giảng Cơ sở an toàn thông tin

pdf 134 trang phuongnguyen 2930
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở an toàn thông tin", để 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_co_so_an_toan_thong_tin.pdf

Nội dung text: Bài giảng Cơ sở an toàn thông tin

  1. HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG HOÀNG XUÂN DẬU NGUYỄN THỊ THANH THỦY BÀI GIẢNG CƠ SỞ AN TOÀN THÔNG TIN PTIT HÀ NỘI 2016
  2. Bài giảng Cơ sở an toàn thông tin Các bảng danh mục MỤC LỤC MỤC LỤC 1 DANH MỤC CÁC HÌNH 5 DANH MỤC CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT 8 MỞ ĐẦU 9 CHƢƠNG 1. TỔNG QUAN VỀ AN TOÀN THÔNG TIN 11 1.1. KHÁI QUÁT VỀ AN TOÀN THÔNG TIN 11 1.1.1. Một số khái niệm trong an toàn thông tin 11 1.1.2. Sự cần thiết của an toàn thông tin 13 1.2. CÁC YÊU CẦU ĐẢM BẢO ATTT VÀ HTTT 15 1.2.1. Bí mật 15 1.2.2. Toàn vẹn 16 1.2.3. Sẵn dùng 16 1.3. CÁC THÀNH PHẦN CỦA AN TOÀN THÔNG TIN 17 1.3.2. An toàn máy tính và dữ liệu 17 1.3.3. An ninh mạng 18 1.3.4. Quản lý an toàn thông tin 18 1.3.5. Chính sách an toàn thông tin 19 1.4. CÁC MỐI ĐE DỌA VÀ NGUY CƠ TRONG CÁC VÙNG HẠ TẦNG CNTT 19 1.4.1. Bảy vùng trong cơ sở hạ tầng CNTT 19 1.4.2. Các mối đe dọa và nguy cơ trong các vùng hạ tầng CNTT 20 1.5. MÔ HÌNH TỔNG QUÁTPTIT ĐẢM BẢO ATTT VÀ HỆ THỐNG THÔNG TIN 21 1.5.1. Nguyên tắc đảm bảo an toàn thông tin, hệ thống và mạng 21 1.5.2. Mô hình tổng quát đảm bảo an toàn thông tin và hệ thống thông tin 22 1.6. CÂU HỎI ÔN TẬP 23 CHƢƠNG 2. LỖ HỔNG BẢO MẬT VÀ ĐIỂM YẾU HỆ THỐNG 24 2.1. TỔNG QUAN VỀ LỖ HỔNG BẢO MẬT VÀ CÁC ĐIỂM YẾU HỆ THỐNG 24 2.1.1. Khái quát về điểm yếu hệ thống và lỗ hổng bảo mật 24 2.1.2. Một số thống kê về lỗ hổng bảo mật 26 2.2. CÁC DẠNG LỖ HỔNG TRONG HỆ ĐIỀU HÀNH VÀ PHẦN MỀM ỨNG DỤNG 28 2.2.1. Lỗi tràn bộ đệm 28 2.2.2. Lỗi không kiểm tra đầu vào 34 - 1 -
  3. Bài giảng Cơ sở an toàn thông tin Các bảng danh mục 2.2.3. Các vấn đề với điều khiển truy nhập 36 2.2.4. Các điểm yếu trong xác thực, trao quyền 37 2.2.5. Các điểm yếu trong các hệ mật mã 37 2.2.6. Các lỗ hổng bảo mật khác 37 2.3. QUẢN LÝ, KHẮC PHỤC CÁC LỖ HỔNG BẢO MẬT VÀ TĂNG CƢỜNG KHẢ NĂNG ĐỀ KHÁNG CHO HỆ THỐNG 38 2.3.1. Nguyên tắc chung 38 2.3.2. Các biện pháp cụ thể 38 2.4. GIỚI THIỆU MỘT SỐ CÔNG CỤ RÀ QUÉT ĐIỂM YẾU VÀ LỖ HỔNG BẢO MẬT 39 2.4.1. Công cụ rà quét lỗ hổng bảo mật hệ thống 39 2.4.2. Công cụ rà quét lỗ hổng ứng dụng web 40 2.5. CÂU HỎI ÔN TẬP 41 CHƢƠNG 3. CÁC DẠNG TẤN CÔNG VÀ CÁC PHẦN MỀM ĐỘC HẠI 42 3.1. KHÁI QUÁT VỀ MỐI ĐE DỌA VÀ TẤN CÔNG 42 3.1.1. Mối đe dọa 42 3.1.2. Tấn công 42 3.2. CÁC CÔNG CỤ HỖ TRỢ TẤN CÔNG 43 3.2.1. Công cụ quét cổng dịch vụ 43 3.2.2. Công cụ nghe lén 44 3.2.3. Công cụ ghi phím gõ 45 3.3. CÁC DẠNG TẤN CÔNG THƢỜNG GẶP 46 3.3.1. Tấn công vào mật khẩu 46 3.3.2. Tấn công bằng mã PTITđộc 47 3.3.3. Tấn công từ chối dịch vụ 52 3.3.4. Tấn công giả mạo địa chỉ 57 3.3.5. Tấn công nghe lén 58 3.3.6. Tấn công kiểu ngƣời đứng giữa 59 3.3.7. Tấn công bằng bom thƣ và thƣ rác 60 3.3.8. Tấn công sử dụng các kỹ thuật xã hội 60 3.3.9. Tấn công pharming 62 3.4. CÁC DẠNG PHẦN MỀM ĐỘC HẠI 64 3.4.1. Giới thiệu 64 3.4.2. Logic bombs 64 3.4.3. Trojan Horses 65 - 2 -
  4. Bài giảng Cơ sở an toàn thông tin Các bảng danh mục 3.4.4. Back doors 65 3.4.5. Viruses 65 3.4.6. Worms 67 3.4.7. Zombies 68 3.4.8. Rootkits 68 3.4.9. Adware và Spyware 69 3.5. CÂU HỎI ÔN TẬP 69 CHƢƠNG 4. ĐẢM BẢO AN TOÀN THÔNG TIN DỰA TRÊN MÃ HÓA 70 4.1. KHÁI QUÁT VỀ MÃ HÓA THÔNG TIN VÀ ỨNG DỤNG 70 4.1.1. Các khái niệm cơ bản 70 4.1.2. Các thành phần của một hệ mã hóa 72 4.1.3. Mã hóa dòng và mã hóa khối 73 4.1.4. Sơ lƣợc lịch sử mật mã 74 4.1.5. Ứng dụng của mã hóa 74 4.2. CÁC PHƢƠNG PHÁP MÃ HÓA 75 4.2.1. Phƣơng pháp thay thế 75 4.2.2. Phƣơng pháp hoán vị 76 4.2.3. Phƣơng pháp XOR 76 4.2.4. Phƣơng pháp Vernam 77 4.2.5. Phƣơng pháp sách hoặc khóa chạy 77 4.2.6. Phƣơng pháp hàm băm 77 4.3. CÁC GIẢI THUẬT MÃ HÓA 78 4.3.1. Các giải thuật mã hóa khóa đối xứng 78 4.3.2. Các giải thuật mã hóaPTIT khóa bất đối xứng 87 4.4. Các hàm băm 89 4.4.1. Khái quát về hàm băm 89 4.4.2. Một số hàm băm thông dụng 92 4.5. CÂU HỎI ÔN TẬP 95 CHƢƠNG 5. CÁC KỸ THUẬT VÀ CÔNG NGHỆ ĐẢM BẢO AN TOÀN THÔNG TIN . 96 5.1. ĐIỀU KHIỂN TRUY NHẬP 96 5.1.1. Khái niệm điều khiển truy nhập 96 5.1.2. Các biện pháp điều khiển truy nhập 96 5.1.3. Một số công nghệ điều khiển truy nhập 101 5.2. TƢỜNG LỬA 106 - 3 -
  5. Bài giảng Cơ sở an toàn thông tin Các bảng danh mục 5.2.1. Giới thiệu tƣờng lửa 106 5.2.2. Các loại tƣờng lửa 108 5.2.3. Các kỹ thuật kiểm soát truy nhập 110 5.2.4. Các hạn chế của tƣờng lửa 110 5.3. CÁC HỆ THỐNG PHÁT HIỆN VÀ NGĂN CHẶN XÂM NHẬP 111 5.3.1. Giới thiệu 111 5.3.2. Phân loại 112 5.3.3. Các kỹ thuật phát hiện xâm nhập 113 5.4. CÁC CÔNG CỤ RÀ QUÉT PHẦN MỀM ĐỘC HẠI 114 5.5. CÂU HỎI ÔN TẬP 116 CHƢƠNG 6. QUẢN LÝ, CHÍNH SÁCH VÀ PHÁP LUẬT AN TOÀN THÔNG TIN 117 6.1 QUẢN LÝ AN TOÀN THÔNG TIN 117 6.1.1. Khái quát về quản lý an toàn thông tin 117 6.1.2. Đánh giá rủi ro an toàn thông tin 118 6.1.3. Phân tích chi tiết rủi ro an toàn thông tin 120 6.1.4. Thực thi quản lý an toàn thông tin 122 6.2. CÁC CHUẨN QUẢN LÝ AN TOÀN THÔNG TIN 125 6.2.1. Giới thiệu 125 6.2.2. Chu trình Plan-Do-Check-Act 126 6.3. PHÁP LUẬT VÀ CHÍNH SÁCH AN TOÀN THÔNG TIN 127 6.3.1. Giới thiệu về pháp luật và chính sách an toàn thông tin 127 6.3.2. Luật quốc tế về an toàn thông tin 128 6.3.3. Luật Việt Nam về an toàn thông tin 129 6.4. VẤN ĐỀ ĐẠO ĐỨC ANPTIT TOÀN THÔNG TIN 130 6.4.1. Sự cần thiết của đạo đức an toàn thông tin 130 6.4.2. Một số bộ quy tắc ứng xử trong CNTT và ATTT 130 6.4.3. Một số vấn đề khác 131 6.5. CÂU HỎI ÔN TẬP 132 TÀI LIỆU THAM KHẢO 133 - 4 -
  6. Bài giảng Cơ sở an toàn thông tin Các bảng danh mục DANH MỤC CÁC HÌNH Hình 1.1. Các thuộc tính cần bảo vệ của tài sản thông tin: Bí mật (Confidentiality), Toàn vẹn (Integrity) và Sẵn dùng (Availability) 11 Hình 1.2. Mô hình hệ thống thông tin của cơ quan, tổ chức 12 Hình 1.3. Các thành phần của hệ thống thông tin và an toàn hệ thống thông tin 13 Hình 1.4. Số lƣợng các thiết bị kết nối vào Internet đến 2015 và dự báo đến 2021 [3] 13 Hình 1.5. Số lƣợng các sự cố toàn hệ thống thông tin đƣợc thông báo đến Cơ quan ứng cứu khẩn cấp máy tính (US-CERT) trong giai đoạn 2006 – 2014 [4] 14 Hình 1.6. Một văn bản đƣợc đóng dấu Confidential (Mật) 15 Hình 1.7. Đảm bảo tính bí mật bằng đƣờng hầm VPN, hoặc mã hóa 15 Hình 1.8. Minh họa tính sẵn dùng: (a) không đảm bảo và (b) đảm bảo tính sẵn dùng 16 Hình 1.9. Các thành phần chính của An toàn thông tin [1] 17 Hình 1.10. Đảm bảo an toàn máy tính và dữ liệu 17 Hình 1.11. Đảm bảo an toàn cho hệ thống mạng và thông tin truyền trên mạng 18 Hình 1.12. Chu trình quản lý an toàn thông tin 18 Hình 1.13. Chính sách an toàn thông tin 19 Hình 1.14. Bảy vùng trong hạ tầng CNTT theo mức kết nối mạng [2] 20 Hình 1.15. Các lớp bảo vệ cần cân bằng giữa Tính hữu dụng (Usability), Chi phí (Cost) và An toàn (Security) 21 Hình 1.16. Mô hình đảm bảo an toàn thông tin với bảy lớp 22 Hình 1.17. Mô hình đảm bảo an toàn thông tin với ba lớp chính 22 Hình 2.1. Mô hình hệ điều hành Unix/Linux, các dịch vụ và các ứng dụng 24 Hình 2.2. Phân bố lỗ hổng bảo mật trong các thành phần của hệ thống 26 Hình 2.3. Phân bố lỗ hổng bảo mật theo mức độ nghiêm trọng 26 Hình 2.4. Lỗ hổng bảo mật phát hiện trong các năm 2011 và 2012 trên các hệ điều hành 27 Hình 2.5. Lỗ hổng bảo mật phát hiện trong các năm 2011 và 2012 trên một số ứng dụng 27 Hình 2.6. Các vùng bộ nhớ cấp cho chƣơng trình 29 Hình 2.7. Một chƣơng trình minh họa cấp phát bộ nhớ trong ngăn xếp 29 Hình 2.8. Các thành phần đƣợcPTIT lƣu trong vùng bộ nhớ trong ngăn xếp 30 Hình 2.9. Cấp phát bộ nhớ cho các biến nhớ trong vùng bộ nhớ trong ngăn xếp 30 Hình 2.10. Một chƣơng trình minh họa gây tràn bộ nhớ đệm trong ngăn xếp 30 Hình 2.11. Minh họa hiện tƣợng tràn bộ nhớ đệm trong ngăn xếp 31 Hình 2.12. Một shellcode viết bằng hợp ngữ và chuyển thành chuỗi tấn công 32 Hình 2.13. Chèn và thực hiện shellcode khai thác lỗi tràn bộ đệm 32 Hình 2.14. Chèn shellcode với phần đệm bằng lệnh NOP (N) 32 Hình 2.15. Bản đồ lây nhiễm sâu Slammer (mầu xanh) theo trang www.caida.org vào ngày 25/1/2003 lúc 6h00 (giờ UTC) với 74.855 máy chủ bị nhiễm 33 Hình 2.16. Cung cấp dữ liệu quá lớn để gây lỗi cho ứng dụng 35 Hình 2.17. Cân bằng giữa An toàn (Secure), Hữu dụng (Usable) và Rẻ tiền (Cheap) 38 Hình 2.18. Báo cáo kết quả quét của Microsoft Baseline Security Analyzer 40 Hình 2.19. Kết quả quét website sử dụng Acunetix Web Vulnerability Scanner 40 Hình 3.1. Giao diện của công cụ Zenmap 44 Hình 3.2. Sử dụng Wireshark để bắt gói tin có chứa thông tin nhạy cảm 45 - 5 -
  7. Bài giảng Cơ sở an toàn thông tin Các bảng danh mục Hình 3.3. Mô đun Keylogger phần cứng và cài đặt trên máy tính để bàn 45 Hình 3.4. Form đăng nhập (log on) và đoạn mã xử lý xác thực ngƣời dùng 48 Hình 3.5. Form tìm kiếm sản phẩm và đoạn mã xử lý tìm sản phẩm 49 Hình 3.6. (a) Thủ tục bắt tay 3 bƣớc của TCP và (b) Tấn công SYN Flood 53 Hình 3.7. Mô hình tấn công Smurf 54 Hình 3.8. Kiến trúc tấn công DDoS trực tiếp 55 Hình 3.9. Kiến trúc tấn công DDoS gián tiếp hay phản xạ 56 Hình 3.10. Minh họa tấn công giả mạo địa chỉ IP 58 Hình 3.11. Tấn công nghe lén 58 Hình 3.12. Mô hình tấn công kiểu ngƣời đứng giữa 59 Hình 3.13. Một kịch bản tấn công kiểu ngƣời đứng giữa 59 Hình 3.14. Một phishing email gửi cho khách hàng của mạng đấu giá eBay 61 Hình 3.15. Một phishing email gửi cho khách hàng của ngân hàng Royal Bank 62 Hình 3.16. Tấn công pharming "cƣớp" trình duyệt 63 Hình 3.17. Tấn công pharming thông qua tấn công vào máy chủ DNS 63 Hình 3.18. Các dạng phần mềm độc hại 64 Hình 3.19. Minh họa vi rút máy tính 65 Hình 3.20. Chèn và gọi thực hiện mã vi rút 66 Hình 3.21. Minh họa sâu máy tính 67 Hình 3.22. Mô hình tin tặc sử dụng các máy tính Zombie để gửi thƣ rác 68 Hình 4.1. Các khâu Mã hóa (Encryption) và Giải mã (Decryption) của một hệ mã hóa 70 Hình 4.2. Mã hóa khóa đối xứng sử dụng 1 khóa bí mật 71 Hình 4.3. Mã hóa khóa bất đối xứng sử dụng một cặp khóa 71 Hình 4.4. Minh họa đầu vào (Input) và đầu ra (Digest) của hàm băm 72 Hình 4.5. Các thành phần của một hệ mã hóa đơn giản 72 Hình 4.6. Mã hóa dòng (Stream cipher) 73 Hình 4.7. Mã hóa khối (Block cipher) 73 Hình 4.8. Mã hóa bằng hệ mã hóa Caesar cipher 75 Hình 4.9. Phƣơng pháp thay thế với 4 bộ chữ mã 75 Hình 4.10. Phƣơng pháp hoán vị thực hiện đổi chỗ các bit 76 Hình 4.11. Phƣơng pháp hoán PTITvị thực hiện đổi chỗ các ký tự 76 Hình 4.12. Mã hóa bằng phƣơng pháp XOR 76 Hình 4.13. Mã hóa bằng phƣơng pháp Vernam 77 Hình 4.14. Mã hóa khóa đối xứng (Symmetric key encryption) 78 Hình 4.15. Các khâu mã hóa và giải mã của DES 79 Hình 4.16. Các bƣớc xử lý chuyển khối rõ 64 bit thành khối mã 64 bit của DES 80 Hình 4.17. Các bƣớc xử lý của hàm Feistel (F) 80 Hình 4.18. Thủ tục sinh các khóa phụ từ khóa chính của DES 81 Hình 4.19. Mã hóa và giải mã với giải thuật 3-DES 82 Hình 4.20. Các bƣớc xử lý mã hóa dữ liệu của AES 83 Hình 4.21. Thủ tục sinh khóa Rijndael 84 Hình 4.22. Hàm SubBytes sử dụng Rijndael S-box 85 Hình 4.23. Hàm ShiftRows 85 Hình 4.24. Hàm MixColumns 85 Hình 4.25. Hàm AddRoundKey 86 - 6 -
  8. Bài giảng Cơ sở an toàn thông tin Các bảng danh mục Hình 4.26. Quá trình mã hóa và giải mã trong AES 86 Hình 4.27. Mã hóa và giải mã trong hệ mã hóa bất đối xứng 87 Hình 4.28. Mô hình nén thông tin của hàm băm 90 Hình 4.29. Phân loại các hàm băm theo khóa sử dụng 90 Hình 4.30. Mô hình tổng quát xử lý dữ liệu của hàm băm 91 Hình 4.31. Mô hình chi tiết xử lý dữ liệu của hàm băm 92 Hình 4.32. Lƣu đồ xử lý một thao tác của MD5 93 Hình 4.33. Lƣu đồ xử lý một thao tác của SHA1 94 Hình 5.1. Mô hình ma trận điều khiển truy nhập 97 Hình 5.2. Mô hình danh sách điều khiển truy nhập 98 Hình 5.3. Mô hình điều khiển truy nhập Bell-LaPadula 99 Hình 5.4. Một mô hình RBAC đơn giản 101 Hình 5.5. Giao diện của một chứng chỉ số khóa công khai 102 Hình 5.6. Thẻ thông minh tiếp xúc (a) và thẻ không tiếp xúc (b) 103 Hình 5.7. Một số thẻ bài (Token) của hãng RSA Security 104 Hình 5.8. Ví điện tử (một dạng thẻ bài) của cổng thanh toán trực tuyến Paypal 104 Hình 5.9. Hệ thống ApplePay tích hợp vào điện thoại di động 104 Hình 5.10. (a) Khóa vân tay, (b) Khe xác thực vân tay trên laptop và (c) Xác thực vân tay trên điện thoại thông minh Samsung 105 Hình 5.11. Quét võng mạc nhận dạng tròng mắt 106 Hình 5.12. Một tƣờng lửa phần cứng chuyên dụng của Cisco 106 Hình 5.13. Tƣờng lửa bảo vệ mạng gia đình hoặc văn phòng nhỏ 107 Hình 5.14. Tƣờng lửa bảo vệ các máy chủ dịch vụ 107 Hình 5.15. Hệ thống tƣờng lửa bảo vệ các máy chủ dịch vụ và máy trạm 108 Hình 5.16. Mô hình tƣờng lửa lọc gói (a), Cổng ứng dụng (b) và Cổng chuyển mạch (c) 109 Hình 5.17. Tƣờng lửa có trạng thái chặn gói tin không thuộc kết nối đang hoạt động 109 Hình 5.18. Vị trí các hệ thống IDS và IPS trong sơ đồ mạng 111 Hình 5.19. Các NIDS đƣợc bố trí để giám sát phát hiện xâm nhập tại cổng vào và cho từng phân đoạn mạng 112 Hình 5.20. Sử dụng kết hợp NIDS và HIDS để giám sát lƣu lƣợng mạng và các host 112 Hình 5.21. Lƣu đồ giám sát phátPTIT hiện tấn công, xâm nhập dựa trên chữ ký 113 Hình 5.22. Giá trị entropy của IP nguồn của các gói tin từ lƣu lƣợng hợp pháp (phần giá trị cao, đều) và entropy của IP nguồn của các gói tin từ lƣu lƣợng tấn công DDoS (phần giá trị thấp) 114 Hình 5.23. Màn hình chính của Microsoft Windows Defender 115 Hình 6.1. Quan hệ giữa các khâu trong quản lý an toàn thông tin 118 Hình 6.2. Mô hình đánh giá rủi ro an toàn thông tin 118 Hình 6.3. Chu trình Plan-Do-Check-Act của ISO/IEC 27001:2005 126 Hình 6.4. Vấn đề tuân thủ (Compliance) pháp luật, chính sách và các nội quy, quy định 128 - 7 -
  9. Bài giảng Cơ sở an toàn thông tin Các bảng danh mục DANH MỤC CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT Từ Thuật ngữ tiếng Anh/Giải thích Thuật ngữ tiếng Việt/Giải thích viết tắt AES Advanced Encryption Standard Chuẩn mã hóa tiên tiến ATTT Information Security An toàn thông tin CNTT Information Technology Công nghệ thông tin CRC Cyclic redundancy checks Kiểm tra dƣ thừa vòng DAC Discretionary Access Control Điều khiển truy nhập tuỳ chọn DES Data Encryption Standard Chuẩn mã hóa dữ liệu DNS Domain Name System Hệ thống tên miền FTP File Transfer Protocol Giao thức truyền file HTTT Information System Hệ thống thông tin IDEA International Data Encryption Algorithm Giải thuật mã hóa dữ liệu quốc tế IPSec Internet Protocol Security An toàn giao thức Internet LAN Local Area Network Mạng cục bộ MAC Mandatory Access Control Điều khiển truy nhập bắt buộc Mã xác thực thông điệp (sử dụng hàm MAC Message Authentication Code băm có khóa) MD Message Digest Chuỗi đại diện thông điệp Mã phát hiện sử đổi (sử dụng hàm băm MDC Modification Detection Code không khóa) NSA National Security Agency Cơ quan mật vụ liên bang Mỹ PGP Pretty Good Privacy Chuẩn bảo mật PGP PKI Public Key Infrastructure Hạ tầng khóa công khai RBAC Role-Based Access ControlPTIT Điều khiển truy nhập dựa trên vai trò RSA RSA Public Key Croptosystem Hệ mật khóa công khai RSA SET Secure Electronic Transactions Các giao dịch điện tử an toàn SHA Secure Hash Algorithm Giải thuật băm an toàn SMTP Simple Mail Transfer Protocol Giao thức truyền thƣ điện tử đơn giản SSH Secure Shell Vỏ an toàn Secure Socket Layer / Transport Layer SSL/TLS Bộ giao thức bảo mật SSL / TLS Security SSO Single Sign On Đăng nhập một lần WAN Wide Area Network Mạng diện rộng WLAN Wireless Local Area Network Mạng cục bộ không dây - 8 -
  10. Bài giảng Cơ sở an toàn thông tin Mở đầu MỞ ĐẦU An toàn thông tin (Information security) là một lĩnh vực tƣơng đối mới và đƣợc quan tâm trong vài thập kỷ gần đây và phát triển mạnh trong khoảng 10 năm qua nhờ sự phát triển mạnh mẽ của mạng Internet và các dịch vụ mạng trên nền Internet. Tuy nhiên, do Internet ngày càng mở rộng và gần nhƣ không còn khái niệm biên giới quốc gia trong không gian mạng, các sự cố mất an toàn thông tin liên tục xảy ra và đặc biệt các dạng tấn công, xâm nhập các hệ thống máy tính và mạng xuất hiện ngày càng phổ biến và mức độ phá hoại ngày càng nghiêm trọng. Vấn đề đảm bảo an toàn cho thông tin, các hệ thống và mạng trở nên cấp thiết và là mối quan tâm của mỗi quốc gia, cơ quan, tổ chức và mỗi ngƣời dùng. An toàn thông tin đƣợc định nghĩa là việc bảo vệ chống truy nhập, sử dụng, tiết lộ, sửa đổi, hoặc phá hủy thông tin một cách trái phép. Dƣới một góc nhìn khác, An toàn thông tin là việc bảo vệ các thuộc tính bí mật, tính toàn vẹn và tính sẵn dùng của các tài sản thông tin trong quá trình chúng đƣợc lƣu trữ, xử lý, hoặc truyền tải. An toàn thông tin có thể đƣợc chia thành ba thành phần chính: An toàn máy tính và dữ liệu, An ninh mạng và Quản lý an toàn thông tin. Môn học Cơ sở an toàn thông tin là môn học cơ sở chuyên ngành trong chƣơng trình đào tạo đại học các ngành An toàn thông tin và ngành Công nghệ thông tin (chuyên ngành An toàn thông tin) của Học viện Công nghệ Bƣu chính Viễn thông. Mục tiêu của môn học cung cấp cho sinh viên các khái niệm và nguyên tắc cơ bản về đảm bảo an toàn thông tin, an toàn máy tính, an toàn hệ thống thông tin và mạng; các nguy cơ và các lỗ hổng gây mất an toàn; các dạng tấn công, xâm nhập thƣờng gặp; các dạng phần mềm độc hại; các giải pháp, kỹ thuật và công cụ phòng chống, đảm bảo an toàn thông tin, hệ thống và mạng; vấn đề quản lý an toàn thông tin, chính sách, pháp luật và đạo đức an toàn thông tin. Với phạm vi là một trong môn học cơ sở nhất về an toàn thông tin, nhóm tác giả cố gắng trình bày những vấn đề cơ sở nhất phục vụ mục tiêu môn học. Nội dung của tài liệu bài giảng đƣợc biên soạn thành 6 chƣơngPTIT với tóm tắt nội dung nhƣ sau: Chương 1- Tổng quan về an toàn thông tin giới thiệu các khái niệm về an toàn thông tin, an toàn hệ thống thông tin và các yêu cầu đảm bảo an toàn thông tin, an toàn hệ thống thông tin. Chƣơng cũng đề cập các nguy cơ, rủi ro trong các vùng của hạ tầng công nghệ thông tin theo mức kết nối mạng. Phần cuối của chƣơng giới thiệu mô hình tổng quát đảm bảo an toàn thông tin, an toàn hệ thống thông tin. Chương 2- Các lỗ hổng bảo mật và các điểm yếu hệ thống giới thiệu các khái niệm về các điểm yếu và lỗ hổng bảo mật tồn tại trong hệ thống, các dạng lỗ hổng bảo mật trong hệ điều hành và các phần mềm ứng dụng. Chƣơng đi sâu phân tích cơ chế xuất hiện và khai thác các lỗ hổng tràn bộ đệm và lỗ hổng không kiểm tra đầu vào. Phần cuối của chƣơng đề cập vấn đề quản lý, khắc phục các lỗ hổng bảo mật, tăng cƣờng khả năng đề kháng cho hệ thống và giới thiệu một số công cụ rà quét lỗ hổng bảo mật. - 9 -
  11. Bài giảng Cơ sở an toàn thông tin Mở đầu Chương 3- Các dạng tấn công và các phần mềm độc hại giới thiệu về các dạng tấn công điển hình vào các hệ thống máy tính và mạng, bao gồm tấn công vào mật khẩu, tấn công nghe lén, ngƣời đứng giữa, tấn công DoS, DDoS, tấn công sử dụng các kỹ thuật xã hội, Nửa cuối của chƣơng đề cập đến các dạng phần mềm độc hại, gồm cơ chế lây nhiễm và tác hại của chúng. Kèm theo phần mô tả mỗi tấn công, hoặc phần mềm độc hại, chƣơng đề cập các biện pháp, kỹ thuật phòng chống. Chương 4 – Đảm bảo an toàn thông tin dựa trên mã hóa giới thiệu các khái niệm cơ bản về mật mã, hệ mã hóa, các phƣơng pháp mã hóa. Phần tiếp theo của chƣơng trình bày một số giải thuật cơ bản của mã hóa khóa đối xứng (DES, 3-DES và AES), mã hóa khóa bất đối xứng (RSA) và các hàm băm (MD5 và SHA1). Chương 5- Các kỹ thuật và công nghệ đảm bảo an toàn thông tin giới thiệu khái quát về điều khiển truy nhập, các cơ chế (mô hình) điều khiển truy nhập và một số công nghệ điều khiển truy nhập đƣợc sử dụng trên thực tế. Phần tiếp theo của chƣơng giới thiệu về tƣờng lửa – một trong các kỹ thuật đƣợc sử dụng rất phổ biến trong đảm bảo an toàn cho hệ thống máy tính và mạng. Phần cuối của chƣơng giới thiệu về các hệ thống phát hiện và ngăn chặn xâm nhập và các công cụ rà quét phần mềm độc hại. Chương 6 – Quản lý, chính sách và pháp luật an toàn thông tin giới thiệu một số khái niệm cơ bản trong quản lý an toàn thông tin, vấn đề đánh giá rủi ro an toàn thông tin và thực thi quản lý an toàn thông tin. Nội dung tiếp theo đƣợc đề cập là các chuẩn quản lý an toàn thông tin, trong đó giới thiệu một số chuẩn của bộ chuẩn ISO/IEC 27000. Phần cuối của chƣơng giới thiệu khái quát về các vấn đề chính sách, pháp luật và đạo đức an toàn thông tin. Tài liệu đƣợc biên soạn dựa trên kinh nghiệm giảng dạy các môn học Cơ sở an toàn thông tin và môn học Mạng máy tính trong nhiều năm của nhóm tác giả tại Học viện Công nghệ Bƣu chính Viễn thông, kết hợp tiếp thu các đóng góp của đồng nghiệp và phản hồi từ sinh viên. Tài liệu có thể đƣợc sử dụng làm tài liệu học tập cho sinh viên hệ đại học các ngành An toàn thông tin và ngành Công nghệ thông tin (chuyên ngành An toàn thông tin). Trong quá trình biên soạn, mặc dù nhóm tác giả đã rất cố gắng song không thể tránh khỏi có những thiếu sót. Nhóm tác giả rất mong muPTITốn nhận đƣợc ý kiến phản hồi và các góp ý cho các thiếu sót, cũng nhƣ ý kiến về việc cập nhật, hoàn thiện nội dung của tài liệu. Hà Nội, Tháng 12 năm 2016 Nhóm tác giả TS. Hoàng Xuân Dậu ThS. Nguyễn Thị Thanh Thủy - 10 -
  12. Bài giảng Cơ sở an toàn thông tin Chương 1. Tổng quan về an toàn thông tin CHƯƠNG 1. TỔNG QUAN VỀ AN TOÀN THÔNG TIN Chương 1 giới thiệu các khái niệm về an toàn thông tin, an toàn hệ thống thông tin và các yêu cầu đảm bảo an toàn thông tin, an toàn hệ thống thông tin. Chương cũng đề cập các nguy cơ, rủi ro trong các vùng của hạ tầng công nghệ thông tin theo mức kết nối mạng. Phần cuối của chương giới thiệu mô hình tổng quát đảm bảo an toàn thông tin, an toàn hệ thống thông tin. 1.1. KHÁI QUÁT VỀ AN TOÀN THÔNG TIN 1.1.1. Một số khái niệm trong an toàn thông tin 1.1.1.1. An toàn thông tin An toàn thông tin (Information security) là việc bảo vệ chống truy nhập, sử dụng, tiết lộ, sửa đổi, hoặc phá hủy thông tin một cách trái phép, theo trang Wikipedia ( Theo cuốn Principles of Information Security [1], An toàn thông tin là việc bảo vệ các thuộc tính bí mật (confidentiality), tính toàn vẹn (integrity) và tính sẵn dùng (availability) của các tài sản thông tin trong quá trình chúng đƣợc lƣu trữ, xử lý, hoặc truyền tải. Hình 1.1 minh họa ba thuộc tính cần bảo vệ nói trên của các tài sản thông tin, bao gồm dữ liệu (Data) và dịch vụ (Services). PTIT Hình 1.1. Các thuộc tính cần bảo vệ của tài sản thông tin: Bí mật (Confidentiality), Toàn vẹn (Integrity) và Sẵn dùng (Availability) An toàn thông tin gồm hai lĩnh vực chính là An toàn công nghệ thông tin (Information technology security, hay IT security) và Đảm bảo thông tin (Information assurance). An toàn công nghệ thông tin, hay còn gọi là An toàn máy tính (Computer security) là việc đảm bảo an toàn cho các hệ thống công nghệ thông tin, bao gồm các hệ thống máy tính và mạng, chống lại các cuộc tấn công phá hoại. Đảm bảo thông tin là việc đảm bảo thông tin không bị mất khi xảy ra các sự cố, nhƣ thiên tai, hỏng hóc, trộm cắp, phá hoại, Đảm bảo thông tin thƣờng đƣợc thực hiện sử dụng các kỹ thuật sao lưu ngoại vi (offsite backup), trong đó dữ liệu thông tin từ hệ thống gốc đƣợc sao lƣu ra các thiết bị lƣu trữ vật lý đặt ở một vị trí khác. - 11 -
  13. Bài giảng Cơ sở an toàn thông tin Chương 1. Tổng quan về an toàn thông tin 1.1.1.2. Hệ thống thông tin và an toàn hệ thống thông tin Hệ thống thông tin (Information system), theo cuốn Fundamentals of Information Systems Security [2] là một hệ thống tích hợp các thành phần nhằm phục vụ việc thu thập, lƣu trữ, xử lý thông tin và chuyển giao thông tin, tri thức và các sản phẩm số. Trong nền kinh tế số, hệ thống thông tin đóng vai trò rất quan trọng trong hoạt động của các tổ chức, cơ quan và doanh nghiệp (gọi chung là tổ chức). Có thể nói, hầu hết các tổ chức đều sử dụng các hệ thống thông tin với các quy mô khác nhau để quản lý các hoạt động của mình. Hình 1.2 minh họa mô hình một hệ thống thông tin điển hình. Trong mô hình này, mỗi hệ thống thông tin gồm ba thành phần chính: (i) thành phần thu thập thông tin (Input), (ii) thành phần xử lý thông tin (Processing) và (iii) thành phần kết xuất thông tin (Output). Hệ thống thông tin đƣợc sử dụng để tƣơng tác với khách hàng (Customers), với nhà cung cấp (Suppliers), với cơ quan chính quyền (Regulatory Agencies), với cổ đông và với đối thủ cạnh tranh (Competitors). Có thể nêu là một số hệ thống thông tin điển hình nhƣ các hệ lập kế hoạch nguồn lực doanh nghiệp, các máy tìm kiếm và các hệ thống thông tin địa lý. PTIT Hình 1.2. Mô hình hệ thống thông tin của cơ quan, tổ chức Trong lớp các hệ thống thông tin, hệ thống thông tin dựa trên máy tính (Computer-based information system), hay sử dụng công nghệ máy tính để thực thi các nhiệm vụ là lớp hệ thống thông tin đƣợc sử dụng rộng rãi nhất. Hệ thống thông tin dựa trên máy tính thƣờng gồm các thành phần: phần cứng (Hardware) để thu thập, lƣu trữ, xử lý và biểu diễn dữ liệu; phần mềm (Software) chạy trên phần cứng để xử lý dữ liệu; cơ sở dữ liệu (Databases) để lƣu trữ dữ liệu; mạng (Networks) là hệ thống truyền dẫn thông tin/dữ liệu; và các thủ tục (Procedures) là tập hợp các lệnh kết hợp các bộ phận nêu trên để xử lý dữ liệu, đƣa ra kết quả mong muốn. An toàn hệ thống thông tin (Information systems security) là việc đảm bảo các thuộc tính an ninh, an toàn của hệ thống thông tin, bao gồm tính bí mật (confidentiality), tính toàn vẹn (integrity) và tính sẵn dùng (availability). Hình 1.3 minh họa các thành phần của Hệ thống thông tin dựa trên máy tính và An toàn hệ thống thông tin. - 12 -
  14. Bài giảng Cơ sở an toàn thông tin Chương 1. Tổng quan về an toàn thông tin Hình 1.3. Các thành phần của hệ thống thông tin và an toàn hệ thống thông tin 1.1.1.3. Một số khái niệm khác Truy nhập (Access) là việc một chủ thể, ngƣời dùng hoặc một đối tƣợng có khả năng sử dụng, xử lý, sửa đổi, hoặc gây ảnh hƣởng đến một chủ thể, ngƣời dùng hoặc một đối tƣợng khác. Trong khi ngƣời dùng hợp pháp có quyền truy nhập hợp pháp đến một hệ thống thì tin tặc truy nhập bất hợp pháp đến hệ thống. Tài sản (Asset) là tài nguyên của các tổ chức, cá nhân đƣợc bảo vệ. Tài sản có thể là tài sản lô gíc, nhƣ một trang web, thông tin, hoặc dữ liệu. Tài sản có thể là tài sản vật lý, nhƣ hệ thống máy tính, thiết bị mạng, hoặc các tài sản khác. Tấn công (Attack) là hành động có chủ ý hoặc không có chủ ý có khả năng gây hại, hoặc làm thỏa hiệp các thông tin, hệ thống và các tài sản đƣợc bảo vệ. Tấn công có thể chủ động hoặc thụ động, trực tiếp hoặc gián tiếp. 1.1.2. Sự cần thiết của an toànPTIT thông tin Hình 1.4. Số lượng các thiết bị kết nối vào Internet đến 2015 và dự báo đến 2021 [3] - 13 -
  15. Bài giảng Cơ sở an toàn thông tin Chương 1. Tổng quan về an toàn thông tin Trong những năm gần đây, cùng với sự phát triển mạnh mẽ của các thiết bị di động, và đặc biệt là các thiết bị IoT (Internet of Things), số lƣợng ngƣời dùng mạng Internet và số lƣợng thiết bị kết nối vào mạng Internet tăng trƣởng nhanh chóng. Theo thống kê và dự báo của Forbes [3] cho trên Hình 1.4, số lƣợng các thiết bị có kết nối Internet là khoảng 15 tỷ và dự báo sẽ tăng mạnh lên khoảng 28 tỷ thiết bị có kết nối vào năm 2021. Các thiết bị IoT kết nối thông minh là nền tảng cho phát triển nhiều ứng dụng quan trọng trong các lĩnh vực của đời sống xã hội, nhƣ thành phố thông minh, cộng đồng thông minh, ngôi nhà thông minh, ứng dụng giám sát và chăm sóc sức khỏe, Hình 1.5. Số lượng các sự cố toàn hệ thống thông tin được thông báo đến Cơ quan ứng cứu khẩn cấp máy tính (US-CERT) trong giai đoạn 2006 – 2014 [4] Cùng với những lợi ích to lớn mà các thiết bị kết nối Internet mạng lại, các sự cố mất an toàn thông tin đối với các hệ thống máy tính, điện thoại di động thông minh, các thiết bị IoT và ngƣời dùng cũng tăng vọt. Theo số liệu ghi nhận của Cơ quan Thống kê quốc gia Hoa Kỳ cho trên Hình 1.5, số lƣợng cácPTIT sự cố mất an toàn hệ thống thông tin đƣợc thông báo đến Cơ quan ứng cứu khẩn cấp máy tính (US-CERT) trong giai đoạn 2006 – 2014 tăng rất mạnh, từ 5.503 vụ vào năm 2006 lên đến 67.168 vụ vào năm 2014. Ở Việt Nam, trong báo cáo “Tổng kết an ninh mạng năm 2015 và dự báo xu hướng 2016” [5], Tập đoàn Bkav cho biết 8.700 tỷ đồng là tổng thiệt hại ƣớc tính do vi rút máy tính gây ra đối với ngƣời dùng Việt Nam trong năm 2015. Con số này vẫn ở mức cao và tiếp tục tăng so với 8.500 tỷ đồng của năm 2014. Dự báo trong năm 2016 và các năm tiếp theo, số lƣợng sự cố và thiệt hại do mất an toàn thông tin gây ra còn có thể lớn hơn nữa, do số lƣợng thiết bị kết nối tăng trƣởng nhanh chóng và nguy cơ từ sự phát triển mạnh của các phần mềm độc hại và các kỹ thuật tấn công, phá hoại tinh vi. Nhƣ vậy, việc đảm bảo an toàn cho thông tin, máy tính, hệ thống mạng và các thiết bị kết nối khác, chống lại các truy nhập trái phép và các cuộc tấn công phá hoại là rất cần thiết không chỉ đối với các cá nhân, cơ quan, tổ chức, doanh nghiệp mà còn cả đối với an ninh quốc gia. Hơn nữa, việc xây dựng các giải pháp an toàn thông tin chỉ thực sự hiệu quả khi - 14 -
  16. Bài giảng Cơ sở an toàn thông tin Chương 1. Tổng quan về an toàn thông tin đƣợc thực hiện bài bản, đồng bộ, đảm bảo cân bằng giữa tính an toàn, tính hữu dụng của hệ thống và chi phí đầu tƣ cho các biện pháp đảm bảo an toàn. 1.2. CÁC YÊU CẦU ĐẢM BẢO ATTT VÀ HTTT Nhƣ đã trình bày trong Mục 1.1, việc đảm bảo an toàn thông tin, hoặc hệ thống thông tin là việc đảm bảo ba thuộc tính của thông tin, hoặc hệ thống, bao gồm tính Bí mật (Confidentiality), tính Toàn vẹn (Integrity) và tính Sẵn dùng (Availability). Đây cũng là ba yêu cầu đảm bảo an toàn thông tin và hệ thống thông tin. 1.2.1. Bí mật Tính bí mật đảm bảo rằng chỉ ngƣời dùng có thẩm quyền mới đƣợc truy nhập thông tin, hệ thống. Các thông tin bí mật có thể bao gồm: (i) dữ liệu riêng của cá nhân, (ii) các thông tin thuộc quyền sở hữu trí tuệ của các doanh nghiệp hay các cơ quan, tổ chức và (iii) các thông tin có liên quan đến an ninh của các quốc gia và các chính phủ. Hình 1.6 minh họa một văn bản đƣợc đóng dấu Confidential (Mật), theo đó chỉ những ngƣời có thẩm quyền (có thể không gồm ngƣời soạn thảo văn bản) mới đƣợc đọc và phổ biến văn bản. PTIT Hình 1.6. Một văn bản được đóng dấu Confidential (Mật) Hình 1.7. Đảm bảo tính bí mật bằng đường hầm VPN, hoặc mã hóa - 15 -
  17. Bài giảng Cơ sở an toàn thông tin Chương 1. Tổng quan về an toàn thông tin Thông tin bí mật lƣu trữ hoặc trong quá trình truyền tải cần đƣợc bảo vệ bằng các biện pháp phù hợp, tránh bị lộ lọt hoặc bị đánh cắp. Các biện pháp có thể sử dụng để đảm bảo tính bí mật của thông tin nhƣ bảo vệ vật lý, hoặc sử dụng mật mã (cryptography). Hình 1.7 minh họa việc đảm bảo tính bí mật bằng cách sử dụng đƣờng hầm VPN, hoặc mã hóa để truyền tải thông tin. 1.2.2. Toàn vẹn Tính toàn vẹn đảm bảo rằng thông tin và dữ liệu chỉ có thể đƣợc sửa đổi bởi những ngƣời dùng có thẩm quyền. Tính toàn vẹn liên quan đến tính hợp lệ (validity) và chính xác (accuracy) của dữ liệu. Trong nhiều tổ chức, thông tin và dữ liệu có giá trị rất lớn, nhƣ bản quyền phần mềm, bản quyền âm nhạc, bản quyền phát minh, sáng chế. Mọi thay đổi không có thẩm quyền có thể ảnh hƣởng rất nhiều đến giá trị của thông tin. Thông tin hoặc dữ liệu là toàn vẹn nếu nó thỏa mãn ba điều kiện: (i) không bị thay đổi, (ii) hợp lệ và (iii) chính xác. 1.2.3. Sẵn dùng Tính sẵn dùng, hoặc khả dụng đảm bảo rằng thông tin, hoặc hệ thống có thể truy nhập bởi ngƣời dùng hợp pháp bất cứ khi nào họ có yêu cầu. Tính sẵn dùng có thể đƣợc đo bằng các yếu tố: - Thời gian cung cấp dịch vụ (Uptime); - Thời gian ngừng cung cấp dịch vụ (Downtime); - Tỷ lệ phục vụ: A = (Uptime) / (Uptime + Downtime); - Thời gian trung bình giữa các sự cố; - Thời gian trung bình ngừng để sửa chữa; - Thời gian khôi phục sau sự cố. PTIT Hình 1.8. Minh họa tính sẵn dùng: (a) không đảm bảo và (b) đảm bảo tính sẵn dùng Hình 1.8 minh họa tính sẵn dùng: trƣờng hợp (a) hệ thống không đảm bảo tính sẵn dùng khi có một số thành phần gặp sự cố thì không có khả năng phục vụ tất cả các yêu cầu của ngƣời dùng và (b) hệ thống đảm bảo tính sẵn dùng khi các thành phần của nó hoạt động bình thƣờng. - 16 -
  18. Bài giảng Cơ sở an toàn thông tin Chương 1. Tổng quan về an toàn thông tin 1.3. CÁC THÀNH PHẦN CỦA AN TOÀN THÔNG TIN An toàn thông tin có thể đƣợc chia thành ba thành phần chính: an toàn máy tính và dữ liệu (Computer & data security), an ninh mạng (Network security) và quản lý an toàn thông tin (Management of information security) [1]. Ba thành phần của an toàn thông tin có quan hệ mật thiết và giao thoa với nhau, trong đó phần chung của cả ba thành phần trên là chính sách an toàn thông tin (Policy) nhƣ minh họa trên Hình 1.9. Hình 1.9. Các thành phần chính của An toàn thông tin [1] 1.3.2. An toàn máy tính và dữ liệu An toàn máy tính và dữ liệu là việc đảm bảo an toàn cho hệ thống phần cứng, phần mềm và dữ liệu trên máy tính; đảm bảo cho máy tính có thể vận hành an toàn, đáp ứng các yêu cầu của ngƣời sử dụng. An toàn máy tính và dữ liệu bao gồm các nội dung: - Đảm bảo an toàn hệ điều hành, ứng dụng, dịch vụ; - Vấn đề điều khiển truy nhập; - Vấn đề mã hóa và bảo mật dữ liệu; - Vấn đề phòng chống phPTITần mềm độc hại; - Việc sao lƣu tạo dự phòng dữ liệu, đảm bảo dữ liệu lƣu trong máy tính không bị mất mát khi xảy ra sự cố. Hình 1.10. Đảm bảo an toàn máy tính và dữ liệu - 17 -
  19. Bài giảng Cơ sở an toàn thông tin Chương 1. Tổng quan về an toàn thông tin 1.3.3. An ninh mạng An ninh mạng là việc đảm bảo an toàn cho hệ thống mạng và các thông tin truyền tải trên mạng, chống lại các tấn công, xâm nhập trái phép. Các kỹ thuật và công cụ thƣờng đƣợc sử dụng trong an ninh mạng bao gồm: - Các tƣờng lửa, proxy cho lọc gói tin và điều khiển truy nhập; - Mạng riêng ảo và các kỹ thuật bảo mật thông tin truyền nhƣ SSL/TLS, PGP; - Các kỹ thuật và hệ thống phát hiện, ngăn chặn tấn công, xâm nhập; - Vấn đề giám sát mạng. Hình 1.11. Đảm bảo an toàn cho hệ thống mạng và thông tin truyền trên mạng 1.3.4. Quản lý an toàn thông tin Quản lý an toàn thông tin là việc quản lý và giám sát việc thực thi các biện pháp đảm bảo an toàn thông tin, giúp nâng cao hiệu quả của chúng. Một trong các nội dung cốt lõi của quản lý an toàn thông tin là việc quản lý các rủi ro (Risk management), trong đó việc nhận dạng và đánh giá rủi ro (Risk assessment) đóng vai trò then chốt. Các nội dung khác của quản lý an toàn thông tin, bao gồm các chuẩn an toàn thông tin, chính sách an toàn thông tin và vấn đề đào tạo, nâng cao ý thức an toànPTIT thông tin của ngƣời dùng. Hình 1.12. Chu trình quản lý an toàn thông tin - 18 -
  20. Bài giảng Cơ sở an toàn thông tin Chương 1. Tổng quan về an toàn thông tin Việc thực thi quản lý an toàn thông tin cần đƣợc thực hiện theo chu trình lặp lại, từ khâu lập kế hoạch (Plan), thực thi kế hoạch (Implement), giám sát kết quả thực hiện (Monitor) và thực hiện các kiểm soát (Control) nhƣ minh họa trên Hình 1.12, do các điều kiện bên trong và bên ngoài thay đổi theo thời gian. 1.3.5. Chính sách an toàn thông tin Chính sách an toàn thông tin (Information security policy) là các nội quy, quy định của cơ quan, tổ chức, nhằm đảm bảo các biện pháp đảm bảo an toàn thông tin đƣợc thực thi và tuân thủ. Chính sách an toàn thông tin, nhƣ minh họa trên Hình 1.13 gồm 3 thành phần: - Chính sách an toàn ở mức vật lý (Physical security policy); - Chính sách an toàn ở mức tổ chức (Organizational security policy); - Chính sách an toàn ở mức logic (Logical security policy). Một ví dụ về chính sách an toàn thông tin: để tăng cƣờng an toàn cho hệ thống công nghệ thông tin, một tổ chức có thể áp dụng chính sách xác thực „mạnh‟ sử dụng các đặc điểm sinh trắc (Biometrics), nhƣ xác thực sử dụng vân tay thay cho mật khẩu truyền thống cho hệ thống cửa ra vào trung tâm dữ liệu, hoặc đăng nhập vào hệ thống máy tính. PTIT Hình 1.13. Chính sách an toàn thông tin 1.4. CÁC MỐI ĐE DỌA VÀ NGUY CƠ TRONG CÁC VÙNG HẠ TẦNG CNTT 1.4.1. Bảy vùng trong cơ sở hạ tầng CNTT Hạ tầng công nghệ thông tin (IT Infrastructure) của các cơ quan, tổ chức, doanh nghiệp có thể có quy mô lớn hay nhỏ khác nhau, nhƣng thƣờng gồm bảy vùng theo mức kết nối mạng nhƣ minh họa trên Hình 1.14 [2]. Các vùng cụ thể gồm: vùng ngƣời dùng (User domain), vùng máy trạm (Workstation domain), vùng mạng LAN (LAN domain), vùng LAN-to-WAN (LAN-to-WAN domain), vùng mạng WAN (WAN domain), vùng truy nhập từ xa (Remote Access domain) và vùng hệ thống/ứng dụng (Systems/Applications domain). Do mỗi vùng kể trên có đặc điểm khác nhau nên chúng có các mối đe dọa và nguy cơ mất an toàn thông tin khác nhau. - 19 -
  21. Bài giảng Cơ sở an toàn thông tin Chương 1. Tổng quan về an toàn thông tin Hình 1.14. Bảy vùng trong hạ tầng CNTT theo mức kết nối mạng [2] 1.4.2. Các mối đe dọa và nguy cơ trong các vùng hạ tầng CNTT Vùng người dùng Có thể nói vùng ngƣời dùng là vùng có nhiều mối đe dọa và nguy cơ nhất do ngƣời dùng có bản chất khó đoán định và khó kiểm soát hành vi. Các vấn đề thƣờng gặp nhƣ thiếu ý thức, coi nhẹ vấn đề an ninh an toàn, vi phạm các chính sách an ninh an toàn; đƣa CD/DVD/USB với các file cá nhân vào hệ thống; tải ảnh, âm nhạc, video trái phép; phá hoại dữ liệu, ứng dụng và hệ thống; các nhân viên bất mãn có thể tấn công hệ thống từ bên trong, hoặc nhân viên có thể tống tiền hoặc chiếm đoạt thông tin nhạy cảm, thông tin quan trọng. Vùng máy trạm Vùng máy trạm cũng có nhiều mối đe dọa và nguy cơ do vùng máy trạm tiếp xúc trực tiếp với vùng ngƣời dùng. Các nguy cơ thƣờng gặp gồm: truy nhập trái phép vào máy trạm, hệ thống, ứng dụng và dữ liệu; cácPTIT lỗ hổng an ninh trong hệ điều hành, trong các phần mềm ứng dụng máy trạm; các hiểm họa từ vi rút, mã độc và các phần mềm độc hại. Ngoài ra, vùng máy trạm cũng chịu các nguy cơ do hành vi bị cấm từ ngƣời dùng, nhƣ đƣa CD/DVD/USB với các file cá nhân vào hệ thống; tải ảnh, âm nhạc, video trái phép. Vùng mạng LAN Các nguy cơ có thể có đối với vùng mạng LAN bao gồm: truy nhập trái phép vào mạng LAN vật lý, truy nhập trái phép vào hệ thống, ứng dụng và dữ liệu; các lỗ hổng an ninh trong hệ điều hành và các phần mềm ứng dụng máy chủ; nguy cơ từ ngƣời dùng giả mạo trong mạng WLAN; tính bí mật dữ liệu trong mạng WLAN có thể bị đe dọa do sóng mang thông tin của WLAN truyền trong không gian có thể bị nghe trộm. Ngoài ra, các hƣớng dẫn và cấu hình chuẩn cho máy chủ LAN nếu không đƣợc tuân thủ nghiêm ngặt sẽ dẫn đến những lỗ hổng an ninh mà tin tặc có thể khai thác. - 20 -
  22. Bài giảng Cơ sở an toàn thông tin Chương 1. Tổng quan về an toàn thông tin Vùng mạng LAN-to-WAN Vùng mạng LAN-to-WAN là vùng chuyển tiếp từ mạng nội bộ ra mạng diện rộng, nên nguy cơ lớn nhất là tin tặc từ mạng WAN có thể thăm dò và rà quét trái phép các cổng dịch vụ, nguy cơ truy nhập trái phép. Ngoài ra, một nguy cơ khác cần phải xem xét là lỗ hổng an ninh trong các bộ định tuyến, tƣờng lửa và các thiết bị mạng khác. Vùng mạng WAN Vùng mạng WAN, hay mạng Internet là vùng mạng mở, trong đó hầu hết dữ liệu đƣợc truyền dƣới dạng rõ, nên các nguy cơ lớn nhất là dễ bị nghe trộm và dễ bị tấn công phá hoại, tấn công từ chối dịch vụ (DoS) và từ chối dịch vụ phân tán (DDoS). Kẻ tấn công có thể tự do, dễ dàng gửi email có đính kèm vi rút, sâu và các phần mềm độc hại. Vùng truy nhập từ xa Trong vùng truy nhập từ xa, các nguy cơ điển hình bao gồm: tấn công kiểu vét cạn vào tên ngƣời dùng và mật khẩu, tấn công vào hệ thống đăng nhập và điều khiển truy nhập; truy nhập trái phép vào hệ thống CNTT, ứng dụng và dữ liệu; các thông tin bí mật có thể bị đánh cắp từ xa; và vấn đề rò rỉ dữ liệu do vi phạm các tiêu chuẩn phân loại dữ liệu. Vùng hệ thống và ứng dụng Trong vùng hệ thống và ứng dụng, các nguy cơ có thể bao gồm: truy nhập trái phép đến trung tâm dữ liệu, phòng máy hoặc tủ cáp; các khó khăn trong quản lý các máy chủ với yêu cầu tính sẵn dùng cao; các lỗ hổng trong quản lý các phần mềm ứng dụng của hệ điều hành máy chủ; các vấn đề an ninh trong các môi trƣờng ảo của điện toán đám mây; và vấn đề hỏng hóc hoặc mất dữ liệu. 1.5. MÔ HÌNH TỔNG QUÁT ĐẢM BẢO ATTT VÀ HỆ THỐNG THÔNG TIN 1.5.1. Nguyên tắc đảm bảo an toàn thông tin, hệ thống và mạng PTIT Hình 1.15. Các lớp bảo vệ cần cân bằng giữa Tính hữu dụng (Usability), Chi phí (Cost) và An toàn (Security) Nguyên tắc chủ đạo xuyên suốt trong đảm bảo an toàn thông tin, hệ thống và mạng là Phòng vệ nhiều lớp có chiều sâu (Defence in Depth). Theo nguyên tắc này, ta cần tạo ra nhiều lớp bảo vệ, kết hợp tính năng, tác dụng của mỗi lớp để đảm bảo an toàn tối đa cho thông tin, hệ thống và mạng. Một lớp, một công cụ phòng vệ riêng rẽ dù có hiện đại, nhƣng vẫn không thể đảm bảo an toàn. Do vậy, việc tạo ra nhiều lớp bảo vệ có khả năng bổ sung cho nhau là cách làm hiệu quả. Một điểm khác cần lƣu ý khi thiết kế và triển khai hệ thống đảm bảo an toàn thông tin là cần cân bằng giữa tính hữu dụng (Usability), chi phí (Cost) và an toàn - 21 -
  23. Bài giảng Cơ sở an toàn thông tin Chương 1. Tổng quan về an toàn thông tin (Security), nhƣ minh họa trên Hình 1.15. Hệ thống đảm bảo an toàn thông tin chỉ thực sự phù hợp và hiệu quả khi hệ thống đƣợc bảo vệ đạt mức an toàn phù hợp mà vẫn có khả năng cung cấp các tính năng hữu dụng cho ngƣời dùng, với chi phí cho đảm bảo an toàn phù hợp với tài sản đƣợc bảo vệ. 1.5.2. Mô hình tổng quát đảm bảo an toàn thông tin và hệ thống thông tin Hình 1.16 minh họa mô hình đảm bảo an toàn thông tin với bảy lớp bảo vệ, bao gồm lớp chính sách, thủ tục, ý thức (Policies, procedures, awareness); lớp vật lý (Physical); lớp ngoại vi (Perimeter); lớp mạng nội bộ (Internal network); lớp host (Host); lớp ứng dụng (Application) và lớp dữ liệu (Data). Trong mô hình này, để truy nhập đƣợc đến đối tƣợng đích là dữ liệu, tin tặc cần phải vƣợt qua cả 7 lớp bảo vệ. Hình 1.16. Mô hình đảm bảo an toàn thông tin với bảy lớp PTIT Hình 1.17. Mô hình đảm bảo an toàn thông tin với ba lớp chính Tƣơng tự, Hình 1.17 minh họa mô hình phòng vệ gồm 3 lớp chính: lớp an ninh cơ quan/tổ chức, lớp an ninh mạng và lớp an ninh hệ thống. Mỗi lớp chính lại gồm một số lớp con nhƣ sau: - 22 -
  24. Bài giảng Cơ sở an toàn thông tin Chương 1. Tổng quan về an toàn thông tin - Lớp an ninh cơ quan/tổ chức (Plant Security), gồm 2 lớp con: + Lớp bảo vệ vật lý (Physical Security) có nhiệm vụ kiểm soát các truy nhập vật lý đến các trang thiết bị hệ thống và mạng. + Lớp chính sách & thủ tục (Policies & procedures) bao gồm các quy trình quản lý an toàn thông tin, các hƣớng dẫn vận hành, quản lý hoạt động liên tục và phục hồi sau sự cố. - Lớp an ninh mạng (Network Security), gồm 2 lớp con: + Lớp bảo vệ vùng hạn chế truy nhập (Security cells and DMZ) cung cấp các biện pháp bảo vệ cho từng phân đoạn mạng. + Lớp các tƣờng lửa, mạng riêng ảo (Firewalls and VPN) đƣợc triển khai nhƣ điểm truy nhập duy nhất đến một phân đoạn mạng. - Lớp an ninh hệ thống (System Integrity), gồm 4 lớp con: + Lớp tăng cƣờng an ninh hệ thống (System hardening) đảm bảo việc cài đặt và cấu hình các thành phần trong hệ thống đảm bảo các yêu cầu an toàn. + Lớp quản trị tài khoản ngƣời dùng (User Account Management) thực hiện kiểm soát truy nhập dựa trên quyền truy nhập và các đặc quyền của ngƣời dùng. + Lớp quản lý các bản vá (Patch Management) có nhiệm vụ định kỳ cài đặt các bản vá an ninh và các bản cập nhật cho hệ thống. + Lớp phát hiện và ngăn chặn phần mềm độc hại (Malware detection and prevention) có nhiệm vụ bảo vệ hệ thống, chống vi rút và các phần mềm độc hại khác. 1.6. CÂU HỎI ÔN TẬP 1) An toàn thông tin (Information Security) là gì? 2) Tại sao cần phải đảm bảo an toàn cho thông tin? 3) Đảm bảo thông tin thƣờng đƣợc thực hiện bằng cách nào? 4) An toàn hệ thống thông tin là gì? 5) Nêu các yêu cầu đảm bảo anPTIT toàn thông tin và hệ thống thông tin. 6) An toàn thông tin gồm những thành phần cơ bản nào? 7) Nêu các rủi ro trong vùng ngƣời dùng và vùng máy trạm trong hạ tầng CNTT. Tại sao nói vùng ngƣời dùng là vùng có nhiều nguy cơ và rủi ro nhất? 8) Nêu các rủi ro trong vùng mạng LAN, LAN-to-WAN và vùng mạng WAN trong hạ tầng CNTT. Tại sao vùng mạng WAN có nguy cơ bị tấn công phá hoại cao? 9) Nguyên tắc cơ bản cho đảm bảo an toàn thông tin, hệ thống và mạng là gì? 10) Mô tả một mô hình tổng quát đảm bảo an toàn thông tin và hệ thống thông tin. - 23 -
  25. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống CHƯƠNG 2. LỖ HỔNG BẢO MẬT VÀ ĐIỂM YẾU HỆ THỐNG Chương 2 giới thiệu các khái niệm về các điểm yếu và lỗ hổng bảo mật tồn tại trong hệ thống, các dạng lỗ hổng bảo mật trong hệ điều hành và các phần mềm ứng dụng. Chương đi sâu phân tích cơ chế xuất hiện và khai thác các lỗ hổng tràn bộ đệm và lỗ hổng không kiểm tra đầu vào. Phần cuối của chương đề cập vấn đề quản lý, khắc phục các lỗ hổng bảo mật, tăng cường khả năng đề kháng cho hệ thống và giới thiệu một số công cụ rà quét lỗ hổng bảo mật. 2.1. TỔNG QUAN VỀ LỖ HỔNG BẢO MẬT VÀ CÁC ĐIỂM YẾU HỆ THỐNG 2.1.1. Khái quát về điểm yếu hệ thống và lỗ hổng bảo mật 2.1.1.1. Các thành phần của hệ thống Một hệ thống máy tính gồm 2 thành phần cơ bản là hệ thống phần cứng và hệ thống phần mềm. Hệ thống phần cứng bao gồm các mô đun phần cứng tạo nên máy tính vật lý, bao gồm CPU, ROM, RAM, Bus, ; các giao diện ghép nối và các thiết bị ngoại vi, nhƣ bàn phím, màn hình, ổ đĩa, và các giao diện ghép nối mạng LAN, WLAN, 3G, Hệ thống phần mềm bao gồm hệ điều hành và các phần mềm ứng dụng. Hệ điều hành cung cấp môi trƣờng làm việc cho các ứng dụng và giao diện ngƣời dùng, đƣợc cấu thành từ nhân hệ điều hành, các trình điều khiển thiết bị, hệ thống quản lý tiến trình, hệ thống quản lý file, các trình cung cấp dịch vụ, tiện ích, Các phần mềm ứng dụng là các chƣơng trình cung cấp các tính năng hữu ích cho ngƣời dùng, bao gồm các dịch vụ (máy chủ web, cơ sở dữ liệu, DNS, ), các trình duyệt web, các ứng dụng giao tiếp, các bộ ứng dụng văn phòng, công cụ lập trình, phát triển phần mềm Hình 2.1 minh họa mô hình hệ điều hành Unix/Linux, các dịch vụ và các ứng dụng. PTIT Hình 2.1. Mô hình hệ điều hành Unix/Linux, các dịch vụ và các ứng dụng 2.1.1.2. Điểm yếu hệ thống và lỗ hổng bảo mật Trên thực tế, không có hệ thống nào là hoàn hảo, không có điểm yếu, hoặc khiếm khuyết. Các hệ thống máy tính, hoặc hệ thống thông tin là các hệ thống rất phức tạp, đƣợc cấu thành - 24 -
  26. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống từ nhiều thành phần phần cứng, phần mềm, luôn tồn tại các lỗi, các khiếm khuyết, hay các điểm yếu. Các điểm yếu có thể tồn tại trong các mô đun phần cứng, phần mềm. Nguyên nhân có thể do lỗi thiết kế, lỗi cài đặt, hoặc lập trình, hoặc do cấu hình hoạt động không chuẩn, Nhìn chung, các hệ thống càng phức tạp và nhiều tính năng thì khả năng xuất hiện các lỗi và điểm yếu càng tăng. Các điểm yếu hệ thống (System weaknesses) là các lỗi hay các khiếm khuyết tồn tại trong hệ thống. Nguyên nhân của sự tồn tại các điểm yếu có thể do lỗi thiết kế, lỗi cài đặt, lỗi lập trình, hoặc lỗi quản trị, cấu hình hoạt động. Các điểm yếu có thể tồn tại trong cả các mô đun phần cứng và các mô đun phần mềm. Một số điểm yếu đƣợc phát hiện và đã đƣợc khắc phục. Tuy nhiên, có một số điểm yếu đƣợc phát hiện nhƣng chƣa đƣợc khắc phục, hoặc các điểm yếu chƣa đƣợc phát hiện, hoặc chỉ tồn tại trong một điều kiện đặc biệt nào đó. Lỗ hổng bảo mật (Security vulnerability) là một điểm yếu tồn tại trong một hệ thống cho phép tin tặc khai thác gây tổn hại đến các thuộc tính an ninh của hệ thống đó, bao gồm tính toàn vẹn, tính bí mật, tính sẵn dùng. Phụ thuộc vào khả năng bị khai thác, các lỗ hổng bảo mật có mức độ nghiêm trọng (severity) khác nhau. Theo Microsoft, có 4 mức độ nghiêm trọng của các lỗ hổng bảo mật: nguy hiểm (Critical), quan trọng (Important), trung bình (Moderate) và thấp (Low). Tuy nhiên, một số tổ chức khác chỉ phân loại các lỗ hổng bảo mật theo 3 mức độ nghiêm trọng: cao (High), trung bình (Medium) và thấp (Low). Lỗ hổng bảo mật thuộc cấp độ nguy hiểm là lỗ hổng cho phép tin tặc thực hiện mã khai thác mà không cần tƣơng tác ngƣời dùng. Các thông tin khai thác lỗ hổng, nhƣ mã mẫu khai thác tồn tại phổ biến trên mạng. Ngoài ra, việc khai thác lỗ hổng có thể đƣợc thực hiện dễ dàng mà không yêu cầu có tài khoản hệ thống hoặc các điệu kiện phức tạp. Ví dụ nhƣ một số lỗ hổng tràn bộ đệm nghiêm trọng bị khai thác bởi sâu mạng hoặc email chứa vi rút, mã độc. Các lỗ hổng loại nguy hiểm cần đƣợc khắc phục ngay hoặc càng sớm càng tốt. Lỗ hổng bảo mật thuộc cấp độ quan trọng là lỗ hổng khi bị khai thác có thể dẫn đến vị phạm các yêu cầu an toàn thông tin nhƣ bí mật, toàn vẹn và sẵn dùng của dữ liệu, tài nguyên tính toán, hoặc cả hệ thống. Khác với lỗ hổng loại nguy hiểm, lỗ hổng loại quan trọng cho phép tin tặc thực hiện mã khai PTITthác, nhƣng cần có tƣơng tác ngƣời dùng. Ví dụ vi rút hoặc các phần mềm độc hại cần tƣơng tác ngƣời dùng để lây lan, nhƣ sao chép các file qua thẻ nhớ USB, mở email đính kèm, thực thi mã độc, Các lỗ hổng loại quan trọng cũng cần đƣợc khắc phục càng sớm càng tốt. Lỗ hổng bảo mật thuộc cấp độ trung bình là các lỗ hổng mà khi khai thác, tin tặc phải ở trong cùng mạng cục bộ với hệ thống nạn nhân. Một ngữ cảnh khai thác lỗ hổng loại này là tin tặc thực hiện việc bẫy nạn nhân sử dụng các kỹ thuật xã hội, nhƣ khai thác sự cả tin, tò mò và lòng tham của ngƣời dùng. Ngoài ra, việc khai thác lỗ hổng loại trung bình cũng chỉ cho phép tin tặc có quyền truy nhập rất hạn chế vào hệ thống. Với lỗ hổng loại trung bình, cần xem xét khắc phục sớm nhất hoặc định kỳ để hạn chế ảnh hƣởng. Loại cuối cùng là các lỗ hổng bảo mật thuộc cấp độ thấp. Các lỗ hổng loại này ít có ảnh hƣởng đến hoạt động của tổ chức và chúng chỉ có thể bị khai thác khi tin tặc có truy nhập cục bộ hoặc truy nhập vật lý trực tiếp vào hệ thống. Mặc dù vậy, vẫn cần xem xét khắc phục định kỳ để hạn chế ảnh hƣởng. - 25 -
  27. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống 2.1.2. Một số thống kê về lỗ hổng bảo mật Theo số liệu thống kê từ Cơ sở dữ liệu lỗ hổng quốc gia Hoa Kỳ [6], trong năm 2012, phân bố lỗ hổng bảo mật đƣợc phát hiện trên các thành phần của hệ thống lần lƣợt là phần cứng – 4%, hệ điều hành – 10% và phần mềm ứng dụng – 86%, nhƣ minh họa trên Hình 2.2. Nhƣ vậy, có thể thấy các lỗ hổng bảo mật chủ yếu xuất hiện trong hệ thống phần mềm và phần lớn tồn tại trong các phần mềm ứng dụng. Hình 2.2. Phân bố lỗ hổng bảo mật trong các thành phần của hệ thống PTIT Hình 2.3. Phân bố lỗ hổng bảo mật theo mức độ nghiêm trọng Theo mức độ nghiêm trọng của các lỗ hổng bảo mật hệ thống minh họa trên Hình 2.3, trong năm 2012 các lỗ hổng có mức độ nghiêm trọng cao (High) chiếm 35%, các lỗ hổng có mức độ nghiêm trọng trung bình (Medium) chiếm 55% và các lỗ hổng có mức độ nghiêm trọng thấp (Low) chỉ chiếm 10%. Nhƣ vậy, ta có thể thấy, đa số các lỗ hổng bảo mật có mức độ nghiêm trọng từ trung bình trở lên và cần đƣợc xem xét khắc phục càng sớm càng tốt. Hình 2.4 cung cấp số liệu thống kê về các loại lỗ hổng bảo mật trên các hệ điều hành phổ biến trong hai năm 2011 và 2012. Theo đó, hệ điều hành iOS cho điện thoại di động iPhone và máy tính bảng iPad có số lỗ hổng đƣợc phát hiện cao nhất và tăng cao trong những năm gần đây do sự phổ biến của iPhone và iPad. Xếp sau iOS về số lƣợng lỗ hổng đƣợc phát hiện - 26 -
  28. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống là các hệ điều hành họ Microsoft Windows, bao gồm Windows 2003, 2008 servers, Windows XP, Windows 7 và Windows 8. Hình 2.4. Lỗ hổng bảo mật phát hiện trong các năm 2011 và 2012 trên các hệ điều hành PTIT Hình 2.5. Lỗ hổng bảo mật phát hiện trong các năm 2011 và 2012 trên một số ứng dụng - 27 -
  29. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống Hình 2.5 cung cấp số liệu thống kê về các loại lỗ hổng bảo mật trên một số ứng dụng phổ biến trong hai năm 2011 và 2012. Theo đó, số lƣợng lỗ hỏng đƣợc phát hiện nhiều nhất thuộc về các ứng dụng trình duyệt và email của Mozilla, trình duyệt Google Chrome, Apple Safari, Có thể thấy các trình duyệt web tồn tại nhiều lỗ hổng bảo mật và bị tấn công khai thác nhiều nhất là do chúng là các ứng dụng đƣợc sử dụng thƣờng xuyên nhất trên mạng Internet. Tin tặc thƣờng khai thác các lỗ hổng trên các trang web và trình duyệt để đánh cắp các dữ liệu cá nhân của ngƣời dùng. 2.2. CÁC DẠNG LỖ HỔNG TRONG HỆ ĐIỀU HÀNH VÀ PHẦN MỀM ỨNG DỤNG Nhƣ đã đề cập trong Mục 2.1, thực tế các lỗ hổng bảo mật trong hệ điều hành và các phần mềm ứng dụng chiếm hơn 95% số lƣợng lỗ hổng bảo mật đƣợc phát hiện cho thấy mức độ phổ biến của các lỗ hổng bảo mật trong hệ thống phần mềm. Các dạng lỗ hổng bảo mật thƣờng gặp trong hệ điều hành và các phần mềm ứng dụng bao gồm: lỗi tràn bộ đệm (Buffer overflows); lỗi không kiểm tra đầu vào (Unvalidated input); các vấn đề với điều khiển truy nhập (Access-control problems); các điểm yếu trong xác thực, trao quyền hoặc các hệ mật mã (Weaknesses in authentication, authorization, or cryptographic practices); và các lỗ hổng bảo mật khác. 2.2.1. Lỗi tràn bộ đệm 2.2.1.1. Giới thiệu và nguyên nhân Lỗi tràn bộ đệm (Buffer overflow) là một trong các lỗi thƣờng gặp trong các hệ điều hành và đặc biệt nhiều ở các phần mềm ứng dụng, nhƣ đã nêu ở mục 2.1 [6]. Lỗi tràn bộ đệm xảy ra khi một ứng dụng cố gắng ghi dữ liệu vƣợt khỏi phạm vi của bộ nhớ đệm, là giới hạn cuối hoặc cả giới hạn đầu của bộ đệm. Lỗi tràn bộ đệm có thể khiến ứng dụng ngừng hoạt động, gây mất dữ liệu hoặc thậm chí giúp kẻ tấn công chèn, thực hiện mã độc để kiểm soát hệ thống. Lỗi tràn bộ đệm chiếm một tỷ lệ lớn trong số các lỗi gây lỗ hổng bảo mật [6]. Tuy nhiên, trên thực tế không phải tất cả các lỗi tràn bộ đệm đều có thể bị khai thác bởi kẻ tấn công. Lỗi tràn bộ đệm xuất hiện trong khâu lập trình phần mềm (coding) trong quy trình phát triển phần mềm. Nguyên nhân của lỗi tràn bộ đệm là ngƣời lập trình không kiểm tra, hoặc kiểm tra không đầy đủ các dữPTIT liệu đầu vào nạp vào bộ nhớ đệm. Khi dữ liệu có kích thƣớc quá lớn hoặc có định dạng sai đƣợc ghi vào bộ nhớ đệm, nó sẽ gây tràn và có thể ghi đè lên các tham số thực hiện chƣơng trình, có thể khiến chƣơng trình bị lỗi và ngừng hoạt động. Một nguyên nhân bổ sung khác là việc sử dụng các ngôn ngữ với các thƣ viện không an toàn, nhƣ hợp ngữ, C và C++. 2.2.1.2. Cơ chế gây tràn và khai thác a. Cơ chế gây tràn Trên hầu hết các nền tảng, khi một ứng dụng đƣợc nạp vào bộ nhớ, hệ điều hành cấp phát các vùng nhớ để tải mã và lƣu dữ liệu của chƣơng trình. Hình 2.6 minh họa các vùng bộ nhớ cấp cho chƣơng trình, bao gồm vùng lƣu mã thực hiện (Executable code), vùng lƣu dữ liệu toàn cục (Data), vùng bộ nhớ cấp phát động (Heap) và vùng bộ nhớ ngăn xếp (Stack). Vùng bộ nhớ ngăn xếp là vùng nhớ lƣu các tham số gọi hàm, thủ tục, phƣơng thức (gọi chung là hàm hay chƣơng trình con) và dữ liệu cục bộ của chúng. Vùng nhớ cấp phát động là vùng nhớ - 28 -
  30. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống chung lƣu dữ liệu cho ứng dụng, đƣợc cấp phát hay giải phóng trong quá trình hoạt động của ứng dụng. Hình 2.6. Các vùng bộ nhớ cấp cho chương trình Chúng ta sử dụng vùng bộ nhớ ngăn xếp để giải thích cơ chế gây tràn và khai thác lỗi tràn bộ đệm. Bộ nhớ ngăn xếp đƣợc cấp phát cho chƣơng trình dùng để lƣu các biến cục bộ của hàm, trong đó có các biến nhớ đƣợc gọi là bộ đệm, các tham số hình thức của hàm, các tham số quản lý ngăn xếp, và địa chỉ trở về (Return address). Địa chỉ trở về là địa chỉ của lệnh nằm kế tiếp lời gọi hàm ở chƣơng trình gọi đƣợc tự động lƣu vào ngăn xếp khi hàm đƣợc gọi. Khi việc thực hiện hàm kết thúc, hệ thống nạp địa chỉ trở về đã lƣu trong ngăn xếp vào con trỏ lệnh (còn gọi là bộ đếm chƣơng trình) kích hoạt việc quay trở lại thực hiện lệnh kế tiếp lời gọi hàm ở chƣơng trình gọi. // định nghĩa một hàm void function(int a,PTIT int b, int c){ char buffer1[8]; char buffer2[12]; } // chương trình chính int main(){ function(1,2,3); // gọi hàm } Hình 2.7. Một chương trình minh họa cấp phát bộ nhớ trong ngăn xếp Hình 2.7 là một đoạn chƣơng trình gồm một hàm con (function()) và một hàm chính (main()) minh họa cho việc gọi làm và cấp phát bộ nhớ trong vùng nhớ ngăn xếp. Hàm function() có 3 tham số hình thức kiểu nguyên và kê khai 2 biến cục bộ buffer1 và buffer2 kiểu xâu ký tự. Hàm chính main() chỉ chứa lời gọi đến hàm function() với 3 tham số thực. - 29 -
  31. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống Hình 2.8. Các thành phần được lưu trong vùng bộ nhớ trong ngăn xếp Hình 2.9. Cấp phát bộ nhớ cho các biến nhớ trong vùng bộ nhớ trong ngăn xếp Hình 2.8 biểu diễn việc cấp pháp bộ nhớ cho các thành phần trong ngăn xếp: các tham số gọi hàm đƣợc lƣu vào Function Parameters, địa chỉ trở về đƣợc lƣu vào ô Return Address, giá trị con trỏ khung ngăn xếp đƣợc lƣu vào ô Save Frame Pointer và các biến cục bộ trong hàm đƣợc lƣu vào Local Variables. Hình 2.9 minh họa chi tiết việc cấp phát bộ nhớ cho các biến trong ngăn xếp: ngoài ô địa chỉ trở về (ret) và con trỏ khung (sfp) đƣợc cấp cố định ở giữa, các tham số gọi hàm đƣợc cấp các ô nhớ bên phải (phía đáy ngăn xếp – bottom of stack) và các biến cục bộ đƣợc cấp các ô nhớ bên trái (phía đỉnh ngăn xếp – top of stack). // định nghĩa một hàm void function(char *str){ char buffer[16]; PTIT strcpy(buffer, str); } // chương trình chính int main(){ char large_string[256]; int i; for (i = 0; i < 255; i++){ large_string[i] = ‘A’; } function(large_string); } Hình 2.10. Một chương trình minh họa gây tràn bộ nhớ đệm trong ngăn xếp Hình 2.10 là một đoạn chƣơng trình minh họa gây tràn bộ nhớ đệm trong ngăn xếp. Đoạn chƣơng trình này gồm hàm con function() và hàm chính main(), trong đó hàm function() nhận - 30 -
  32. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống một con trỏ xâu ký tự str làm đầu vào. Hàm này khai báo 1 biến buffer kiểu xâu ký tự với độ dài 16 byte. Hàm này sử dụng hàm thƣ viện strcpy() để sao chép xâu ký tự từ con trỏ str sang biến cục bộ buffer. Hàm chính main() kê khai một xâu ký tự large_string với độ dài 256 byte và sử dụng một vòng lặp để điền đầy xâu large_string bằng ký tự „A‟. Sau đó main() gọi hàm function() với tham số đầu vào là large_string. Hình 2.11. Minh họa hiện tượng tràn bộ nhớ đệm trong ngăn xếp Có thể thấy đoạn chƣơng trình biểu diễn trên Hình 2.10 khi đƣợc thực hiện sẽ gây tràn trong biến nhớ buffer của hàm function() do tham số truyền vào large_string có kích thƣớc 256 byte lớn hơn nhiều so với buffer có kích thƣớc 16 byte và hàm strcpy() không hề thực hiện việc kiểm tra kích thƣớc dữ liệu vào khi sao chép vào biến buffer. Nhƣ minh họa trên Hình 2.11, chỉ 16 byte đầu tiên của large_string đƣợc lƣu vào buffer, phần còn lại đƣợc ghi đè lên các ô nhớ khác trong ngăn xếp, bao gồm sfp, ret và cả con trỏ xâu đầu vào str. Ô nhớ chƣa địa chỉ trở về ret bị ghi đè và giá trị địa chỉ trở về mới là „AAAA‟ (0x41414141). Khi kết thúc thực hiện hàm con function(), chƣơng trình tiếp tục thực hiện lệnh tại địa chỉ 0x41414141. Đây không phải là địa chỉ của lệnh chƣơng trình phải thực hiện theo lôgic đã định ra từ trƣớc. Nhƣ vậy, lỗi tràn bộ đệm xảy ra khi dữ liệu nạp vào biến nhớ (gọi chung là bộ đệm) có kích thƣớc lớn hơn so với khả năng lƣu trữ của bộ đệm và chƣơng trình thiếu các bƣớc kiểm tra kích thƣớc và định dạng dữ liệu nạp vào. Phần dữ liệu tràn sẽ đƣợc ghi đè lên các ô nhớ liền kề trong ngăn xếp, nhƣ các biến cục bộ khác, con trỏ khung, địa chỉ trở về, các biến tham số đầu vào, PTIT b. Khai thác lỗi tràn bộ đệm Khi một ứng dụng chứa lỗ hổng tràn bộ đệm, tin tặc có thể khai thác bằng cách gửi mã độc dƣới dạng dữ liệu đến ứng dụng nhằm ghi đè, thay thế địa chỉ trở về với mục đích tái định hƣớng chƣơng trình đến thực hiện đoạn mã độc mà tin tặc gửi đến. Đoạn mã độc tin tặc xây dựng là mã máy có thể thực hiện đƣợc và thƣờng đƣợc gọi là shellcode. Nhƣ vậy, để có thể khai thác lỗi tràn bộ đệm, tin tặc thƣờng phải thực hiện việc gỡ rối (debug) chƣơng trình (hoặc có thông tin từ nguồn khác) và nắm chắc cơ chế gây lỗi và phƣơng pháp quản lý, cấp phát vùng nhớ ngăn xếp của ứng dụng. - 31 -
  33. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống Hình 2.12. Một shellcode viết bằng hợp ngữ và chuyển thành chuỗi tấn công Hình 2.13. Chèn và thực hiện shellcode khai thác lỗi tràn bộ đệm PTIT Hình 2.14. Chèn shellcode với phần đệm bằng lệnh NOP (N) Mã shellcode có thể đƣợc viết bằng hợp ngữ, C, hoặc các ngôn ngữ lập trình khác, sau đó đƣợc chuyển thành mã máy, rồi chuyển định dạng thành một chuỗi dữ liệu và cuối cùng đƣợc gửi đến ứng dụng. Hình 2.12 minh họa một đoạn mã shellcode viết bằng hợp ngữ và đƣợc chuyển đổi thành một chuỗi dƣới dạng hexa làm dữ liệu đầu vào gây tràn bộ đệm và gọi thực hiện shell sh trong các hệ thống Linux hoặc Unix thông qua lệnh /bin/sh. Hình 2.13. minh họa việc chèn shellcode, ghi đè lên ô nhớ chứa địa chỉ trở về ret, tái định hƣớng việc trở về từ chƣơng trình con, chuyển đến thực hiện mã shellcode đƣợc chèn vào. Trên thực tế, để tăng khả năng đoạn mã shellcode đƣợc thực hiện, ngƣời ta thƣờng chèn một số lệnh NOP (N) vào phần đầu shellcode để phòng khả năng địa chỉ ret mới không trỏ chính xác đến địa chỉ bắt đầu - 32 -
  34. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống shellcode, nhƣ minh họa trên Hình 2.14. Lệnh NOP (No OPeration) là lệnh không thực hiện tác vụ nào cả, chỉ tiêu tốn một số chu kỳ của bộ vi xử lý. c. Ví dụ về khai thác lỗi tràn bộ đệm Sâu SQL Slammer (một số tài liệu gọi là sâu Sapphire) đƣợc phát hiện ngày 25/1/2003 lúc 5h30 (UTC) là sâu có tốc độ lây lan nhanh nhất lúc bấy giờ: nó lây nhiễm ra khoảng 75.000 máy chủ chỉ trong khoảng 30 phút, nhƣ minh họa trên Hình 2.15. Sâu Slammer khai thác lỗi tràn bộ đệm trong thành phần Microsoft SQL Server Resolution Service của hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2000. Hình 2.15. Bản đồ lây nhiễm sâu Slammer (mầu xanh) theo trang www.caida.org vào ngày 25/1/2003 lúc 6h00 (giờ UTC) với 74.855 máy chủ bị nhiễm Sâu sử dụng giao thức UDP với kích thƣớc gói tin 376 byte và vòng lặp chính của sâu chỉ gồm 22 lệnh hợp ngữ. Chu trình hoạt động của sâu SQL Slammer gồm: - Sinh tự động địa chỉ IP; - Quét tìm các máy có lỗi với IP tự sinh trên cổng dịch vụ 1434; - Nếu tìm đƣợc, gửi một bản sao của sâu đến máy có lỗi; - Mã của sâu gây tràn bộ PTITđệm, thực thi mã của sâu và quá trình lặp lại. SQL Slammer là sâu “lành tính” vì nó không can thiệp vào hệ thống file, không thực hiện việc phá hoại hay đánh cắp thông tin ở hệ thống bị lây nhiễm. Tuy nhiên, sâu tạo ra lƣu lƣợng mạng khổng lồ trong quá trình lây nhiễm, gây tê liệt đƣờng truyền mạng Internet trên nhiều vùng của thế giới. Do mã của SQL Slammer chỉ đƣợc lƣu trong bộ nhớ nó gây tràn mà không đƣợc lƣu vào hệ thống file, nên chỉ cần khởi động lại máy là có thể tạm thời xóa đƣợc sâu khỏi hệ thống. Tuy nhiên, hệ thống chứa lỗ hổng có thể bị lây nhiễm lại nếu nó ở gần một máy khác bị nhiễm sâu. Các biện pháp phòng chống triệt để khác là cập nhật bản vá cho bộ phần mềm Microsoft SQL Server 2000. Thông tin chi tiết về sâu SQL Slammer có thể tìm ở các trang: hoặc 2.2.1.3. Phòng chống Để phòng chống lỗi tràn bộ đệm một cách hiệu quả, cần kết hợp nhiều biện pháp. Các biện pháp có thể thực hiện bao gồm: - 33 -
  35. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống - Kiểm tra thủ công mã nguồn hay sử dụng các công cụ phân tích mã tự động để tìm và khắc phục các điểm có khả năng xảy ra lỗi tràn bộ đệm, đặc biệt lƣu ý đến các hàm xử lý xâu ký tự. - Sử dụng cơ chế không cho phép thực hiện mã trong dữ liệu DEP (Data Excution Prevention). Cơ chế DEP đƣợc hỗ trợ bởi hầu hết các hệ điều hành (từ Windows XP và các hệ điều hành họ Linux, Unix, ) không cho phép thực hiện mã chƣơng trình chứa trong vùng nhớ dành cho dữ liệu. Nhƣ vậy, nếu kẻ tấn công khai thác lỗi tràn bộ đệm, chèn đƣợc mã độc vào bộ đệm trong ngăn xếp, mã độc cũng không thể thực hiện. - Ngẫu nhiên hóa sơ đồ địa chỉ cấp phát các ô nhớ trong ngăn xếp khi thực hiện chƣơng trình, nhằm gây khó khăn cho việc gỡ rối và phát hiện vị trí các ô nhớ quan trọng nhƣ ô nhớ chứa địa chỉ trở về. - Sử dụng các cơ chế bảo vệ ngăn xếp, theo đó thêm một số ngẫu nhiên (canary) phía trƣớc địa chỉ trở về và kiểm tra số ngẫu nhiên này trƣớc khi trở về chƣơng trình gọi để xác định khả năng bị thay đổi địa chỉ trở về. - Sử dụng các ngôn ngữ, thƣ viện và công cụ lập trình an toàn. Trong các trƣờng hợp có thể, sử dụng các ngôn ngữ không gây tràn, nhƣ Java, các ngôn ngữ lập trình trên nền Microsoft .Net. Với các ngôn ngữ có thể gây tràn nhƣ C, C++, nên sử dụng các thƣ viện an toàn (Safe C/C++ Libraries) để thay thế các thƣ viện chuẩn có thể gây tràn. 2.2.2. Lỗi không kiểm tra đầu vào 2.2.2.1. Giới thiệu Lỗi không kiểm tra đầu vào (Unvalidated input) là một trong các dạng lỗ hổng bảo mật phổ biến, trong đó ứng dụng không kiểm tra, hoặc kiểm tra không đầy đủ các dữ liệu đầu vào, nhờ đó tin tặc có thể khai thác lỗi để tấn công ứng dụng và hệ thống. Dữ liệu đầu vào (Input data) cho ứng dụng rất đa dạng, có thể đến từ nhiều nguồn với nhiều định dạng khác nhau. Các dạng dữ liệu đầu vào điển hình cho ứng dụng: - Các trƣờng dữ liệu văn bản (text); - Các lệnh đƣợc truyền qua địa chỉ URL để kích hoạt chƣơng trình; - Các file âm thanh, hìnhPTIT ảnh, hoặc đồ họa do ngƣời dùng, hoặc các tiến trình khác cung cấp; - Các đối số đầu vào trong dòng lệnh; - Các dữ liệu từ mạng hoặc từ các nguồn không tin cậy. Trên thực tế, tin tặc có thể sử dụng phƣơng pháp thủ công, hoặc tự động để kiểm tra các dữ liệu đầu vào và thử tất cả các khả năng có thể để khai thác lỗi không kiểm tra đầu vào. Theo thống kê của trang web OWASP ( một trang web chuyên về thông kê các lỗi bảo mật ứng dụng web, lỗi không kiểm tra đầu vào luôn chiếm vị trí nhóm dẫn đầu các lỗi bảo mật các trang web trong khoảng 5 năm trở lại đây. 2.2.2.2. Tấn công khai thác Có hai dạng chính tấn công khai thác lỗi không kiểm tra đầu vào: (1) cung cấp dữ liệu quá lớn hoặc sai định dạng để gây lỗi cho ứng dụng, và (2) chèn mã khai thác vào dữ liệu đầu vào để thực hiện trên hệ thống của nạn nhân, nhằm đánh cắp dữ liệu nhạy cảm hoặc thực hiện các - 34 -
  36. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống hành vi phá hoại. Hình 2.16 minh họa tấn công khai thác lỗi không kiểm tra đầu vào dạng (1) thông qua việc nhập dữ liệu quá lớn, gây lỗi thực hiện cho trang web. Hình 2.16. Cung cấp dữ liệu quá lớn để gây lỗi cho ứng dụng Chúng ta minh họa tấn công khai thác lỗi không kiểm tra đầu vào dạng (2) bằng việc chèn mã tấn công SQL vào dữ liệu đầu vào, đƣợc thực hiện trên hệ quản trị cơ sở dữ liệu nhằm đánh cắp, hoặc phá hủy dữ liệu trong cơ sở dữ liệu. Giả thiết một trang web tìm kiếm sản phẩm sử dụng câu lệnh SQL sau để tìm kiếm các sản phẩm: "SELECT * FROM tbl_products WHERE product_name like '%" + keyword + "%'" trong đó tbl_products là bảng lƣu thông tin các sản phẩm, product_name là trƣờng tên sản phẩm và keyword là từ khóa cung cấp từ ngƣời dùng form tìm kiếm. Nếu ngƣời dùng nhập từ khóa là "iPhone 7", khi đó câu lệnh SQL trở thành: "SELECT * FROM tbl_productsPTIT WHERE product_name like '%iPhone 7%'" Nếu trong bảng có sản phẩm thỏa mãn điều kiện tìm kiếm, câu lệnh SQL sẽ trả về tập bản ghi. Nếu không có sản phẩm nào thỏa mãn điều kiện tìm kiếm, câu lệnh SQL sẽ trả về tập bản ghi rỗng. Nếu ngƣời dùng nhập từ khóa "iPhone 7';DELETE FROM tbl_products; ", khi đó câu lệnh SQL trở thành: "SELECT * FROM tbl_products WHERE product_name like '%iPhone 7';DELETE FROM tbl_products; %'" Nhƣ vậy, câu lệnh SQL đƣợc thực hiện trên cơ sở dữ liệu gồm 2 câu lệnh: câu lệnh chọn SELECT ban đầu và câu lệnh xóa DELETE do tin tặc chèn thêm. Câu lệnh “DELETE FROM tbl_products” sẽ xóa tất cả các bản ghi trong bảng tbl_products. Sở dĩ tin tặc có thể thực hiện điều này là do hầu hết các hệ quản trị cơ sở dữ liệu cho phép thực hiện nhiều câu lệnh SQL theo mẻ (batch), trong đó các câu lệnh đƣợc ngăn cách bởi dấu (;). Ngoài ra, dấu “ ” ở cuối dữ liệu nhập để loại bỏ hiệu lực của phần lệnh còn lại do “ ” là ký hiệu bắt đầu phần chú - 35 -
  37. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống thích của dòng lệnh. Ngoài DELETE, tin tặc có thể chèn thêm các lệnh SQL khác, nhƣ INSERT, UPDATE để thực hiện việc chèn thêm bản ghi hoặc sửa đổi dữ liệu theo ý đồ tấn công của mình. 2.2.2.3. Phòng chống Biện pháp chủ yếu phòng chống tấn công khai thác lỗi không kiểm tra đầu vào là lọc dữ liệu đầu vào. Tất cả các dữ liệu đầu vào, đặc biệt dữ liệu nhập từ ngƣời dùng và từ các nguồn không tin cậy cần đƣợc kiểm tra kỹ lƣỡng. Các biện pháp cụ thể bao gồm: - Kiểm tra kích thƣớc và định dạng dữ liệu đầu vào; - Kiểm tra sự hợp lý của nội dung dữ liệu; - Tạo các bộ lọc để lọc bỏ các ký tự đặc biệt và các từ khóa của các ngôn ngữ trong các trƣờng hợp cần thiết mà kẻ tấn công có thể sử dụng: + Các ký tự đặc biệt: *, ', =, + Các từ khóa ngôn ngữ: SELECT, INSERT, UPDATE, DELETE, DROP, (với dạng tấn công chèn mã SQL). 2.2.3. Các vấn đề với điều khiển truy nhập Điều khiển truy nhập (Access control) là một lớp bảo vệ đặc biệt quan trọng trong hệ thống các lớp bảo vệ hệ thống và dữ liệu. Điều khiển truy nhập liên quan đến việc điều khiển ai (chủ thể) đƣợc truy cập đến cái gì (đối tƣợng). Điều khiển truy nhập có thể đƣợc thiết lập bởi hệ điều hành, hoặc mỗi ứng dụng, và thƣờng gồm 2 khâu: xác thực (Authentication) và trao quyền (Authorization). Xác thực là việc xác minh tính chân thực của thông tin nhận dạng của chủ thể, còn trao quyền là việc cấp quyền truy nhập cho chủ thể sau khi thông tin nhận dạng đã đƣợc xác thực. Các chủ thể đƣợc cấp quyền truy nhập vào hệ thống theo các cấp độ khác nhau dựa trên chính sách an ninh của tổ chức. Các vấn đề thƣờng gặp với điều khiển truy nhập là hệ thống xác thực, hoặc trao quyền yếu hoặc có lỗi. Nếu điều khiển truy nhập bị lỗi, một ngƣời dùng bình thƣờng có thể chiếm đoạt quyền của ngƣời quản trị và toàn quyền truy nhập vào hệ thống. Hoặc, tin tặc có thể lợi dụng lỗ hổng bảo mật của hệ thống điều khiển truy nhập để truy nhập vào các file trong hệ thống. Một dạng khai thác PTIThệ thống điều khiển truy cập điển hình là một ứng dụng chạy trên ngƣời dùng quản trị có toàn quyền truy nhập vào hệ thống, và nếu một tin tặc chiếm đƣợc quyền điều khiển ứng dụng đó sẽ có toàn quyền truy nhập vào hệ thống. Để đảm bảo an toàn cho hệ thống điều khiển truy nhập, các biện pháp sau cần đƣợc xem xét áp dụng: - Không dùng tài khoản quản trị (root hoặc admin) để chạy các chƣơng trình ứng dụng. - Luôn chạy các chƣơng trình ứng dụng với quyền tối thiểu, vừa đủ để chúng thực thi các tác vụ. - Kiểm soát chặt chẽ ngƣời dùng, xóa bỏ hoặc cấm truy nhập với những ngƣời dùng ngầm định kiểu everyone. - Thực thi chính sách mật khẩu an toàn. - Chỉ cấp quyền vừa đủ cho ngƣời dùng thực thi nhiệm vụ. - 36 -
  38. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống 2.2.4. Các điểm yếu trong xác thực, trao quyền Do các khâu xác thực và trao quyền là hai thành phần cốt lõi của một hệ thống điều khiển truy nhập, nên các điểm yếu trong xác thực và trao quyền ảnh hƣởng trực tiếp đến độ an toàn của hệ thống điều khiển truy nhập. Một điểm yếu điển hình trong khâu xác thực là mật khẩu đƣợc lƣu dƣới dạng rõ (plaintext), dẫn đến nguy cơ bị lộ mật khẩu rất cao trong quá truyền thông tin xác thực. Ngoài ra, việc sử dụng mật khẩu đơn giản, dễ đoán, hoặc dùng mật khẩu trong thời gian dài cũng là điểm yếu dễ bị khai thác. Việc sử dụng cơ chế xác thực không đủ mạnh, nhƣ các cơ chế xác thực đơn giản của giao thức HTTP cũng tiềm ẩn các nguy cơ bị tấn công khai thác. Trong khâu trao quyền cũng tồn tại một số điểm yếu, nhƣ sử dụng cơ chế thực hiện trao quyền không đủ mạnh, dễ bị vƣợt qua. Chẳng hạn, một trang web chỉ thực hiện ẩn các links đến các trang web mà ngƣời dùng không đƣợc truy nhập mà không thực sự kiểm tra quyền truy nhập trên từng trang, nếu ngƣời dùng tự gõ URL của trang thì vẫn có thể truy nhập. 2.2.5. Các điểm yếu trong các hệ mật mã Các vấn đề với các hệ mật mã bao gồm việc sử dụng giải thuật mã hóa, giải mã, hàm băm yếu, lạc hậu, hoặc có lỗ hổng đã biết không thể khắc phục (DES, MD4, MD5, ); Việc sử dụng khóa (key) mã hóa, giải mã yếu, nhƣ các khóa có chiều dài ngắn, hoặc dễ đoán. Các hệ mã hóa khóa bí mật có độ an toàn cao, tốc độ cao, nhƣng gặp phải khó khăn trong vấn đề trao đổi, chia sẻ các khóa bí mật. Các khóa bí mật trao đổi trong môi trƣờng không an toàn nhƣ mạng Internet có thể bị lộ, bị đánh cắp. Một số vấn đề khác có thể gặp phải với các hệ mã hóa, gồm các vấn đề xác thực ngƣời gửi, ngƣời nhận, vấn đề sử dụng các khóa, các chứng chỉ hết hạn hoặc bị thu hồi, hoặc chi phí tính toán lớn, đặc biệt đối với các hệ mã hóa khóa công khai. 2.2.6. Các lỗ hổng bảo mật khác Các thao tác không an toàn với các file cũng có thể là một lỗ hổng bảo mật nghiêm trọng. Chẳng hạn, một ngƣời dùng thực hiện đọc/ghi file lƣu ở những nơi mà những ngƣời dùng khác cũng có thể ghi file đó. Các lỗi điển hình khác có thể gồm: - Không kiểm tra chính PTITxác loại file, định danh thiết bị, các links hoặc các thuộc tính khác của file trƣớc khi sử dụng; - Cho phép tải file tài liệu, hình ảnh lên máy chủ nhƣng không kiểm tra định dạng file và không cấm quyền thực hiện, và do vậy tin tặc có thể tải lên và thực hiện các file chứa mã độc; - Không kiểm tra mã trả về sau mỗi thao tác với file; - Giả thiết một file có đƣờng dẫn cục bộ là file cục bộ và bỏ qua các thủ tục kiểm tra. Tin tặc có thể khai thác lỗi này bằng cách ánh xạ file ở xa vào hệ thống file cục bộ, tức là có đƣờng dẫn cục bộ và có thể đƣợc thực thi trên hệ thống cục bộ. Một dạng điểm yếu bảo mật khác xảy ra khi xuất hiện các điều kiện đua tranh (Race conditions). Một điều kiện đua tranh tồn tại khi có sự thay đổi trật tự của 2 hay một số sự kiện gây ra sự thay đổi hành vi của hệ thống. Đây là một dạng lỗi nếu chƣơng trình chỉ có thể thực hiện đúng chức năng nếu các sự kiện phải xảy ra theo đúng trật tự. Tin tặc có thể lợi dụng - 37 -
  39. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống khoảng thời gian giữa 2 sự kiện để chèn mã độc, đổi tên file hoặc can thiệp vào quá trình hoạt động bình thƣờng của hệ thống. 2.3. QUẢN LÝ, KHẮC PHỤC CÁC LỖ HỔNG BẢO MẬT VÀ TĂNG CƯỜNG KHẢ NĂNG ĐỀ KHÁNG CHO HỆ THỐNG 2.3.1. Nguyên tắc chung Việc quản lý, khắc phục các lỗ hổng bảo mật và tăng cƣờng khả năng đề kháng cho hệ thống cần đƣợc thực hiện theo nguyên tắc chung là cân bằng giữa an toàn (Secure), hữu dụng (Usable) và rẻ tiền (Cheap), nhƣ minh họa trên Hình 2.17. Ý nghĩa cụ thể của nguyên tắc này là đảm bảo an toàn cho hệ thống ở mức phù hợp, với chi phí hợp lý và hệ thống vẫn phải hữu dụng, hay có khả năng cung cấp các tính năng hữu ích cho ngƣời dùng. Hình 2.17. Cân bằng giữa An toàn (Secure), Hữu dụng (Usable) và Rẻ tiền (Cheap) 2.3.2. Các biện pháp cụ thể Trên cơ sở nguyên tắc chung của việc quản lý, khắc phục các lỗ hổng bảo mật và tăng cƣờng khả năng đề kháng cho hệ thống, các biện pháp cụ thể cần đƣợc xem xét áp dụng với từng trƣờng hợp cụ thể, đảm bảo hiệu quả cao. Biện pháp thiết yếu đầu tiên cần đƣợc thực hiện thƣờng xuyên cho mọi trƣờng hợp là thƣờng xuyên cập nhật thông tin về các điểm yếu, lỗ hổng bảo mật từ các trang web chính thức: - CVE - Common Vulnerabilities and Exposures: - CVE Details: - US National Vulnerability Database: - OWASP: Biện pháp hiệu quả tiếp theo là định kỳ cập nhật các bản vá, nâng cấp hệ điều hành và các phần mềm ứng dụng, nhằm vá các lỗ hổng đã biết, cũng nhƣ tăng cƣờng khả năng đề kháng cho hệ thống bằng các phiên bản mới an toàn hơn. Để thực hiện công việc này có thể sử dụng các hệ thống quản lý các bản vá và tự động cập nhật định kỳ, nhƣ Microsoft Windows Updates, các tiện ích cập nhật tự động trên Linux/Unix, và tính năng tự động cập nhật của các ứng dụng, nhƣ Google Update Service. Căn cứ vào mức độ nghiêm trọng của các lỗ hổng bảo mật, tần suất cập nhật các bản vá cần đƣợc tuân thủ. Với các lỗ hổng nghiêm trọng, cần cập nhật tức thời các bản vá, còn với các lỗ hổng ít nghiêm trọng hơn, cần có kế hoạch cập nhật, hoặc khắc phục định kỳ. - 38 -
  40. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống Một biện pháp hiệu quả khác là sử dụng các phần mềm, hoặc công cụ rà quét các điểm yếu, lỗ hổng bảo mật trong hệ điều hành và các phần mềm ứng dụng, để chủ động rà quét để tìm và khắc phục các điểm yếu và lỗ hổng bảo mật của hệ thống. Nhờ vậy có thể giảm thiểu nguy cơ bị lợi dụng, khai thác lỗ hổng bảo mật đã biết. Một biện pháp bổ sung là cần có chính sách quản trị ngƣời dùng, mật khẩu và quyền truy nhập chặt chẽ ở mức hệ điều hành và mức ứng dụng, trong đó ngƣời dùng chỉ đƣợc cấp quyền truy nhập vừa đủ để thực hiện công việc đƣợc giao. Nếu ngƣời dùng đƣợc cấp nhiều quyền hơn mức cần thiết, họ có khuynh hƣớng lạm dụng quyền truy nhập để truy nhập vào các dữ liệu nhạy cảm, hoặc có thể bị tin tặc khai thác. Việc sử dụng các biện pháp phòng vệ ở lớp ngoài nhƣ tƣờng lửa, proxy cũng đem lại hiệu quả, do chúng giúp làm giảm bề mặt tiếp xúc với hệ thống, qua đó giảm thiểu khả năng bị tấn công. Tƣởng lửa và proxy có thể chặn các dịch vụ, hoặc cổng không sử dụng, hoặc không thực sự cần thiết, đồng thời ghi logs các hoạt động truy nhập mạng, phục vụ cho việc phân tích, điều tra khi cần thiết. Với các nhà phát triển phần mềm thì phát triển phần mềm an toàn là một trong các biện pháp cho phép giải quyết tận gốc vấn đề lỗ hổng bảo mật. Cần bổ sung việc đảm bảo an ninh, an toàn vào quy trình phát triển phần mềm. Ngoài ra, cần kiểm tra, kiểm thử tất cả các khâu, nhƣ thiết kế, cài đặt để tìm các điểm yếu, lỗ hổng bảo mật, và có biện pháp khắc phục phù hợp với các điểm yếu, lỗ hổng đƣợc phát hiện. 2.4. GIỚI THIỆU MỘT SỐ CÔNG CỤ RÀ QUÉT ĐIỂM YẾU VÀ LỖ HỔNG BẢO MẬT Các công cụ rà quét các điểm yếu hệ thống và lỗ hổng bảo mật có thể đƣợc ngƣời quản trị sử dụng để chủ động rà quét các hệ thống, nhằm tìm ra các điểm yếu và lỗ hổng bảo mật tồn tại trong hệ thống. Trên cơ sở kết quả rà quét, phân tích và đề xuất áp dụng các biện pháp khắc phục phù hợp. Các công cụ bao gồm, công cụ rà quét cổng dịch vụ, các công cụ rà quét lỗ hổng bảo mật hệ thống, và các công cụ rà quét lỗ hổng ứng dụng web, hay các trang web. 2.4.1. Công cụ rà quét lỗ hổngPTIT bảo mật hệ thống Các công cụ rà quét lỗ hổng bảo mật hệ thống cho phép rà quét hệ thống, tìm các điểm yếu và các lỗ hổng bảo mật. Đồng thời, chúng cũng cung cấp phần phân tích chi tiết từng điểm yếu, lỗ hổng, kèm theo là hƣớng dẫn khắc phục, sửa chữa. Các công cụ đƣợc sử dụng rộng rãi là Microsoft Baseline Security Analyzer (Hình 2.18) cho rà quét các hệ thống chạy hệ điều hành Microsoft Windows và Nessus Vulnerability Scanner cho rà quét các hệ thống chạy nhiều loại hệ điều hành khác nhau. - 39 -
  41. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống Hình 2.18. Báo cáo kết quả quét của Microsoft Baseline Security Analyzer 2.4.2. Công cụ rà quét lỗ hổng ứng dụng web Các công cụ rà quét lỗ hổng ứng dụng web cho phép rà quét, phân tích các trang web, tìm các lỗi và lỗ hổng bảo mật. Chúng cũng hỗ trợ phân tích tình trạng các lỗi tìm đƣợc, nhƣ các lỗi XSS, lỗi chèn mã SQL, lỗi CSRF, lỗi bảo mật phiên, Các công cụ đƣợc sử dụng phổ biến bao gồm Acunetix Web Vulnerability Scanner (Hình 2.19), IBM AppScan, Beyond Security AVDS và SQLmap. PTIT Hình 2.19. Kết quả quét website sử dụng Acunetix Web Vulnerability Scanner - 40 -
  42. Bài giảng Cơ sở an toàn thông tin Chương 2. Lỗ hổng bảo mật và các điểm yếu hệ thống 2.5. CÂU HỎI ÔN TẬP 1) Điểm yếu hệ thống là gì? 2) Liệt kê các nguyên nhân của sự tồn tại các điểm yếu trong hệ thống. 3) Các lỗ hổng bảo mật thƣờng tồn tại nhiều nhất trong thành phần nào của hệ thống? 4) Dạng lỗ hổng bảo mật thƣờng gặp trong hệ điều hành và các phần mềm ứng dụng là gì? 5) Lỗi tràn bộ đệm là lỗi trong khâu nào của quá trình phát triển phần mềm? 6) Các vùng bộ nhớ nào thƣờng bị gây tràn trong tấn công khai thác lỗi tràn bộ đệm? 7) Dạng tấn công nào thƣờng đƣợc tin tặc thực hiện trên các trang web nhắm đến các cơ sở dữ liệu? 8) Liệt kê các biện pháp phòng chống tấn công khai thác lỗi tràn bộ đệm. 9) Liệt kê các biện pháp phòng chống tấn công chèn mã SQL. 10) Việc quản lý, khắc phục các lỗ hổng bảo mật và tăng cƣờng khả năng đề kháng cho hệ thống cần đƣợc thực hiện theo nguyên tắc chung nào? PTIT - 41 -
  43. Bài giảng Cơ sở an toàn thông tin Chương 3. Các dạng tấn công & các phần mềm độc hại CHƯƠNG 3. CÁC DẠNG TẤN CÔNG VÀ CÁC PHẦN MỀM ĐỘC HẠI Chương 3 giới thiệu về các dạng tấn công điển hình vào các hệ thống máy tính và mạng, bao gồm tấn công vào mật khẩu, tấn công nghe lén, người đứng giữa, tấn công DoS, DDoS, tấn công sử dụng các kỹ thuật xã hội, Nửa cuối của chương đề cập đến các dạng phần mềm độc hại, gồm cơ chế lây nhiễm và tác hại của chúng. Kèm theo phần mô tả mỗi tấn công, hoặc phần mềm độc hại, chương đề cập các biện pháp, kỹ thuật phòng chống. 3.1. KHÁI QUÁT VỀ MỐI ĐE DỌA VÀ TẤN CÔNG 3.1.1. Mối đe dọa Mối đe dọa (Threat) là bất kỳ một hành động nào có thể gây hƣ hại đến các tài nguyên hệ thống. Các tài nguyên hệ thống bao gồm phần cứng, phần mềm, cơ sở dữ liệu, các file, dữ liệu, hoặc hạ tầng mạng vật lý, Mối đe dọa và lỗ hổng bảo mật có quan hệ hữu cơ với nhau: Các mối đe dọa thƣờng khai thác một hoặc một số lỗ hổng bảo mật đã biết để thực hiện các cuộc tấn công phá hoại. Điều này có nghĩa là nếu tồn tại một lỗ hổng trong hệ thống, sẽ có khả năng một mối đe dọa trở thành hiện thực. Nói chung, không thể triệt tiêu đƣợc hết các mối đe dọa do đó là yếu tố khách quan, nhƣng có thể giảm thiểu các lỗ hổng, qua đó giảm thiểu khả năng bị khai thác để thực hiện tấn công. Trên thực tế, không phải tất cả các mối đe dọa đều là ác tính hay độc hại (malicious). Một số mối đe dọa là chủ động, cố ý, nhƣng một số khác chỉ là ngẫu nhiên, hoặc vô tình. Các mối đe dọa thƣờng gặp đối với thông tin, hệ thống và mạng: - Phần mềm độc hại - Kẻ tấn công ở bên trong - Kẻ tấn công ở bên ngoài - Hƣ hỏng phần cứng hoặc phần mềm - Mất trộm các thiết bị PTIT - Tai họa thiên nhiên - Gián điệp công nghiệp - Khủng bố phá hoại. 3.1.2. Tấn công 3.1.2.1. Giới thiệu Tấn công (Attack) là một, hoặc một chuỗi các hành động vi phạm các chính sách an ninh an toàn của cơ quan, tổ chức, gây tổn hại đến các thuộc tính bí mật, toàn vẹn và sẵn dùng của thông tin, hệ thống và mạng. Một cuộc tấn công vào hệ thống máy tính hoặc các tài nguyên mạng thƣờng đƣợc thực hiện bằng cách khai thác các lỗ hổng tồn tại trong hệ thống. Nhƣ vậy, tấn công chỉ có thể trở thành hiện thực nếu có sự tồn tại đồng thời của mối đe dọa và lỗ hổng, hay có thể nói: Tấn công = Mối đe dọa + Lỗ hổng - 42 -
  44. Bài giảng Cơ sở an toàn thông tin Chương 3. Các dạng tấn công & các phần mềm độc hại 3.1.2.2. Phân loại Có thể chia tấn công theo mục đích thực hiện thành 4 loại chính nhƣ sau: - Giả mạo (Fabrications): Tấn công giả mạo thông tin thƣờng đƣợc sử dụng để đánh lừa ngƣời dùng thông thƣờng; - Chặn bắt (Interceptions): Tấn công chặn bắt thƣờng liên quan đến việc nghe lén trên đƣờng truyền và chuyển hƣớng thông tin để sử dụng trái phép; - Gây ngắt quãng (Interruptions): Tấn công gây ngắt quãng làm ngắt, hoặc chậm kênh truyền thông, hoặc làm quá tải hệ thống, ngăn cản việc truy nhập dịch vụ của ngƣời dùng hợp pháp; - Sửa đổi (Modifications): Tấn công sửa đổi liên quan đến việc sửa đổi thông tin trên đƣờng truyền hoặc sửa đổi dữ liệu file. Theo hình thức thực hiện, có thể chia các loại tấn công thành 2 kiểu chính nhƣ sau: - Tấn công chủ động (Active attacks): Tấn công chủ động là một đột nhập, xâm nhập (intrusion) về mặt vật lý vào hệ thống, hoặc mạng. Các tấn công chủ động thực hiện sửa đổi dữ liệu trên đƣờng truyền, sửa đổi dữ liệu trong file, hoặc giành quyền truy nhập trái phép vào máy tính hoặc hệ thống mạng. - Tấn công thụ động (Passive attacks): Tấn công thụ động thƣờng không gây ra thay đổi trên hệ thống. Các tấn công thụ động điển hình là nghe trộm và giám sát lƣu lƣợng trên đƣờng truyền. Trên thực tế, tấn công thụ động thƣờng là giai đoạn đầu của tấn công chủ động, trong đó tin tặc sử dụng các kỹ thuật tấn công thụ động để thu thập các thông tin về hệ thống, mạng, và trên cơ sở thông tin có đƣợc sẽ lựa chọn kỹ thuật tấn công chủ động có xác suất thành công cao nhất. 3.2. CÁC CÔNG CỤ HỖ TRỢ TẤN CÔNG Các công cụ hỗ trợ tấn công (Attacking assistant tools) là các công cụ phần cứng, phần mềm, hoặc các kỹ thuật hỗ trợ kẻ tấn công, tin tặc (attacker) thu thập các thông tin về các hệ thống máy tính, hoặc mạng. TrênPTIT cơ sở các thông tin thu đƣợc, tin tặc sẽ lựa chọn công cụ, kỹ thuật tấn công có xác suất thành công cao nhất. Các công cụ hỗ trợ tấn công bao gồm 4 nhóm chính: công cụ quét điểm yếu, lỗ hổng bảo mật, công cụ quét cổng dịch vụ, công cụ nghe lén và công cụ ghi phím gõ. Các công cụ quét điểm yếu, lỗ hổng bảo mật đã đƣợc trình bày ở mục 2.4. Mục này giới thiệu 3 nhóm công cụ còn lại. 3.2.1. Công cụ quét cổng dịch vụ Các công cụ quét cổng dịch vụ (Port scanners) cho phép quét các cổng, tìm các cổng đang mở, đang hoạt động, đồng thời tìm các thông tin về ứng dụng, dịch vụ và hệ điều hành đang hoạt động trên hệ thống. Dựa trên thông tin quét cổng dịch vụ, có thể xác định đƣợc dịch vụ, ứng dụng nào đang chạy trên hệ thống: - Cổng 80/443 mở có nghĩa là dịch vụ web đang hoạt động; - Cổng 25 mở có nghĩa là dịch vụ gửi/nhận email SMTP đang hoạt động; - Cổng 1433 mở có nghĩa là máy chủ Microsoft SQL Server đang hoạt động; - 43 -
  45. Bài giảng Cơ sở an toàn thông tin Chương 3. Các dạng tấn công & các phần mềm độc hại - Cổng 53 mở có nghĩa là dịch vụ tên miền DNS đang hoạt động, Hình 3.1. Giao diện của công cụ Zenmap Các công cụ quét cổng dịch vụ đƣợc sử dụng phổ biến bao gồm: Nmap, Zenmap, Portsweep, Advanced Port Scanner, Angry IP Scanner, SuperScan và NetScanTools. Hình 3.1 là giao diện của công cụ quét cổng dịch vụ Nmap/ Zenmap – một trong các công cụ quét cổng dịch vụ đƣợc sử dụng rộng rãi. Nmap cung cấp tập lệnh rà quét rất mạnh. Tuy nhiên, Nmap hơi khó dùng do chỉ hỗ trợ giao diện dòng lệnh. 3.2.2. Công cụ nghe lén Công cụ nghe lén (Sniffers) cho phép bắt các gói tin khi chúng đƣợc truyền trên mạng. Công cụ nghe lén có thể là mô đun phần cứng, phần mềm hoặc kết hợp. Các thông tin nhạy cảm nhƣ thông tin tài khoản, thPTITẻ tín dụng, hoặc mật khẩu nếu không đƣợc mã hóa thì có thể bị kẻ tấn công nghe lén khi đƣợc truyền từ máy trạm đến máy chủ và bị lạm dụng. Một số công cụ phần mềm cho phép bắt gói tin truyền trên mạng: - Tcpdump - Wireshark (minh họa trên Hình 3.2) - Pcap / Wincap / Libcap (Packet capture) - IP Tools ( - 44 -
  46. Bài giảng Cơ sở an toàn thông tin Chương 3. Các dạng tấn công & các phần mềm độc hại Hình 3.2. Sử dụng Wireshark để bắt gói tin có chứa thông tin nhạy cảm 3.2.3. Công cụ ghi phím gõ Công cụ ghi phím gõ (Keyloggers) là một dạng công cụ giám sát bằng phần cứng hoặc phần mềm có khả năng ghi lại mọi phím ngƣời dùng gõ và lƣu vào một file. File đã ghi sau đó có thể đƣợc gửi cho kẻ tấn công theo địa chỉ chỉ định trƣớc hoặc sao chép trực tiếp. Ngoài kẻ tấn công, ngƣời quản lý cũng có thể cài đặt Keylogger vào máy tính của nhân viên để theo dõi hoạt động của các nhân viên. Việc cài đặt Keylogger có thể đƣợc thực hiện tƣơng đối đơn giản: Hình 3.3 minh họa một Keylogger dƣới dạng một khớp nối phần cứng kết nối cổng bàn phím với đầu nối bàn phím, hỗ trợ cả giao diện cổng bàn phím PS/2 và USB. Với Keylogger phần mềm, kẻ tấn công có thể tích hợp Keylogger vào một phần mềm thông thƣờng và lừa ngƣời dùng cài đặt vào máy tínhPTIT của mình. Hình 3.3. Mô đun Keylogger phần cứng và cài đặt trên máy tính để bàn - 45 -
  47. Bài giảng Cơ sở an toàn thông tin Chương 3. Các dạng tấn công & các phần mềm độc hại 3.3. CÁC DẠNG TẤN CÔNG THƯỜNG GẶP Các dạng tấn công thƣờng gặp là các dạng tấn công điển hình, xảy ra thƣờng xuyên nhằm vào các hệ thống máy tính, hệ thống mạng và ngƣời dùng. Các dạng tấn công thƣờng gặp bao gồm: - Tấn công vào mật khẩu - Tấn công bằng mã độc - Tấn công từ chối dịch vụ - Tấn công giả mạo địa chỉ - Tấn công nghe lén - Tấn công kiểu ngƣời đứng giữa - Tấn công bằng bom thƣ và thƣ rác - Tấn công sử dụng các kỹ thuật xã hội - Tấn công pharming. Phần dƣới đây trình bày chi tiết về các dạng tấn công thƣờng gặp kể trên và các biện pháp phòng chống. 3.3.1. Tấn công vào mật khẩu 3.3.1.1. Giới thiệu Tấn công vào mật khẩu (Password attack) là dạng tấn công nhằm đánh cắp mật khẩu và thông tin tài khoản của ngƣời dùng để lạm dụng. Tên ngƣời dùng và mật khẩu không đƣợc mã hóa có thể bị đánh cắp trên đƣờng truyền từ máy khách đến máy chủ, hoặc các thông tin này có thể bị đánh cắp thông qua các dạng tấn công XSS, hoặc lừa đảo, bẫy ngƣời dùng cung cấp thông tin. Đây là một trong các dạng tấn công phổ biến nhất do hầu hết các ứng dụng sử cơ chế xác thực ngƣời dùng dựa trên tên ngƣời dùng, hoặc email và mật khẩu. Nếu kẻ tấn công có tên ngƣời dùng và mật khẩu thì hắn có thể đăng nhập vào tài khoản và thực hiện các thao tác nhƣ ngƣời dùng bình thƣờng. 3.3.1.2. Mô tả Có thể chia tấn công vào mPTITật khẩu thành 2 dạng: - Tấn công dựa trên từ điển (Dictionary attacks): Dạng tấn công này khai thác vấn đề ngƣời dùng có xu hƣớng chọn mật khẩu là các từ đơn giản cho dễ nhớ. Kẻ tấn công thử các từ có tần suất sử dụng cao làm mật khẩu trong từ điển, nhờ vậy tăng khả năng thành công. - Tấn công vét cạn (Brute force attacks): Dạng vét cạn sử dụng tổ hợp các ký tự và thử tự động. Phƣơng pháp này thƣờng đƣợc sử dụng với các mật khẩu đã đƣợc mã hóa. Kẻ tấn công sinh tổ hợp ký tự, sau đó mã hóa với cùng thuật toán mà hệ thống sử dụng, tiếp theo so sánh chuỗi mã hóa từ tổ hợp ký tự với chuỗi mật khẩu mã hóa thu thập đƣợc. Nếu hai bản mã trùng nhau thì tổ hợp ký tự là mật khẩu. 3.3.1.3. Phòng chống Để đảm bảo an toàn cho mật khẩu, cần thực hiện kết hợp các biện pháp sau: - 46 -
  48. Bài giảng Cơ sở an toàn thông tin Chương 3. Các dạng tấn công & các phần mềm độc hại - Chọn mật khẩu đủ mạnh: Mật khẩu mạnh cho ngƣời dùng thông thƣờng cần có độ dài lớn hơn hoặc bằng 8 ký tự, gồm tổ hợp của 4 loại ký tự: chữ cái hoa, chữ cái thƣờng, chữ số và ký tự đặc biệt (?#$ ). Mật khẩu cho ngƣời quản trị hệ thống cần có độ dài lớn hơn hoặc bằng 10 ký tự cũng với các loại ký tự nhƣ mật khẩu cho ngƣời dùng thông thƣờng. - Định kỳ thay đổi mật khẩu. Thời hạn đổi mật khẩu tùy thuộc vào chính sách an ninh của cơ quan, tổ chức, có thể là 3 tháng, hoặc 6 tháng. - Mật khẩu không nên lƣu ở dạng rõ (plaintext). Nên lƣu mật khẩu ở dạng đã mã hóa (thƣờng dùng hàm băm). - Hạn chế trao đổi tên ngƣời dùng và mật khẩu trên kênh truyền không đƣợc mã hóa. 3.3.2. Tấn công bằng mã độc 3.3.2.1. Giới thiệu Tấn công bằng mã độc (Malicious code attacks) là dạng tấn công sử dụng các mã độc (Malicious code) làm công cụ để tấn công hệ thống nạn nhân. Tấn công bằng mã độc có thể chia thành 2 loại: - Khai thác các lỗ hổng về lập trình, lỗ hổng cấu hình hệ thống để chèn và thực hiện mã độc trên hệ thống nạn nhân. Loại tấn công này lại gồm 2 dạng: + Tấn công khai thác lỗi tràn bộ đệm (Buffer Overflow) + Tấn công khai thác lỗi không kiểm tra đầu vào, gồm tấn công chèn mã SQL (SQL Injection) và tấn công sử dụng mã script, kiểu XSS, CSRF. - Lừa ngƣời sử dụng tải, cài đặt và thực hiện các phần mềm độc hại, nhƣ: + Các phần mềm quảng cáo (Adware), gián điệp (Spyware) + Vi rút + Zombie/Bot + Trojan Tấn công khai thác lỗi tràn bộ đệm đã đƣợc đề cập ở Mục 2.2.1. Dạng tấn công lừa ngƣời sử dụng tải, cài đặt và thực hiPTITện các phần mềm độc hại sẽ đƣợc đề cập ở Mục 3.4. Mục này chủ yếu đề cập về tấn công chèn mã SQL. 3.3.2.2. Tấn công chèn mã SQL a. Khái quát Tấn công chèn mã SQL (SQL Injection) là một kỹ thuật cho phép kẻ tấn công chèn mã SQL vào dữ liệu gửi đến máy chủ và cuối cùng đƣợc thực hiện trên máy chủ cơ sở dữ liệu. Tùy vào mức độ tinh vi, tấn công chèn mã SQL có thể cho phép kẻ tấn công (1) vƣợt qua các khâu xác thực ngƣời dùng, (2) chèn, xóa hoặc sửa đổi dữ liệu, (3) đánh cắp các thông tin trong cơ sở dữ liệu và (4) chiếm quyền điều khiển hệ thống máy chủ cơ sở dữ liệu. Tấn công chèn mã SQL là dạng tấn công thƣờng gặp ở các ứng dụng web, các trang web có kết nối đến cơ sở dữ liệu. Có 2 nguyên nhân chính của lỗ hổng trong ứng dụng cho phép thực hiện tấn công chèn mã SQL là: - 47 -
  49. Bài giảng Cơ sở an toàn thông tin Chương 3. Các dạng tấn công & các phần mềm độc hại - Dữ liệu đầu vào từ ngƣời dùng hoặc từ các nguồn khác không đƣợc kiểm tra hoặc kiểm tra không kỹ lƣỡng; - Sử dụng các câu lệnh SQL động trong ứng dụng, trong đó có thao tác nối dữ liệu ngƣời dùng với mã lệnh SQL gốc. b. Vượt qua các khâu xác thực người dùng Xem xét một form đăng nhập (Log in) và đoạn mã xử lý xác thực ngƣời dùng lƣu trong bảng cơ sở dữ liệu tbl_accounts(username, password) cho nhƣ trên Hình 3.4. Tên đăng nhập: Mật khẩu: PTIT Hình 3.4. Form đăng nhập (log on) và đoạn mã xử lý xác thực người dùng Nếu ngƣời dùng nhập 'admin' vào trƣờng username và 'abc123' vào trƣờng password của form, mã xử lý hoạt động đúng: Nếu tồn tại ngƣời dùng với username và password kể trên, hệ thống sẽ cho phép đăng nhập với thông báo đăng nhập thành công; Nếu không tồn tại ngƣời dùng với username và password đã cung cấp, hệ thống sẽ từ chối đăng nhập và trả lại thông báo lỗi. Tuy nhiên, nếu ngƣời dùng nhập aaaa' OR 1=1 vào trƣờng username và một chuỗi bất kỳ, chẳng hạn 'aaaa' vào trƣờng password của form, mã xử lý hoạt động sai và chuỗi chứa câu truy vấn SQL trở thành: SELECT * FROM tbl_accounts WHERE username='aaaa' OR 1=1 ' AND password='aaaa' Câu truy vấn sẽ trả về mọi bản ghi trong bảng do thành phần OR 1=1 làm cho điều kiện trong mệnh đề WHERE trở lên luôn đúng và phần kiểm tra mật khẩu đã bị loại bỏ bởi ký hiệu ( ). Phần lệnh sau ký hiệu ( ) đƣợc coi là ghi chú và không đƣợc thực hiện. Nếu trong bảng - 48 -
  50. Bài giảng Cơ sở an toàn thông tin Chương 3. Các dạng tấn công & các phần mềm độc hại tbl_accounts có chứa ít nhất một bản ghi, kẻ tấn công sẽ luôn đăng nhập thành công vào hệ thống. c. Chèn, sửa đổi, hoặc xóa dữ liệu Xem xét một form tìm kiếm sản phẩm và đoạn mã xử lý tìm sản phẩm lƣu trong bảng cơ sở dữ liệu tbl_products(product_id, product_name, product_desc, product_cost) cho nhƣ trên Hình 3.5. Nhập tên sản phẩm: Hình 3.5. Form tìm kiếm sản phẩm và đoạn mã xử lý tìm sản phẩm Nếu ngƣời dùng nhập chuỗi "Samsung Galaxy S4" vào trƣờng keyword của form, mã xử lý hoạt động đúng: Nếu tìm thPTITấy các sản phẩm có tên chứa từ khóa, hệ thống sẽ hiển thị danh sách các sản phẩm tìm thấy; Nếu không tìm thấy sản phẩm nào có tên chứa từ khóa, hệ thống thông báo không tìm thấy sản phẩm. Tuy nhiên, nếu ngƣời dùng nhập chuỗi "Samsung Galaxy S4';DELETE FROM tbl_products; " vào trƣờng keyword của form, mã xử lý sẽ hoạt động sai và chuỗi chứa câu truy vấn SQL trở thành: SELECT * FROM tbl_products WHERE keyword like '%Samsung Galaxy S4';DELETE FROM tbl_products; %' Chuỗi lệnh SQL mới gồm 2 lệnh SQL: câu lệnh SELECT tìm kiếm các sản phẩm có tên chứa từ khóa "Samsung Galaxy S4" trong bảng tbl_products và câu lệnh DELETE xóa tất cả các sản phẩm trong bảng tbl_products. Sở dĩ kẻ tấn công có thể làm đƣợc điều này là do hệ quản trị cơ sở dữ liệu MS-SQL server nói riêng và hầu hết các hệ quản trị cơ sở dữ liệu nói chung cho phép thực hiện nhiều lệnh SQL theo lô và dùng dấu ; để ngăn cách các lệnh. Ký hiệu dùng để hủy tác dụng của phần lệnh còn lại nếu có. - 49 -
  51. Bài giảng Cơ sở an toàn thông tin Chương 3. Các dạng tấn công & các phần mềm độc hại Bằng thủ thuật tƣơng tự, kẻ tấn công có thể thay lệnh DELETE bằng lệnh UPDATE hoặc INSERT để chỉnh sửa, hoặc chèn thêm dữ liệu. Chẳng hạn, kẻ tấn công chèn thêm lệnh UPDATE để cập nhật mật khẩu của ngƣời quản trị bằng cách nhập chuỗi sau làm từ khóa tìm kiếm (giả thiết bảng tbl_administrators chứa thông tin ngƣời quản trị): Galaxy S4';UPDATE tbl_administrators SET password=abc123 WHERE username = 'admin'; Hoặc kẻ tấn công có thể chèn thêm bản ghi vào bảng tbl_administrators bằng cách nhập chuỗi sau làm từ khóa tìm kiếm: Galaxy S4';INSERT INTO tbl_administrators (username, password) VALUES ('attacker', 'abc12345'); d. Đánh cắp các thông tin trong cơ sở dữ liệu Lỗ hổng chèn mã SQL có thể giúp kẻ tấn công đánh cắp dữ liệu trong cơ sở dữ liệu thông qua một số bƣớc nhƣ sau: - Tìm lỗ hổng chèn mã SQL và thăm dò các thông tin về hệ quản trị cơ sở dữ liệu: + Nhập một số dữ liệu mẫu để kiểm tra một trang web có chứa lỗ hổng chèn mã SQL, nhƣ các dấu nháy đơn, dấu , + Tìm phiên bản máy chủ cơ sở dữ liệu: nhập các câu lệnh lỗi và kiểm tra thông báo lỗi, hoặc sử dụng @@version (với MS-SQL Server), hoặc version() (với MySQL) trong câu lệnh ghép với UNION SELECT. - Tìm thông tin về số lƣợng và kiểu dữ liệu các trƣờng của câu truy vấn hiện tại của trang web. + Sử dụng mệnh đề ORDER BY + Sử dụng UNION SELECT 1, 2, 3, - Trích xuất thông tin về các bảng, các trƣờng của cơ sở dữ liệu thông qua các bảng hệ thống (metadata). - Sử dụng lệnh UNION SELECT để ghép các thông tin định trích xuất vào câu truy vấn hiện tại của ứng dụng. PTIT e. Chiếm quyền điều khiển hệ thống máy chủ cơ sở dữ liệu Khả năng máy chủ cơ sở dữ liệu bị chiếm quyền điều khiển xảy ra khi trang web tồn tại đồng thời 2 lỗ hổng: (1) lỗ hổng cho phép tấn công chèn mã SQL và (2) lỗ hổng thiết lập quyền truy nhập cơ sở dữ liệu – sử dụng ngƣời dùng có quyền quản trị để truy nhập và thao tác dữ liệu của website. Khai thác 2 lỗ hổng này, kẻ tấn công có thể gọi thực hiện các lệnh hệ thống của máy chủ cơ sở dữ liệu cho phép can thiệp sâu vào cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu và cả hệ điều hành nền. Chẳng hạn, hệ quản trị cơ sở dữ liệu MS-SQL Server cung cấp thủ tục sp_send_dbmail cho phép gửi email từ máy chủ cơ sở dữ liệu và thủ tục xp_cmdshell cho phép chạy các lệnh và chƣơng trình cài đặt trên hệ điều hành MS Windows. Sau đây là một số ví dụ chạy các lệnh Microsoft Windows thông qua thủ tục xp_cmdshell: EXEC xp_cmdshell 'dir *.exe' : liệt kê nội dung thƣ mục hiện thời EXEC xp_cmdshell 'shutdown /s /t 00' : tắt máy chủ nền chạy hệ quản trị CSDL - 50 -
  52. Bài giảng Cơ sở an toàn thông tin Chương 3. Các dạng tấn công & các phần mềm độc hại EXEC xp_cmdshell 'net stop W3SVC' : dừng hoạt động máy chủ web EXEC xp_cmdshell 'net stop MSSQLSERVER' : dừng hoạt động máy chủ CSDL Ngoài ra, kẻ tấn công có thể thực hiện các thao tác nguy hiểm đến cơ sở dữ liệu nếu có quyền của ngƣời quản trị cơ sở dữ liệu hoặc quản trị hệ thống, nhƣ: Xóa cả bảng (gồm cả cấu trúc): DROP TABLE Xóa cả cơ sở dữ liệu: DROP DATABASE Tạo 1 tài khoản mới truy nhập CSDL: sp_addlogin Đổi mật khẩu tài khoản truy nhập CSDL: sp_password f. Phòng chống Do tính chất nguy hiểm của tấn công chèn mã SQL, nhiều giải pháp đã đƣợc đề xuất nhằm hạn chế tác hại và ngăn chặn triệt để dạng tấn công này. Nhìn chung, cần áp dụng kết hợp các biện pháp phòng chống tấn công chèn mã SQL để đảm bảo an toàn cho hệ thống. Các biện pháp, kỹ thuật cụ thể có thể áp dụng gồm: - Các biện pháp phòng chống dựa trên kiểm tra và lọc dữ liệu đầu vào: + Kiểm tra tất cả các dữ liệu đầu vào, đặc biệt dữ liệu nhập từ ngƣời dùng và từ các nguồn không tin cậy; + Kiểm tra kích thƣớc và định dạng dữ liệu đầu vào; + Tạo các bộ lọc để lọc bỏ các ký tự đặc biệt (nhƣ *, „, =, ) và các từ khóa của ngôn ngữ SQL (SELECT, INSERT, UPDATE, DELETE, DROP, ) mà kẻ tấn công có thể sử dụng: - Sử dụng thủ tục cơ sở dữ liệu (stored procedures) và cơ chế tham số hóa dữ liệu: + Đƣa tất cả các câu truy vấn (SELECT) và cập nhật, sửa, xóa dữ liệu (INSERT, UPDATE, DELETE) vào các thủ tục. Dữ liệu truyền vào thủ tục thông qua các tham số, giúp tách dữ liệu khỏi mã lệnh SQL, nhờ đó hạn ngăn chặn hiệu quả tấn công chèn mã SQL; + Hạn chế thực hiện cácPTIT câu lệnh SQL động trong thủ tục; + Sử dụng cơ chế tham số hóa dữ liệu hỗ trợ bởi nhiều ngôn ngữ lập trình web nhƣ ASP.NET, PHP và JSP. - Các biện pháp phòng chống dựa trên thiết lập quyền truy nhập ngƣời dùng cơ sở dữ liệu: + Không sử dụng ngƣời dùng có quyền quản trị hệ thống hoặc quản trị cơ sở dữ liệu làm ngƣời dùng truy cập dữ liệu. Ví dụ: không dùng ngƣời dùng sa (Microsoft SQL) hoặc root (MySQL) làm ngƣời dùng truy cập dữ liệu. Chỉ dùng các ngƣời dùng này cho mục đích quản trị. + Chia nhóm ngƣời dùng, chỉ cấp quyền vừa đủ để truy cập các bảng biểu, thực hiện câu truy vấn và chạy các thủ tục. - 51 -