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,51 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ỨUCÁC PHƯƠNG PHÁPBẢOMẬTỨNGDỤNGWEBXÂY
DỰNG TRÊNMÔITRƯỜ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
1
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ứngdụ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âydựngcácứngdụ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ứngdụ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êncứu các biệnphápbảo
mật cho ứngdụngwebxâydựngtrênmôitrường .NET Framework” cho luận văn
này.
2. Mục đích nghiên cứu:
Mục đích nghiêncứu của luận văn là tìm hiểu, phân tích các lỗ hổng bảomật trong các
ứng dụngweb được xâydựngtrên .Net Framework để qua đó đề xuất các phương
pháp bảo vệ, khắc phục lỗi trong cácứngdụng được xâydựngtrênmôitruờng này.
3. Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: cácứngdụngweb được xâydựngtrênmôitrường .NET
- Phạm vi nghiên cứu: chỉ nghiêncứu một cách tổng quát các lỗ hổng bảomậtweb
hiện nay và cácbiệnpháp khắc phục. Nghiêncứucác kỹ thuật bảomật của Net.
Framework.
4. Phương phápnghiê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ụngcácứngdụ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ệnphápbảomậtứngdụngweb thường dùng
hiện nay.
- Thiết kế trực tiếp một demo chương trình bảomật cụ thể để rút ra nhận xét, kinh
nghiệm.
2
CHƯƠNG 1: TỔNG QUAN
1.1. Ứngdụngweb
Là một ứngdụ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 ứngdụngweb 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ứngdụng tạo bố cục cho trang web.
Lớp ứng dụng: là nơi xử lý của ứngdụ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 ứngdụngweb 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ảomậtứngdụngweb chính là việc quản lý các rắc rối và thực thi cácbiệ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ảomật
Các lỗ hổng bảomậ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ảomậ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…
3
CHƯƠNG 2: BẢOMẬTỨNGDỤNGWEB
2.1. Bảomậtứngdụngweb
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ácbiệnphá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ụngcá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ệ ứngdụngwebtrên .Net Framework
Hiện nay cácứngdụngwebxâydựngtrênmôitrường . NetFramework khá
nhiều và được sử dụng rộng rãi. Vì vậy việc bảo vệ an toàn chocácứngdụngweb 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âydựng mã và tạo cácứngdụngWeb đượ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 Frameworkcho phép một ứngdụngWeb tạo
các quyết định bảomậ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 ứngdụ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 ứngdụng của chúng ta sử dụngcác dạng xác
thực khác thì một vai là một ứngdụ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ảomậ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âydựngcácứngdụngweb an toàn trên . Net
Framework
Để lập trình bảomật trong .NET Framework, chúng ta sử dụngcác loại không gian tên
bảo mật trong .NET Framework.
Các namespace dùngchobảo mật:
System.Security
System.Web.Security
System.Security.Cryptography
System.Security.Principal
System.Security.Policy
System.Security.Permissions
5
2.3.4. Xâydựngcác gói assembly an toàn
2.3.4.1. Hiểm hoạ và biệnpháp phòng chống:
Hiểu cácmố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âydựngcác gói assemblies
an toàn và vững chắc hơn. Cácmố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ôitrường mà gói assembly này được sử dụng. Nó ảnh hưởng tới các
quyền bảomậ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ảomậ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ôitrườ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áctrường bằng cách sử dụngcác thuộc tính.
6
2.4. Xâydự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ứngdụ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ácmối hiểm hoạ và biệnphá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 ứngdụng
Các giao tác
Cas
2.5. Xâydựngcác dịch vụ web an toàn
2.5.1. Cácmối hiểm hoạ và cácbiệnphá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
7
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
8
CHƯƠNG 3: BẢOMẬTTRÊNỨNGDỤ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âydựngcá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 ứngdụng bằng cách sử dụngcá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ế chocácứngdụngweb phân
tán. SQL Server cung cấp bảomật tích hợp sử dụngcá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ứngdụ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.
[...]... 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 ứngdụ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 ứngdụngweb sử dụng các biệnphápbảomật của NetFramework 3.4.1 Bài toán website bán... được các yêu cầu về bảomật mà bài toán đã đặt ra sử dụngcá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ảomậtứngdụngweb nhưng đồng thời lại đưa ra được các kỹ thuật, cách thức cụ thể về bảomật trước các. .. đồng thời lại đưa ra được các kỹ thuật, cách thức cụ thể về bảomật trước các tấn công dịch vụ Tuy nhiên luận văn chỉ nghiêncứucác dịch vụ web được xâydựngtrênmôitrườngNETFramework Nếu có điều kiện sẽ phát triển, mở rộng phạm vi nghiêncứu và khắc phục được các lỗ hổng bảomậtweb hiện nay ...9 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... 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... toán website bán sách( thanh toán qua mạng) có các kỹ thuật bảomậ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ã... 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ụngcá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à... sử dụngcá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: 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 . 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. 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.