1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu các biện pháp bảo mật cho ứng dụng web xây dựng trên môi trường NET framework

14 827 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Nghiên cứu các biện pháp bảo mật cho ứng dụng web xây dựng trên môi trường .net framework
Tác giả Phạm Thị Thuý Quỳnh
Người hướng dẫn PGS.TS. Nguyễn Linh Giang
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Truyền dữ liệu và mạng máy tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2012
Thành phố Hà Nội
Định dạng
Số trang 14
Dung lượng 373,51 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 dữ liệu và

Trang 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 dữ liệu và 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

Trang 2

Luận văn được 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 sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông

Vào lúc: 11 giờ 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 của Học viện Công nghệ Bưu chính Viễn thông

Trang 3

MỞ ĐẦU

1 Lý do chọn đề tài

Ngày nay với sự phát triển không ngừng của Internet thì ta không thể phủ nhận những lợi ích của các ứng dụng web: cho phép sử dụng bất kỳ đâu có dịch vụ, cập nhật và hỗ trợ dễ dàng Tuy nhiên bên cạnh đó thì sự tấn công, xâm nhập trái phép trên Internet cũng gia tăng không ngừng Các cuộc tấn công vào website ngày càng tinh vi hơn Ngày 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ế, 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…và 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 Vì

những lý do đó mà tôi đã quyết định chọn đề tài “ Nghiên cứu các biện pháp bảo mật cho ứng dụng web xây dựng trên môi trường NET Framework” cho luận văn

này

2 Mục đích nghiên cứu:

Mục đích nghiên cứu của luận văn là tìm hiểu, phân tích các lỗ hổng bảo mật trong các ứng dụng web được xây dựng trên Net Framework để qua đó đề xuất các phương pháp bảo vệ, khắc phục lỗi trong các ứng dụng được xây dựng trên môi truờng này

3 Đối tượng và phạm vi nghiên cứu:

- Đối tượng nghiên cứu: các ứng dụng web được xây dựng trên môi trường NET

- Phạm vi nghiên cứu: chỉ nghiên cứu một cách tổng quát các lỗ hổng bảo mật web hiện nay và các biện pháp khắc phục Nghiên cứu các kỹ thuật bảo mật của Net Framework

4 Phương pháp nghiên cứu:

- Khảo sát thực tế: tìm hiểu trên một số lượng người tham gia sử dụng các ứ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 một số biện pháp bảo mật ứng dụng web thường dùng hiện nay

- Thiết kế trực tiếp một demo chương trình bảo mật cụ thể để rút ra nhận xét, kinh nghiệm

Trang 4

CHƯƠNG 1: TỔNG QUAN

1.1 Ứng dụng web

Là một ứ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 này có nhiệm vụ hiển thị dữ liệu cho người dùng, ngoài ra còn có

thêm các ứng dụng tạo bố cục cho trang web

Lớp ứng dụng: là nơi xử lý của ứng dụng Web Nó sẽ xử lý thông tin người dùng yêu

cầu, đưa ra quyết định, gửi kết quả đến “lớp trình bày” Lớp này thường được cài đặt bằng các kỹ thuật lập trình như CGI, Java, NET, PHP hay ColdFusion, được triển khai trên các trình chủ như IBM WebSphere, WebLogic, Apache, IIS…

Lớp dữ liệu: thường là các hệ quản trị dữ liệu (DBMS) chịu trách nhiệm quản lý các

file dữ liệu và quyền sử dụng

1.2 Mô hình hiểm hoạ

Nói đến hiểm hoạ của ứng dụng web ta nên sử dụng cụm từ mô hình hiểm hoạ và mô hình này nên được sử dụng trong suốt quá trình thiết kế và vòng đời của ứng dụng Vấn đề bảo mật ứng dụng web chính là việc quản lý các rắc rối và thực thi các biện pháp phòng chống hữu ích Các vấn đề cơ bản gồm: xác thực, chứng thực, kiểm tra, tính tin cậy, tính toà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 là những điểm yếu kém trên hệ thống hoặc ẩn chứa trong một dịch vụ mà dựa vào đó kẻ tấn công có thể xâm nhập trái phép để thực hiện các hành động phá hoại hoặc chiếm đoạt tài nguyên bất hợp pháp

Nguyên nhân gây ra những lỗ hổng bảo mật là khác nhau: do lỗi của bản thân hệ thống, phần mềm cung cấp hoặc do người quản trị yếu kém không hiểu sâu sắc các dịch vụ cung cấp…

Mức độ ảnh hưởng của các lỗ hổng là khác nhau Có những lỗ hổng chỉ ảnh hưởng tới chất lượng dịch vụ cung cấp, có những lỗ hổng ảnh hưởng nghiêm trọng tới toàn bộ hệ thống…

Trang 5

CHƯƠNG 2: BẢO MẬT ỨNG DỤNG WEB

