Xây dựng ứng dụng web ASP.NET an toàn

66 502 1
Xây dựng ứng dụng web ASP.NET an toàn

Đ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

Xây dựng ứng dụng web ASP.NET an toàn

MỤC LỤC MỤC LỤC 1 HÌNH ẢNH 2 Chương 1 – AN TOÀN ỨNG DỤNG WEB .5 Chương 2 – AN TOÀN ỨNG DỤNG WEB XÂY DỰNG TRÊN .NET FRAMEWORK .9 Chương 3 – XÂY DỰNG ỨNG DỤNG ASP.NET AN TOÀN .34 Chương 4 – THIẾT KẾ DEMO .59 1 HÌNH ẢNH Hình 1: Các bước tấn công .7 Hình 2: Tiến trình mô hình hiểm hoạ .8 Hình 3: Role-based security 10 Hình 4: Code access security .12 Hình 5: Các security namespaces 13 Hình 6: Các mối đe doạ hàng đầu .14 Hình 7: Các thành phần dịch vụ trong một ứng dụng Enterprise Services tầng giữa .18 Hình 8: Enterprise Services threats 19 Hình 9: Các mối hiểm hoạ chính đối với dịch vụ Web .22 Hình 10: Kiến trúc bảo mật 35 Hình 11: Khoanh vùng web site .42 Hình 12: Mô hình hoá chức năng .59 Hình 13: Phân rã chức năng 60 Hình 14: Hệ thống 60 Hình 15: Cơ sở gây ô nhiễm .61 Hình 16: Quản lý hồ sơ .61 Hình 17: Quản lý người dùng 62 Hình 18: Quản lý dữ liệu tĩnh cấp cục 63 Hinh 19: Thống kê báo cáo 63 2 LỜI CẢM ƠN Em xin cảm ơn các thầy cô trong khoa Công nghệ Thông tin trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội, đặc biệt là các thầy cô ở bộ môn Mạng và truyền thông đã giúp đỡ chúng em trưởng thành trong những năm học tập tu dưỡng. Em bày tỏ lòng biết ơn đối với PGS – TS Hồ Sỹ Đàm là người đã nhiệt tình hướng dẫn giúp đỡ em, chỉ bảo tận tình, cùng với sự động viên và giúp em vượt qua nhiều khó khăn trong quá trình hoàn thành bản khoá luận này. Khóa luận tốt nghiệp được thực hiện trong khuôn khổ của đề tài: “Tăng cường an ninh cho các ứng dụng trên nền .NET” Cuối cùng em xin gửi lời cảm ơn tới tất cả các bạn bè, gia đình đã động viên em trong quá trình học tập và làm khoá luận tốt nghiệp. Hà Nội, tháng 5 năm 2006 Sinh viên Đặng Hữu Thành 3 LỜI NÓI ĐẦU Hiện nay công nghệ .NET của Microsoft được sử dụng rất rộng rãi trong việc xây dựng các ứng dụng sử dụng trong thực tế. Bên cạnh việc xây dựng ứng dụng thì vấn đề an toàn của một ứng dụng là rất quan trọng, đặc biệt là trong các ứng dụng thương mại điện tử như bán hàng qua mạng, thực hiện chuyển tiền vào tài khoản qua mạng,… .NET Framework cung cấp cho ta rất nhiều thư viện dùng để tăng cường an ninh cho ứng dụng. Khoá luận này trình bày khả năng tăng cường an ninh cho các ứng dụng xây dựng trên nền .NET Framework và đặc biệt tập trung vào các ứng dụng Web. Khoá luận gồm 4 chương: Chương 1. An toàn ứng dụng Web. Trình bày tổng quan về an toàn ứng dụng web. Chương 2. An toàn ứng dụng Web xây dựng trên nền .NET Framework. Trình bày tổng quan về an toàn ứng dụng Web xây dựng trên nền .NET Framework, các kỹ thuật chính và các thư viện dùng để tăng cường an ninh. Chương 3. Xây dựng ứng dụng Web ASP.NET an toàn Nghiên cứu cụ thể về an toàn ứng dụng Web ASP.NET. Xây dựng các gói assemblies, các thành phần dịch vụ, các dịch vụ Web, các trang và các điều khiển an toàn. Các kiểu tấn công phổ biến và biện pháp phòng chống hữu hiệu. Chương 4. Thiết kế demo. Tăng cường an ninh cho web site của Cục bảo vệ tài nguyên môi trường 4 Chương 1 – AN TOÀN ỨNG DỤNG WEB 1.1. Các vấn đề cơ bản về an toàn ứng dụng Web. Khi ta nghe nói về an toàn ứng dụng Web, có một khuynh hướng ngay lập tức nghĩ về các kẻ tấn công làm hỏng Web site, ăn cắp các số credit card, và ném bom các Web site với các kiểu tấn công từ chối dịch vụ. Ta cũng có thể nghĩ về virus, Trojan horses, và worms. Đây là những vấn đề rắc rối được quan tâm nhất vì chúng đại diện cho một số các hiểm hoạ đáng quan tâm nhất mà các ứng dụng Web ngày nay phải đối mặt. An toàn về cơ bản là việc bảo vệ các tài nguyên quan trọng. Các tài nguyên này có thể là những thứ có thể sờ thấy được như trang Web hoặc cơ sở dữ liệu hoặc có thể là những thữ không sờ thấy được như danh tiếng của một công ty. An toàn là một con đường không có đích. Mỗi khi phân tích kiến trúc và ứng dụng, ta xác định các hiểm hoạ tiềm tàng và hiểu rằng mỗi hiểm hoạ đại diện cho một mức độ rắc rối.Vấn đề an toàn chính là việc quản lý rắc rối và việc thực thi các biện pháp phòng chống hữu ích. Các vấn đề cơ bản:  Xác thực Xác thực trả lời câu hỏi: bạn là ai? Nó là một tiến trình nhận dạng các client của các ứng dụng và các dịch vụ. Đó có thể là người dùng cuối, các dịch vụ, các tiến trình, hoặc là các máy tính. Theo cách nói về an toàn thì các client được xác thực được đề cập tới như là principals  Chứng thực Chứng thực trả lời câu hỏi: bạn có thể làm gì? Đó là một tiến trình quản lý các tài nguyên và các hoạt động mà client đã được xác thực được cấp quyền truy cập. Các tài nguyên bao gồm các tệp, cơ sở dữ liệu, các bảng, hàng, vv…cùng với các tài nguyên mức hệ thống như dữ liệu cấu hình. Các hoạt động bao gồm việc thực thi các giao tác, bán một sản phẩm, chuyển tiền từ một tài khoản sang một tài khoản khác, vv…  Kiểm tra 5 Kiểm tra và ghi lại là điểm chính để không từ chối. Không từ chối đảm bảo rằng một người dùng không thể từ chối việc thực thi một hoạt động hay việc khởi tạo một giao tác. Ví dụ trong một hệ thống thương mại điện tử, kỹ thuật không từ chối được yêu cầu để đảm bảo rằng một người dùng không thể từ chối việc đặt 100 quyển sách.  Sự tin cậy Sự cẩn mật cũng được đề cập tới như là privacy, là một tiến tình đảm bảo rằng dữ liệu vẫn riêng tư và tin cậy và không thể được xem bởi những người dùng không được chứng thực hoặc bởi những kẻ nghe lén mạng ( người quản lý giao thông mạng). Mã hoá thường được dùng để đảm bảo sự tin cậy. ACL đôi cũng là một phương tiện cho mục đích này  Sự toàn vẹn Toàn vẹn đảm bảo rằng dữ liệu được bảo vệ khỏi việc chỉnh xửa vô tình hay cố ý. Sự riêng tư và sự toàn vẹn là vấn đề quan tâm chính, đặc biệt là với dữ liệu truyền qua mạng. Về cơ bản ta có thể sử dụng kỹ thuật băm và MAC để đảm bảo sự toàn vẹn.  Sự sẵn sàng Nghĩa là hệ thống vẫn sẵn sàng với những người dùng hợp pháp. Nhiều kẻ tấn công sử dụng các hành động tấn công từ chối dịch vụ để phá hỏng một ứng dụng để người dùng khác không thể truy cập ứng dụng. Ta không thể thiết kế và xây dựng một ứng dụng Web an toàn cho tới khi ta biết các hiểm hoạ. Một qui tắc quan trọng để xác định mẫu thiết kế ứng dụng đó là việc mô hình hiểm hoạ. Mục đích của việc mô hình hiểm hiểm hoạ là để phân tích kiến trúc của ứng dụng, thiết kế và xác định các vùng yếu tiềm tàng có thể cho phép một người dùng hoặc một kẻ tấn công với ý đồ xấu làm hại tới sự an toàn của hệ thống. Việc thiết kế và phát triển phần mềm ứng dụng cần được hỗ trợ bởi việc cấu hình an toàn mạng, máy chủ và ứng dụng trên máy chủ nơi ứng dụng được phát hành. 1.2. Thuật tấn công Các bước trong phương pháp tấn công thể hiện ở hình dưới đây. 6 Hình 1: Các bước tấn công.  Khảo sát và đánh giá  Khám phá và thâm nhập  Vượt quyền  Duy trì kết nối  Từ chối dịch vụ 1.3. Mô hình hiểm họa Mô hình hiểm hoạ nên được sử dụng trong suốt quá trình thiết kế ứng dụng cũng như trong suốt vòng đời của ứng dụng. Có hai lý do để làm như vậy. Thứ nhất, không thể xác định toàn bộ hiểm hoạ có thể xảy ra. Thứ hai, vì các ứng dụng hiếm khi tĩnh và cần nâng cấp và sửa lại cho phù hợp với sự thay đổi các yêu cầu nghiệp vụ. 7 Hình 2: Tiến trình mô hình hiểm hoạ  Xác định các tài nguyên có giá trị  Lập một kiến trúc tổng quan bao gồm các hệ thống con, các rào cản tin cậy, và dòng chảy dữ liệu  Phân tích ứng kiến trúc của ứng dụng, bao gồm hạ tần mạng và máy chủ, tạo một chiến lược an toàn cho ứng dụng. Mục tiêu của chiến lược này là để nhận ra các điểm yếu trong thiết kế, thi hành hoặc cấu hình phát hành của ứng dụng.  Xác định các hiểm hoạ có thể ảnh hưởng tới ứng dụng.  Lập tài liệu các hiểm hoạ  Đánh giá các hiểm hoạ để chỉ ra hiểm hoạ nguy hiểm nhất. 8 Chương 2 – AN TOÀN ỨNG DỤNG WEB XÂY DỰNG TRÊN .NET FRAMEWORK 2.1. Tổng quan về an toàn ứng dụng Web xây dựng trên .NET Framework. Microsoft .Net Framework cung cấp nhiều kỹ thuật và nhiều thư viện giúp chúng ta xây dựng mã và tạo các ứng dụng Web được an toàn. Các kỹ thuật chính được sử dụng là Role-based security và Code access security. 2.1.1. Role-Based Security Bảo mật dựa vào vai trong .NET Framework cho phép một ứng dụng Web tạo các quyết định bảo mật dựa theo đặc tính nhận dạng hoặc các vai thành viên của người dùng giao tác với ứng dụng. Nếu ứng dụng của chúng ta sử dụng xác thực Windows thì một vai là một nhóm Windows. Nếu ứng dụng của chúng ta sử dụng các dạng xác thực khác thì một vai là một ứng dụng được định nghĩa và người dùng và chi tiết vai được giữ trong SQL Server hay các nơi lưu trữ người dùng trong Active Directory. Đặc tính nhận dạng của người dùng được xác thực và tư cách vai thành viên được kết hợp của nó sẵn có cho các ứng dụng Web qua đối tượng Principal, đối tượng này được đính kèm vào yêu cầu Web hiện tại. Hình 3 cách sử dụng Role-based security trong ứng dụng Web để hạn chế người dùng truy cập tới các trang Web, mức nghiệp vụ, các hoạt động và dữ liệu. 9 Hình 3: Role-based security Role-based security trong .NET Framework là một công nghệ chính được dùng để chứng thực các hành động của người dùng trong một ứng dụng. Các vai thường được dùng để ép buộc các qui định về nghiệp vụ. Ví dụ: một chương trình tài chính có thể chỉ cho phép các nhà quản lý thực hiện chuyển một lượng tiền vượt quá một ngưỡng quy định. Role-based security bao gồm các yếu tố sau:  Principals và identities  PrincipalPermission object  Role-based security checks  URL authorization Principals and Identities Role-based security được thực thi với các đối tượng Principal và Identity. Đặc tính nhận dạng và vai thành viên của người dùng đã xác thực được phơi bày qua đối tượng Principal, đối tượng này được gắn kèm với yêu cầu Web hiện tại. Chúng ta có thể sử dụng thuộc tính HttpContext.Current.User để lấy thông tin về đối tượng. Nếu người dùng không được yêu cầu xác thực với ứng dụng chẳng hạn người dùng đang duyệt một phần có 10 [...]... các phương thức Web 32 GenericPrincipal user = User as GenericPrincipal; if (null != user) { if ( user.IsInRole(@"Manager") ) { // User được chứng thực để thực hiện chức năng manager } } 33 Chương 3 – XÂY DỰNG ỨNG DỤNG ASP.NET AN TOÀN 3.1 Mô hình bảo mật trong ASP.NET 3.1.1 Các công nghệ thực thi trong ASP.NET Bao gồm: ASP.NET ASP.NET được sử dụng để thực thi các dịch vụ người dùng ASP.NET cung cấp... Nếu triệu gọi một dịch vụ Web từ một ứng dụng Web ASP.NET thì mức độ tin cậy của ứng dụng Web xác định phạm vi của các dịch vụ Web mà nó có thể triệu gọi Ví dụ, một ứng dụng Web được cấu hình mặc định với độ tin cậy là Medium chỉ có thể triệu gọi các dịch vụ Web trên máy cục bộ 2.4.3 Các kỹ thuật với các vấn đề quan trọng nhất a Kiểm tra giá trị đầu vào Cũng như bất kỳ ứng dụng nào mà chấp nhận dữ liệu... Distributed Transaction Coordinator (DTC) f CAS Các ứng dụng sử dụng các thành phần dịch vụ hoàn toàn tin cậy và vì vậy CAS hạn chế sử dụng để chứng thực việc triệu gọi mã Tuy nhiên Enterprise Service yêu cầu rằng việc gọi mã có quyền cần thiết để gọi mã không được quản lý Sự liên quan chính của vấn đề này là ta không thể gọi trực tiếp một ứng dụng Enterprise Service từ một ứng dụng Web tin cậy một... thực mã dựa vào bằng chứng về mã chẳng hạn như: tên, nhà phân phối, thư mục cài đặt Còn việc chứng thực dựa vào các quyền truy cập mã 2.1.3 Các không gian tên để xây dựng an toàn các ứng dụng trong NET Framework Để lập trình bảo mật trong NET Framework, chúng ta sử dụng các loại không gian tên bảo mật trong NET Framework Các namespace dùng cho bảo mật:  System.Security 12  System .Web. Security  System.Security.Cryptography... được gửi tới một ứng dụng Web như là giá trị đầu vào Nó được trả về trình duyệt của người dùng  Buffer overflows Việc kiểm tra an toàn mã được quản lý giảm rắc rối một cách đáng kể, nhưng ứng dụng của ta vẫn có thể bị tấn công đặc biệt là nơi nó gọi mã không được quản lý Tràn bộ đệm có thể cho phép kẻ tấn công thực thi đoạn mã hợp pháp trong tiến trình của ứng dụng Web bằng cách sử dụng ngữ cảnh bảo... thực thi interface System.Security.Principal.IIdentity The following table shows the range of possible authentication types and the different types of Principal and Identity objects that ASP.NET Web applications use Bảng dưới đây là các loại xác thực và các loại đối tượng Principal và Identity mà ứng dụng web ASP.NET sử dụng Kiểu xác thực Loại Principal và Identity Windows WindowsPrincipal + WindowsIdentity... vụ Web (.asmx) hoặc ở mức phương thức web bằng việc sử dụng các yêu cầu quyền Principal b Thực thi tham số: Sự thực thi tham số đề cập tới sự chỉnh sửa dữ liệu không được chứng thực được gửi giữa người sử dụng dịch vụ web và dịch vụ web Ví dụ, một kẻ tấn công có thể chặn một thông báo dịch vụ web( khi thông báo truyền qua các nốt trung gian tới đích) và có thể chỉnh sủa nó trước khi gửi cho đích đang... gói mức logic nghiệp vụ và truy cập dữ liệu của ứng dụng và được dùng khi các dịch vụ hạ tầng như giao dịch phân tán, thu thập đối tượng, các thành phần hàng đợi, và các dịch vụ khác được yêu cầu ở tầng giữa của ứng dụng Các ứng dụng dịch vụ Enterprise Services thường nằm cạnh các server ứng dụng tầng giữa Hình 7: Các thành phần dịch vụ trong một ứng dụng Enterprise Services tầng giữa 2.3.1 Các mối... 8: Enterprise Services threats a Nghe lén mạng Các ứng dụng Enterprise Service thường chạy trên các server ứng dụng tầng giữa, từ Web server từ xa Vì vậy các dữ liệu nhạy cảm phải được bảo vệ tránh những kẻ nghe lén mạng Ta có thể sử dụng Internet Protocol Security (IPSec) để mã hoá kênh truyền giữa server Webứng dụng Giải pháp này thường được sử dụng tại các trung tâm dữ liệu Internet Các thành... ASP.NET cung cấp một kiến trúc có thể bổ xung mà có thể được dùng để xây dựng các trang Web Enterprise Services Cung cấp các dịch vụ mức hạ tầng để thực thi các ứng dụng Các dịch vụ này bao gồm các giao dịch phân tán và các dịch vụ quản lý tài nguyên Web Services Cho phép trao đổi dữ liệu và sự triệu gọi từ xa của ứng dụng bằng cách sử dụng các trao đổi thông báo SOAP để truyền dữ liệu qua Firewall và

Ngày đăng: 27/04/2013, 17:46

Hình ảnh liên quan

Hình 1: Các bước tấn công. - Xây dựng ứng dụng web ASP.NET an toàn

Hình 1.

Các bước tấn công Xem tại trang 7 của tài liệu.
Hình 2: Tiến trình mô hình hiểm hoạ  Xác định các tài nguyên có giá trị - Xây dựng ứng dụng web ASP.NET an toàn

Hình 2.

Tiến trình mô hình hiểm hoạ  Xác định các tài nguyên có giá trị Xem tại trang 8 của tài liệu.
Hình 3: Role-based security - Xây dựng ứng dụng web ASP.NET an toàn

Hình 3.

Role-based security Xem tại trang 10 của tài liệu.
Bảng dưới đây là các loại xác thực và các loại đối tượng Principal và Identity mà ứng dụng web ASP.NET sử dụng. - Xây dựng ứng dụng web ASP.NET an toàn

Bảng d.

ưới đây là các loại xác thực và các loại đối tượng Principal và Identity mà ứng dụng web ASP.NET sử dụng Xem tại trang 11 của tài liệu.
Hình 4 minh hoạ hoạt động logic của code access security - Xây dựng ứng dụng web ASP.NET an toàn

Hình 4.

minh hoạ hoạt động logic của code access security Xem tại trang 12 của tài liệu.
Hình 5: Các security namespaces - Xây dựng ứng dụng web ASP.NET an toàn

Hình 5.

Các security namespaces Xem tại trang 13 của tài liệu.
Hình 6: Các mối đe doạ hàng đầu - Xây dựng ứng dụng web ASP.NET an toàn

Hình 6.

Các mối đe doạ hàng đầu Xem tại trang 14 của tài liệu.
Hình 7: Các thành phần dịch vụ trong một ứng dụng EnterpriseServices tầng giữa. - Xây dựng ứng dụng web ASP.NET an toàn

Hình 7.

Các thành phần dịch vụ trong một ứng dụng EnterpriseServices tầng giữa Xem tại trang 18 của tài liệu.
Phơi bày dữ liệu cấu hình. Sự từ chối. - Xây dựng ứng dụng web ASP.NET an toàn

h.

ơi bày dữ liệu cấu hình. Sự từ chối Xem tại trang 19 của tài liệu.
Phơi bày dữ liệu cấu hình  Lặp lại thông báo - Xây dựng ứng dụng web ASP.NET an toàn

h.

ơi bày dữ liệu cấu hình  Lặp lại thông báo Xem tại trang 22 của tài liệu.
Hình dưới trình diễn mô hình tầng ứng dụng từ xa với tổ hợp của các dịch vụ bảo mật được cung cấp bởi rất nhiều các công nghệ như được giới thiệu ở trên - Xây dựng ứng dụng web ASP.NET an toàn

Hình d.

ưới trình diễn mô hình tầng ứng dụng từ xa với tổ hợp của các dịch vụ bảo mật được cung cấp bởi rất nhiều các công nghệ như được giới thiệu ở trên Xem tại trang 35 của tài liệu.
Hình 11: Khoanh vùng web site - Xây dựng ứng dụng web ASP.NET an toàn

Hình 11.

Khoanh vùng web site Xem tại trang 42 của tài liệu.
3.2.3. Các kỹ thuật với các hiểm hoạ điển hình - Xây dựng ứng dụng web ASP.NET an toàn

3.2.3..

Các kỹ thuật với các hiểm hoạ điển hình Xem tại trang 44 của tài liệu.
4.1.1. Mô hình hoá chức năng - Xây dựng ứng dụng web ASP.NET an toàn

4.1.1..

Mô hình hoá chức năng Xem tại trang 59 của tài liệu.
Hình 13: Phân rã chức năng - Xây dựng ứng dụng web ASP.NET an toàn

Hình 13.

Phân rã chức năng Xem tại trang 60 của tài liệu.
Hình 14: Hệ thống - Xây dựng ứng dụng web ASP.NET an toàn

Hình 14.

Hệ thống Xem tại trang 60 của tài liệu.
Hình 15: Cơ sở gây ô nhiễm - Xây dựng ứng dụng web ASP.NET an toàn

Hình 15.

Cơ sở gây ô nhiễm Xem tại trang 61 của tài liệu.
Hình 16: Quản lý hồ sơ - Xây dựng ứng dụng web ASP.NET an toàn

Hình 16.

Quản lý hồ sơ Xem tại trang 61 của tài liệu.
Hình 17: Quản lý người dùng - Xây dựng ứng dụng web ASP.NET an toàn

Hình 17.

Quản lý người dùng Xem tại trang 62 của tài liệu.
1.4 Quản lý người dùng - Xây dựng ứng dụng web ASP.NET an toàn

1.4.

Quản lý người dùng Xem tại trang 62 của tài liệu.
Hình 18: Quản lý dữ liệu tĩnh cấp cục - Xây dựng ứng dụng web ASP.NET an toàn

Hình 18.

Quản lý dữ liệu tĩnh cấp cục Xem tại trang 63 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan