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 - Pdf 10

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


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.
2 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.

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.
4

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

 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.
6

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

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.

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.
11

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:

- 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.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status