Mạng và an toàn hệ thống ứng dụng: từ yêu cầu đến hệ thống được bảo vệ | LUKATO AI
Bài giảng khái niệm Tin học 12 với 12 phòng lab tương tác: mô hình máy khách và máy chủ, xác thực và phân quyền, mã hóa, tường lửa, sao lưu, mối đe dọa và…
LUKATO AI · TIN HỌC 12 · MẠNG VÀ AN TOÀN HỆ THỐNG ỨNG DỤNG
TỪ MỘT YÊU CẦU ĐẾN MỘT HỆ THỐNG ĐƯỢC BẢO VỆ
Mỗi lần bấm là một yêu cầu gửi tới máy chủ; an toàn là làm cho yêu cầu ấy qua đúng cổng kiểm và để lại dấu vết
- Em bấm vào một trang web: yêu cầu của em đi qua những cổng kiểm nào trước khi trang hiện ra, và cổng nào có thể dừng nó?
- Khi một lớp bảo vệ bị vượt qua, thứ gì đứng sau nó, và nếu thứ ấy cũng thiếu thì thiệt hại lan tới đâu?
- Nửa đêm có dấu hiệu bất thường: em cần sẵn thứ gì để mất ít nhất và khôi phục nhanh nhất?
Bài học này gom các khái niệm về mạng và an toàn hệ thống ứng dụng vào một khung năm chặng : yêu cầu, dịch vụ, xác thực, bảo vệ, giám sát và phục hồi. Mỗi tình huống đều quy về ba việc: ai gửi yêu cầu và qua cổng nào, ai được làm gì, và nếu có chuyện thì còn lại gì để khôi phục. Em sẽ đi cùng một yêu cầu qua bốn cổng kiểm, xếp vai máy khách và máy chủ, soi một bảng mật khẩu bị lấy, dựng bảng luật tường lửa, kéo thanh dung lượng khi dịch vụ bị dồn ép, đọc một đoạn nhật ký, chọn kế hoạch sao lưu và xếp ưu tiên rủi ro. Khái niệm nào vượt ra ngoài mức nền được ghi là kiến thức bổ sung.
- ① 5 CHẶNG: yêu cầu, dịch vụ, xác thực, bảo vệ, giám sát và phục hồi
- ② 6 THÀNH PHẦN: trang web, thư điện tử, đăng nhập, cơ sở dữ liệu, mạng nội bộ, dịch vụ cho nhiều người
- ③ 4 CỔNG KIỂM: tường lửa, kênh mã hóa, xác thực, phân quyền
- ④ GHI NHỚ: chặn mặc định, quyền tối thiểu, nhiều lớp
12
phòng lab thao tác: cổng kiểm, vai khách–chủ, kho mật khẩu, bảng quyền, tường lửa…
14 bẫy
mỗi bẫy gắn với một chặng và một phòng lab
10 thẻ
thẻ ôn nhanh để lật và tự nói lại
11 bài
bài luyện chọn lọc và báo cáo học tập của riêng em
01
Bản đồ bài học
Từ một yêu cầu đến một hệ thống được bảo vệ: khung năm chặng cho các tình huống mạng và an toàn hệ thống
Mỗi lần em bấm “Mượn sách” trên điện thoại, một yêu cầu nhỏ chạy qua mạng tới một máy chủ ở đâu đó. Trong vài phần nghìn giây, yêu cầu ấy được đổi từ tên miền thành địa chỉ, đi qua một tường lửa, bước vào một kênh mã hóa, được hỏi “em là ai”, được hỏi “em được làm gì”, rồi mới đến lượt máy chủ xử lí và trả lời. Một dòng nhật ký được ghi lại, và dữ liệu sau thay đổi được sao lưu theo lịch. Em chỉ thấy nút bấm và trang hiện ra; phần còn lại là cả một hệ thống phối hợp với nhau. Vì vậy học an toàn hệ thống không bắt đầu từ danh sách mẹo, mà từ việc nhìn ra các chặng mà yêu cầu đi qua. Mục này vẽ bản đồ cho cả bài học.
Câu hỏi 1 · AI HỎI
Ai gửi yêu cầu, qua cổng nào, tới dịch vụ nào?
Một hệ thống ứng dụng thường bắt đầu bằng một yêu cầu. Gọi tên bên gửi, bên nhận và cổng đi qua là chặng yêu cầu và chặng dịch vụ .
Câu hỏi 2 · ĐƯỢC LÀM GÌ
Bên gửi là ai, được làm gì, và lớp chắn nào đứng giữa?
Chặng xác thực nhận ra người gửi và xác định quyền; chặng bảo vệ đặt các lớp chắn như mã hóa, tường lửa, phân vùng.
Câu hỏi 3 · NẾU CÓ CHUYỆN
Điều gì ghi lại dấu vết, và khôi phục bằng gì?
Chặng giám sát và phục hồi gồm nhật ký, cảnh báo, sao lưu và quy trình ứng phó, vì không lớp chắn nào bảo đảm không có sự cố.
Bảng năm chặng và sáu thành phần: bấm vào từng ô
Mỗi hàng là một thành phần mà học sinh gặp trong các hệ thống thật, mỗi cột là một chặng của khung. Cột đầu và cột hai trả lời câu hỏi 1, cột ba và cột bốn trả lời câu hỏi 2, cột cuối trả lời câu hỏi 3. Bảng này là bản đồ của cả bài học : mục 2 đi vào máy khách, máy chủ và dịch vụ, mục 3 nói về xác thực và phân quyền, mục 4 về mã hóa và chứng chỉ, mục 5 về tường lửa và phân vùng, mục 6 về mối đe dọa và tính sẵn sàng, mục 7 về nhật ký, sao lưu và ứng phó, mục 8 gom thành quy trình hướng dẫn và đánh giá rủi ro.
THÀNH PHẦN
① YÊU CẦU (ai hỏi, qua cổng nào)
② DỊCH VỤ (ai xử lí)
③ XÁC THỰC (ai, được làm gì)
④ BẢO VỆ (lớp chắn)
⑤ GIÁM SÁT VÀ PHỤC HỒI
Trang web
Thư điện tử
Đăng nhập tài khoản
Cơ sở dữ liệu
Mạng nội bộ
Dịch vụ cho nhiều người
Bảng rộng hơn màn hình: vuốt ngang để xem đủ năm chặng.
Bấm vào một ô để xem ô ấy nói gì, nằm ở bẫy nào và luyện ở phòng lab nào.
Sáu thuật ngữ nền
Các từ gạch chân chấm trong bài học là thẻ giải nghĩa: bấm hoặc rê chuột để xem. Em thử với các từ dưới đây.
máy khách máy chủ xác thực phân quyền tường lửa nhật ký
Dự đoán trước khi đi tiếp: trong năm chặng, chặng nào nên được hỏi đầu tiên khi nhìn một hệ thống lạ?
Khung là thứ tự để hỏi, không phải thứ tự dữ liệu đi qua
Có một điểm dễ nhầm ngay từ đầu. Khi yêu cầu thật sự đi trên mạng, nó gặp tường lửa trước, rồi kênh mã hóa, rồi mới tới xác thực và phân quyền. Thứ tự ấy không trùng với thứ tự năm chặng của khung. Hai thứ trả lời hai câu hỏi khác nhau. Thứ tự đi cho biết yêu cầu gặp cổng nào trước; thứ tự hỏi cho biết em nên nghĩ theo trình tự nào để không bỏ sót: bên nào gửi, dịch vụ nào nhận, ai được làm gì, lớp chắn nào, và nếu thủng thì còn lại gì. Mục 2 sẽ cho em đi cùng một yêu cầu qua bốn cổng để thấy hai thứ tự này khác nhau ở đâu.
Hãy thử với một ví dụ chưa gặp: một ứng dụng mượn sách của thư viện trường cho phép giáo viên tải về danh sách phiếu mượn của lớp. Chặng yêu cầu: giáo viên gửi yêu cầu tải qua kết nối mã hóa. Chặng dịch vụ: máy chủ ứng dụng nhận, và hỏi tiếp cơ sở dữ liệu. Chặng xác thực: nhận ra tài khoản giáo viên, rồi xét quyền chỉ cho xem lớp của mình. Chặng bảo vệ: dữ liệu đi trong kênh mã hóa, cơ sở dữ liệu không mở ra Internet. Chặng giám sát: nhật ký ghi lượt tải, và có bản sao lưu nếu dữ liệu bị hỏng. Một tình huống, năm câu trả lời.
Có ba cảnh báo đến cùng lúc: một máy lạ thử cổng đăng nhập từ xa, một tài khoản học sinh mở trang quản lí, một ổ lưu nhật ký sắp đầy. Em phân loại chúng thế nào? Mở từng gợi ý.
Gợi ý 1
Hỏi chặng yêu cầu và dịch vụ: bên nào gửi, tới cổng nào? Với cảnh báo đầu, bên gửi là máy ngoài tới cổng quản trị.
Gợi ý 2
Hỏi chặng xác thực: bên gửi đã được nhận ra chưa, và quyền của họ là gì? Với cảnh báo thứ hai, tài khoản đã được nhận ra nhưng quyền không đủ.
Kết luận
Cảnh báo một thuộc chặng bảo vệ (tường lửa cần chặn cổng ấy); cảnh báo hai thuộc chặng xác thực và phân quyền; cảnh báo ba thuộc chặng giám sát. Ba cảnh báo, ba chặng khác nhau, và mỗi chặng có biện pháp riêng.
Ba nguyên tắc chạy xuyên cả khung
Chặn mặc định: chỉ cho qua cái cần có, phần còn lại đóng. Quyền tối thiểu: mỗi người, mỗi tài khoản dịch vụ được cấp vừa đủ quyền cho việc của mình. Nhiều lớp: không lớp nào đủ một mình, nên mỗi lớp được đặt để đỡ cho lớp kia khi nó thủng. Ba nguyên tắc này lặp lại ở hầu hết các mục sau với những dáng vẻ khác nhau.
02
Máy khách, máy chủ, dịch vụ
Khách và chủ không phải hai loại máy: vai trò, cổng và đường đi của một yêu cầu
Ở một quán cơm bình dân, khách gọi món, bếp nấu; nhưng bếp cũng là khách của chợ khi gọi rau. Quán không cần hai loại người, chỉ cần hai vai trong hai cuộc trao đổi khác nhau. Mạng máy tính làm đúng như vậy. Hiểu rõ ai gửi yêu cầu, ai trả lời, qua cửa nào là bước đầu tiên để biết cần bảo vệ chỗ nào. Mục này làm rõ chặng yêu cầu và chặng dịch vụ của khung.
Hai vai trong một cuộc trao đổi
Mô hình khách–chủ chia một cuộc trao đổi thành hai vai. Bên gửi yêu cầu rồi chờ phản hồi để hiện kết quả cho người dùng là máy khách ; còn bên nhận yêu cầu, xử lí rồi trả lời là máy chủ . Điểm cần nhớ nhất là vai trò không gắn với chiếc máy mà gắn với hướng của yêu cầu. Máy chủ web đang trả trang cho em là máy chủ; vài mili giây sau, chính máy ấy gửi truy vấn sang máy chủ cơ sở dữ liệu thì nó là máy khách của máy kia. Điều này giải thích vì sao một hệ thống ứng dụng thường là chuỗi nhiều cuộc trao đổi nối nhau, và vì sao mỗi mắt xích đều cần được bảo vệ.
Hình rộng hơn màn hình: vuốt ngang để xem đầy đủ.
Hình 2.1. Một yêu cầu đi qua hai cuộc trao đổi nối nhau. Ở cuộc thứ nhất máy chủ web là máy chủ; ở cuộc thứ hai nó là máy khách của máy chủ cơ sở dữ liệu. Mỗi mũi tên là một cuộc trao đổi có thể bị kiểm soát riêng.
Yêu cầu và phản hồi đều là những thông điệp có cấu trúc. Yêu cầu nói rõ điều muốn làm (xem, gửi dữ liệu, sửa, xóa) và đối tượng muốn làm với nó; phản hồi mang theo kết quả và một mã trạng thái cho biết việc đã thành công hay chưa. Hai mã đáng chú ý trong bài học này là mã nói rằng bên hỏi chưa chứng minh được mình là ai (xác thực thất bại) và mã nói rằng bên hỏi đã được nhận ra nhưng không được phép làm việc đó (từ chối quyền).
Dịch vụ
Việc mà dịch vụ làm
Cổng thường dùng (kiến thức bổ sung)
Web
Trả trang và dữ liệu cho trình duyệt hoặc ứng dụng
HTTP dùng cổng 80, HTTPS dùng cổng 443
Tra cứu tên (DNS)
Đổi tên miền thành địa chỉ để yêu cầu biết đi đâu
Cổng 53
Thư điện tử
Nhận thư từ máy khách và chuyển thư giữa các máy chủ thư
Cổng 25 cho việc chuyển thư giữa máy chủ
Đăng nhập từ xa
Cho người quản trị điều khiển máy chủ qua kênh mã hóa
Cổng 22
Cơ sở dữ liệu
Nhận truy vấn từ máy chủ ứng dụng và trả kết quả
Mỗi hệ có cổng riêng, ví dụ cổng 3306 cho một hệ phổ biến
Các số cổng trên là quy ước thường gặp; một dịch vụ có thể được cấu hình dùng cổng khác.
Phòng lab 1 · Máy khách hay máy chủ trong từng cuộc trao đổi DẠNG: PHÂN LOẠI KÉO THẢ · CÓ NÚT CHỌN
Dự đoán trước: trong 8 thẻ dưới đây, em nghĩ có mấy thẻ là máy khách? Rồi xếp từng thẻ vào ô “máy khách” hoặc “máy chủ” (bấm thẻ rồi bấm ô, hoặc nắm biểu tượng chấm để kéo). Lab này gặp bẫy 1 .
Bẫy 1 · máy khách và máy chủ là hai loại máy cố định
Tên gọi “máy chủ web” làm ta tưởng chiếc máy chỉ biết phục vụ. Trong thực tế một máy có thể giữ hai vai ở hai cuộc trao đổi khác nhau, thậm chí cùng lúc. Khi phân tích, đừng hỏi “máy này là gì”, hãy hỏi “trong cuộc trao đổi này ai gửi yêu cầu trước”.
Gặp ở: Lab 1 · chưa có bài ở mục 10, luyện bằng lab
Địa chỉ là tòa nhà, cổng là số phòng
Một máy chủ có một địa chỉ IP nhưng có thể chạy nhiều dịch vụ cùng lúc. Để yêu cầu đến đúng dịch vụ, mỗi dịch vụ lắng nghe ở một cổng riêng, giống như tòa nhà có một địa chỉ và nhiều số phòng. Yêu cầu tới địa chỉ nào, cổng nào thì dịch vụ ấy xử lí. Số cổng là số nguyên 16 bit, nên có 2^{16}=65\,536 cổng; chỉ một số ít được dùng cho dịch vụ.
Từ góc nhìn an toàn, mỗi cổng đang mở là một cánh cửa có người trực. Cửa nào không cần thì đóng, vì dịch vụ càng nhiều thì càng nhiều chỗ có thể có lỗi. Tập hợp các cổng, dịch vụ và chức năng mà người ngoài tiếp xúc được gọi là bề mặt tiếp xúc (cách gọi để học; ở một số tài liệu còn gọi là bề mặt tấn công). Mục 5 sẽ dùng bề mặt tiếp xúc để lí giải vì sao tường lửa nên chặn mặc định.
Dự đoán: một máy chủ chạy ba dịch vụ trên ba cổng khác nhau. Việc đóng một cổng không dùng làm thay đổi gì?
Một yêu cầu phải qua nhiều cánh cửa
Điều làm yêu cầu của em khác một bức thư trong hộp thư là nó phải qua một chuỗi kiểm tra trước khi được phục vụ. Nhìn từ máy chủ, bốn cổng kiểm thường gặp theo thứ tự là: tường lửa xét địa chỉ và cổng, kênh mã hóa dựng đường truyền bí mật và kiểm tra chứng chỉ, xác thực nhận ra người gửi, phân quyền xét việc người ấy được làm. Sau cả bốn cổng, nhật ký ghi lại kết cục. Yêu cầu có thể có bốn kết cục: được phục vụ; bị chặn (tường lửa hoặc kênh mã hóa); bị từ chối (xác thực hoặc phân quyền); hoặc bị bỏ rơi vì quá tải hay vì không thể đến nơi.
Hình rộng hơn màn hình: vuốt ngang để xem đầy đủ.
Hình 2.2. Bốn cổng kiểm theo thứ tự yêu cầu gặp chúng, và vị trí của từng cổng trong khung năm chặng. Nhật ký ghi cả yêu cầu bị dừng.
Phòng lab 2 · Một yêu cầu đi qua bốn cổng kiểm DẠNG: TRÌNH CHIẾU TỪNG BƯỚC · CÓ NÚT PHÁT
Dự đoán trước: với mỗi tình huống, hãy đoán yêu cầu dừng ở cổng nào, hoặc không bị dừng, rồi bấm Tiếp để xem từng bước (có nút Phát tự chạy). Em cần đoán đúng ngay lần đầu ít nhất 4 trong 5 tình huống. Lab này gặp bẫy 2 và 3 .
Bẫy 2 · gửi yêu cầu đi là đến đúng nơi và được phục vụ
Yêu cầu có thể thất bại ở nhiều chỗ mà người dùng không nhìn thấy: tên miền trả về địa chỉ khác, gói tin đi vòng rồi bị bỏ, tường lửa chặn cổng, xác thực thất bại, thiếu quyền. Mỗi chỗ có dấu hiệu riêng trong nhật ký, và mỗi chỗ cần biện pháp riêng. Cứ coi “đã gửi là đã đến” thì sẽ không biết tìm lỗi ở đâu.
Gặp ở: Lab 2 · Bài 1 và 2
Hai nơi yêu cầu có thể đi lạc
Hai trong số các cổng kiểm nằm ngoài hình vẽ: việc tìm đúng địa chỉ và việc đi hết đường. Cả hai là kiến thức bổ sung ở mức khái niệm.
Kiến thức bổ sung: bộ nhớ tra cứu tên bị ghi sai
Dịch vụ tra tên miền (DNS) giữ tạm các kết quả vừa tra trong một bộ nhớ đệm để lần sau trả lời nhanh. Nếu một kết quả sai lọt vào bộ nhớ ấy, người ta gọi đó là đầu độc bộ nhớ đệm: trong suốt thời gian mục sai còn được giữ, tên của một trang thật bị dịch ra địa chỉ của một máy khác. Người dùng không làm gì sai; thứ bị đổi là bước tra tên, không phải điều em gõ. Dấu hiệu thường lộ ra ở nhật ký của máy tra tên, nơi một tên quen bỗng cho kết quả khác thường, và cách xử lí là xóa mục sai khỏi bộ nhớ đệm. Phần phòng ngừa thuộc chặng bảo vệ, bàn ở mục 4.