Security design patterns in software engineering

32 13 0
Security design patterns in software engineering

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Chủ đề: Security Design Patterns in Software Engineering Môn học Giảng viên Học viên thực : An toàn phần mềm : : Hà Nội, 2021 MỤC LỤC DANH MỤC TỪ VIẾT TẮT ii DANH MỤC HÌNH VẼ .iii CHƯƠNG 1: TỔNG QUAN VỀ MẪU THIẾT KẾ PHẦN MỀM 1.1 Khái niệm, lịch sử hình thành mẫu thiết kế phần mềm 1.1.1 Khái niệm mẫu thiết kế phần mềm 1.1.2 Lịch sử hình thành mẫu thiết kế phần mềm 1.2 Phân loại mẫu thiết kế phần mềm .3 1.3 Vai trị, lợi ích mẫu thiết kế phần mềm 1.3.1 Vai trò mẫu thiết kế phần mềm .7 1.3.2 Lợi ích mẫu thiết kế phần mềm CHƯƠNG II: CÁC MẪU THIẾT KẾ PHẦN MỀM AN TOÀN 2.1 Quản lý định danh 2.2 Quản lý truy cập 12 2.2.1 Xác thực 12 2.2.2 Phân quyền .13 2.2.3 Giới hạn truy cập .14 2.2.4 Điều khiển truy cập dựa vai trò sở .16 2.2.5 Phiên an toàn 17 2.3 Ghi log an toàn 19 2.4 An toàn Client-Server 20 2.4.1 Khu vực phi quân 20 2.4.2 Mã hóa thơng tin 23 2.4.3 Proxy trung gian .24 2.4.4 Đường truyền an toàn 26 TÀI LIỆU THAM KHẢO 27 DANH MỤC TỪ VIẾT TẮT ST T Từ viết tắt PloP GoF SSL API PKI DMZ Cụm từ đầy đủ Pattern Language of Programming Design Gang of Four Secure Sockets Layer Application Programming Interface Public Key Infrastructure Demilitarized Zone DANH MỤC HÌNH VẼ Hình 2.1 Mẫu xác thực 13 Hình 2.2 Mẫu giới hạn truy cập 15 Hình 2.3 Mẫu điều khiển truy cập dựa vai trị sở 16 Hình 2.4 Sơ đồ phác thảo việc sử dụng PHIÊN AN TOÀN kết hợp với PHÂN QUYỀN 18 Hình 2.5 Khu vực DMZ 22 Hình 2.6 Mẫu mã hóa thơng tin 23 Hình 2.7 Sơ đồ triển khai Integration Reverse Proxy .2 Y CHƯƠNG 1: TỔNG QUAN VỀ MẪU THIẾT KẾ PHẦN MỀM 1.1 Khái niệm, lịch sử hình thành mẫu thiết kế phần mềm 1.1.1 Khái niệm mẫu thiết kế phần mềm Design Patterns[1] mẫu thiết kế lập trình viên sử dụng rộng rãi Mỗi mẫu "Design Patterns" giải pháp giải tốt cho lập trình viên trường hợp định Để làm giảm rủi ro, thời gian công sức design pattern ý tưởng tốt sử dụng Một mẫu thiết kế cặp (vấn đề, lời giải) áp dụng nhiều tình ngữ cảnh khác Mỗi mẫu thường bao gồm phận: tên, nội dung, vấn đề, lời giải (phải đủ tổng qt để dùng nhiều tình huống), hệ mang lại ví dụ áp dụng Design patterns tập giải pháp cho vấn đề phổ biến thiết kế hệ thống máy tính Đây tập giải pháp cơng nhận tài liệu có giá trị, người phát triển áp dụng giải pháp để giải vấn đề tương tự Giống với yêu cầu thiết kế phân tích hướng đối tượng (nhằm đạt khả sử dụng thành phần thư viện lớp), việc sử dụng mẫu cần phải đạt khả tái sử dụng giải pháp chuẩn vấn đề thường xuyên xảy Christopher Alexander nói : “Mỗi mẫu mô tả vấn đề xảy lặp lặp lại môi trường mô tả cốt lõi giải pháp vấn đề Bằng cách bạn dùng triệu lần mà khơng làm giống hai lần” 1.1.2 Lịch sử hình thành mẫu thiết kế phần mềm Ý tưởng dùng mẫu xuất phát từ ngành kiến trúc[2], Alexander, Ishikawa, Silverstein, Jacobson, Fiksdahl-King Angel (1977) lần đưa ý tưởng dùng mẫu chuẩn thiết kế xây dựng truyền thông Họ xác định lập liệu mẫu có liên quan để dùng để giải vấn đề thường xảy thiết kế cao ốc Mỗi mẫu cách thiết kế, chúng phát triển hàng trăm năm giải pháp cho vấn đề mà người ta làm lĩnh vực xây dựng thường gặp Các giải pháp tốt có ngày hơm qua q trình sàng lọc tự nhiên Mặc dù ngành cơng nghệ phần mềm khơng có lịch sử phát triển lâu dài ngành kiến trúc, xây dựng công nghệ phần mềm ngành công nghiệp tiên tiến, tiếp thu tất tốt đẹp từ ngành khác Mẫu xem giải pháp tốt để giải vấn đề xây dựng hệ thống phần mềm Mẫu xem đạt chuẩn an tồn để áp dụng vào hệ thống cách đắn Suốt năm đầu 1990, thiết kế mẫu thảo luận hội thảo workshop, sau người ta nỗ lực để đưa danh sách mẫu lập liệu chúng Những người tham gia bị dồn vào việc cần thiết phải cung cấp số kiểu cấu trúc mức quan niệm cao đối tượng lớp để cấu trúc dùng để tổ chức lớp Đây kết nhận thức việc dùng kỹ thuật hướng đối tượng độc lập không mang lại cải tiến đáng kể chất lượng hiệu công việc phát triển phần mềm Mẫu xem cách tổ chức việc phát triển hướng đối tượng, cách đóng gói kinh nghiệm ngưòi trước hiệu thực hành Năm 1994 hội nghị PloP (Pattern Language of Programming Design) tổ chức Cũng năm sách Design patterns: Elements of Reusable Object Oriented Software (Gamma, Johnson, Helm Vhissdes, 1995) xuất vào thời điểm diễn hội nghị OOPSLA’94 Đây tài liệu cịn phơi thai việc làm nỗi bật ảnh hưởng mẫu việc phát triển phần mềm Design pattern thuật ngữ đưa năm 1995 Gang of Four (GoF) tạo nên cách mạng phát triển phần mềm Hiểu cách phi hình thức, design pattern cặp vấn đề/giải pháp cho toán thiết kế lặp lặp lại ngữ cảnh định Một design pattern có bốn đặc trưng là: problem, context,solution consequences làm tảng để cấu trúc hóa tài liệu đặc tả chúng Sức mạnh design pattern nằm chỗ kết tinh tri thức kinh nghiệm chuyên gia lĩnh vực thiết kế: dùng design pattern, ta khơng dùng thân pattern mà thực chất ta sử dụng tri thức nhiều năm kinh nghiệm chuyên gia Đồng thời, việc phổ biến design pattern tạo nên ngôn ngữ chung thiết kế, tạo thuận lợi cho việc trao đổi chuyên gia lĩnh vực Sau đời, design pattern tạo cảm hứng có tác giả khác kết khái niệm liên quan đời analysis patterns, specification patterns security patterns Năm 2000, Evitts có tổng kết cách mẫu xâm nhập vào giới phần mềm (sách ông lúc nói mẫu sử dụng UML chưa đưa khái niệm mẫu thiết kế cách tổng qt) Ơng cơng nhận Kent Beck Ward Cunningham người phát triển mẫu với SmallTalk công việc họ báo cáo hội nghị OOPSLA’87 Có năm mẫu mà Kent Beck Ward Cunningham tìm việc kết hợp người dùng hệ thống mà họ thiết kế Năm mẫu áp dụng để thiết kế giao diện người dùng môi trường Windows 1.2 Phân loại mẫu thiết kế phần mềm Hiện nay, Design pattern chia thành loại chính[3]:  Mẫu thiết kế khởi tạo (Creational Pattern): Factory Method, Abstract Factory, Builder, Prototype, Singleton Những Design pattern loại cung cấp giải pháp để tạo object che giấu logic việc tạo nó, thay tạo object cách trực tiếp cách sử dụng method new Điều giúp cho chương trình trở nên mềm dẻo việc định object cần tạo tình đưa  Mẫu thiết kế cấu trúc (Structural Pattern): Adapter, Bridge, Composite, Decorator, Facade, Flyweight Proxy Những Design pattern loại liên quan tới class thành phần object Nó dùng để thiết lập, định nghĩa quan hệ đối tượng  Mẫu thiết kế hành vi ( Behavioral Pattern): Interpreter, Template Method, Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy Visitor Nhóm dùng thực hành vi đối tượng, giao tiếp object với Bảng 1.1: Bảng thống kê mẫu thiết kế ST T Tên Abstract Factory Mục đích Mẫu khởi tạo (Creational Pattern) Cung cấp interface cho việc tạo lập đối tượng (có liên hệ với nhau) mà không cần qui định lớp hay xác định lớp cụ thể (concrete) tạo đối tượng Tần suất sử dụng: cao Builder Factory Method Prototype Singleton Adapter Bridge Composite Tách rời việc xây dựng (construction) đối tượng phức tạp khỏi biểu diễn cho tiến trình xây dựng tạo biểu diễn khác Tần suất sử dụng: trung bình thấp Định nghĩa Interface để sinh đối tượng lớp định lớp dùng để sinh đối tượng Factory method cho phép lớp chuyển trình khởi tạo đối tượng cho lớp Tần suất sử dụng: cao Quy định loại đối tượng cần tạo cách dùng đối tượng mẫu, tạo nhờ vào chép đối tượng mẫu Tần suất sử dụng: trung bình Đảm bảo class có instance cung cấp điểm truy xuất tồn cục đến Tần suất sử dụng: cao trung bình Mẫu thiết kế cấu trúc (Structural Pattern) Do vấn đề tương thích, thay đổi interface lớp thành interface khác phù hợp với yêu cầu người sử dụng lớp Tần suất sử dụng: cao trung bình Tách rời ngữ nghĩa vấn đề khỏi việc cài đặt, mục đích để hai phận (ngữ nghĩa cài đặt) thay đổi độc lập Tần suất sử dụng: trung bình Tổ chức đối tượng theo cấu trúc phân cấp dạng Tất đối tượng cấu trúc thao tác theo cách Tạo quan hệ thứ bậc bao gộp đối tượng Client xem đối tượng bao gộp bị bao gộp -> khả tổng quát hoá code client -> dễ phát triển, nâng cấp, bảo trì Tần suất sử dụng: cao trung bình 10 11 12 13 14 Decorator Gán thêm trách nhiệm cho đối tượng (mở rộng chức năng) vào lúc chạy (dynamically) Tần suất sử dụng: trung bình Facade Cung cấp interface cho tập hợp interface “hệ thống con” (subsystem) Nó định nghĩa interface cao interface có sẵn để làm cho hệ thống dễ sử dụng Tần suất sử dụng: cao Flyweight Sử dụng việc chia sẻ để thao tác hiệu số lượng lớn đối tượng “cỡ nhỏ” (chẳng hạn paragraph, dòng, cột, ký tự…) Tần suất sử dụng: thấp Proxy Cung cấp đối tượng đại diện cho đối tượng khác để hỗ trợ kiểm sốt q trình truy xuất đối tượng Đối tượng thay gọi proxy Tần suất sử dụng: cao trung bình Mẫu thiết kế hành vi (Behavioral Pattern) Chain of Khắc phục việc ghép cặp gửi nhận thông Responsibilit điệp Các đối tượng nhận thông điệp kết nối thành y chuỗi thông điệp chuyển dọc theo chuỗi đến gặp đối tượng xử lý nó.Tránh việc gắn kết cứng phần tử gửi request với phần tử nhận xử lý request cách cho phép đối tượng có hội xử lý request Liên kết đối tượng nhận request thành dây chuyền “pass” request xuyên qua đối tượng xử lý đến gặp đối tượng xử lý cụ thể Tần suất sử dụng: trung bình thấp Command Mỗi yêu cầu (thực thao tác đó) bao bọc thành đối tượng Các yêu cầu lưu trữ gửi đối tượng Đóng gói request vào Object , nhờ thơng số hố chương trình nhận request thực thao tác request: xếp, log, undo… Hình 2.1 Mẫu xác thực 2.2.2 Phân quyền Mục đích: Một hệ thống thơng tin có tài ngun khác mà người dùng q trình (chủ thể) truy cập Làm mô tả chủ thể phép truy cập tài ngun nào? Hồn cảnh sử dụng: Mọi hệ thống thơng tin mà muốn / cần kiểm soát quyền truy cập vào tài ngun Vấn đề an tồn: Khơng phải tài nguyên hệ thống thông tin truy cập đối tượng Một chủ thể người dùng trình Một điều cần thiết xác định trước cách tài nguyên truy cập Nếu khơng, chủ thể dễ dàng phá vỡ biện pháp ủy quyền Điều kiện: - Cơ chế kiểm soát truy cập cần phải độc lập với loại nguồn tái tạo - Việc quản lý ủy quyền phải hiệu phù hợp với người quản trị Giải pháp: Hiển thị cho thực thể (Chủ thể) truy cập tài nguyên, cách truy cập tài nguyên Điều thực đối tượng quyền bổ sung xác định quyền truy cập cho tài nguyên bảo vệ Ưu điểm: Giải pháp ko phụ thuộc loại tài nguyên - Đối tượng thuộc nhiều loại khác người dùng đơn lẻ, vai trò quy trình 13 - Các quy tắc ủy quyền thêm vào, sửa đổi loại bỏ Điều cho phép quản lý linh hoạt quy tắc ủy quyền - Các chủ đề đối tượng ngụ ý sử dụng để cải thiện tính linh hoạt (tốn thêm thời gian xử lý) Nhược điểm: - Nếu có nhiều đối tượng, số lượng quy luật trở nên lớn khó trì - Quản trị viên khó nhận chủ đích luật - Cần có hệ thống phương pháp khác để thực thi quy tắc ủy quyền 2.2.3 Giới hạn truy cập Mục đích: Mẫu GIỚI HẠN TRUY CẬP trình bày giải pháp thay cho FULL ACCESS WITH ERRORS Trong trường hợp quyền truy cập đầy đủ có lỗi hiển thị tất tùy chọn có kiểm tra quyền truy cập trước thực tác vụ, mẫu giới hạn truy cập kiểm tra việc cấp quyền trước trả lại User Interface Nó sửa đổi chế độ xem, tùy chọn gán mà người dùng có quyền truy cập thích hợp Hoàn cảnh sử dụng: Thiết kế giao diện hệ thống có giới hạn truy cập vào phần giao diện Thông thường, điều áp dụng cho GUI sử dụng giao diện hệ thống khác Vấn đề: Người dùng xem họ phép làm họ truy cập vào hệ thống cách đối phó với họ họ muốn truy cập vào tài nguyên không phép Yêu cầu: • Các thao tác mà người dùng thực không hiển thị GUI • Dữ liệu mà người dùng khơng thể truy cập khơng hiển thị • Tránh cho người dùng biết thơng báo (lỗi-) họ phép khơng người dùng khơng muốn u cầu phải làm • Việc hồn tồn khơng cung cấp quyền truy cập vào số thao tác làm cho việc xác thực đầu vào dễ dàng giảm số lượng hoạt động phải xác nhận 14 • Các tùy chọn xuất biến mất, đặc quyền thay đổi, gây khó chịu cho người dùng Hình 2.2 Mẫu giới hạn truy cập Giải pháp: Sử dụng chế độ xem khác tối ưu hóa cho tài nguyên sẵn có mức độ tin cậy định (hoặc vai trò theo điều khiển truy cập dựa vai trị) Ngồi ra, quyền truy cập người dùng lưu vào nhớ đệm đối tượng SECURE SESSION cho phép giảm chi phí hiệu suất cho yêu cầu tương lai Kết quả: Đối với thành phần mẫu kết mẫu sử dụng Có lẽ kết phù hợp cho phép giao diện người dùng đơn giản, nơi có sẵn tài nguyên truy cập Người dùng khơng nhận thơng báo lỗi Hạn chế lớn trở nên phức tạp khó trang bị thêm mẫu vào ứng dụng có Ưu điểm:  Cung cấp giao diện đơn giản hóa cho người dùng họ khơng phải quan tâm đến họ phép hay khơng  Bởi người dùng truy cập hoạt động phép, nhà phát triển không cần quan tâm đến việc xác nhận hoạt động-quyền truy cập 15  Kiểm tra bảo mật đơn giản hóa tất chúng thực trước Hạn chế:  Các trường rỗng, truy cập tùy chọn khơng hiển thị trơng xấu xí cung cấp trải nghiệm người dùng khơng tốt Ngồi ra, việc xếp lại tùy chọn, chẳng hạn menupoints khiến người dùng bối rối  Việc trang bị thêm mẫu vào hệ thống có trở nên khó khăn  Chỉ dựa vào kiểm tra cho phép từ trước, nguy hiểm Do đó, ngun tắc Phịng thủ Chiều sâu nên áp dụng 2.2.4 Điều khiển truy cập dựa vai trò sở Giới thiệu: Mẫu điều khiển truy cập vai trò sở liên quan tới quyền người dùng dựa vài trò họ với hệ thống Mẫu liên kết người dùng với vai trò vai trò với quyền hạn loại bỏ việc liên kết người dùng cá nhân với quyền hạn cá nhân Mẫu thích hợp có số lượng lớn người dùng lượng lớn tài nguyên chia sẻ liên quan tới đặc quyền truy cập Hình 2.3 Mẫu điều khiển truy cập dựa vai trò sở Mẫu điều khiển truy cập dựa sở vai trị gồm có bốn thành phần: người dùng, vai trò, quyền với vai trò, đối tượng liệu Người dùng lớp biểu diễn người dùng hệ thống Vai trò biễu diễn vai trò người dùng giả định Đối tượng liệu biểu diễn liệu mà người dùng mong muốn truy cập Chú ý người dùng có nhiều mối quan hệ với quyền quyền có nhiều mối quan hệ với đối tượng liệu 16 Mẫu giúp giảm khối lượng công việc cho người quản lý người dùng đơn giản hóa mơ hình an ninh, có nhiều người sử dụng so với vai trị người dùng làm cho ứng dụng sử dụng dễ dàng Khi người dùng muốn đăng nhập vào hệ thống liệu, người dùng có quyền hạn vai trị định gán quyền, class permissison cho phép người dùng đăng nhập vào hệ thống liệu Vì vậy, mơ hình cho an toàn áp dụng vào xây dựng hệ thống Ưu điểm: • Sử dụng cách tiếp cận này, quyền vai trò xác định theo nhiệm vụ chúng • Ngun tắc “đặc quyền nhất” hỗ trợ trực tiếp • Cách tiếp cận cho phép hệ thống độc lập • Dễ dàng trì định đặc quyền cho người dùng riêng biệt • Các vai trị làm giảm phức tạp quyền truy cập quản trị Hạn chế: • Nếu người dùng có đặc quyền cá nhân, yêu cầu vai trò cho người dùng, điều làm cho trở nên phức tạp vơ ích • Cần phải có chế khác để thực thi nguyên tắc "tách biệt nhiệm vụ", khơng, xung đột xảy người yêu cầu đặc quyền người cấp đặc quyền Ví dụ u cầu ngân sách người định ngân sách công ty, cách tự cấp thêm ngân sách mức lương cao mà không cần người khác kiểm sốt 2.2.5 Phiên an tồn Mục đích: Thay xác thực lại người dùng cho chức hệ thống, giải pháp thực để theo dõi thông tin hoạt động người dùng cung cấp cho hệ thống mà không cần chuyển quyền truy cập hay xác thực lại người dùng Nó tạo đối tượng phiên liên kết với người dùng quy trình người dùng truy cập vào hệ thống Vấn đề: Nhiều thành phần, hoạt động thay mặt cho người dùng quy trình, yêu cầu quyền truy cập vào giá trị bảo mật chia sẻ người dùng Làm để tránh xác thực lặp lại yêu cầu giá trị? 17 • Cung cấp quyền truy cập vào biến toàn cục phân biệt cho cá nhân người dùng • Các giá trị chia sẻ thay đổi theo thời gian • Nhiều ứng dụng sử dụng giá trị khác thay đổi chúng • Chuyển tất giá trị vào làm chậm hiệu suất • Việc hỏi người dùng liên tục giá trị gây khó chịu cho người dùng giảm đáng kể mức độ chấp nhận hệ thống Giải pháp: Tạo đối tượng phiên chứa liệu liên quan đến người dùng cần chia sẻ nhiều đối tượng Đối tượng phiên liên kết với hành động người dùng, ngầm hiểu liên kết với hành động qua kết nối người dùng, chẳng hạn bên hoạt động hệ thống rõ ràng với số nhận dạng, ví dụ: phiên cookie Ngồi ra, phiên đối tượng sử dụng để cung cấp nhớ giới hạn cho chức hệ thống khác, lưu trữ liệu định, ví dụ: giỏ hàng cửa hàng trực tuyến Hình 2.4 cho thấy sơ đồ bối cảnh phác thảo việc sử dụng PHIÊN AN TỒN Hình 2.4 Sơ đồ phác thảo việc sử dụng PHIÊN AN TOÀN Hậu áp dụng giải pháp này, cần xem xét vấn đề sau: 18 • Đối tượng phiên cung cấp nơi với giao diện chung để giữ tất liệu người dùng liên quan đến bảo mật • Một đối tượng truyền xung quanh thay nhiều giá trị khác • Thay đổi giá trị phiên phổ biến đơn giản có nơi tất đối tượng khác nhìn vào • Các biến chia sẻ lưu trữ dễ dàng cách chuyển chúng vào đối tượng phiên Các vấn đề cần giải quyết: • Nếu đối tượng phiên trở nên lớn nhiều người dùng đồng thời sử dụng hệ thống, hiệu suất hệ thống bị giới hạn Do đó, điều quan trọng khơng lưu trữ thông tin không cần thiết đối tượng phiên Ngồi ra, cân nhắc thời gian chờ phiên thực Manager Trong hệ thống phân tán, số nhận dạng phiên bị công bị sử dụng kẻ mạo danh • Nếu đối tượng phiên lưu trữ phía máy khách, cookie cần mã hóa xác thực để tránh liệu bị xâm phạm Nếu hệ thống cho phép, lưu trữ đối tượng phiên phía máy chủ lưu trữ số nhận dạng phiên cookie, giải pháp 2.3 Secure logger Mục đích: Một số cơng sử dụng nhật ký hệ thống để tiết lộ thông tin hữu ích hệ thống Mẫu ngăn kẻ công thu thập thông tin che giấu hành động cách chỉnh sửa nhật ký Bối cảnh: Mọi nơi sử dụng nhật ký hệ thống hình thức ghi nhật ký khác, ví dụ: cho kế tốn Thơng tin nhật ký hệ thống nguy hiểm kẻ công truy cập vào Ngồi ghi log an tồn hữu ích nhật ký sử dụng để phát chẩn đốn cơng vào hệ thống Vấn đề đặt ra: Để phát công chẩn đốn lỗi hệ thống, thơng tin chi tiết đăng nhập Thơng tin hữu ích cho kẻ công kẻ công muốn xóa số thơng tin để che giấu công Nhật ký hệ thống tĩnh yêu cầu để phát điều tra công để gỡ xử lý lỗi xảy lỗi hệ thống 19 Yêu cầu: • Các ghi chi tiết, chúng hữu ích cho việc xử lý lỗi điều tra xâm nhập, chúng có giá trị kẻ cơng • Nhật ký chi tiết có ảnh hưởng đến hiệu suất Giải pháp: Ghi log an tồn mơ tả giải pháp ứng dụng nhật ký tách biệt cách ly với Việc ghi log phải thực trình ứng dụng tạo liệu Dữ liệu chuyển đến ghi log an toàn Hệ thống ghi log an tồn xử lý thơng tin ghi nhật ký theo cách mà thực khó, khơng muốn nói khơng thể để kẻ xâm nhập truy cập vào thơng tin ghi nhật ký Ngồi ra, có “Log-Reader” Điều cần thiết liệu ghi nhật ký lưu trữ bảo vệ việc đọc phép chế đọc cụ thể Đọc nhật ký phần Secure logger Kết quả: Khi áp dụng giải pháp này, cần xem xét lợi ích sau: • Hệ thống ghi nhật ký, Secure logger đặt máy chủ từ xa, ngăn ngừa hiệu suất hệ thống ứng dụng làm cho việc kẻ công để có quyền truy cập vào hệ thống ghi nhật ký • Sự lập hệ thống ghi nhật ký cho phép thêm bước phòng thủ, sau nguyên tắc "Phịng thủ theo chiều sâu" • Kẻ xâm nhập có quyền truy cập vào liệu nhật ký có khả hiển thị hạn chế nội dung liệu • Việc sửa đổi liệu nhật ký phát người dùng ủy quyền 2.4 An toàn Client-Server 2.4.1 Khu vực phi quân Mục đích: Các ứng dụng dịch vụ web phải dễ dàng truy cập khách hàng Ngoài ra, hệ thống truy cập qua internet mục tiêu công, xâm nhập hệ thống đánh cắp liệu Phương pháp tiếp cận KHU VỰC PHI QUÂN SỰ tách biệt máy chủ web với máy nghiệp vụ khác hệ thống cách thiết lập hệ thống hai vùng, ngăn cách tường lửa 20 Vấn đề: Các máy chủ ứng dụng, đặc biệt máy chủ sử dụng qua internet, có khả bị kẻ công xâm nhập Bảo vệ hệ thống cần thiết, làm điều thực hiện? Yêu cầu: • Chi phí giải pháp bảo mật phải tương ứng với chi phí thiệt hại xảy kẻ công thực thành công: đánh cắp liệu, xâm phạm liệu làm cho hệ thống khơng khả dụng • Cải tiến bảo mật phải cân với tác động khả sử dụng hệ thống cải tiến bảo mật Khả sử dụng hệ thống ảnh hưởng trực tiếp đến chấp nhận người dùng quan trọng hầu hết hệ thống Cần phải đánh đổi tính bảo mật khả sử dụng Giải pháp: Tách logic nghiệp vụ máy chủ ứng dụng khỏi máy chủ cung cấp chức dựa web cho người dùng Để đạt điều này, cần thiết lập khu vực riêng biệt, bao quanh tường lửa Khu vực phi quân truy cập từ internet tất liên lạc internet lọc tường lửa Trong khu vực máy chủ web, cung cấp nội dung web nhạy cảm chức người dùng trực tiếp Đằng sau tường lửa thứ hai, gọi vùng ứng dụng nơi chứa máy chủ ứng dụng, chức kinh doanh Vùng truy cập trực tiếp từ web mà từ Web-Server Ở vậy, tất thông tin liên lạc lọc Ví dụ: Trong hình 2.5, cấu trúc DMZ hiển thị Như mô tả, máy chủ web bao quanh hai tường lửa Trong tường lửa bảo vệ máy chủ web khỏi mạng khơng tin cậy, tường lửa cố gắng đảm bảo có lưu lượng truy cập hợp lệ từ máy chủ web đến máy chủ ứng dụng 21 Hình 2.5 Khu vực DMZ Lợi ích: • Bảo mật cải thiện cách giảm thiểu bề mặt cơng: chức hệ thống truy cập trực tiếp từ web lọc hiệu • Có thể dễ dàng thay đổi mức độ bảo mật cách thiết lập nhiều vùng riêng biệt Điều hỗ trợ nguyên tắc "Phòng thủ theo chiều sâu" • Các server/ host cấu hình để phù hợp với xác nhu cầu chúng khơng cần phải cấu hình để phù hợp với tất chức Điều làm giảm độ phức tạp cho máy chủ lưu trữ đơn lẻ Hạn chế: • Tính khả dụng: Tường lửa trở thành điểm lỗi Nếu tường lửa bị gỡ xuống (bởi cơng) tất máy chủ ứng dụng khơng thể truy cập từ bên ngồi • Khả quản lý: việc quản lý máy chủ ứng dụng khó khăn truy cập từ bên ngồi truy cập từ mạng nội khó • Chi phí: thường u cầu phần cứng mới, thường phải mua phần mềm Ngoài chi phí thực bảo trì tăng lên • Hiệu suất: Việc tăng khả lọc nhiều bước nhảy qua mạng có tác động đến hiệu suất 22 2.4.2 Mã hóa thơng tin Mục đích: Khơng có hệ thống an tồn 100% Kẻ cơng cách truy cập vào hệ thống liệu Do đó, thơng tin nhạy cảm liệu cần bảo vệ Mẫu trình bày giải pháp để bảo vệ liệu cách mã hóa Bối cảnh: Ứng dụng web sử dụng liệu nhạy cảm, chẳng hạn thông tin đăng nhập người dùng cho chức Ứng dụng thu thập lưu trữ thông tin nhạy cảm khác người dùng Vấn đề: Làm đảm bảo liệu nhạy cảm thu thập ứng dụng hệ thống bảo vệ khỏi kẻ xâm nhập trái phép? Yêu cầu: - Dữ liệu nhạy cảm cần bảo vệ phải truy cập có sẵn cho ứng dụng - Mã hóa giải mã ảnh hưởng đến hiệu suất phải sử dụng cẩn thận trường hợp lượng liệu lớn số lượng lớn truy cập vào hệ thống - Mã hóa liệu nhạy cảm chưa đủ, khóa mã hóa phải bảo vệ Hình 2.6 Mẫu mã hóa thơng tin Giải pháp: Dữ liệu phân loại theo độ nhạy chúng Dữ liệu nhạy cảm mã hóa, mật người dùng thơng tin thẻ tín dụng phần khơng nhạy cảm khơng mã hóa Ngồi ra, khóa mã hóa cần bảo vệ Ví dụ: Như hình 2.6 gồm có: 23 - Khóa mã hóa (để mã hóa giải mã) - Cơ chế lưu trữ phân phối khóa - Một thuật tốn chế mã hóa - Các thành phần ứng dụng để lấy sử dụng mã hóa liệu nhạy cảm - Vị trí để lưu khóa mã hóa Bản thân vị trí phải bảo vệ Lợi ích: - Nếu kẻ công xâm nhập vào hệ thống liệu không đọc liệu mã hóa - Nếu mã hóa lượng nhỏ liệu nhạy cảm, tác động đến hiệu suất giảm thiểu Hạn chế: - Hiệu suất máy tính bị ảnh hưởng mã hóa số lượng lớn liệu - Chi phí phát triển tăng lên ứng dụng đơn giản sử dụng chế hệ thống môi trường cung cấp - Vấn đề xử lý khóa mã hóa Một số chế giúp giải vấn đề sử dụng số chế lưu trữ khóa khóa phần cứng Sau đó, vấn đề chuyển sang câu hỏi đủ điều kiện sử dụng khóa làm để xác minh ủy quyền? 2.4.3 Proxy trung gian Mục đích: bảo vệ ứng dụng web khỏi cơng xảy cần thiết, đặc biệt ứng dụng có quyền truy cập chứa liệu kinh doanh người dùng hợp lý có tính chất kinh doanh quan trọng theo cách khác Về bản, Integration Reverse Proxy cung cấp giao diện cho tất máy khách bên ngồi Ngồi cung cấp số tính như: xử lý chứng chỉ, nhớ đệm cân tải Vấn đề: Làm quản lý tính qn với bên ngồi có nhiều máy chủ ứng dụng thay đổi cấu trúc liên kết? Ngồi ra, cần có linh hoạt cấu trúc liên kết mạng Thêm vào đó, chiến lược dự phòng cân tải cần quan tâm Giải pháp: INTEGRATION REVERSE PROXY tích hợp tất máy chủ ứng dụng web phía sau URL Điều cho phép ánh xạ chủ động đường dẫn URL tới máy chủ ứng dụng proxy Nếu cấu trúc liên kết mạng 24 thay đổi, ánh xạ đường dẫn thay đổi mà khơng ảnh hưởng đến người dùng vào ứng dụng từ bên ngồi Ngồi ra, chứng SSL triển khai INTEGRATION REVERSE PROXY giúp đảm bảo kết nối người dùng proxy Hình 2.7 Sơ đồ triển khai Integration Reverse Proxy Ưu điểm: - Integration Reverse Proxy tích hợp tất máy chủ ứng dụng phía sau URL Điều cho phép ánh xạ chủ động đường dẫn URL tới máy chủ ứng dụng proxy Nếu cấu trúc mạng thay đổi, ánh xạ đường dẫn thay đổi mà khơng ảnh hưởng đến người dùng vào ứng dụng từ bên ngồi - Chứng SSL triển khai giúp nâng cao an toàn cho kết nối người dùng proxy Do đó, máy chủ sử dụng làm điểm triển khai cho Secure Channels mơ hình Known Partners Chỉ cần chứng cho máy chủ Proxy thay ứng dụng cần chứng tiết kiệm chi phí - Cho phép ghi nhật ký truy cập tập trung proxy Dễ dàng quản lý Hạn chế: - Nếu máy chủ Integration Reverse Proxy gặp cố tồn dịch vụ máy chủ sau khơng cịn khả dụng - Việc kiểm tra luồng ứng dụng đơn lẻ khó khăn 25 - Tăng độ phức tạp mơ hình mạng thêm thành phần cần vận hành, trì 2.4.4 Đường truyền an tồn Mục đích: hướng đến đảm bảo tính tồn vẹn bí mật liệu truyền qua mạng khơng đáng tin cậy cách mã hóa gói tin bảo mật kênh truyền Vấn đề: Làm cách gửi liệu cách an tồn qua mạng khơng tin cậy để đảm bảo tính bảo mật tính tồn vẹn? Giải pháp: Để bảo mật cho liệu nhạy cảm, trước tiên hai bên thực trao đổi khóa mã hóa Thơng tin nhạy cảm sau mã hóa giải mã khóa trao đổi Để giảm chi phí hiệu suất, nên chia nhỏ thông tin nhạy cảm không nhạy cảm mã hóa thơng tin nhạy cảm Ưu điểm: - Bảo mật cải thiện liệu nhạy cảm mã hóa kẻ cơng chặn bắt liệu khơng sử dụng - Việc áp dụng linh hoạt lựa chọn cho liệu nhạy cảm, cịn liệu khơng nhạy cảm khơng cần mã hóa để tối ưu hóa chi phí - Hầu hết hệ thống/ phần mềm hỗ trợ triển khai theo hướng Nhược điểm: - Chi phí thiết lập bảo trì tăng lên Có thể yêu cầu phần cứng mua quản lý chứng cần thiết - Khi có cố xảy quy trình xử lý phức tạp thông thường - Việc triển khai mã hóa tác động đến hiệu suất máy chủ máy khách, đặc biệt phía máy chủ 26 TÀI LIỆU THAM KHẢO [1] [2] [3] Gamma, E., Design patterns: elements of reusable object-oriented software, 1995 Chad Dougherty, Secure Design Pattern, March 2009 Eduardo B Fernandez, A pattern language for security models, 2001 27 ... đóng gói kinh nghiệm ngưòi trước hiệu thực hành Năm 1994 hội nghị PloP (Pattern Language of Programming Design) tổ chức Cũng năm sách Design patterns: Elements of Reusable Object Oriented Software. .. mềm Design Patterns[ 1] mẫu thiết kế lập trình viên sử dụng rộng rãi Mỗi mẫu "Design Patterns" giải pháp giải tốt cho lập trình viên trường hợp định Để làm giảm rủi ro, thời gian cơng sức design. .. PKI DMZ Cụm từ đầy đủ Pattern Language of Programming Design Gang of Four Secure Sockets Layer Application Programming Interface Public Key Infrastructure Demilitarized Zone DANH MỤC HÌNH VẼ

