Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
373,58 KB
Nội dung
1 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - Phạm Thị Thuý Quỳnh NGHIÊN CỨU CÁC PHƯƠNG PHÁP BẢO MẬT ỨNG DỤNG WEB XÂY DỰNG TRÊN MÔI TRƯỜNG NET FRAMEWORK Chuyên ngành: Truyền liệu mạng máy tính Mã số: 60.48.15 TÓM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI - 2012 Luận văn hoàn thành tại: HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG Người hướng dẫn khoa học: PGS.TS Nguyễn Linh Giang Phản biện 1: PGS.TS Trịnh Nhật Tiến Phản biện 2: PGS.TS Đào Thanh Tĩnh Luận văn bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Công nghệ Bưu Viễn thơng Vào lúc: 11 10 ngày 20 tháng 01 năm 2013 Có thể tìm hiểu luận văn tại: - Thư viện Học viện Công nghệ Bưu Viễn thơng MỞ ĐẦU Lý chọn đề tài Ngày với phát triển không ngừng Internet ta khơng thể phủ nhận lợi ích ứng dụng web: cho phép sử dụng đâu có dịch vụ, cập nhật hỗ trợ dễ dàng Tuy nhiên bên cạnh công, xâm nhập trái phép Internet gia tăng không ngừng Các công vào website ngày tinh vi Ngày công nghệ NET Microsoft sử dụng rộng rãi việc xây dựng ứng dụng sử dụng thực tế, vấn đề an toàn ứng dụng quan trọng, đặc biệt ứng dụng thương mại điện tử bán hàng qua mạng, thực chuyển tiền vào tài khoản qua mạng…và NET Framework cung cấp cho ta nhiều thư viện dùng để tăng cường an ninh cho ứng dụng Vì lý mà định chọn đề tài “ Nghiên cứu biện pháp bảo mật cho ứng dụng web xây dựng môi trường NET Framework” cho luận văn Mục đích nghiên cứu: Mục đích nghiên cứu luận văn tìm hiểu, phân tích lỗ hổng bảo mật ứng dụng web xây dựng Net Framework để qua đề xuất phương pháp bảo vệ, khắc phục lỗi ứng dụng xây dựng môi truờng Đối tượng phạm vi nghiên cứu: - Đối tượng nghiên cứu: ứng dụng web xây dựng môi trường NET - Phạm vi nghiên cứu: nghiên cứu cách tổng quát lỗ hổng bảo mật web biện pháp khắc phục Nghiên cứu kỹ thuật bảo mật Net Framework Phương pháp nghiên cứu: - Khảo sát thực tế: tìm hiểu số lượng người tham gia sử dụng ứng dụng web cụ thể - Các phương pháp phân tích, đánh giá - Dùng thực nghiệm để kiểm tra số biện pháp bảo mật ứng dụng web thường dùng - Thiết kế trực tiếp demo chương trình bảo mật cụ thể để rút nhận xét, kinh nghiệm 2 CHƯƠNG 1: TỔNG QUAN 1.1 Ứng dụng web Là ứng dụng chủ/ khách sử dụng giao thức HTTP để tương tác với người dùng hay hệ thống khác Một ứng dụng web thường có kiến trúc gồm: Lớp trình bày: lớp có nhiệm vụ hiển thị liệu cho người dùng, ngồi cịn có thêm ứng dụng tạo bố cục cho trang web Lớp ứng dụng: nơi xử lý ứng dụng Web Nó xử lý thơng tin người dùng yêu cầu, đưa định, gửi kết đến “lớp trình bày” Lớp thường cài đặt kỹ thuật lập trình CGI, Java, NET, PHP hay ColdFusion, triển khai trình chủ IBM WebSphere, WebLogic, Apache, IIS… Lớp liệu: thường hệ quản trị liệu (DBMS) chịu trách nhiệm quản lý file liệu quyền sử dụng 1.2 Mơ hình hiểm hoạ Nói đến hiểm hoạ ứng dụng web ta nên sử dụng cụm từ mô hình hiểm hoạ mơ hình nên sử dụng suốt q trình thiết kế vịng đời ứng dụng Vấn đề bảo mật ứng dụng web việc quản lý rắc rối thực thi biện pháp phịng chống hữu ích Các vấn đề gồm: xác thực, chứng thực, kiểm tra, tính tin cậy, tính tồn vẹn, tính sẵn sàng 1.3 Các lỗ hổng bảo mật Các lỗ hổng bảo mật điểm yếu hệ thống ẩn chứa dịch vụ mà dựa vào kẻ cơng xâm nhập trái phép để thực hành động phá hoại chiếm đoạt tài nguyên bất hợp pháp Nguyên nhân gây lỗ hổng bảo mật khác nhau: lỗi thân hệ thống, phần mềm cung cấp người quản trị yếu không hiểu sâu sắc dịch vụ cung cấp… Mức độ ảnh hưởng lỗ hổng khác Có lỗ hổng ảnh hưởng tới chất lượng dịch vụ cung cấp, có lỗ hổng ảnh hưởng nghiêm trọng tới toàn hệ thống… CHƯƠNG 2: BẢO MẬT ỨNG DỤNG WEB 2.1 Bảo mật ứng dụng web Về việc bảo vệ tài nguyên quan trọng web Chúng ta cần quan tâm đến việc quản lý rắc rối thực biện pháp phòng chống hữu ích Các vấn đề bản: xác thực, chứng thực, kiểm tra, tính tin cậy, tính tồn vẹn, tính sẵn sàng 2.2 Thuật công Trong số kỹ thuật cơng điển hình gồm bước chính: Khảo sát đánh giá Khám phá thâm nhập Vượt quyền Duy trì kết nối Từ chối dịch vụ Một số kỹ thuật cơng cách bảo vệ Kiểm sốt truy cập web Chiếm hữu phiên làm việc Lợi dụng thiếu sót nhập liệu Để lộ thông tin Chiếm hữu dịch vụ 2.3 Bảo vệ ứng dụng web Net Framework Hiện ứng dụng web xây dựng môi trường Net Framework nhiều sử dụng rộng rãi Vì việc bảo vệ an toàn cho ứng dụng web cần thiết Microsoft Net Framework cung cấp nhiều kỹ thuật nhiều thư viện giúp xây dựng mã tạo ứng dụng Web an tồn Các kỹ thuật sử dụng Role-based security Code access security 4 2.3.1 Role-based security Bảo mật Role based NET Framework cho phép ứng dụng Web tạo định bảo mật dựa theo đặc tính nhận dạng vai thành viên người dùng giao tác với ứng dụng Nếu ứng dụng sử dụng xác thực Windows vai nhóm Windows Nếu ứng dụng sử dụng dạng xác thực khác vai ứng dụng định nghĩa người dùng, chi tiết vai giữ SQL Server hay nơi lưu trữ người dùng Active Directory Role-based security bao gồm yếu tố sau: Principals identities PrincipalPermission object Role-based security checks URL authorization 2.3.2 Code access security Bảo mật truy nhập mã cấp quyền cho đoạn mã cố gắng truy cập tới tài nguyên bảo mật như: file system, registry, network,… cố gắng thực thi hoạt động đặc quyền khác như: gọi tới đoạn mã không quản lý sử dụng reflection 2.3.3 Các không gian tên xây dựng ứng dụng web an toàn Net Framework Để lập trình bảo mật NET Framework, sử dụng loại không gian tên bảo mật NET Framework Các namespace dùng cho bảo mật: System.Security System.Web.Security System.Security.Cryptography System.Security.Principal System.Security.Policy System.Security.Permissions 2.3.4 Xây dựng gói assembly an tồn 2.3.4.1 Hiểm hoạ biện pháp phòng chống: Hiểu mối đe doạ kiểu công chung giúp nhận phương án phòng chống tương ứng cho phép xây dựng gói assemblies an toàn vững Các mối đe doạ chính: Truy cập khơng chứng thực vượt quyền, hai Nhúng mã Phơi bày thông tin Làm xáo trộn thông tin 2.3.4.2 Các lưu ý thiết kế gói assembly Một vấn đề quan trọng thiết kế gói assembly mức độ tin cậy mơi trường mà gói assembly sử dụng Nó ảnh hưởng tới quyền bảo mật truy nhập mã cấp cho mã với mã gọi mã Điều xác định sách bảo mật truy nhập mã định nghĩa người quản trị ảnh hưởng tới loại tài nguyên mà mã cho phép để truy cập hoạt động đặc quyền khác thực thi Khi thiết kế gói assembly, ta nên: Xác định mã đặc quyền Xác định mức độ tin cậy mơi trường mà gói assembly thực thi Đóng gói mã đặc quyền cấp cao Thiết kế giao diện công cộng 2.3.4.3 Các lưu ý thiết kế lớp Hạn chế hiển thị lớp thành viên Che kín lớp sở chưa che đậy Hạn chế người dùng gọi mã Phơi bày trường cách sử dụng thuộc tính 6 2.4 Xây dựng thành phần dịch vụ an toàn Các dịch vụ COM+ biết Enterprise Services, truy cập từ mã quản lý Các ứng dụng Enterprise Services bao gồm hay nhiều thành phần dịch vụ, lớp quản lý dẫn xuất từ System EnterpriseServices Serviced Component 2.4.1 Các mối hiểm hoạ biện pháp phòng chống Các mối hiểm hoạ bao gồm: Truy cập trái phép Sự uỷ quyền không ràng buộc Phơi bày liệu cấu hình Sự từ chối 2.4.2 Các lưu ý thiết kế Bao gồm: Chứng thực dựa vào vai Bảo vệ liệu nhạy cảm Kiểm tra yêu cầu Kiểu kích hoạt ứng dụng Các giao tác Cas 2.5 Xây dựng dịch vụ web an toàn 2.5.1 Các mối hiểm hoạ biện pháp phòng chống: Các mối hiểm hoạ bao gồm: Truy cập khơng đựơc chứng thực Thực thi tham số Nghe mạng Phơi bày liệu cấu hình Lặp lại thông báo 2.5.2 Các lưu ý thiết kế Bao gồm: Yêu cầu xác thực Yêu cầu tính riêng tư tồn vẹn Các đặc tính truy nhập tài nguyên An toàn truy nhập mã 2.5.3 Một số vấn đề quan trọng kỹ thuật Kiểm tra giá trị đầu vào Xác thực Chứng thực Chứng thực phương thức Web CHƯƠNG 3: BẢO MẬT TRÊN ỨNG DỤNG ASP.NET 3.1 Các công nghệ thực thi ASP.NET ASP.NET ASP.NET sử dụng để thực thi dịch vụ người dùng ASP.NET cung cấp kiến trúc bổ xung mà dùng để xây dựng trang Web Enterprise Services Cung cấp dịch vụ mức hạ tầng để thực thi ứng dụng Các dịch vụ bao gồm giao dịch phân tán dịch vụ quản lý tài nguyên Web Services Cho phép trao đổi liệu triệu gọi từ xa ứng dụng cách sử dụng trao đổi thông báo SOAP để truyền liệu qua Firewall hệ thống hỗn hợp .NET Remoting Cung cấp khung làm việc cho việc truy cập đối tượng phân tán ADO.NET and Microsoft® SQL Server™ 2000 Cung cấp dịch vụ truy cập sở liệu Nó thiết kế cho ứng dụng web phân tán SQL Server cung cấp bảo mật tích hợp sử dụng kỹ thuật xác nhận hệ điều hành ( Kerberos NTML) Internet Protocol Security (IPSec) Cung cấp dịch vụ xác thực mã hoá mức giao vận Secure Sockets Layer (SSL) Cung cấp kênh giao tiếp an toàn Dữ liệu gửi qua kênh mã hoá 3.2 Các trang điều khiển Asp.Net an tồn Hầu hết vụ cơng u cầu đầu vào ác ý truyền qua với yêu cầu HTTP Mục đích chung ép buộc ứng dụng thực thi hoạt động không chứng thực phá vỡ hoạt động bình thường Điều giải thích việc kiểm tra giá trị đầu vào phương pháp phòng chống quan trọng với nhiều vụ công nên ưu tiên sử dụng phát triển trang điều khiển Web 9 3.2.1 Các hiểm hoạ biện pháp phòng chống Các hiểm hoạ hàng đầu: Nhúng mã Tấn cơng session Giả dạng đặc tính nhận dạng Thực thi tham số Nghe mạng Phơi bày thông tin 3.2.2 Các lưu ý thiết kế Kiểm tra đầu vào phía server Khoanh vùng Web site Xem xét đặc tính nhận dạng dùng để truy cập tài nguyên Bảo vệ thông tin đăng nhập thẻ xác thực Lỗi bảo mật Xem xét chứng thực tập trung Đặt điều khiển Web điều khiển người dùng gói assemblies riêng biệt 3.3 Một số kỹ thuật hiểm hoạ điển hình 3.3.1 Kiểm tra giá trị đầu vào 3.3.2 Cross-Site Scripting Các công XSS khám phá lỗ hổng kiểm tra trang Web cách nhúng đoạn mã từ phía client Đoạn mã sau gửi trở người dùng mà khơng nghi ngờ thực thi trình duyệt 10 3.3.3 Xác thực Xác thực yếu nảy sinh nguy giả dạng đặc tính nhận dạng Nếu thơng tin đăng nhập người dùng rơi vào tay kẻ xấu, kẻ cơng giả dạng đặc tính nhận dạng người dùng đạt truy cập tới ứng dụng 3.3.4 Chứng thực Sử dụng authorization để điều khiển truy cập tới thư mục, trang Web riêng, lớp trang phương thức 3.4 Mô ứng dụng web sử dụng biện pháp bảo mật Net Framework 3.4.1 Bài toán website bán sách( toán qua mạng) có kỹ thuật bảo mật 3.4.1.1.Mơ hình hoá chức 3.4.1.2.Yêu cầu hệ thống - Tự xác định hành động công( XSS) - Mã hoá mật người dùng trước lưu vào sở liệu - Tránh kiểu công SQL Injection 3.4.2 Giải pháp - Tự xác định hành động công XSS cách kiểm tra yêu cầu từ client đến server Nếu gặp mã độc gặp đoạn liệu đầu vào có thẻ “ ” tự động insert hành động vào bảng theo dõi redrect người dùng sang trang cảnh báo - Để mã hoá mật người dùng trước lưu vào sở liệu ta thực sau: Đặt mã truy nhập tài nguyên gói assembly riêng Mã hố xâu kết nối sở liệu - Tránh kiểu công SQL Injection cách sử dụng thủ tục với tham số làm việc với sở liệu 11 3.4.3 Thực Sử dụng ngôn ngữ Asp.Net gói assembly trình bày, mã hoá xâu kết nối sở liệu sau: Trong Web.config: public static string DecryptConfig() { string appSettingValue = ConfigurationSettings.AppSettings ["connectionString"]; return Decrypt(appSettingValue); } Trong Registry: //Ghi xâu mã hoá vào Registry private void btnWriteRegistryData_Click(object sender, System.EventArgs e) { // tao registry key va values RegistryKey rk = Registry.LocalMachine.OpenSubKey("Software",true); rk = rk.CreateSubKey("WebUI"); rk.SetValue("connectionString",txtEncryptedString.Text.Trim().ToString()); MessageBox.Show("The data has been successfully written to the registry"); } //Giai ma xau ket noi lay tu Registry public static string GetConnectionString() { RegistryKey rk = Registry.LocalMachine.OpenSubKey( @"Software\TestApplication",false); string EncryptedString = (string)rk.GetValue("connectionString"); return Decrypt(EncryptedString);} 12 3.4.4 Đánh giá Chương trình mơ thực yêu cầu bảo mật mà toán đặt sử dụng công cụ hỗ trợ Asp.Net - Tự xác định hành động cơng XSS - Mã hố mật người dùng - Tránh kiểu công SQL Injection KẾT LUẬN VÀ KIẾN NGHỊ Luận văn hi vọng đưa cách đơn giản dễ hiểu bảo mật ứng dụng web đồng thời lại đưa kỹ thuật, cách thức cụ thể bảo mật trước công dịch vụ Tuy nhiên luận văn nghiên cứu dịch vụ web xây dựng mơi trường NET Framework Nếu có điều kiện phát triển, mở rộng phạm vi nghiên cứu khắc phục lỗ hổng bảo mật web ... dụng xây dựng môi truờng Đối tượng phạm vi nghiên cứu: - Đối tượng nghiên cứu: ứng dụng web xây dựng môi trường NET - Phạm vi nghiên cứu: nghiên cứu cách tổng quát lỗ hổng bảo mật web biện pháp. .. mạng…và NET Framework cung cấp cho ta nhiều thư viện dùng để tăng cường an ninh cho ứng dụng Vì lý mà tơi định chọn đề tài “ Nghiên cứu biện pháp bảo mật cho ứng dụng web xây dựng môi trường NET Framework? ??... quản lý sử dụng reflection 2.3.3 Các không gian tên xây dựng ứng dụng web an toàn Net Framework Để lập trình bảo mật NET Framework, sử dụng loại không gian tên bảo mật NET Framework Các namespace