2.1 Bảo mật ứng dụng web

Về cơ bản đó là việc bảo vệ các tài nguyên quan trọng trên web Chúng ta cần quan tâm đến việc quản lý các rắc rối và thực hiện các biện pháp phòng chống hữu ích Các vấn đề cơ bản: xác thực, chứng thực, kiểm tra, tính tin cậy, tính toàn vẹn, tính sẵn sàng

2.2 Thuật tấn công

Trong một số kỹ thuật tấn công điển hình hiện nay gồm các bước chính:

 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ụ

Một số kỹ thuật tấn công và cách bảo vệ

 Kiểm soát truy cập web

 Chiếm hữu phiên làm việc

 Lợi dụng các thiếu sót trong nhập dữ liệu

 Để lộ thông tin

 Chiếm hữu dịch vụ

2.3 Bảo vệ ứng dụng web trên Net Framework

Hiện nay các ứng dụng web xây dựng trên môi trường Net Framework khá nhiều và được sử dụng rộng rãi Vì vậy việc bảo vệ an toàn cho các ứng dụng web này

là hết sức cần thiết 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

Trang 6

2.3.1 Role-based security

Bảo mật Role based 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, chi tiết vai được giữ trong SQL Server hay các nơi lưu trữ người dùng trong Active Directory

Role-based security bao gồm các yếu tố sau:

 Principals và 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ã khi nó cố gắng truy cập tới các tài nguyên được bảo mật như: file system, registry, network,… hoặc khi nó cố gắng thực thi các hoạt động đặc quyền khác như: gọi tới các đoạn mã không được quản lý hoặc sử dụng reflection

2.3.3 Các không gian tên xây dựng các ứng dụng web an toàn trên 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

 System.Web.Security

 System.Security.Cryptography

 System.Security.Principal

 System.Security.Policy

 System.Security.Permissions

Trang 7

2.3.4 Xây dựng các gói assembly an toàn

2.3.4.1 Hiểm hoạ và biện pháp phòng chống:

Hiểu các mối đe doạ và các kiểu tấn công chung giúp chúng ta nhận ra các phương án phòng chống tương ứng và cho phép chúng ta xây dựng các gói assemblies

an toàn và vững chắc hơn Các mối đe doạ chính:

 Truy cập không được chứng thực hoặc sự vượt quyền, hoặc cả 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 ý khi thiết kế gói assembly

Một trong những vấn đề quan trọng nhất khi thiết kế một gói assembly là mức

độ tin cậy của môi trường mà gói assembly này được sử dụng Nó ảnh hưởng tới các quyền bảo mật truy nhập mã được cấp cho mã của chúng ta và với mã gọi mã của chúng ta Điều này được xác định bởi chính sách bảo mật truy nhập mã được định nghĩa bởi người quản trị và nó ảnh hưởng tới các loại tài nguyên mà mã của chúng ta được cho phép để truy cập và các hoạt động đặc quyền khác có thể thực thi

Khi thiết kế một gói assembly, ta nên:

 Xác định mã đặc quyền

 Xác định mức độ tin cậy của môi trường mà gói assembly sẽ thực thi

 Đóng gói các 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 ý khi thiết kế lớp

 Hạn chế hiển thị lớp và thành viên

 Che kín các lớp cơ sở chưa che đậy

 Hạn chế người dùng có thể gọi mã

 Phơi bày các trường bằng cách sử dụng các thuộc tính

Trang 8

2.4 Xây dựng thành phần dịch vụ an toàn

Các dịch vụ COM+ được biết như Enterprise Services, có thể được truy cập từ mã được quản lý Các ứng dụng Enterprise Services bao gồm một hay nhiều các thành

phần dịch vụ, đó là các lớp được quản lý dẫn xuất từ System EnterpriseServices Serviced Component

2.4.1 Các mối hiểm hoạ và 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 được ràng buộc

 Phơi bày dữ liệu cấu hình

 Sự từ chối

2.4.2 Các lưu ý khi thiết kế

Bao gồm:

 Chứng thực dựa vào vai

 Bảo vệ các dữ liệu nhạy cảm

 Kiểm tra các 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 các dịch vụ web an toàn

2.5.1 Các mối hiểm hoạ và các biện pháp phòng chống:

Các mối hiểm hoạ chính bao gồm:

 Truy cập không đựơc chứng thực

 Thực thi tham số

 Nghe lén mạng

 Phơi bày dữ liệu cấu hình

 Lặp lại thông báo

Trang 9

2.5.2 Các lưu ý khi thiết kế

Bao gồm:

 Yêu cầu xác thực

 Yêu cầu tính riêng tư và toà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 trong 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

Trang 10

CHƯƠNG 3: BẢO MẬT TRÊN ỨNG DỤNG ASP.NET

3.1 Các công nghệ thực thi trong ASP.NET

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 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à giữa các hệ thống hỗn hợp