Ngày đăng: 21/10/2021, 10:11

Hình ảnh liên quan

Hình 2.1. Mẫu xác thực - Security design patterns in software engineering

Hình 2.1..

Mẫu xác thực Xem tại trang 18 của tài liệu.
Hình 2.2. Mẫu giới hạn truy cập Giải pháp: - Security design patterns in software engineering

Hình 2.2..

Mẫu giới hạn truy cập Giải pháp: Xem tại trang 20 của tài liệu.
Hình 2.3. Mẫu điều khiển truy cập dựa trên vai trò cơ sở - Security design patterns in software engineering

Hình 2.3..

Mẫu điều khiển truy cập dựa trên vai trò cơ sở Xem tại trang 21 của tài liệu.
Hình 2.4 cho thấy một sơ đồ bối cảnh phác thảo việc sử dụng PHIÊN AN TOÀN  - Security design patterns in software engineering

Hình 2.4.

cho thấy một sơ đồ bối cảnh phác thảo việc sử dụng PHIÊN AN TOÀN Xem tại trang 23 của tài liệu.
Hình 2.5. Khu vực DMZ Lợi ích: - Security design patterns in software engineering

Hình 2.5..

Khu vực DMZ Lợi ích: Xem tại trang 27 của tài liệu.
Hình 2.6. Mẫu mã hóa thông tin - Security design patterns in software engineering

Hình 2.6..

Mẫu mã hóa thông tin Xem tại trang 28 của tài liệu.
Hình 2.7. Sơ đồ triển khai Integration Reverse Proxy Ưu điểm:  - Security design patterns in software engineering

Hình 2.7..

Sơ đồ triển khai Integration Reverse Proxy Ưu điểm: Xem tại trang 30 của tài liệu.

Mục lục

    DANH MỤC TỪ VIẾT TẮT

    DANH MỤC HÌNH VẼ

    CHƯƠNG 1: TỔNG QUAN VỀ MẪU THIẾT KẾ PHẦN MỀM

    1.1.1. Khái niệm mẫu thiết kế phần mềm

    1.1.2. Lịch sử hình thành các mẫu thiết kế phần mềm

    1.3.1. Vai trò của các mẫu thiết kế phần mềm

    1.3.2. Lợi ích của các mẫu thiết kế phần mềm

    CHƯƠNG II: CÁC MẪU THIẾT KẾ PHẦN MỀM AN TOÀN

    2.2.3. Giới hạn truy cập

    2.2.4. Điều khiển truy cập dựa trên vai trò cơ sở

Tài liệu cùng người dùng

Tài liệu liên quan