Ngày nay công nghệ .XI#T cúa Mierosoft được sử dựng rất rộng rãi trong việc xây dựng cáo ứng đựng sử dụng trang 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
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
DUNG TREN MOI TRUONG 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
THỌC VIỆN CÔNG NGITR BƯU CHÍNIT VIỄN THÔNG:
Người hướng dẫn khoa học: PGS.TS Ngnyễn Linh Giang
Phan bign 1: PGS
Trịnh Nhật Tiên Phản biện 2: PGS.TS Dào Thanh Tĩnh
Luận vău 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 chinh Viễn thông,
Vànlúc: 11 giờ 10 ngày 20 tháng 01 năm 2013
Có thể tìm hiển luận văn tai:
- Thư viện của lọc viện Công nghệ Tư 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é dang Tuy nhién bén cạnh đó thì sự tần công, xâm nhập trải
phép trên Irlemel cũng gia lăng không ngừng Các cuộc lắn công vào website ngày
cảng tính vị hơn Ngày nay công nghệ XI#T cúa Mierosoft được sử dựng rất rộng rãi
trong việc xây dựng cáo ứng đựng sử dụng trang 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 lữ như bán
hang qua mạng, thục hiện chuyển tiên váo tải khoản qua mạng và NET Eramework cưng cấp cho ta rất nhiêu thư viện đủng để tăng cường an ninh cho ứng đụng Vì
nhimg ly do đó mà tôi đã quyết định chọn dễ tài * Nghiêm cứu các biện phúp bản mitt cho ting dung web xây dựng trên môi trường NET Framework” cho luin vin nay
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
tứng dụng web được xả
phap bao về, khắc phục lỗi trong các ứng đụng được xây dựng trên mỗi truờng này
dựng trên Net Framework để qua đó để xuất các phương,
3 Đối tượng và phạm vị nghiên cứu
- Dễi trọng nghiên củu: các ứng dụng web được xây dựng trên môi trường NET
- Diưmn vi nghiên cứu: chỉ nghiên cứu một cách tổng quát các lỗ héng hao mat 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 Fromework
4 Phương pháp nghiên cứn:
- Khảo sát thực tẻ: tìm hiểu trên một số lượng người tham gia sử đụng các ứng dụng,
web cụ thể
- Các phương pháp phân tích, dá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, đùng,
hiện nay
~ Thiết kế trực tiếp một đemo 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: TONG QU/
1.1 Ứng dụng wcb
Tà một ứng dung chủ/ khách sử đựng giao thức IITTP để tương tác với người ding
bay bệ 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ị đữ liệu cho người đúng, ngoài ra cẻn có
thêm gác ứng đụng lạ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 tí 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, NBT, PHP hay ColdFusien, được Iriển khai trên cáo trình chủ như IEM WebSphere, WebLogic, Apache, 115
Lop 4# liệu: thường là các hệ quản trị đữ liệu (DBMS) chịu trách nhiệm quân lý các
1ile dữ liệu và quyền sử dựng
1.2 Mô hình hiểm hoa
Nói đến hiểm hoa của ứng dụng web ta nên sử dụng cum tir mé hinh hiém hoa vA m6
hinh nay 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ựơ thí các biên
pháp phòng chống hữu ích Các vấn dé 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 diễm yếu kẻm trên bệ thống hoặc ân chúa trong một dich 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à khac nhau do lỗi của bản thân hệ
thống, phần mềm cưng cấp hoặc đo người quản trị yếu kém không hiểu sầu sắc các
địch vụ cùng 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 huởng tới
chất hượ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
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ữa ích
Các vấn để cơ bản: xác thực, chímg thực, kiếm tra, tính tin cậy, tính toàn vẹn, tính sẵn
sang
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á
e Kham phá và thâm nhập
* Vuot quyén
© Duy trí kết nỗi
e Từ chổi địchvụ
'.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ệu
œ Lợi dụng các thiếu sét trong nhập đữ liệu
« Dê lộ thông tin
© Chiém hitu dich va
2.3 Bảo vệ ứng dung web trén Net Framework
Hiện nay các ứng đụng web xây đựng trên môi trường Net Framework kha nhiểu và được sử dụng rộng rấi Vì vậy việc bão vệ an loàn cho các ứng đụng web này
là hết sức cần thiết Microsoft Net Erareworlc cung cấp nhiều kỹ thuật và nhiều thư
viện giúp chúng ta xây đựng mã và tạo các ứng dụng Web được an toàn Các kỹ thuật chính dược sử đụng là Role-based security và Code access security.
Trang 62.3.1 Role-based secnrity
Bio mat Role based trong NIT Iramework cho phép một ứng dụng Web lạo
các quyết định bảo mật đựa theo đặc tính nhận đạ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 thi một vai là một nhỏm Windows Nếu ứng dụng của chúng ta sử dụng các dang xác
thực khác thì một vai là một ứng đụng được định nghĩa và người dùng, chỉ tiết vai
được giữ trone SQL, Server hay các nơi lưu trữ người dung trong Active Directory
Rolo-based scowity bao gồm các ý
Principals va identities
PrincipalPermission object
Role-based security checks
URI authorization
2.3.2 Code access security
Bao mt tray 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ư: Šle system, regisry, nerwork, hoặc khi nó cổ gắng thực
tủ các hoại dông đặo quyền khác như: gọi tới các đoạn mã không được quân lý hoặc sử dung 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, ching ta si dang cdc loai không gian lên bao mat tronz NET Framework
Cac namespace ding cho bao mal
° System Security
System Security Cryplography
System Security Principal
System Security Pohcy
System Security Permissions
Trang 72.3.4 Xây dựng các gói assembly an toàn
2.3.4.1 Hiểm hua và biện pháp phòng chống:
Tiểu các mối đe đoạ và các kiểu tấn công chưng 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 đựng các gói assemblies
am toàn va ving chic hon, Cie mdi de doa chink:
œ_ 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
© Tầm xáo trộn thang 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ộ
gối assembly là mức
độ tin cậy của môi trường mà gói assembly nảy được sử đụng Nó ảnh hưởng tới các quyển bảo mật truy nhập mã dược cấp cho mä của chủng ta vả với mã gọi mã của chúng ta Diễn này được xác định bởi chính sách bảo mật truy nhập mnã đượ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 thú
Thi thiết kế một gội nasembly, ta nên:
e Xáo định mã đặc quyền
œ _ Xác dịnh mức dộ tin cậy của mỗi trưởng má gói assembly sẽ thực thị
œ_ Đông gỏi các mã dậ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áo lớp cơ sở chưa cho đậy
œ Hạn chế người đù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 86
2.4 Xây dung thanh phan dich vụ an todn
Các dich vu COM+ duoc biét nhu Enterprise Services, cé thé duoc truy cập từ mã
được quân lý Cac ứng dung Rrlerprise Services bao gôm một hay nhiều các thành phân dịch vụ, đó là các lớp dược quan ly din xuất từ System EnterpriseServices
Serviced Component,
3.4.1 Các mỗi hiểm hơa và pháp phủng chẳng
Các mỗi hiểm họa báo gồm:
« _ Lruy cập trái phép
©- Sựuỹ quyển không dược ràng buộc
ø Thơi bảy đữ 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
© Hả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 dung
© Các giao tác
Cas
2.5 Xay dung cde dich vu web an toan
2.5.1, Các mỗi hiểm hoa và các biện pháp phòng chống:
Các môi hiểm hoa chính bao gằm:
© Truy cập không dược chủng thực
Thực thí thun số
© Nghe kn mang
Phoi bày đữ liện cầu hình
© Lặp lại thông báo
Trang 92,52 Các lưu ý khi thiết kế
ao gồm:
® Yêu cầu xác hực
œ _ Yêu cầu tính riêng tư vả toàn vẹn
ø - Các đặc tính truy nhập lài nguyên
© Antoả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ị dầu vào
Xác thực
Chứng thực
Chứng thực phương thức Web,
Trang 10CHUONG 3: BAO MAT TREN UNG DUNG ASP.NET
3.1 Cac céng nghé thuc thi trong ASP.NET
ASP.NET
ASP.NET dược s
dụng đễ thực Ilú các địch vụ người dùng ASP.NET cung cấp miột kiển trúc có thể bd xung mà có thể được dùng đề xây đụng cáo trang Web
Enterprise Services
Cung cap các dịch vụ mức ha tầng dễ thực thị các ứng dang Cac dich vu nay 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 déi dér ligu va sy trigu ggi từ xa của ng dụng bằng cách sử dụng các trao đổi thông báo SO.AP đề truyền đữ liệu qua Firewall và giữa các hệ thông hỗn hợp
.NET Remoting
Cung cap khung lam 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 cap dich vu truy cập cơ sở đữ liệu Nó được thiết kế cho các ứng dung web phan tan 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 NTMIL)
Taternet Protocol Security (TPSec)
Củng 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 am toàn Dữ liêu gửi qua kênh được mã hoá
3.2 Các trang và diễu khiển Asp.Net an toan
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 chíng hoặc là ép buộc cóc ứng dụng thực Ủủ các hoạt động không dược chứng thực hoặc la phả vỡ hoạt dộng binh 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êu sử dụng khi phát triển các trang và các diều khiển Web,
Trang 113.2.1
Các hiểm hoạ và biện pháp phòng chống
Các hiểm hoa hàng đầu:
Nhúng mã
Tân công session
Giả dạng đặc tính nhận đạng
Thực thi tham số
Nghe lén mang,
Phoi bay théng tin
, Các lưu ý khi thiết kế
Kiểm tra đầu vào phia server
Khoanh vùng Web site
Xem xét đặc tỉnh nhận dạng được đừng đề truy cập tải nguyễn
Tu vệ các thông tìm đăng nhập và các thé xac thực
Tiỗi bảo mật
Xem xét về chứng thực tập trung
Đột các diều khiển Web vá các điều khiển người dùng trong các gói asscmblics
riêng biệt
3.3 Một số kỹ thuật và hiểm hoạ điển hình
3.3.1
3.3.2
Kiểm tra giá trị đầu vào
Cross-Site Seriptinp
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 Doạn mã này sau đó được gửi trở về một người dừng ma
không nghỉ ngờ gì và được thực thí bởi trình duyệt
Trang 123.3.3 Xác thực
Xác thực yêu nây sinh nguy cơ giả dang đặ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 để diễ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)
- Ma boa mat khâu của người đủng trước khi lưu vào cơ sở dữ liệu
- Tránh được kiéu tan céng SQL injection
3.42 Giải phán
- Tự xác định được các hành động lần công X88 bằng cách kiểm tra các yêu cầu lừ
client dén server Nếu gặp mã độc như gặp đoạn đữ liệu đầu
ào có thé “<Seripi>
</Script> ” thi tu dng insert hành động đỏ vào bằng theo đõi và redrect người dùng sang một trang cảnh báo
- Dễ mã hoá mật khẩu người dùng trước khi lưu vào cơ sở đữ 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 bang cách sử dụng các thủ tục với cáo tham
số khi lầm việc với cơ sở đữ liệu.