.NET Remoting

Cung cấp khung làm việc cho việc truy cập các đối tượng phân tán

ADO.NET and Microsoft® SQL Server™ 2000

Cung cấp dịch vụ truy cập cơ sở dữ liệu Nó được thiết kế cho các ứng dụng web phân tán SQL Server cung cấp bảo mật tích hợp sử dụng các kỹ thuật xác nhận của hệ điều hành ( Kerberos hoặc NTML)

Internet Protocol Security (IPSec)

Cung cấp các dịch vụ xác thực và 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 được mã hoá

3.2 Các trang và điều khiển Asp.Net an toàn

Hầu hết các vụ tấn công yêu cầu đầu vào ác ý được truyền qua với các yêu cầu HTTP Mục đích chung hoặc là ép buộc các ứng dụng thực thi các hoạt động không được chứng thực hoặc là phá vỡ hoạt động bình thường Điều này giải thích tại sao việc kiểm tra giá trị đầu vào là một phương pháp phòng chống quan trọng với nhiều vụ tấn công và nên được ưu tiên sử dụng khi phát triển các trang và các điều khiển Web

Trang 11

3.2.1 Các hiểm hoạ và 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 lén mạng

 Phơi bày thông tin

3.2.2 Các lưu ý khi 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 được dùng để truy cập tài nguyên

 Bảo vệ các thông tin đăng nhập và các thẻ xác thực

 Lỗi bảo mật

 Xem xét về chứng thực tập trung

 Đặt các điều khiển Web và các điều khiển người dùng trong các gói assemblies riêng biệt

3.3 Một số kỹ thuật và 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 tấn công XSS khám phá các lỗ hổng trong kiểm tra trang Web bằng cách nhúng đoạn mã từ phía client Đoạn mã này sau đó được gửi trở về một người dùng mà

không nghi ngờ gì và được thực thi bởi trình duyệt

Trang 12

3.3.3 Xác thực

Xác thực yếu nảy sinh nguy cơ giả dạng đặc tính nhận dạng Nếu các thông tin đăng nhập của người dùng rơi vào tay kẻ xấu, kẻ tấn công có thể giả dạng đặc tính nhận

dạng của người dùng và đạt được 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 các thư mục, các trang Web riêng, các lớp trang và các phương thức

3.4 Mô phỏng ứng dụng web sử dụng các biện pháp bảo mật của Net

Framework

3.4.1 Bài toán

website bán sách( thanh toán qua mạng) có các kỹ thuật bảo mật

3.4.1.1.Mô hình hoá chức năng

3.4.1.2.Yêu cầu của hệ thống

- Tự xác định được các hành động tấn công( XSS)

- Mã hoá mật khẩu của người dùng trước khi lưu vào cơ sở dữ liệu

- Tránh được kiểu tấn công SQL Injection

3.4.2 Giải pháp

- Tự xác định được các hành động tấn công XSS bằng cách kiểm tra các yêu cầu từ

client đến server Nếu gặp mã độc như gặp đoạn dữ liệu đầu vào có thẻ “<Script>

</Script>” thì tự động insert hành động đó vào bảng theo dõi và redrect người dùng

sang một trang cảnh báo

- Để mã hoá mật khẩu người dùng trước khi lưu vào cơ sở dữ liệu ta thực hiện như sau:

Đặt mã truy nhập tài nguyên trong một gói assembly riêng

Mã hoá xâu kết nối cơ sở dữ liệu

- Tránh được kiểu tấn công SQL Injection bằng cách sử dụng các thủ tục với các tham

số khi làm việc với cơ sở dữ liệu

Trang 13

3.4.3 Thực hiện

Sử dụng ngôn ngữ Asp.Net và các gói assembly như đã trình bày, và mã hoá xâu kết nối cơ sở dữ liệu như 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

{

// 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);}

Trang 14

3.4.4 Đánh giá

Chương trình mô phỏng đã thực hiện được các yêu cầu về bảo mật mà bài toán đã đặt

ra sử dụng các công cụ hỗ trợ của Asp.Net

- Tự xác định được các hành động tấn công XSS

- Mã hoá được mật khẩu người dùng

- Tránh được kiểu tấn công SQL Injection

KẾT LUẬN VÀ KIẾN NGHỊ

Luận văn này hi vọng sẽ đưa ra được cách đơn giản và dễ hiểu nhất về bảo mật ứng dụng web nhưng đồng thời lại đưa ra được các kỹ thuật, cách thức cụ thể về bảo mật trước các tấn công dịch vụ

Tuy nhiên luận văn chỉ nghiên cứu các dịch vụ web được xây dựng trên môi trường NET Framework Nếu có điều kiện sẽ phát triển, mở rộng phạm vi nghiên cứu

và khắc phục được các lỗ hổng bảo mật web hiện nay

Ngày đăng: 14/02/2014, 08:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w