Với các dữ liệu được xuất bản theo tiêu chuẩn này, người dùng cuối có thể khai thác, sử dụng mà không cần thông qua giao diện tương tác của hệ thống mà sử dụng một số phần mềm của hãng t
Trang 11
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOÀNG VĂN BIÊN
NGHIÊN CỨU GIẢI PHÁP ĐẢM BẢO AN NINH AN TOÀN THÔNG TIN CHO CÁC CỔNG/TRANG THÔNG TIN ĐIỆN TỬ
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
HÀ NỘI-2015
Trang 2MỤC LỤC
LỜI CAM ĐOAN
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
DANH MỤC CÁC HÌNH ẢNH
MỞ ĐẦU
Chương 1 TỔNG QUAN VỀ AN TOÀN THÔNG TIN VÀ CỔNG THÔNG TIN ĐIỆN TỬ 1
1.1 Khái niệm chung về an toàn an ninh thông tin 1
1.2 Tình hình an toàn thông tin trên thế giới và Việt Nam 2
1.3 Tổng quan về cổng thông tin điện tử 5
1.4 Các lỗi bảo mật phổ biến của ứng dụng web và cách phòng chống 8
1.5 Tổng quan về đăng nhập một lần trên cổng thông tin điện tử 17
Chương 2 NGHIÊN CỨU CÁC BIỆN PHÁP CƠ BẢN ĐỂ ĐẢM BẢO AN NINH AN TOÀN THÔNG TIN CHO CÁC CỔNG/TRANG THÔNG TIN ĐIỆN TỬ 24
2.1 Xác định cấu trúc ứng dụng web 24
2.2 Triển khai hệ thống phòng thủ 29
2.2.1 Tổ chức mô hình mạng 30
2.2.2 Thiết lập tường lửa 31
2.2.3 Sử dụng công cụ phát hiện và ngăn chặn xâm nhập (IDS/IPS) 34
2.2.3.1 Công cụ phát hiện xâm nhập (IDS) 34
2.2.3.2 Công cụ ngăn chặn xâm nhập (IPS) 38
2.2.4 Ứng dụng phòng chống vi-rút và bảo vệ máy tính cá nhân 40
2.3 Thiết lập và cấu hình hệ thống máy chủ an toàn 41
2.3.1 Thiết lập và cấu hình hệ điều hành máy chủ 41
2.3.2 Thiết lập và cấu hình máy chủ ứng dụng web 42
2.3.3 Thiết lập và cấu hình máy chủ cơ sở dữ liệu 43
2.4 Thiết lập cơ chế sao lưu phục hồi 44
2.4.1 Thiết lập cơ chế sao lưu 44
2.4.2 Thiết lập cơ chế phục hồi 45
2.5 Vận hành an toàn 45
2.5.1 Kiểm tra hoạt động ứng dụng web an toàn 45
Trang 32.5.2 Một số biện pháp ứng phó với tấn công 46
2.5.3 Đào tạo đội ngũ nhân lực vận hành hệ thống 46
Chương 3 TẤN CÔNG TỪ CHỐI DỊCH VỤ VÀ MỘT SỐ BIỆN PHÁP PHÒNG CHỐNG 48
3.1 Tấn công từ chối dịch vụ (DoS) 48
3.2 Tấn công từ chối dịch vụ phân tán (DDoS) 50
3.2.1 Các giai đoạn của một cuộc tấn công DDoS 50
3.2.2 Kiến trúc tổng quan của mạng tấn công DDoS 51
3.2.3 Phân loại tấn công DDoS 53
3.2.3.1 Tấn công làm cạn kiệt băng thông hệ thống 54
3.2.3.2 Tấn công làm cạn kiệt tài nguyên 56
3.3 Tấn công từ chối dịch vụ phản xạ nhiều vùng (DRDoS) 57
3.4 Một số biện pháp phòng chống tấn công từ chối dịch vụ 58
Chương 4 TRIỂN KHAI THỬ NGHIỆM 63
4.1 Mô hình thử nghiệm 63
4.2 Cấu hình hệ thống 64
4.2.1 Cấu hình Apache 67
4.2.2 Cấu hình MySQL 69
4.3 Cài đặt tường lửa ứng dụng web ModSecurity 69
4.4 Thiết lập hệ thống Snort để phát hiện và ngăn chặn xâm nhập 72
4.5 Đánh giá và khuyến nghị 77
KẾT LUẬN 78
TÀI LIỆU THAM KHẢO
PHỤ LỤC 1: THÔNG TIN THAM KHẢO VỀ CÁC TƯỜNG LỬA
PHỤ LỤC 2: TƯỜNG LỬA ỨNG DỤNG WEB ModSecurity PHỤ LỤC 3: MỐT SỐ PHẦN MỀM CHỐNG VIRUS VÀ BẢO VỆ MÁY TÍNH
Trang 4ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOÀNG VĂN BIÊN
NGHIÊN CỨU GIẢI PHÁP ĐẢM BẢO AN NINH AN TOÀN THÔNG
TIN CHO CÁC CỔNG/TRANG THÔNG TIN ĐIỆN TỬ
Ngành: Công nghệ thông tin
Chuyên ngành: Truyền dữ liệu và mạng máy tính
Mã số:
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN VIẾT THẾ
HÀ NỘI-2015
Trang 5LỜI CAM ĐOAN
Tôi xin cam đoan luận văn không sao chép của ai, những kết quả nghiên cứu được trình bày trong luận văn là hoàn toàn trung thực, không vi phạm bất cứ điều gì trong luật
sở hữu trí tuệ và pháp luật Việt Nam Nếu sai, tôi hoàn toàn chịu trách nhiệm trước pháp luật
Trang 6DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
ATTT: An toàn thông tin
CNTT & TT: Công nghệ thông tin và truyền thông
TT & TT: Thông tin và truyền thông
TTĐT: Thông tin điện tử
IDS: Hệ thống phát hiện xâm nhập
HIDS: Hệ thống phát hiện xâm nhập trên máy
NIDS: Hệ thống phát hiện xâm nhập trên mạng
IPS: Hệ thống ngăn chặn xâm nhập
HIPS: Hệ thống ngăn chặn xâm nhập trên máy
NIPS: Hệ thống ngăn chặn xâm nhập trên mạng
DoS: Tấn công từ chối dịch vụ
DDoS: Tấn công từ chối dịch vụ phân tán
DRDoS: Tấn công từ chối dịch vụ phản xạ nhiều vùng
VNISA: Hiệp hội an toàn thông tin Việt Nam
VNCERT: Trung tâm ứng cứu khẩn cấp máy tính Việt Nam
OWASP: Dự án mở về bảo mật ứng dụng web
SSO: Đăng nhập một lần
Trang 7Hình 2.7: Ví dụ vị trí đặt tường lửa ứng dụng web
Hình 2.8: Một số vị trí thường đặt cảm biến NIDS
Hình 3.1: Mô tả tấn công kiểu Smurf
Hình 3.2: Kiến trúc mạng tấn công kiểu Agent Handler Hình 3.3: Kiến trúc mạng tấn công kiểu IRC
Hình 3.4: Phân loại tấn công từ chối dịch vụ phân tán
Hình 3.5: Tấn công khuếch đại giao tiếp
Trang 8MỞ ĐẦU
1 Tính cấp thiết của đề tài
Trong những năm gần đây, Công nghệ thông tin và truyền thông (CNTT &TT) có vai trò lớn đối với sự phát triển của mỗi quốc gia, mỗi doanh nghiệp Ứng dụng CNTT
&TT cũng có tác động không nhỏ đến đời sống kinh tế, xã hội của đại bộ phận người dân trên thế giới CNTT&TT cũng góp phần quan trọng trong vấn đề an ninh và phát triển bền vững của mỗi quốc gia Do vậy, ứng dụng CNTT&TT trở thành một phần không thể thiếu trong chiến lược phát triển của các doanh nghiệp và các quốc gia trên thế giới
Với tốc độ phát triển và ứng dụng của CNTT&TT ngày càng nhanh như hiện nay, hàng ngày có một lượng thông tin lớn được lưu trữ, chuyển tải thông qua các cổng/trang thông tin điện tử (TTĐT) cũng kéo theo nhiều rủi ro về sự mất an toàn thông tin Thiệt hại do mất an ninh an toàn trên các cổng/trang TTĐT đã tăng rất nhanh và sẽ ảnh hưởng nghiêm trọng đến sự phát triển kinh tế - xã hội, nếu công tác đảm bảo an ninh an toàn không được triển khai đúng mức Bởi các kỹ thuật của tội phạm mạng ngày càng cao và tinh vi hơn, số lượng điểm yếu an ninh ngày càng tăng, số vụ xâm phạm an toàn mạng ngày càng nhiều
Tấn công mạng vào các cổng/trang TTĐT ngày càng trở lên nghiêm trọng Vì vậy, việc nghiên cứu các giải pháp đảm bảo an ninh an toàn cho các cổng/trang TTĐT là rất cần thiết Để đảm bảo các cổng/trang TTĐT hoạt động ổn định, bảo đảm an ninh an toàn thông tin là việc làm rất cần thiết Giải quyết vấn đề an ninh an toàn của các cổng/trang TTĐT là việc làm của cả xã hội và là vấn đề cấp bách
2 Mục tiêu của đề tài
Nghiên cứu, tìm hiểu các giải pháp đảm bảo an ninh an toàn thông tin cho các cổng/trang TTĐT Kết quả có thể được sử dụng làm tài liệu tốt trong việc xây dựng hệ thống đảm bảo an ninh an toàn cho các cổng/trang TTĐT cho các cơ quan, doanh nghiệp
3 Phương pháp nghiên cứu
Về lý thuyết: Nghiên cứu những đặc điểm của cổng/trang TTĐT, các lỗ hổng và các hình thức tấn công nhằm vào cổng/trang TTĐT Sau đó tìm hiểu, nghiên cứu và áp dụng các giải pháp để phòng chống tấn công các lỗ hổng, cũng như ngăn chặn các hình thức tấn công trên cổng/trang TTĐT Các giải pháp được nghiên cứu, tổng hợp từ nhiều nguồn khác nhau tùy vào mỗi loại lỗ hổng và mỗi hình thức tấn công mà có những giải pháp riêng Từ đó, tổng hợp đưa ra những giải pháp tổng thể giúp đảm bảo an ninh an toàn cho hệ thống cổng/trang TTĐT
Về mặt thực nghiệm: Từ những giải pháp đã nghiên cứu, tôi lựa chọn mô hình và triển khai thử nghiệm một số biện pháp cơ bản, quan trọng nhằm đánh giá một cách khách quan các giải pháp Đồng thời, đưa ra các khuyến nghị giúp đảm bảo an ninh an toàn cho các cổng/trang TTĐT
Trang 94 Nội dung nghiên cứu
Trong luận văn này tôi đi vào nghiên cứu những vấn đề sau:
- Tổng quan về an toàn thông tin, trong đó có các khái niệm cơ bản về an toàn thông tin, tình hình an toàn thông tin một vài năm gần đây trên thế giới và Việt Nam
- Tổng quan về cổng TTĐT các đặc điểm của cổng TTĐT Các dạng lỗi phổ biến trên ứng dụng web nói chung và cổng/trang TTĐT nói riêng, các kiểu tấn công và cách phòng chống để đảm bảo an toàn cho cổng TTĐT
- Cấu trúc triển khai ứng dụng web và đưa ra ưu, nhược điểm của từng mô hình Giúp xác định và lựa chọn được mô hình triển khai cổng/trang TTĐT một cách phù hợp
- Cách tổ chức mô hình mạng hợp lý, đưa ra các mô hình có thể áp dụng vào triển khai đảm bảo an ninh an toàn cho cổng/trang TTĐT
- Sử dụng tường lửa để bảo vệ và sử dụng được tường lửa ứng dụng web mod_security giúp ngăn chặn các loại tấn công phổ biến
- Sử dụng hệ thống phát hiện và ngăn chặn xâm nhập Nghiên cứu, triển khai được
hệ thống phát hiện và ngăn chặn xâm nhập snort giúp đảm bảo an toàn cho hệ thống
- Thiết lập và cấu hình hệ thống máy chủ an toàn cũng như việc sao lưu và phục hồi dữ liệu
Trang 101
Chương 1 TỔNG QUAN VỀ AN TOÀN THÔNG TIN VÀ CỔNG THÔNG TIN ĐIỆN TỬ
1.1 Khái niệm chung về an toàn an ninh thông tin
Lĩnh vực an toàn thông tin (ATTT) ngày nay càng được các quốc gia trên toàn thế giới quan tâm Hiện nay, có nhiều quan niệm khác nhau về nội hàm của các khái niệm
về trạng thái đảm bảo an toàn thông tin cho hệ thống mạng, như “an toàn, an ninh thông tin”, “an toàn, an ninh mạng”, “bảo mật mạng máy tính”, bảo mật server, bảo mật ứng dụng web, v.v Sau đây là một số khái niệm về thông tin và đảm bảo an toàn thông tin:
Thông tin: là sự phản ánh của tự nhiên và xã hội bằng ngôn từ, ký hiệu, hình ảnh
v.v… hay nói rộng hơn bằng tất cả các phương tiện tác động lên giác quan của con người Thông tin được tồn tại ở nhiều dạng: thông tin có thể được khắc trên đá, gỗ, được in hay viết trên giấy, được lưu trong các thiết bị điện tử (thẻ nhớ, ổ cứng, ổ đĩa, băng từ, v.v…), thông tin được luân chuyển và chia sẻ trên mạng dưới các dạng khác nhau (do gửi thư điện tử, đăng trên các trang web, v.v…) Vì vậy việc bảo vệ thông tin khỏi các mối đe dọa là hết sức cần thiết Đảm bảo thông tin luôn được sử dụng một cách kịp thời và đáng tin cậy, đảm bảo được các quyền riêng tư và bản quyền đối với thông tin
Hệ thống thông tin: là tập hợp các thiết bị viễn thông, công nghệ thông tin bao
gồm phần cứng, phần mềm và cơ sở dữ liệu phục vụ cho hoạt động lưu trữ, xử lý, truyền đưa, chia sẻ, trao đổi, cung cấp và sử dụng thông tin [6, tr.4]
An toàn thông tin: là sự bảo vệ thông tin và các hệ thống thông tin tránh bị truy
cập sử dụng, tiết lộ, gián đoạn, sửa đổi hoặc phá hoại trái phép nhằm bảo đảm tính nguyên vẹn, tính bảo mật và tính khả dụng của thông tin [6, tr.4]
An toàn thông tin bao gồm các hoạt động quản lý, nghiệp vụ và kỹ thuật đối với
hệ thống thông tin nhằm bảo vệ, khôi phục các hệ thống, các dịch vụ và nội dung thông tin đối với nguy cơ tự nhiên hoặc do con người gây ra Việc bảo vệ thông tin, tài sản và con người trong hệ thống thông tin nhằm bảo đảm cho các hệ thống thực hiện đúng chức năng, phục vụ đúng đối tượng một cách sẵn sàng, chính xác và tin cậy An toàn thông tin bao hàm các nội dung bảo vệ và bảo mật thông tin, an toàn dữ liệu, an toàn máy tính
và an toàn mạng [8, tr.2]
An ninh thông tin: là việc bảo đảm thông tin trên mạng không gây phương hại
đến an ninh quốc gia, trật tự an toàn xã hội, bí mật nhà nước, quyền và lợi ích hợp pháp của tổ chức, cá nhân [6, tr.4]
Một thông tin cần được bảo vệ đảm bảo an toàn an ninh thông tin luôn đi kèm ba yếu tố sau: Tính toàn vẹn, tính khả dụng và tính bảo mật
- Tính toàn vẹn “Integrity”: là đảm bảo thông tin không bị sửa đổi, hủy bỏ khi không được phép Nếu thông tin bị thay đổi thì bên nhận phải phát hiện ra
- Tính khả dụng “Availability”: cho phép thông tin được sử dụng một cách kịp thời
và đáng tin cậy
Trang 11sẽ không thể tiếp cận và khai thác thông tin Đảm bảo được tính toàn vẹn, tính khả dụng
và tính bảo mật của thông tin
1.2 Tình hình an toàn thông tin trên thế giới và Việt Nam
Với tốc độ phát triển và ứng dụng của Công nghệ thông tin và Truyền thông (CNTT&TT) ngày càng nhanh như hiện nay, hàng ngày có một lượng thông tin lớn được tạo ra, lưu trữ, chuyển tải và xử lý chủ yếu qua không gian mạng cũng kéo theo nhiều rủi ro về sự mất an toàn thông tin Đồng nghĩa với việc thiệt hại do mất an ninh an toàn thông tin cũng sẽ tăng rất nhanh Mất an toàn thông tin đã, đang ảnh hưởng nghiêm trọng đến sự ổn định chính trị, phát triển kinh tế - xã hội của nhiều quốc gia và sẽ còn tiếp tục gây ra nhiều ảnh hưởng trong tương lai Nếu công tác đảm bảo an toàn an ninh không được triển khai đúng mức thì thiệt hại của nó gây ra đối với mỗi quốc gia, mỗi doanh nghiệp là không thể lường trước
Các chuyên gia an ninh mạng đã đoán trước rằng trong kỷ nguyên Internet, vấn đề khủng khiếp nhất sẽ là an toàn an ninh thông tin và chiến tranh thông tin sẽ trở thành chiến tranh mạng, dự đoán này bây giờ đang trở thành hiện thực Khi mà những năm gần đây, các trang web trên Internet, cũng như các dữ liệu của các doanh nghiệp, tổ chức, chính phủ, v.v đã bị nhiều đợt tấn công Đã có nhiều trang web, nhiều hệ thống mạng bị ngưng hoạt động trong nhiều giờ, nhiều dữ liệu quan trọng đã bị đánh cắp Những vụ tấn công đã gây ra thiệt hại nghiêm trọng và tác động tiêu cực, ảnh hưởng trực tiếp đến đời sống nhiều cá nhân, công việc kinh doanh của các doanh nghiệp, ảnh hưởng đến nền anh ninh quốc phòng của nhiều quốc gia
Trên thế giới: Trong những năm gần đây lĩnh vực an toàn thông tin ngày càng
được các quốc gia trên toàn thế giới quan tâm Hoạt động tấn công mạng ngày càng gia tăng, các mục tiêu tấn công mạng ngày càng nhiều, đa dạng hơn và tinh vi hơn Từ tấn công vì mục đích chính trị, trục lợi về kinh tế, để thể hiện khả năng v.v thậm chí nhiều cuộc tấn công tấn công mạng đã trở thành chiến tranh mạng giữa các quốc gia Mức độ phá hoại và thiệt hại do các cuộc tấn công mạng ngày càng lớn, không chỉ thiệt hại về kinh tế mà nó còn ảnh hưởng đến cả chính trị và ngoại giao của các nước Nhiều cường quốc đang tham gia vào một cuộc “chạy đua vũ trang” trên mạng, dẫn đầu là Trung Quốc, Mỹ và Nga, tăng cường khả năng tấn công qua mạng internet, trong khi nhiều vụ tấn công mạng của các quốc gia có chiều hướng phát triển thành xung đột chính trị
Trang 123
Năm 2012, một số cuộc tấn công nhắm vào các website ngân hàng trực tuyến của
Mỹ (như Bank of America, Citigroup, Wells Fargo, U.S Bancorp.v.v), khiến cho các website của các ngân hàng này ngừng trệ hoặc dừng hẳn Các cuộc tấn công này tới từ các trung tâm dữ liệu trên thế giới Nhiều dịch vụ lưu trữ đám mây và dịch vụ cho thuê chỗ đặt web khác nhau đã bị lây nhiễm bởi một dạng phần mềm độc hại đặc biệt phức tạp, gọi là Itsoknoproblembro, đã được thiết kế để tránh bị các chương trình chống vi rút dò tìm ra Chúng có khả năng gây lây nhiễm cho các máy chủ tại các trung tâm dữ liệu, các nhà cung cấp dịch vụ lưu trữ đám mây Bằng việc gây lây nhiễm cho các trung tâm dữ liệu thay vì các máy tính đơn lẻ, những kẻ tấn công đã giành lấy sức mạnh tính toán để dựng lên các cuộc tấn công từ chối dịch vụ Các máy chủ bị lây nhiễm với Itsoknoproblembro được gọi là các bRobots
Tháng 3 năm 2013, một cuộc tấn công mạng nhằm vào máy tính của một số cơ quan truyền thông và ngân hàng Hàn Quốc đã khiến cho hệ thống của họ bị tê liệt Hệ thống của hai ngân hàng Hàn Quốc là Shinhan và Nonghyup, cùng với ba đài truyền hình KBS, MBS và YTN đã gặp nhiều sự cố Máy tính của các nhân viên ba hãng truyền thông nói trên đã không thể khởi động lại được, trên màn hình chỉ có báo lỗi Một số dịch vụ của ngân hàng Shinhan, trong đó có dịch vụ thanh toán trên internet và rút tiền
tự động (ATM), Cũng bị ảnh hưởng Trong vụ tấn công này tin tặc đã sử dụng một địa chỉ IP ở Trung Quốc để liên lạc với máy chủ của các công ty trên và gài mã độc vào các máy đó
Tháng 7 năm 2013, vụ tấn công mạng nhằm vào Spamhaus, một tổ chức phi lợi nhuận có trụ sở tại Geneva và London Tổ chức Spanhaus là một tổ chức chịu trách nhiệm duy trì danh sách đen các máy chủ gửi thư rác trên toàn cầu đã phải chịu cuộc tấn công từ chối dịch vụ dưới hình thức DDoS với lưu lượng lớn Có thời điểm, lưu lượng đạt đỉnh khoản 300Gbps Cuộc tấn công này đã làm hệ thống Internet trên toàn cầu bị chậm đi, đây được cho là vụ tấn công Internet lớn nhất trong lịch sử Cuộc điều tra, xác minh của cơ quan chủ quản đã xác định hệ thống máy chủ DNS của Spamhaus đã hứng chịu một lượng khổng lồ các đợt tấn công từ những mạng máy tính ma từ các tổ chức tin tặc châu Âu Trong khi đó, tại thời điểm này tổng lưu lượng Internet của Việt Nam chỉ khoảng 361Gbps Nếu như hệ thống máy tính của nước ta bị tấn công với lưu lượng như máy chủ DNS của Spamhaus phải hứng chịu, thì mạng lưới Internet của nước ta sẽ nhanh chóng bị cô lập với thế giới
Năm 2014, hãng Sony Pictures đã hứng chịu các cuộc tấn công vào hệ thống rất khốc liệt, khiến cho các nhân viên của hãng phải chuyển sang sử dụng bút và giấy Những kẻ tấn công đã lấy được hơn 100TB dữ liệu khác nhau, từ mật khẩu của nhân viên và thông tin chi tiết thẻ tín dụng tới lịch sử y tế và các chi tiết về tiền lương điều hành Không chỉ vậy, các tin tặc đã tung ra 5 bộ phim mới nhất của Sony Picture tại thời điểm đó là Annie, Fury, Still Alice, Mr Turner và To write love on her arms Bốn trong
số những bộ phim này chưa được công chiếu trên màn ảnh rộng Sự việc này có thể đã gây thiệt hại đối với Sony Picture khoảng 100 triệu đô la Mỹ, là ảnh hưởng đến mảng
Trang 134
tài chính của Sony Pictures Ngoài ra, còn thiệt hại bởi nhiều nguy cơ khác như rò rỉ bí quyết kinh doanh, bí mật công ty khó có thể ước lượng được
Ở Việt Nam: Năm 2012, theo một khảo sát của hãng Microsoft cho thấy có khoảng
2.500 website của Việt Nam bị tấn công Không chỉ các website của doanh nghiệp, Chính phủ, mà cả những website của các công ty bảo mật hàng đầu của Việt Nam cũng
bị tấn công Cứ 100 website có tên miền gov.vn cho thấy có tới 78% số website này có thể bị tấn công toàn diện đó là kết quả của một đánh giá ngẫu nhiên của Hiệp hội an toàn thông tin Việt Nam (VNISA) trong tháng 5 năm 2012
Cuối tháng 6 đầu tháng 7 năm 2013, vụ tấn công từ chối dịch vụ vào các báo điện
tử Tuổi trẻ, Dân trí, v.v đã khiến cho việc truy cập của độc giả vào các website của các báo này rất chậm, thậm chí không thể truy cập được Trong vụ tấn công này tin tặc đã huy động nhiều máy chủ tại nhiều nước khác nhau để tấn công vào các trang báo mạng Việt Nam Tin tặc đã liên tục chuyển hướng từ Đức, Hà Lan đến Ukraina để thực hiện các đợt tấn công vào các báo này Điều này đã gây rất nhiều khó khăn trong việc xác định chính xác nguồn gốc tấn công Cuộc tấn công chỉ tạm dừng khi Trung tâm ứng cứu khẩn cấp máy tính Việt Nam (VNCERT) nhờ sự giúp đỡ của cơ quan quản lý các nước
có các máy chủ thực hiện các cuộc tấn công này và các nước này đã chặn máy chủ điều khiển tấn công giúp cho cuộc tấn công tạm dừng Trong hai năm 2012 – 2013, từ ghi nhận của VNCERT cho thấy: mạng botnet Zeus có 14.075 địa chỉ IP tại Việt Nam; mạng botnet Sality, Downadup, Trafficconverter có 113.273 địa chỉ IP tại Việt Nam Các mạng botnet phục vụ tấn công DDoS đã hoạt động rất mạnh mẽ và càng trở nên nguy hiểm khó kiểm soát
Năm 2014, ước tính số tiền thiệt hại mà người dùng Việt Nam tổn thất do các sự
cố từ vi rút máy tính là 8.500 tỷ đồng Mặc dù chỉ chiếm chưa đầy 0,1% tổng thiệt hại
445 tỷ USD trên thế giới do tội phạm mạng gây ra theo ước tính của Trung tâm Nghiên cứu Chiến lược và Quốc tế (CSIS) Hoa Kỳ, thì đây vẫn là thiệt hại rất lớn đối với người dùng Việt Nam Còn theo báo cáo của Cục An toàn thông tin (Bộ TT & TT), Việt Nam luôn nằm trong danh sách 5 nước có nguy cơ lây nhiễm phần mềm độc hại cao nhất thế giới Chỉ số nguy cơ lây nhiễm phần mềm độc hại của Việt Nam năm 2014 khá cao, vào khoảng từ 50% đến 70% Điều này đồng nghĩa với nguy cơ bị đánh cắp, lộ lọt thông tin, phá hủy dữ liệu, nguy cơ bị điều khiển để tham gia các mạng botnet thực hiện tấn công
từ chối dịch vụ, gửi thư rác v.v cũng tăng cao
Năm 2014, VNCERT đã ghi nhận 19.789 sự cố về An toàn thông tin gồm các loại
sự cố tấn công lừa đảo, tấn công thay đổi giao diện và tấn công cài mã độc lên website v.v Trên 3,37 triệu lượt địa chỉ IP của Việt Nam nằm trong mạng botnet Hơn 4.000 cuộc tấn công mạng xâm phạn An toàn thông tin đối với các hệ thống có tên miền vn, trong số đó có hơn 200 cuộc tấn công vào các hệ thống có tên miền gov.vn Theo báo cáo của Sở Truyền thông – Thông tin TP.HCM, năm 2014, thành phố đã xảy ra hơn 870.000 vụ dò quyét và hơn 275.000 vụ tấn công vào hệ thống mạng, hơn 2,5 triệu hành
vi tấn công ở mức độ cao nhằm vào cổng thông tin của thành phố, hơn 650.000 mã độc
đã được phát hiện Nổi bật trong các vụ tấn công mạng của năm là vào tháng 10, xảy ra
Trang 145
vụ tấn công vào trung tâm dữ liệu của Công ty cổ phần truyền thông Việt Nam (VCCorp) khiến toàn bộ sản phẩm của VCCorp và các cổng/trang TTĐT như: Dân Trí, Người Lao Động, Gia Đình & Xã Hội, VnEconomy v.v không thể truy cập trong nhiều ngày Hệ thống của VCCorp đã bị cài một loại mã độc, mã độc này lây truyền và tác động đến nhiều thuộc tính của hệ thống dữ liệu của VCCorp Sau khi được cài vào hệ thống nó hoạt động giống như một trung tâm chỉ huy có thể nhận diện, sao chép các dữ liệu và phá hủy dữ liệu trên hệ thống máy tính Cuộc tấn công này đã gây thiệt hại hàng chục
tỷ đồng cho công ty VCCorp và các khách hàng
Tấn công mạng nói chung và tấn công vào các cổng/trang TTĐT nói riêng ngày càng trở lên nghiêm trọng Vì vậy trong luận văn này tôi tập trung vào việc nghiên cứu các giải pháp đảm bảo an ninh an toàn cho các cổng/trang TTĐT Để đảm bảo các cổng/trang TTĐT hoạt động ổn định, bảo đảm an ninh an toàn thông tin là việc làm rất cần thiết Giải quyết vấn đề an ninh an toàn của các cổng/trang TTĐT là việc làm của
Khả năng cá nhân hoá (Personalization): cho phép thiết đặt các thông tin khác nhau
cho các loại đối tượng sử dụng khác nhau theo yêu cầu Tính năng này dựa trên hoạt động thu thập thông tin về người dùng và cộng đồng người dùng, từ đó cung cấp các thông tin chính xác tại thời điểm được yêu cầu
Để đánh giá tính năng này, phải kiểm tra cách thức hệ thống cung cấp thông tin cho nhiều người dùng khác nhau hoặc nhiều cấp độ người dùng khác nhau Tại đây có thể có nhiều kết quả khác nhau, như:
Nếu với hai người dùng khác nhau hoặc với hai cấp độ quyền sử dụng khác nhau
mà thông tin hiển thị vẫn giống nhau, thì có thể kết luận rằng hệ thống này không cho phép cá nhân hóa thông tin, và có thể đi đến kết luận cuối cùng là đó không phải là hệ thống cổng TTĐT
Trang 156
Nếu với hai cấp độ quyền khác nhau, thông tin được sử dụng có sự khác nhau thì
có thể đi đến kết luận hệ thống này cho phép cá nhân hóa thông tin theo thẩm quyền sử dụng
Tích hợp nhiều loại thông tin (Content aggregation): cho phép xây dựng nội dung
thông tin từ nhiều nguồn khác nhau cho nhiều đối tượng sử dụng Sự khác biệt giữa các nội dung thông tin sẽ được xác định qua các ngữ cảnh hoạt động của người dùng, ví dụ như đối với từng đối tượng sử dụng sau khi thông qua quá trình xác thực thì sẽ được cung cấp các thông tin khác nhau, hoặc nội dung thông tin sẽ được cung cấp khác nhau trong quá trình cá nhân hoá thông tin
Đây là một đặc tính quan trọng bậc nhất của cổng TTĐT, đặc tính này thể hiện cổng TTĐT có thể mở rộng được hay không Đặc tính này thể hiện qua thuật ngữ “ghép
là chạy”, có nghĩa là khi cần mở rộng thêm thành phần dịch vụ mới, thì chỉ cần điều chỉnh và tích hợp lại thông tin của thành phần dịch vụ đó một cách đơn giản, nhanh chóng và tức thì đối với hệ thống mà không phải biên dịch lại hoặc viết lại mã chương trình
Để kiểm tra tính năng này, cần xem cách thức hệ thống tích hợp thông tin từ nhiều thành phần dịch vụ khác nhau của hệ thống Ví dụ khi cần tích hợp thành phần diễn đàn thảo luận vào hệ thống Tại đây có thể có nhiều kết quả khác nhau, như:
Nếu khi bổ sung ứng dụng, dịch vụ vào cổng TTĐT mà phải sửa mã nguồn, thêm các truy cập cơ sở dữ liệu mới, thêm hệ thống phân quyền mới, v.v… thì hệ thống đó không gọi là có tính mở, vậy kết luận hệ thống không có khả năng tích hợp ứng dụng theo kiểu “ghép là chạy”, và có thể kết luận hệ thống đó không phải là giải pháp cổng TTĐT
Nếu hệ thống cho phép “ghép” các ứng dụng lại với nhau, nhưng không thể thay đổi nguồn hoặc kênh thông tin của ứng dụng thì đó là hệ thống giả cổng TTĐT
Nếu hệ thống có thể tích hợp thêm ứng dụng dịch vụ, loại bỏ ứng dụng dịch vụ cũ thì hệ thống đó có tính năng mở, có thể tích hợp được ứng dụng và có thể là giải pháp cổng TTĐT
Xuất bản thông tin theo tiêu chuẩn (Content syndication): thu thập thông tin từ nhiều
nguồn khác nhau, cung cấp cho người dùng thông qua các phương pháp hoặc giao thức một cách thích hợp Xuất bản thông tin cho người dùng cuối qua các tiêu chuẩn đã được công bố và thừa nhận trên toàn thế giới Với các dữ liệu được xuất bản theo tiêu chuẩn này, người dùng cuối có thể khai thác, sử dụng mà không cần thông qua giao diện tương tác của hệ thống mà sử dụng một số phần mềm của hãng thứ ba
Hiện nay có nhiều tiêu chuẩn xuất bản thông tin, nhưng tất cả các chuẩn xuất bản thông tin được ủng hộ và sử dụng nhiều nhất trên thế giới đều lấy cơ sở ngôn ngữ đánh dấu mở rộng XML làm nền tảng, như: RDF, RSS, NITF và ATOM Các tiêu chuẩn dựa trên XML này cho phép đưa ra giải pháp nhanh nhất để khai thác và sử dụng thông tin
Trang 16Nếu hệ thông có thể xuất bản tài liệu ra chuẩn RSS, nhưng cần phải sửa mã chương trình thì hệ thống này có khả năng xuất bản thông tin theo chuẩn nhưng không phải là cổng TTĐT
Nếu hệ thống cho phép xuất bản thành RSS, chứa đầy đủ nội dung thông tin thì hệ thống có khả năng đầy đủ để xuất thông tin theo chuẩn công nghiệp
Hỗ trợ nhiều môi trường hiển thị thông tin (Multidevice support): cho phép hiển thị
cùng một nội dung thông tin trên nhiều loại thiết bị khác nhau như: màn hình máy tính, thiết bị di động, sử dụng để in hay cho bản fax, v.v một cách tự động bằng cách xác định thiết bị hiển thị thông qua các thuộc tính khác nhau
Tính năng này chỉ là phụ nhưng khá quan trọng với xu thế hiện tại, bởi hiện nay người sử dụng có thể dùng nhiều loại thiết bị khác nhau để truy cập hệ thống như: máy tính để bản, máy tính bảng, điện thoại thông minh, v.v Muốn kiểm tra tính năng này, có thể truy cập vào cổng TTĐT bằng nhiều thiết bị khác nhau và xem cách thức hiển thị trên các thiết bị Nếu hệ thống hiển thị tốt, tương thích với các loại thiết bị khác nhau thì
hệ thống đó hỗ trợ nhiều môi trường hiển thị thông tin
Khả năng xác thực một lần (Single Sign On - SSO): cho phép dịch vụ xuất bản thông
tin hoặc các dịch vụ khác của cổng TTĐT lấy thông tin về người dùng khi hoạt động mà không cần yêu cầu người dùng phải đăng nhập lại mỗi khi có yêu cầu Đây là một tính năng rất quan trọng vì các ứng dụng và dịch vụ trong cổng TTĐT sẽ phát triển một cách nhanh chóng khi xuất hiện nhu cầu, trong đó có các ứng dụng và dịch vụ sẽ có các yêu cầu về xác thực hoặc truy xuất thông tin người dùng
Khi hệ thống cung cấp tính năng này, người sử dụng chỉ cần đăng nhập một lần khi vào hệ thống, mỗi khi vào các thành phần khác trong hệ thống (có yêu cầu xác thực) thì không cần phải đăng nhập lại, và khi đó các thành phần của hệ thống tự nhận biết được đó là người sử dụng nào, thẩm quyền đến đâu
Có thể kiểm tra tính năng này bằng cách đăng nhập hệ thống, sau đó sử dụng ít nhất ba thành phần nghiệp vụ (ví dụ: quản trị nội dung, diễn đàn, chia sẻ tài liệu) Khi
đó có thể có nhiều kết quả khác nhau, như:
Nếu mỗi khi dịch chuyển sang các thành phần nghiệp vụ mới, người dùng phải đăng nhập lại thì hệ thống không hỗ trợ khả năng đăng nhập một lần và đây không phải
là giải pháp cổng TTĐT
Nếu khi dịch chuyển giữa các thành phần nghiệp vụ vẫn xác định được người dùng, bạn hãy đăng xuất và quay về sử dụng một thành phần nghiệp vụ khác, nếu thấy hệ
Trang 17Đồng thời, hãy thử kết nối với hệ thống quản trị người dùng chuyên nghiệp với tiêu chuẩn LDAP để xác thực người dùng Nếu thực hiện được thì khả năng đăng nhập một lần rất tốt, ngược lại không thể thực hiện thì khả năng đăng nhập một lần chưa toàn vẹn
Quản trị cổng TTĐT (Portal administration): tính năng này xác định cách thức hiển
thị thông tin cho người dùng cuối với nhiều cách thức và nguồn khác nhau Với tính năng này, người quản trị phải định nghĩa được các thành phần thông tin, các kênh tương tác với người sử dụng cuối, định nghĩa nhóm người dùng cùng với các quyền truy cập
và sử dụng thông tin khác nhau
Chúng ta có thể điều chỉnh các màn hình hiển thị thông tin, tạo lập các nguồn thông tin khác nhau với quyền sử dụng thông tin để kiểm tra Có thể có nhiều kết quả khác nhau, như:
Nếu phải sửa mã nguồn của hệ thống mới điều chỉnh hoặc bổ sung được các nguồn thông tin hay màn hình hiển thị thì hệ thống đó không phải là giải pháp cổng TTĐT Nếu hệ thống cho phép điều chỉnh được, chúng ta có thể thay đổi vị trí hiển thị của các khối thông tin, thay đổi các nội dung sẽ hiển thị trong một vài khối thông tin, nếu khi đó phải sửa mã nguồn chương trình thì hệ thống này không có khả năng và đó không phải là giải pháp cổng TTĐT Nếu được thì hệ thống đó có khả năng cho phép quản trị thay đổi thông tin, nguồn thông tin, v.v khi cần
Quản trị người dùng (Portal user management): tính năng này cung cấp các khả năng
quản trị người dùng cuối, tuỳ thuộc vào đối tượng sử dụng của hệ thống Tại đây, người dùng có thể đăng ký trở thành thành viên hoặc được người quản trị tạo lập và gán quyền
sử dụng tương ứng Đồng thời, hệ thống phải hỗ trợ và tích hợp công việc quản trị và xác thực người dùng bằng tiêu chuẩn công nghiệp LDAP Mặt khác, phân quyền sử dụng phải mềm dẻo và có thể thay đổi được khi cần
Tóm lại, nếu hệ thống chỉ thỏa mãn từ năm tính năng nêu trên trở xuống thì đó là ứng dụng web hoặc phần mềm quản trị nội dung chứ không phải là giải pháp cổng TTĐT Nếu thỏa mãn sáu tính năng ngoại trừ tính năng “hỗ trợ nhiều môi trường hiển thị thông tin” thì đó thực sự là giải pháp cổng TTĐT nhưng sử dụng tối ưu trên máy tính Nếu thỏa mãn tất cả bẩy tính năng trên, thì đó thực sự là giải pháp cổng TTĐT và
có khả năng hoạt động trên nhiều môi trường thiết bị khác nhau
1.4 Các lỗi bảo mật phổ biến của ứng dụng web và cách phòng chống
Trang 189
Đối với các doanh nghiệp, các cơ quan, tổ chức cổng/trang TTĐT là kênh cung cấp thông tin hiệu quả và nhanh chóng nhất Không chỉ dừng lại ở việc cung cấp thông tin, các cổng/trang TTĐT còn là kênh quảng bá, giao dịch thương mại và mua bán rất phổ biến hiện nay Cũng chính đặc điểm này, các cổng/trang TTĐT thường xuyên là mục tiêu tấn công của những kẻ xấu hay tin tặc để khai thác đánh cắp các thông tin liên quan bên trong Phương thức tấn công phổ biến là khai thác các lỗi bảo mật trên các cổng/trang TTĐT nói riêng và các ứng dụng web nói chung Tin tặc có thể sử dụng nhiều biện pháp khác nhau để dò tìm và khai thác các lỗi bảo mật của ứng dụng web để thực hiện các cuộc tấn công
Trong cổng/trang TTĐT thường có các thành phần cho người dùng nhập dữ liệu vào như mục đăng nhập, tìm kiếm, bình luận, liên kết đến bài viết, v.v Ngoài việc giúp cho người dùng dễ dàng tương tác với cổng/trang TTĐT, các mục này nếu không được kiểm soát chặt chẽ sẽ trở thành một nguy cơ lớn để tin tặc thực hiện các cuộc tấn công Bởi vậy, trước khi đưa cổng/trang TTĐT vào hoạt động chính thức cần sử dụng các công
cụ phần mềm để tìm và kiểm tra tất cả các lỗ hổng có thể bị kẻ xấu khai thác Từ đó tìm cách khắc phục những lỗ hổng trên cổng/trang TTĐT của mình để đảm bảo an ninh an toàn Nhiều công cụ có thể tìm và phát hiện các loại lỗ hổng bảo mật từ những lỗi phổ biến, đến những lỗi ít gặp Có những công cụ không chỉ giúp dà soát lỗ hổng của mã nguồn cổng/trang TTĐT, mà còn tìm và phát hiện lỗ hổng bảo mật trong việc thiết lập cấu hình máy chủ
Ngoài ra có thể sử dụng biểu thức chính quy áp dụng cho tất cả các ngôn ngữ lập trình để thực hiện các công việc này Chẳng hạn như sử dụng biểu thức chính quy để lọc siêu ký tự, để quy định giá trị mật khẩu nhập vào (ví dụ mật khẩu phải 8 ký tự trở nên
và bao gồm chữ số, chữ hoa, chữ thường, ký tự đặc biệt, v.v.) Cũng có thể dùng biểu thức chính quy để lọc các tấn công
Sau khi đã xác định được các lỗi trên cổng/trang TTĐT của mình, cũng cần phân loại để đưa ra những giải pháp phòng chống thích hợp Việc phân loại các lỗi và các kiểu tấn công thành các nhóm khác nhau sẽ giúp người quản trị dễ dàng xác định các nguy cơ cũng như biện pháp đối phó Sau đây tôi xin trình bày một số lỗi phổ biến trên các cổng/trang TTĐT nói riêng và ứng dụng web nói chung, có thể bị khai thác để tấn công và cách phòng chống tấn công các lỗi này
Các lỗi Injection
Các lỗi Injection cho phép tin tặc thực hiện các kiểu tấn công như SQL Injection,
OS Injection, LDAP Injection Kiểu tấn công này xảy ra khi tin tặc gửi các dữ liệu gây hại đến ứng dụng web Những dữ liệu này có tác dụng như các câu lệnh với hệ điều hành hoặc các câu truy vấn với cơ sở dữ liệu, có thể lừa hệ thống biên dịch đi vào thực hiện những mã lệnh độc hại hoặc giúp kẻ tấn công truy cập đến những dữ liệu quan trọng một cách trái phép Một trong những dạng phổ biến nhất của lỗi injection là lỗi
“SQLInjection” Lỗi này được thực thi bằng cách chèn các câu truy vấn SQL vào dữ liệu tương tác giữa máy khách và trình ứng dụng Đây là lỗ hổng trong việc kiểm tra dữ
Trang 19hệ điều hành máy chủ Để khai thác lỗ hổng này kẻ tấn công có thể sử dụng một số kỹ thuật sau: Sử dụng ký tự đặc biệt, dựa vào câu lệnh SQL (select, having, union, insert), tránh sự kiểm soát v.v
Ví dụ xét đoạn mã truy vấn SQL sau:
SELECT * FROM users WHERE Username=’$username’ AND Password=’$password’
Đây là câu lệnh truy vấn thường được dùng trong các ứng dụng nhằm xác thực người dùng Nếu câu truy vấn trả về một giá trị nói rằng thông tin về người dùng đang đăng nhập là đúng và được lưu trong cơ sở dữ liệu, thì người dùng được phép đăng nhập vào hệ thống, ngược lại thì không đăng nhập được Khi người dùng truy cập vào giao diện đăng nhập trên một ứng dụng web Thay vì nhập đúng tên đăng nhập và mật khẩu, thử nhập vào các ký tự đặc biệt (tên đăng nhập: 1’or’1’=’1 và mật khẩu: 1’or’1’=’1) khi
hệ thống bằng tài khoản đầu tiên trong bảng này
Cách phòng chống tấn công Injection: nên mã hóa các kí tự trên địa chỉ URL
trước khi được sử dụng, không hiển thị những thông điệp lỗi cho người dùng bằng cách thay thế những lỗi thông báo bằng một trang nội dung do người dùng phát triển thiết kế mỗi khi lỗi xảy ra trên ứng dụng, kiểm tra kỹ những dữ liệu người dùng nhập vào để chắc chắn rằng đó là những dữ liệu hợp lệ, loại bỏ những dữ liệu bất hợp lệ, chỉ chấp nhận những dữ liệu hợp lệ để thực hiện câu truy vấn SQL
- Giới hạn quyền truy cập cơ sở dữ liệu và phân quyền giữa các tài khoản người dùng, điều này giúp giảm khả năng khai thác cơ sở dữ liệu của tin tặc ngay cả khi đã thực hiện thành công lệnh Injection
Trang 2011
- Sử dụng thủ tục lưu trữ để đảm bảo các câu lệnh SQL từ ứng dụng được lưu trữ
và triển khai ở máy chủ cơ sở dữ liệu, điều này giúp cho dữ liệu do người dùng nhập vào không thể được tùy chỉnh dưới dạng một câu lệnh SQL Để làm được điều này, ứng dụng phải được định dạng để sử dụng những thủ tục lưu trữ với giao diện an toàn (ví dụ câu lệnh Callable của JDBC hay lệnh Object của ADO)
- Sử dụng biểu thức chính quy để phát hiện tấn công SQL Injection:
Đối với siêu ký tự:
(((\%3D) | (=) | ((|%3C) | (\<)) | ((\%3D) | (\>))) [^\\n]*((\%27) | (\’) | (\-\-) | (\%3B)
| (;))
Đối với tấn công sử dụng từ khóa UNION:((\%27) | (\’)) (\W)*union
Đối với với tấn công vào máy chủ Microsoft SQL: exec(\s|\+) + (s|x)p\w+
Sử dụng biểu thức chính quy để lọc tấn công LDAP Injection: (\) | \ (|\ || &)
- Sử dụng tường lửa ứng dụng web ModSecurity để lọc một số dữ liệu tấn công SQL Injection
Các lỗi Cross-Site-Scripting (XSS)
Các lỗi Cross-Site-Scripting (XSS) xảy ra khi một ứng dụng web bị lợi dụng để gửi những dữ liệu độc hại đến trình duyệt của người sử dụng Những lỗ hổng này rất phổ biến và xảy ra trong bất cứ phần nào của ứng dụng web có sử dụng dữ liệu từ người dùng mà không kiểm tra tính hợp lệ Tin tặc tấn công bằng cách chèn vào các ứng dụng web động những thẻ HTML hay những mã Script nguy hiểm có thể gây hại cho những người sử dụng Trong đó, những đoạn mã nguy hiểm đựơc chèn vào hầu hết được viết bằng các Client-Site Script như JavaScript, JScript, DHTML và cũng có thể là cả các thẻ HTML Khi một người sử dụng kích vào các liên kết, các tập tin flash trên các ứng dụng web hay được gửi bởi tin tặc thì những đoạn mã độc sẽ được thực thi trên chính trình duyệt của người dùng Hậu quả của tấn công dạng XSS có thể rất nguy hiểm, người dùng có thể bị chiếm quyền điều khiển phiên làm việc của mình, bị lộ các thông tin (cookie, tên đăng nhập, mật khẩu,v.v.), lộ các tập tin của cá nhân Tin tặc có thể thực thi những hành vi gây hại khác như, mạo danh người dùng, cài đặt các mã độc trên máy người dùng, thay đổi nội dung trên các trang web hoặc chuyển hướng người dùng đến các trang web chứa mã độc hại khác, v.v Ví dụ: sử dụng XSS chèn mã java script trực tiếp trên URL
http://www.demo.txd.vn/search.cgi?query=<script>alert(‘XSS was found !’);</script> Khi website http://www.demo.txd.vn bị lỗi XSS trình duyệt sẽ hiện lên một thông báo
“XSS was found !”
Cách phòng chống tấn công XSS: là chỉ cho phép những dữ liệu hợp lệ, từ chối
nhận các dữ liệu sai, thường xuyên kiểm tra và lọc dữ liệu đầu vào
- Lọc tất cả các dữ liệu chưa tin tưởng một cách phù hợp dựa trên nội dung HTML
- Tạo một danh sách trắng để kiểm tra dữ liệu đầu vào một cách phù hợp
Trang 21Các lỗi quản lý xác thực và quản lý phiên làm việc
Các lỗi liên quan đến quá trình quản lý xác thực và quản lý phiên làm việc: bao gồm tất cả các yếu tố quản lý xác thực người dùng và các phiên truy cập Xác thực người dùng là một yếu tố quan trọng trong quy trình này, nhưng ngay cả những cơ chế xác thực mạnh nhất vẫn có thể bị mắc những lỗi liên quan đến các chức năng quản lý xác thực, bao gồm thay đổi mật khẩu, quên mật khẩu, lưu nhớ mật khẩu ở trình duyệt, cập nhật tài khoản và những chức năng khác Xác thực người dùng trên ứng dụng web thường sử dụng tên đăng nhập và mật khẩu Những phương pháp xác thực mạnh hơn bao gồm các giải pháp phần cứng hoặc phần mềm dựa trên các token key hoặc dùng phương pháp sinh trắc học (nhận dạng vân tay, v.v.) Tuy nhiên những phương pháp này
có phần hạn chế do giá thành cao Một số lượng lớn lỗi trong các hàm quản lý tài khoản
có thể dẫn đến mối nguy cơ lộ tài khoản người dùng và thậm chí là tài khoản của người quản trị Các ứng dụng web thường phải theo dõi và duy trì phiên truy cập của người dùng nhằm phân biệt các truy cập từ người dùng khác nhau Giao thức HTTP không cung cấp khả năng này và do đó ứng dụng web phải tự tạo cơ chế này Thường thì, môi trường phát triển ứng dụng cung cấp cơ chế quản lý phiên truy cập (thường là dưới hình thức cookie token), tuy nhiên đa số các nhà lập trình nghiêng về phát triển cơ chế riêng của họ Trong cả hai trường hợp, nếu token quản lý phiên truy cập không được bảo vệ, tin tặc có thể ăn cắp token truy cập tài khoản người khác Ví dụ: Tin tặc có thể đánh cắp phiên làm việc của người dùng bằng cách gửi một liên kết yêu cầu người dùng đăng nhập vào một cổng/trang TTĐT với một phiên làm việc đã được ấn định sẵn trên URL Đầu tiên tin tặc vào đăng nhập của cổng/trang TTĐT để lấy được mã phiên làm việc ví dụ:
http://demo.txd.vn/login.php?sessionid=1234, sau khi đã có mã phiên làm việc tin tặc
sẽ gửi liên kết này tới người dùng để lừa người dùng làm việc trong phiên của tin tặc Khi người dùng mở liên kết này để đăng nhập vào cổng/trang TTĐT, do đã có phiên làm việc nên trình chủ sẽ không tạo phiên làm việc mới Người dùng tiếp tục đăng nhập với thông tin của mình để vào cổng/trang TTĐT Lúc này tin tặc sẽ vào tài khoản của người dùng mà không cần phải đăng nhập vì có cùng phiên làm việc
Cách phòng chống tấn công: Để bảo vệ phiên làm việc của người dùng bảo vệ
dữ liệu, thông tin của người dùng Người phát triển ứng dụng web cần phải thực hiện một số điều cơ bản sau: sử dụng SSL (để mã hóa liên kết giữa máy chủ web và trình duyệt) trong quá trình chứng thực để chống lại việc nghe lén dữ liệu quan trọng, sử dụng
cơ chế tạo mã phiên làm việc ngẫu nhiên với thuật toán mã hóa mạnh, mã phiên làm việc phải đủ lớn để ngăn chặn tấn công Brute-force, giới hạn thời gian tồn tại phiên làm việc, tạo ra danh sách những thẻ html được phép sử dụng, xóa bỏ thẻ <script>, lọc ra bất
kỳ một đoạn mã (JavaScript, java, vbscript, activex, flash related), lọc dấu nháy đơn hay
Trang 22Các lỗi đối tượng tham chiếu không an toàn
Các lỗi đối tượng tham chiếu không an toàn (Insecure Direct Object References): xảy ra khi người phát triển ứng dụng web để lộ một tham chiếu đến những đối tượng trong hệ thống như các tập tin, thư mục hay chìa khóa dữ liệu Nếu chúng ta không có một hệ thống kiểm tra truy cập, kẻ xấu có thể lợi dụng những tham chiếu này để truy cập dữ liệu một cách trái phép Việc phân quyền yếu cho phép người dùng có thể truy cập dữ liệu của người khác Trong trường hợp tấn công tin, tặc có thể xác định được cấu trúc truy vấn gửi đến máy chủ và có thể nhanh chóng thu thập được dữ liệu như thẻ tín dụng, mã khách hàng, thông tin cá nhân của khách hàng Nguyên nhân là do các ứng dụng web thường xuyên sử dụng tham chiếu trực tiếp tên hoặc khóa của một đối tượng khi xây dựng các ứng dụng web và không kiểm tra kỹ người dùng thật sự có quyền truy cập hay không Đây chính là mấu chốt dẫn đến các lỗi đối tượng tham chiếu không an toàn
Cách phòng chống tấn công: Để phòng chống lỗi này trước tiên là phải kiểm tra
tất các đối tượng tham chiếu xem có được bảo vệ hợp lý hay không
- Đối với các liên kết trực tiếp tới các dữ liệu cần bảo vệ, ứng dụng cần kiểm tra xem người dùng đang yêu cầu có được cho phép quyền truy cập đến dữ liệu đó hay không
- Nếu liên kết là một tham chiếu gián tiếp, việc tham chiếu đến dữ liệu trực tiếp phải được giới hạn bởi những giá trị cho phép đối với người người dùng hiện tại
- Nếu một trong hai phương pháp trên không được thiết kế cẩn thận thì việc kiểm tra mã nguồn của ứng dụng có thể hiệu quả trong việc phát hiện những đối tượng tham chiếu không an toàn
- Sử dụng tham chiếu gián tiếp cho mỗi người dùng hoặc phiên làm việc việc này
có thể ngăn cản kẻ tấn công trực tiếp đến các dữ liệu không được bảo vệ Có thể sử dụng
bộ công cụ miễn phí ESAPI (The OWASP Enterprise Security API) của OWASP để ngăn chặn lỗi này ESAPI bao gồm cả bản đồ tham chiếu truy cập tuần tự và ngẫu nhiên giúp các nhà phát triển có thể sử dụng để loại bỏ các tham chiếu trực tiếp
- Kiểm tra truy cập, mỗi lần sử dụng một tham chiếu đối tượng trực tiếp từ một nguồn không tin cậy phải có một kiểm tra kiểm soát truy cập để đảm bảo người dùng
được ủy quyền cho các đối tượng được yêu cầu
Các lỗi cấu hình thiếu an toàn
Trang 2314
Các lỗi cấu hình thiếu an toàn: cấu hình máy chủ và các phần mềm hỗ trợ dịch vụ web là một yếu tố quan trọng trong vấn đề bảo mật của ứng dụng Máy chủ cung cấp nền tảng phục vụ cho việc cung cấp nội dung và các gói dịch mà ứng dụng web cần sử dụng, như dịch vụ lưu trữ, thư điện tử Những vấn đề về cấu hình của máy chủ có thể dẫn đến vấn đề bảo mật của ứng dụng Hiện nay nhiều ứng dụng web được lưu trữ trên các máy chủ đi thuê hoặc các máy chủ được chia sẻ, những người phát triển ứng dụng web thường không nắm được nhiều kiến thức về cấu hình máy chủ, lại thiếu sự liên kết với bên hỗ trợ triển khai ứng dụng web trên máy chủ Vì vậy, thiếu sự thống nhất và liên lạc về phương hướng bảo mật giữa hai nhóm Điều này dẫn đến những điểm yếu nghiêm trọng được tạo ra trên ứng dụng từ các lỗ hổng ở cả ứng dụng web và máy chủ Một số
lỗ hổng liên quan đến cấu hình máy chủ bao gồm:
- Các phần mềm và hệ điều hành trên máy chủ không được cập nhật với bản vá lỗi bảo mật mới nhất
- Những tập tin mặc định, tập tin tạo ra để thử nghiệm, tập tin cấu hình không được xóa đi trong thư mục của ứng dụng web Những tập tin này thường có độ bảo mật yếu
và có thể chứa những thông tin quan trọng
- Không phân đúng quyền cho các thư mục và tập tin trong ứng dụng web
- Cấu hình SSL và các hàm mã hóa không đúng
- Phần mềm trên máy chủ đăng quá nhiều thông tin trong trang báo lỗi
- Những chức năng quản lý được triển khai không cần thiết
Cách phòng chống tấn công: để phòng tránh các cuộc tấn công đòi hỏi phải xác
định rõ chính sách an ninh cho việc cấu hình trên các ứng dụng, máy chủ ứng dụng, máy chủ web, máy chủ cơ sở dữ liệu và cấu hình trên ứng dụng web Các chính sách này cần được thực hiện đầy đủ và được duy trì thường xuyên, vì theo mặc định rất nhiều thứ không được cấu hình một cách an toàn Thêm nữa, cũng cần cập nhật các phần mềm và các thư viện với bản vá lỗi bảo mật được sử dụng bởi ứng dụng
Các lỗi lưu trữ dữ liệu thiếu an toàn
Các lỗi lưu trữ dữ liệu thiếu an toàn (Sensitive Data Exposure): Các dữ liệu nhạy cảm được lưu trữ không an toàn ảnh hưởng đến hệ thống máy chủ cũng như khách hàng, chẳng hạ như thẻ tín dụng, mã số thuế và các thông tin xác thực Tin tặc có thể lợi dụng những kẽ hở này để đánh cắp hay sửa đổi những dữ liệu được bảo vệ kém, để gian lận thẻ tín dụng, trộm cắp thông tin cá nhân, hoặc thực hiện các hành vi phậm tội khác Các sai lầm phổ biến nhất gây ra lỗi này chỉ đơn giản là không mã hóa dữ liệu nhạy cảm mà lưu trữ những dữ liệu đó ở dạng văn bản thông thường, có thể là tạo khóa, sử dụng các thuật toán mã hóa yếu phổ biến, đặc biệt là các kỹ thuật băm mật mã yếu Cũng có khi
là do điểm yếu của trình duyệt, tin tặc có thể nghe lén trên kênh truyền HTTPS và giải
mã dữ liệu thông qua lỗ hổng
Cách phòng chống tấn công: điều đầu tiên phải xác định là những dữ liệu nào đủ
Trang 24mẽ, các khóa mạnh và quản lý khóa đúng chỗ, mật khẩu được lưu với một thuật toán mã hóa đặc biệt được thiết kế cho việc bảo vệ mật khẩu (như bcrypt, PBKDF2, hay scrypt),
tự động vô hiệu hóa các hình thức thu thập dữ liệu nhạy cảm và vô hiệu hóa bộ nhớ đệm cho các trang chứa dữ liệu nhạy cảm
Có thể sử dụng tường lửa ứng dụng web ModSecurity để loại bỏ truy vấn tìm thông tin thẻ tín dụng:
SecRule RESPONSE_BODY "@verifyCC \d{13,16}"
"phase:4,deny,t:removeWhitespace,log,msg:'Possible
credit card number leak detected'
Ở truy vấn này có biến @verifyCC sẽ bao gồm các biểu thức chính quy để kiểm soát dữ liệu truy cập có bao gồm các số thẻ tín dụng hay chủ tài khoản từ truy vấn bên ngoài hay không (13 hoặc 16 số)
Các lỗi Cross Site Request Forgery (CSRF)
CSRF (Cross Site Request Forgery): CSRF khai thác lỗi xử lý phiên làm việc của các trang web Tin tặc có thể lợi dụng người dùng để thực thi những hành động không mong muốn ngay trên phiên đăng nhập của họ Thông qua việc gửi người dùng một liên kết qua email hay chát, tin tặc có thể hướng người dùng thực thi một số hành động ngay trên trình duyệt của người dùng (như gửi bài viết, xóa bài viết v.v…) Một cuộc tấn công CSRF lừa nạn nhân gửi một yêu cầu HTTP giả mạo trên phiên đăng nhập của mình kèm theo những thông tin xác thực, mà ứng dụng nghĩ là các yêu cầu của nạn nhân Ví dụ:
An đăng nhập vào website của ngân hàng Vietcombank và chưa thoát ra Tam là một tin tặc sẽ gửi cho An một thông điệp dưới dạng HTML có dạng:
Vietcombank has jusst announce a new interest rate … <img height=”0” width=”0” src=”http://vietcombank.com.vn/transfer?fromAcc=An_acc&amount=10000000&cure
Trang 2516
ncy=VND&toAccTam=Tam_acc”/> trong đó An_acc và Tam_acc lần lượt là số tài khoản của An và Tam tại ngân hàng Đoạn mã trên được che giấu rất khéo léo Ngoài việc thông báo bình thường, khiến người đọc không nghi ngờ, thẻ chèn hình ảnh <img> được thiết lập kích thước 0 pixel x 0 pixel, nên không hiển thị trên trình duyệt web Khi
An chưa thoát, phiên làm việc của An vẫn đang còn hiệu lực, nếu tải thông điệp mà Tam gửi, trình duyệt của An sẽ gửi một yêu cầu HTTP đến địa chỉ:
“http://vietcombank.com.vn/transfer?fromAcc=An_acc&amount=10000000&curency
=VND&toAccTam=Tam_acc” Vì session của An chưa hết hiệu lực, nên server của Vietcombank sẽ xử lý và chuyển khoản 10000000 VND từ tài khoản của An sang tài khoản của Tam Ngoài thẻ <img>, còn một số thẻ HTML khác có thể sử dụng trong tấn công CSRF như <iframe>, <link>, <bground>, <background>, <background>, <script>
Cách phòng chống tấn công CSRF: trước tiên là cần kiểm tra xem ứng dụng web
của mình có bị lỗi này hay không Cách dễ nhất để kiểm tra xem ứng dụng có bị lỗi hay không là kiểm tra nếu mỗi đường liên kết hay giao diện người dùng chứa những giá trị không thể đoán được cho mỗi người sử dụng Nếu không có những giá trị như vậy, tin tặc có thể giả mạo bất cứ yêu cầu nào Tập trung vào liên kết và giao diện người dùng thực hiện những chức năng thay đổi trạng thái bởi vì những chức năng ấy thường là đối tượng tấn công của CSRF Nên kiểm tra những giao dịch có nhiều bước vì tin tặc có thể
dễ dàng giả mạo một dãy các yêu cầu sử dụng nhiều thẻ (tags) hoặc javascript Cần lưu
ý rằng cookie phiên làm việc, địa chỉ IP, những thông tin mà tự động gửi bởi trình duyệt web không được tính vì những thông tin này sẽ được gửi kèm trong những yêu cầu giả
mạo Có thể sử dụng công cụ CSRF Tester của OWAPS để kiểm tra vấn đề này
Để ngăn chặn CSRF thường đòi hỏi cần một token không thể đoán trước trong mỗi yêu cầu HTTP Các token này nên ở mức tối thiểu và là duy nhất cho mỗi phiên làm việc của người dùng
- Sử dụng các thẻ duy nhất trong một trường ẩn, giá trị này được gửi trong nội dung của các yêu cầu HTTP, tránh đưa nó vào trong các URL
- Có thể thêm các thẻ duy nhất vào trong các URL hoặc một tham số URL Tuy nhiên, những tham số như vậy cũng có những rủi ro, tin tặc có thể biết và tìm cách vượt qua Với các nhà phát triển ứng dụng web có thể sử dụng công cụ CSRF Guard của OWASP để tạo ra và kiểm tra các tham số có thể sử dụng để ngăn chặn các lỗ hổng CSRF
- Yêu cầu người dùng xác nhận lại hoặc chứng thực họ là người sử dụng (như sử dụng CAPTCHA, mã bảo vệ) cũng có thể bảo vệ chống lại CSRF
Các lỗi do ứng dụng sử dụng những thành phần chứa lỗi bảo mật:
Các ứng dụng được sử dụng có các thành phần bị lỗi có thể làm suy yếu khả năng phòng thủ của ứng dụng Do đó có thể bị một loạt các cuộc tấn công và các tác động Các thành phần như là các thư viện, các thành phần mở rộng và các bản vá lỗi của các
Trang 2617
thành phần khác hầu hết luôn chạy với quyền đầy đủ Nếu một thành phần dễ bị tấn công được khai thác, thì cuộc tấn công như vậy có thể làm cho mất dữ liệu nghiêm trọng hay mất quyền kiểm soát máy chủ
Cách phòng chống tấn công: Đầu tiên cần tránh việc sử dụng những thành phần
bị lỗi Tiếp theo, cần cập nhật thường xuyên các bản vá bảo mật từ nhà phát triển ứng dụng sẽ giúp ứng dụng giảm thiểu rủi ro khai thác các lỗi này Nâng cấp lên các phiên
bản cao hơn để đảm bảo được hỗ trợ và bảo mật tốt nhất
Các lỗi trong việc kiểm soát quyền truy cập
Các lỗi trong việc kiểm soát quyền truy cập (Missing Function Level Access Control) đối với người dùng trên ứng dụng web Hiện nay, hầu hết các ứng dụng web
có chức năng xác thực quyền truy cập Các chức năng được quản lý thông qua việc cấu hình và hệ thống có những khi được cấu hình sai, là nguyên nhân dẫn đến lỗi này Vì vậy, các ứng dụng cần phải thực hiện việc kiểm tra kiểm soát truy cập đồng thời trên máy chủ khi mà mỗi chức năng được truy cập Nếu các yêu cầu không được xác thực, những tin tặc có thể giả mạo yêu cầu để truy cập trái phép vào các chức năng mà chúng không có quyền Những tin tặc này có thể là một người được cấp quyền trong hệ thống Chỉ cần thay đổi các URL hoặc một tham số để được sử dụng chức năng đặc quyền, hay những người dùng ẩn danh cũng có thể truy cập các trang tin cá nhân không được bảo
vệ Những chức năng quản trị là mục tiêu chính trong kiểu tấn công này
Cách phòng chống tấn công: Để biết được ứng dụng web của mình có bị lỗ hổng
này hay không, người quản trị cũng có thể thực hiện những kiểm tra sau: xem các giao diện người dùng có điều hướng đến những chức năng trái phép không, xem các kiểm tra xác nhận và ủy quyền trên máy chủ có bị thiếu không, tìm các kiểm tra phía máy chủ được hoàn thành mà chỉ dựa trên thông tin được cung cấp bởi những kẻ tấn công Khi đang sử dụng một proxy để duyệt ứng dụng của mình với một vai trò đặc quyền Sau đó vào lại trang bị hạn chế sử dụng với một vai trò ít đặc quyền hơn Nếu trả lời máy chủ giống nhau, có lẽ ứng dụng đang bị tấn công Để ngăn chặn loại tấn công này thì ứng dụng nên có mô-đun thích hợp cho phép phân tích tất cả chức năng một cách dễ dàng,
có thể là một thành phần mở rộng của ứng dụng Cũng cần theo dõi quá trình quản lý các quyền và chắc chắn rằng có thể cập nhật, cũng như kiểm tra một cách dễ dàng, nên
từ chối tất các các truy cập mặc định, yêu cầu cấp tài khoản rõ ràng cho các vai trò cụ thể để truy cập vào các chức năng Nếu chức năng được tham gia vào một quy trình làm việc, hãy kiểm tra để chắc chắn rằng các điều kiện đều thích hợp để được phép truy cập Cũng phải thực hiện kiểm tra trong tầng điều khiển hay logic để đảm bảo an toàn
1.5 Tổng quan về đăng nhập một lần trên cổng thông tin điện tử
Cơ chế đăng nhập một lần (SSO) cho phép người dùng đăng nhập một lần cho tất
cả các tài khoản có yêu cầu xác thực bảo mật khác nhau trong phiên truy cập của người dùng Giải pháp này đảm bảo tính thuận tiện, vừa tăng độ bảo mật khi sử dụng, giảm áp lực trong việc quản lý tài khoản đối với nhà quản trị Ngoài ra, SSO còn có khả năng tích hợp và kết hợp các hệ thống tài khoản khác nhau, điều này sẽ mang lại lợi ích cho
Trang 27- Giúp cho người quản trị hệ thống tiết kiệm thời gian trong việc tạo lập hay loại
bỏ người dùng trên hệ thống, cũng như thay đổi quyền của một hay một nhóm người dùng nào đó
- Tiết kiệm thời gian khi tái lập lại mật khẩu cho người dùng
- Bảo mật các cấp độ của việc thoát hay truy xuất hệ thống
Khuyết điểm:
- Đòi hỏi cơ sở hạ tầng của toàn bộ hệ thống phải đảm bảo
- Do nhiều ứng dụng cùng sử dụng chung cơ sở dữ liệu người dùng nên việc xác thực khi người dùng đăng ký với hệ thống phải chặt chẽ, nếu không sẽ rất dễ vi phạm việc đảm bảo an ninh cho hệ thống
- Cần có cơ chế xác thực đảm bảo khi truyền các thông tin định danh người dùng giữa người sử dụng với các máy chủ dịch vụ
Cơ chế đăng nhập một lần là một trong những đặc tính quan trọng đối với một cổng TTĐT nhưng nó cũng chứa những rủi ro riêng Tin tặc có thể lợi dụng các lỗ hổng trong việc quản lý xác thực để thực hiện tấn công gây hại cho hệ thống
Một số rủi ro đối với SSO là:
Mật khẩu yếu: sử dụng mật khẩu là phương pháp xác thực được sử dụng phổ biến trên các ứng dụng web nói chung và cổng TTĐT nói riêng Một mật khẩu đơn giản, dễ nhớ, được sử dụng nhiều lần trên nhiều ứng dụng web khác nhau và không được thay đổi trong thời gian dài mang lại tiện lợi cho người dùng nhưng cũng đồng nghĩa với nhiều rủi ro mất an toàn đối với tài khoản người dùng Một phương pháp thường dùng
để tấn công các mật khẩu yếu là đoán mật khẩu bằng hình thức tấn công Brute force Để hạn chế rủi ro này cần thiết lập các chính sách mật khẩu mạnh
Rủi ro khi bị khai thác lỗi xử lý phiên làm việc: khi người dùng đăng nhập vào hệ thống, có thể bị tin tặc lợi dụng để thực hiện những hành động xấu ngay trên phiên đăng nhập của mình Chẳng hạn tin tặc có thể lừa người dùng nhấp vào một liên kết để thực hiện các yêu cầu giả mạo trên phiên đăng nhập của người dùng Để ngăn chặn tấn công này có thể sử dụng một SSO token trong mỗi yêu cầu trên trình duyệt người dùng Các SSO token này phải là duy nhất cho mỗi phiên làm việc của người dùng
Rủi ro khi sử dụng thuật toán mã hóa yếu: khi sử dụng các trình duyệt để truy cập vào các ứng dụng trên cổng TTĐT Nếu các thông tin người dùng không được mã hóa trên trình duyệt hay các trình duyệt sử dụng thuật toán mã hóa yếu sẽ rất nguy hiểm đặc
Trang 28bị treo, sau khi hệ thống hoạt động bình thường trở lại, một người nào đó làm việc với
hệ thống này có thể truy cập trái phép vào hệ thống mà người dùng trước đó đăng nhập Điều này đặc biệt nguy hiểm khi người này sử dụng cho các mục đích bất hợp pháp Có thể hạn chế rủi ro này bằng cách đặt thời gian hoạt động cho một phiên đăng nhập, khi không thực hiện bất cứ hành động nào và buộc người dùng phải đăng nhập lại
Một số hình thức tấn công nhằm vào SSO:
Tấn công tràn bộ đệm: 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ộ đệm Lỗi này có thể do lỗi lập trình hoặc do người dùng
cố ý phá hoại, họ có thể lợi dụng lỗi này để phá vỡ an ninh của hệ thống Các lỗi tràn bộ đệm có thể khiến cho ứng dụng ngừng hoạt động, gây mất dữ liệu hoặc cho ra các kết quả sai, thậm chí giúp kẻ tấn công kiểm soát hệt hống hoặc tạo cơ hội cho kẻ tấn công thực hiện nhiều thủ thuật khai thác khác nhau
Tấn công vào SSO bằng cách khai thác lỗi tràn bộ đệm trên stack, bằng cách kiểm tra một lỗi trong chức năng SSO chứa các giới hạn không đúng Kẻ tấn công có thể lợi dụng lỗi tràn bộ đệm, gửi một gói tin đặc biệt với các dịch vụ mà không được chứng thực hay chèn một đoạn mã vào bộ nhớ hệ thống và tùy ý thực thi mã này trên hệ thống
Kẻ tấn công cũng có thể ghi đè một biến địa phương nằm gần bộ nhớ đệm trong stack
để thay đổi hành vi của chương trình nhằm phục vụ ý đồ của mình Chúng cũng có thể ghi đè địa chỉ trả về trong khung stack Khi hàm trả về thực thi sẽ được tiếp tục tại địa chỉ mà kẻ tấn công đã chỉ rõ thường là tại một bộ đệm chứa dữ liệu của người dùng Lỗi tràn bộ đệm có thể giúp cho kẻ tấn công vượt qua việc xác thực tài khoản người dùng SSO
Việc xử lý bộ đệm trước khi đọc hay thực thi có thể làm thất bại các cuộc khai thác lỗi tràn bộ đệm nhưng vẫn không ngăn chặn được một cách tuyệt đối Tuy nhiên, đây là việc làm cần thiết phải làm, việc xử lý bao gồm:
- Chuyển từ chữ hoa thành chữ thường
- Loại bỏ các ký tự đặc biệt và lọc các xâu không chứa kí tự là chữ số hoặc chữ cái Mặc dù vậy, vẫn còn có các kỹ thuật để tránh việc lọc và xử lý này như: sử dụng
mã gồm toàn chữ và số, mã đa hình, mã tự sửa đổi, v.v Vì vậy, để tránh các nguy cơ bị khai thác lỗi tràn bộ đệm chúng ta cần sử dụng các biện pháp phòng tránh hiệu quả hơn
- Lựa chọn ngôn ngữ lập trình: Ngôn ngữ lập trình có một ảnh hưởng lớn đối với
sự xuất hiện lỗi tràn bộ đệm Một ngôn ngữ lập trình sử dụng nhiều kỹ thuật đa dạng có thể giúp tránh việc sử dụng con trỏ và kiểm tra biên do người dùng xác định Có ngôn ngữ có thể giúp chặn các lỗi tràn bộ đệm bằng việc gắn thông tin về kích thước mảng
Trang 2920
với các mảng như Cyclone, ngôn ngữ khác lại có khả năng cung cấp việc kiểm tra truy cập hay ghi đè dữ liệu và đưa ra ngoại lệ hay cảnh báo như Pythol, Lisp, v.v Ngoài ra, các môi trường như Java, Net đòi hỏi kiểm tra biên đối với tất cả các mảng
- Sử dụng các thư viện an toàn: Sử dụng các thư viện được viết tốt và đã được kiểm thử dành cho các kiểu dữ liệu trừu tượng mà các thư viện này thực hiện tự động việc quản lý bộ nhớ, trong đó có kiểm tra biên có thể làm giảm sự xuất hiện và ảnh hưởng của các hiện tượng tràn bộ đệm Các thư viện an toàn gồm có: The Better String Library, Arri Buffer API, Vstr
- Chống tràn bộ đệm trên stack: Stack smashing protection là kỹ thuật dùng để phát hiện các hiện tượng tràn bộ đệm phổ biến nhất Kỹ thuật này kiểm tra xem stack đã bị sửa đổi hay chưa khi một hàm trả về Nếu stack đã bị sửa đổi, chương trình kết thúc bằng một lỗi phân khúc Chế độ cấm thực thực thi dữ liệu được thực hiện để bảo vệ các con trỏ và không cho chúng bị ghi đè Có thể bảo vệ stack bằng cách phân tán stack thành hai phần, một phần dành cho dữ liệu và một phần dành cho các bước trả về hàm
- Bảo vệ không gian thực thi: giải pháp ngày ngăn chặn việc thực thi mã tại stack hay heap Kẻ tấn công có thể sử dụng lỗi tràn bộ đệm để chèn một đoạn mã tùy ý vào
bộ nhớ của chương trình, với việc bảo vệ không gian thực thi thì mọi cố gắng chạy đoạn
mã đó sẽ gay ra một ngoại lệ
- Ngẫu nhiên hóa sơ đồ không gian địa chỉ: đây là tính năng liên quan đến việc sắp xếp các vùng dữ liệu quan trọng một cách ngẫu nhiên trong không gian địa chỉ của một tiến trình (thường bao gồm nơi chứa mã thực thi và vị trí cá thư viện, heap và stack)
- Kiểm tra sâu đối với gói tin: việc này có thể phát hiện các hành động cố gắng khai thác lỗi tràn bộ đệm từ xa ngay từ biên của mạng Các kỹ thuật này có khả năng ngăn chặn các gói tin có chứa chữ ký của một vụ tấn công dã biết hoặc chứa các chuỗi dài các lệnh rỗng không làm gì Tuy nhiên, việc rà quét gói tin không phải là một phương pháp hiệu quả vì nó chỉ có thể ngăn chặn các cuộc tấn công đã biết và có thể mã hóa các lệnh rỗng đê vượt qua việc kiểm tra này
Chiếm phiên làm việc (Session Hijacking): kẻ tấn công có thể có thể chiếm lấy
một phiên làm việc đang hoạt động của một người dùng hợp lệ, nhằm mục đích vượt qua quá trình chứng thực truy cập bất hợp lệ vào các dịch vụ của hệ thống Khi một người dùng thực hiện đăng nhập vào hệ thống SSO, sau khi người dùng được xác thực
họ có quyền truy cập đến các ứng dụng trong hệ thống Trong quá trình hoạt động, người dùng không cần phải chứng thực lại Kẻ tấn công lợi dụng điều này để thực hiện cướp phiên làm việc đang hoạt động của người dùng và làm cho người dùng không kết nối được với hệ thống Sau đó kẻ tấn công mạo danh người dùng bằng phiên làm việc vừa cướp được, truy cập đến các ứng dụng mà không cần phải đăng nhập vào hệ thống Tấn công chiếm phiên làm việc rất nguy hiểm với các cổng TTĐT, bởi khi một người dùng sử dụng SSO để đăng nhập vào một ứng dụng trên cổng TTĐ người dùng
đó có thể truy cập vào các ứng dụng khác mà không phải đăng nhập lại Nếu những kẻ tấn công có thể chiếm được phiên làm việc của người dùng thì cũng có thể gây hại đến
an toàn thông tin trên các ứng dụng khác trong cổng TTĐT mà người dùng đang đã xác
Trang 3021
thực Vì vậy, việc phòng chống tấn công chiếm phiên làm việc khi sử dụng SSO trên các cổng TTĐT là rất cần thiết
Quá trình tấn công chiếm phiên làm việc gồm có ba bước như sau:
- Dò Tìm phiên làm việc: Kẻ tấn công sẽ dò tìm các phiên làm việc đang mở và tính toán giá trị tuần tự của gói tin tiếp theo
- Tái đồng bộ kết nối: Kẻ tấn công gởi các tín hiệu TCP reset (RST) hay FIN để yêu cầu khởi động lại quá trình kết nối đồng thời đóng phiên làm việc cũ
- Chèn các gói tin tấn công: lúc này kẻ tấn công sẽ gởi đến máy chủ những gói tin TCP với số hiệu tuần tự đã được tính toán thích hợp với phiên làm việc do đó máy chủ
sẽ chấp nhận những thông tin này giống như là các dữ liệu hợp lệ tiếp theo của người dùng bị tấn công Nghĩa là, khi này những kẻ tấn công có thể thực hiện những hành động gây hại trên phiên làm việc của người dùng
Khi đã biết được tác hại cũng như các quá trình của tấn công chiếm phiên làm việc Chúng ta cần có những giải pháp phòng chống để có thể bảo vệ dữ liệu cho cổng TTĐT của mình và hướng dẫn người dùng các thao tác nhằm bảo vệ tính riêng tư, phòng chống
bị mất cắp dữ liệu
Để phòng chống không bị tấn công chiếm phiên làm việc thì chúng ta cần phòng tránh bị nghe lén, một khi kẻ tấn công không thể nghe lén được thì cũng không thể tấn công vào phiên làm việc của người dùng Một trong các giải pháp để tránh tác hại của việc nghe lén đó là mã hóa dữ liệu, mã hóa đường truyền với các kỹ thuật và thuật toán
mã hóa mạnh Dùng SSH thay cho Telnet thông thường khi quản trị từ xa hay áp dụng SSL dùng cho truyền thông qua HTTPS
Ngoài ra chúng ta có thể ngăn không cho kẻ tấn công tương tác vào đường truyền cũng giúp loại bỏ nguy cơ bị tấn công này, với những giải pháp hữu hiệu như dùng mạng riêng ảo (VPN), hay áp dụng IPSEC Sau đây là một số khuyến nghị nhằm ngăn ngừa tấn công chiếm phiên làm việc
- Sử dụng mã hóa
- Ứng dụng các giao thức an toàn
- Hạn chế các kết nối đầu vào
- Giảm các truy cập từ xa
- Có chế độ xác thực mạnh mẽ
- Huấn luyện cho người dùng, nâng cao nhận thức an toàn thông tin
- Sử dụng SSL trong quá trình chứng thực để chống lại việc nghe lén dữ liệu quan trọng
- Sử dụng cơ chế tạo Mã phiên làm việc ngẫu nhiên, với thuật toán mã hóa mạnh
Mã phiên làm việc phải đủ lớn để làm khó quá trình tấn công brute-force
- Giới hạn thời gian tồn tại của phiên làm việc khi không thực hiện hành động nào
Tấn công Man in the Midle (MITM): hoạt động bằng cách thiết lập các kết nối
đến máy tính nạn nhân và chuyển tiếp các tin nhắn thông qua chúng Kiểu tấn công này như một một kẻ nghe trộm Trong trường hợp bị tấn công, nạn nhân không hề biết họ
Trang 3122
vẫn tin rằng họ đang giao tiếp trực tiếp với người kia, trong khi đó sự thực là các luồng giao tiếp lại bị chuyển tiếp thông qua host của kẻ tấn công Kết quả là kẻ tấn công có thể biết được những dữ liệu nhạy cảm và còn có thể gửi xen vào, cũng như thay đổi luồng dữ liệu để kiểm soát sâu hơn những nạn nhân Một số hình thức tấn công MITM hay được sử dụng nhất, chẳng hạn như tấn công giả mạo ARP Cache, DNS Spoofing, chiếm quyền điều khiển, v.v Tấn công giả mạo ARP Cache cho phép kẻ tấn công (nằm trên cùng một mạng con với các nạn nhân của nó) có thể nghe trộm tất cả các lưu lượng mạng giữa các máy tính nạn nhân Đây là một trong những hình thức tấn công đơn giản nhưng lại hiệu quả Hiện việc giả mạo ARP Cache vẫn là một mối đe dọa rất thực trên các mạng hiện đại, vừa khó bị phát hiện và khó đánh trả Tấn công giả mạo DNS là một
kỹ thuật MITM được sử dụng nhằm cung cấp thông tin DNS giả cho một host để khi người dùng truy cập vào một trang web nào đó, thì nó sẽ chuyển đến một trang web giả mạo trên một địa chỉ IP giả do kẻ tấn công đã tạo ra từ trước Khi đó người dùng sẽ thực hiện các hành động trên trang web giả này và kẻ tấn công có thể đánh cắp các thông tin của người dùng, như thông tin đăng nhập, tài khoản ngân hàng, v.v
Tấn công MITM đặc biệt nguy hiểm đối với hệ thống SSO trên các cổng TTĐT Nếu các thông tin đăng nhập của người dùng không được bảo vệ đúng cách, những kẻ tấn công có thể nghe lén được thông tin tài khoản người dùng và sử dụng nó để truy cập vào các ứng dụng trên cổng TTĐT đó Khi đó kẻ tấn công có thể truy cập và sử dụng thông tin của người dùng trên các ứng dụng vào những mục đích xấu gây phương hại tới người dùng
Để có thể phòng chống tấn công MITM cần thực hiện những biện pháp sau:
Tấn công giả mạo ARP cache:
Đối với tấn công giả mạo ARP cache, không có một giải pháp cụ thể nào, tuy nhiên chúng ta cũng cần thực hiện những biện pháp ứng phó như:
- Bảo mật LAN: Giả mạo ARP Cache chỉ là một kỹ thuật tấn công mà nó chỉ sống sót khi cố gắng chặn lưu lượng giữa hai thiết bị trên cùng một mạng LAN Chỉ có một
lý do khiến cho chúng ta lo sợ về vấn đề này là liệu thiết bị nội bộ trên mạng của chúng
ta có bị thỏa hiệp, người dùng tin cậy có ý định hiểm độc hay không hoặc liệu có ai đó
có thể cắm một thiết bị không tin cậy vào mạng Mặc dù chúng ta tập trung toàn bộ những cố gắng bảo mật của mình lên phạm vi mạng nhưng việc phòng chống lại những mối đe dọa ngay từ bên trong và việc có một thái độ bảo mật bên trong tốt, có chính sách sử dụng nghiêm ngặt có thể giúp loại trừ được nguy cơ tấn công ARP cache
- Mã hóa ARP Cache: Một cách có thể bảo vệ chống lại vấn đề không an toàn vốn
có trong các ARP request và ARP reply là thực hiện mã hóa ARP cache
- Kiểm tra lưu lượng ARP với chương trình của hãng thứ ba: Tùy chọn cuối cùng cho việc phòng chống lại hiện tượng giả mạo ARP cache là phương pháp phản ứng có liên quan đến việc kiểm tra lưu lượng mạng của các thiết bị Có thể thực hiện điều này với một vài hệ thống phát hiện xâm phạm (chẳng hạn như Snort) hoặc thông qua các tiện ích được thiết kế đặc biệt cho mục đích này (như xARP) Điều này có thể khả thi
Trang 3223
khi chúng ta chỉ quan tâm đến một thiết bị nào đó, tuy nhiên nó vẫn khá cồng kềnh và vướng mắc trong việc giải quyết với toàn bộ đoạn mạng
Tấn công giả mạo DNS:
Đối với tấn công giả mạo DNS khá là khó để phòng chống vì có khá ít các dấu hiệu tấn công Thông thường, chúng ta không hề biết DNS của mình bị giả mạo cho tới khi điều đó xảy ra Trong các tấn công với chủ đích lớn, rất có thể chúng ta sẽ không hề biết rằng mình đã bị lừa nhập các thông tin quan trọng của mình vào một trang web giả mạo Mặc dù khó nhưng không phải không có biện pháp nào có thể phòng chống các kiểu tấn công này, đây là một sốbiện pháp cần thực hiện:
- Bảo vệ các máy tính bên trong: Các tấn công giản mạo DNS thường được thực thi từ bên trong mạng của bạn Nếu các thiết bị mạng của an toàn thì sẽ bạn sẽ giảm được khả năng các host bị thỏa hiệp và được sử dụng để khởi chạy tấn công giả mạo
- Không dựa vào DNS cho các hệ thống bảo mật: Trên các hệ thống an toàn và có
độ nhạy cảm cao, không duyệt Internet trên nó là cách thực hiện tốt nhất để không sử dụng đến DNS Nếu chúng ta có phần mềm sử dụng hostname để thực hiện một số công việc của nó thì chúng cần phải được điều chỉnh những gì cần thiết trong tập tin cấu hình
- Sử dụng IDS: Một hệ thống phát hiện xâm nhập, khi được đặt và triển khai đúng,
có thể phát hiện các hình thức giả mạo ARP cache và giả mạo DNS
- Sử dụng DNSSEC: DNSSEC là một giải pháp thay thế mới cho DNS, sử dụng các bản ghi DNS có chữ ký để bảo đảm sự hợp lệ của các truy vấn trả về
Giả mạo DNS là một hình thức tấn công MITM khá nguy hiểm đặc biệt là với chức năng đăng nhập một lần trên cổng TTĐT Sử dụng hình thưc tấn công này những kẻ tấn công có thể tận dụng các kỹ thuật giả mạo để đánh cắp các thông tin quan trọng của người dùng, hay cài đặt chương trình độc hại trên hệ thống, hoặc gây ra một tấn công từ chối dịch vụ
Trang 3324
Chương 2 NGHIÊN CỨU CÁC BIỆN PHÁP CƠ BẢN ĐỂ ĐẢM BẢO AN NINH
AN TOÀN THÔNG TIN CHO CÁC CỔNG/TRANG THÔNG TIN ĐIỆN TỬ
Một cổng/trang TTĐT nói riêng và ứng dụng web nói chung khi triển khai được trên mạng Internet ngoài yếu tố mã nguồn ứng dụng web, còn có những thành phần khác như: máy chủ phục vụ web, hệ quản trị cơ sở dữ liệu, v.v Do vậy, một cổng/trang TTĐT
an toàn đòi hỏi bản thân mã nguồn của cổng/trang TTĐT đó phải được lập trình an toàn, tránh các lỗi bảo mật xảy ra trên ứng dụng web và các thành phần bổ trợ như máy chủ phục vụ web và hệ quản trị cơ sở dữ liệu cho ứng dụng đó cũng phải đảm bảo an toàn Trong chương này tôi sẽ tập trung vào nghiên cứu các biện pháp cơ bản để đảm bảo an ninh an toàn cho các cổng/trang TTĐT Cụ thể bao gồm các nội dung sau: nghiên cứu cấu trúc triển khai ứng dụng web, tổ chức triển khai hệ thống phòng thủ hợp lý, thiết lập
và cấu hình an toàn cho các hệ thống máy chủ, hệ quản trị cơ sở dữ liệu, thiết lập các cơ chế sao lưu và phục hồi an toàn và cuối cùng là cách thức vận hành ứng dụng web an toàn
2.1 Xác định cấu trúc ứng dụng web
Việc xác định cấu trúc ứng dụng web giúp người quản trị xác định được mô hình thiết kế ứng dụng web của đơn vị, qua đó có biện pháp tổ chức mô hình web hợp lý, tránh được các khả năng tấn công leo thang đặc quyền
Một ứng dụng web khi triển khai, về cơ bản sẽ có ba lớp như sau: Lớp trình diễn, lớp ứng dụng và lớp cơ sở dữ liệu
- Lớp trình diễn (Web Server): là nơi mà máy chủ cài đặt có tác dụng phục vụ các yêu cầu về web nói cách khác, lớp trình diễn là máy chủ phục vụ web, thông thường máy chủ phục vụ web nhận được yêu cầu từ trình duyệt của người dùng Máy chủ phục
vụ web có thể là: IIS Server, Apache HTTP Server, Apache Tomcat Server, v.v
- Lớp ứng dụng (Web Application): là nơi các kịch bản hay mã nguồn phát triển
ra ứng dụng web được thực thi có thể là: ASP.NET, PHP, JSP, Perl, Python, v.v thường
là nơi xử lý về logic nghiệp vụ, nhận các yêu cầu nghiệp vụ từ máy chủ web và phản hồi lại nói cách khác, lớp ứng dụng là máy chủ ứng dụng
- Lớp cơ sở dữ liệu (Database Server): là nơi mà ứng dụng web lưu trữ và thao tác với dữ liệu nói cách khác, lớp cơ sở dữ liệu là máy chủ cơ sở dữ liệu Máy chủ cơ sở dữ liệu thường nhận yêu cầu truy vấn cơ sở dữ liệu được gửi từ máy chủ ứng dụng Máy chủ cơ sở dữ liệu dựa trên nền các hệ quản trị cơ sở dữ liệu quan hệ như: Oracle, SQL Server, MySQL, v.v
Việc hoạch định tốt các lớp trong cấu trúc ứng dụng web không những giúp người quản trị dễ vận hành mà còn chủ động trong phòng, chống các nguy cơ tấn công từ tin tặc
Mỗi lớp nên khởi tạo một cơ chế phòng thủ riêng cho mình để chống lại những hành động không được phép và không nên “tin tưởng” những lớp khác để tránh tình trạng tấn công leo thang Một số kịch bản thông dụng như sau:
Trang 3425
- Lớp trình diễn có thể cài đặt cơ chế điều khiển truy cập trên một tài nguyên Ví
dụ khi lập chính sách truy cập một tài nguyên nào đó trên hệ thống, chẳng hạng như thư mục /admin, có thể cài đặt cấu hình lớp trình diễn yêu cầu xác thực với quyền quản trị (administrator) Điều này sẽ hạn chế ảnh hưởng từ lớp ứng dụng có thể sử dụng nhiều kịch bản để truy cập đến tài nguyên trên
- Lớp cơ sở dữ liệu có thể cung cấp các tài khoản khác nhau với những quyền hành động khác nhau Ví dụ như với nhóm người sử dụng có tên tài khoản chưa được chứng thực thì thiết đặt quyền thấp nhất là chỉ có thể truy cập vào nội dung để xem, còn các thao tác ghi, thay đổi, thực thi là không được phép Nếu tài khoản được chứng thực thì cũng chỉ được thực hiện những hành động theo đúng vai trò và quyền hạn của tài khoản
đó Được phép ghi, thay đổi hay thực thi trên cơ sở dữ liệu theo đúng vai trò đã được chỉ định và chỉ có tác dụng trong phạm vi cơ sở dữ liệu đã được cấu hình trước
Các lớp khác nhau không nên cho phép truy cập đọc hoặc ghi bởi lớp khác Ví dụ: lớp trình diễn không có khả năng truy cập đến tập tin vật lý được sử dụng lưu trữ dữ liệu tại lớp cơ sở dữ liệu mà chỉ có khả năng truy cập dữ liệu này thông qua các truy vấn với các tài khoản phù hợp (truy cập ở cấp độ ứng dụng) Các dịch vụ giao tiếp giữa các lớp trên cấp độ mạng cũng nên được lọc để chỉ cho phép các dịch vụ cần thiết được thực thi Một số cách bố trí thường gặp trong thực tế như sau (xem hình 2.1)
Trang 35Máy chủ cơ sở dữ liệu
Trang 3627
Mô hình 1 lớp: Trong mô hình này các máy chủ phục vụ web, máy chủ ứng dụng, máy
chủ cơ sở dữ liệu đều được thiết lập trên cùng một máy chủ (xem hình 2.2)
Hình 2.2: Mô hình 1 lớp
Ưu điểm: Dễ dàng cài đặt và không tốn nhiều tài nguyên
Nhược điểm: Khi một máy chủ bị tin tặc tấn công và chiếm quyền kiểm soát có thể dẫn đến các máy chủ khác cũng bị ảnh hưởng theo Tuy nhiên, sẽ gặp nhiều khó khăn trong quá trình vận hành và triển khai các biệp pháp bảo vệ cho ứng dụng
Mô hình 2 lớp: Khác với mô hình 1 lớp, trong mô hình 2 lớp này các máy chủ phục vụ
web, máy chủ ứng dụng được thiết lập trên cùng một máy chủ, còn máy chủ cơ sở dữ liệu được thiết lập trên một máy chủ khác (xem hình 2.3)
Hình 2.3: Mô hình 2 lớp
Máy chủ web Máy chủ ứng dụng Máy chủ cơ sở dữ liệu
Máy chủ web Máy chủ ứng dụng
Máy chủ cơ sở dữ liệu
Trang 37Mô hình 3 lớp: Trong mô hình này, các máy chủ web, máy chủ ứng dụng và máy chủ
cơ sở dữ liệu đều được thiết lập trên mỗi máy chủ độc lập (xem hình 2.4)
Hình 2.4: Mô hình 3 lớp
Ưu điểm: Dễ dàng vận hành hệ thống và chủ động phòng, chống các nguy cơ tấn công
từ tin tặc
Nhược điểm: Tốn kém nhiều tài nguyên và quá trình cài đặt
Mô hình N lớp: Trong mô hình này, mỗi máy chủ web, máy chủ ứng dụng và máy chủ
cơ sở dữ liệu đều được thiết lập trên mỗi cụm máy chủ độc lập như hình vẽ Đối với những hệ thống cung cấp dịch vụ lớn, đòi hỏi phải có nhiều tài nguyên mới đủ phục vụ người dùng thì mô hình này là giải pháp tốt (xem hình 2.5)
Máy chủ web
Máy chủ ứng dụng
Máy chủ cơ sở dữ liệu
Trang 3829
Hình 2.5: Mô hình N lớp
Ưu điểm: Cung cấp dịch vụ rộng lớn với nhiều người sử dụng
Nhược điểm: Tốn nhiều tài nguyên nhiều, chi phí cài đặt, cũng như vận hành
Việc phân tích xác định các cấu trúc web cho thấy, nếu giữa các lớp không có tách biệt
rõ ràng thì một lớp bị tấn công và chiếm quyền kiểm soát có thể dẫn đến các lớp khác cũng bị ảnh hưởng theo Do vậy, khi triển khai thực tiễn nên thiết kế tách biệt độc lập theo cấu trúc 3 lớp để tránh tình trạng một lớp bị tấn công và chiếm quyền kiểm soát dẫn đến các lớp khác bị ảnh hưởng Việc phân loại độc lập 3 lớp như trên sẽ tạo điều kiện thuận lợi cho việc vận hành, bảo trì hệ thống cũng như dễ dàng áp dụng các biện pháp bảo vệ đối với mỗi lớp riêng biệt
Trang 3930
biện pháp như tổ chức mô hình mạng, thiết lập tường lửa, ứng dụng phòng chống vi-rút,
hệ thống phát hiện và ngăn chặn xâm nhập
2.2.1 Tổ chức mô hình mạng
Việc tổ chức mô hình mạng hợp lý có ảnh hưởng tích cực đến việc đảm bảo an ninh an toàn cho các cổng/trang TTĐT Đây là cơ sở đầu tiên cho việc xây dựng các hệ thống phòng thủ và bảo vệ Ngoài ra, việc tổ chức mô hình mạng hợp lý có thể hạn chế được các tấn công từ bên trong và bên ngoài một cách hiệu quả
Trong một mô hình mạng hợp lý cần phân biệt rõ ràng giữa các vùng mạng theo chức năng và thiết lập các chính sách an toàn thông tin riêng cho từng vùng mạng theo yêu cầu thực tế
- Vùng mạng ngoài còn gọi là mạng Internet
- Vùng mạng DMZ: Đặt các máy chủ cung cấp dịch vụ trực tiếp ra mạng ngoài như web server, mail server, FTP Server, v.v
- Vùng mạng Server Network: đặt các máy chủ không trực tiếp cung cấp dịch vụ trực tiếp ra mạng Internet
- Vùng mạng Private Network: Đặt các thiết bị mạng, máy trạm và máy chủ thuộc mạng nội bộ của đơn vị
Khi tổ chức mô hình mạng cần lưu ý một số điểm như sau:
- Nên đặt các máy chủ web, máy chủ thư điện tử (mail server), các máy chủ cung cấp dịch vụ ra mạng Internet trong vùng mạng DMZ, nhằm tránh các tấn công mạng nội
bộ hoặc gây ảnh hưởng tới an toàn mạng nội bộ nếu các máy chủ này bị cướp quyền điều khiển Chú ý không đặt các máy chủ chỉ cung cấp dịch vụ cho mạng nội bộ trong vùng mạng này
- Các máy chủ không trực tiếp cung cấp dịch vụ ra mạng ngoài như máy chủ ứng dụng, máy chủ cơ sở dữ liệu, máy chủ xác thực, v.v nên đặt trong vùng mạng Server network để tránh tấn công trực tiếp từ Internet và từ mạng nội bộ Đối với hệ thống thông tin yêu cầu có mức bảo mật cao, hoặc có nhiều cụm máy chủ khác nhau có thể chia vùng server network thành các vùng nhỏ hơn độc lập để nâng cao tính bảo mật
- Cần thiết lập các hệ thống phòng thủ như: tường lửa, thiết bị phát hiện/phòng chống xâm nhập (IDS/IPS) để bảo vệ hệ thống, chống tấn công và xâm nhập trái phép Nên đặt tường lửa và IDS/IPS ở các vị trí sau:
Đặt tường lửa giữa đường nối mạng Internet với các vùng mạng khác nhằm hạn chế tấn công từ bên ngoài vào
Đặt tường lửa giữa các vùng mạng nội bộ và mạng DMZ nhằm hạn chế các tấn công giữa các vùng đó
Đặt IDS/IPS tại vùng cần lõi bảo vệ
Trang 402.2.2 Thiết lập tường lửa
Tường lửa là một thiết bị phần cứng hoặc một phần mềm hoạt động trong môi trường máy tính nối mạng nhằm ngăn chặn những lưu lượng bị cấm bởi chính sách an ninh của một cá nhân hay tổ chức Mục đích sử dụng tường lửa là:
- Bảo vệ hệ thống khi bị tấn công
- Lọc các kết nối, các gói tin dựa trên chính sách truy cập nội dung
- Áp đặt các chính sách truy cập đối với người dùng hoặc nhóm người dùng
- Ghi lại nhật ký để hỗ trợ phát hiện xâm nhập và điều tra sự cố
Cần thiết lập các luật cho tường lửa phù hợp với chính sách an ninh an ninh của hệ thống, phù hợp với vị trí và mục đích của tường nửa đó Tường lửa có thể giúp ngăn chặn các cuộc tấn công, ngăn chặn các kết nối của các mã độc từ trong ra ngoài, v.v Ví dụ: thiết lập luật cho tường lửa từ chối tất cả các kết nối từ bên trong máy chủ web ra ngoài Internet ngoại trừ các kết nối đã được thiết lập, tức là chỉ từ chối tất cả các gói tin TCP khi xuất hiện cờ SYN Điều này sẽ ngăn chặn việc nếu tin tặc có khả năng chạy các kịch bản mã độc trên máy chủ web thì cũng không thể cho các mã độc nối ngược từ máy chủ web trở về máy tính của tin tặc Một số vị trí có thể thiết lập tường lửa như sau (xem hình 2.6):