Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
0,99 MB
Nội dung
BÀI TẬP VỀ NHÀ NHÓM 2 TRẦN QUỐC HOÀNG- AT150719 HUỲNH HẢI BẰNG- AT150802 ĐINH TRỌNG HÒA- AT150717 PHẠM NGUYỄN TIẾN ANH- AT150702 LÊ ĐỨC THÌN- AT150746 ĐÈ TÀI: DỰ ÁN QUẢN LÝ SINH VIÊN Phần 1: Xác định kiểu thực thể, kiểu thuộc tính KHÓA HỌC (mã khóa học, tên khóa học, niên khóa) SINH VIÊN (Mã sinh viên, họ tên, năm sinh, dân tộc, mã lớp, ngun qn) CHƯƠNG TRÌNH (Mã chương trình, tên chương trình) MƠN HỌC (Mã mơn học, tên mơn học, mã khoa) KẾT QUẢ (Mã sinh viên, Mã môn học, lần thi, điểm) KẾ HOẠCH ĐÀO TẠO(Mã chương trình, Mã khoa, Mã môn học, năm học, học kỳ, số tiết lý thuyết, số tiết thực hành, số tín chỉ, tên khoa, năm thành lập) LỚP (Mã lớp, mã khóa học, mã khoa, mã chương trình,STT, GVCN, số lượng sinh viên) Phần 2: Xác định kiểu liên kết Kiểu thực Sinh viê Lớp Lớp Lớp Kết Kết Kế hoạch đà Kế hoạch đà Phần : Chuẩn hóa liệu Chuyển đổi ERD mở rộng ERD kinh điển Chuyển đổi ERD kinh điển ERD hạn chế Chuyển đổi ERD hạn chế MH quan hệ Phần : Bảng đặc tả liệu KHOAHOC STT Khó chín X SINHVIEN STT Khó X LOP STT K ch KHDT STT Khóa KETQUA STT K ch CT_KHDT STT Kh chí X CHUONGTRINH STT K ch MONHOC STT K ch CT_KETQUA STT K c Phần Áp dụng mơ hình DAC MAC vào CSDL Mơ hình DAC Create lớp user HIEUTRUONG, HIEUPHO, GIAOVIEN, SINHVIEN mơ hình MAC Object Hiệu trưởng Hiệu phó Giáo viên Sinh viên Subject KHOAHOC SINHVIEN LOP KHDT CT_KHDT CT_KETQUA KETQUA CHUONGTRINH MONHOC -Đã có mẫu thử Sea View hệ quản trị thương mại Oracle -Q trình khơi phục: thực OS cần lấy lại liệu lưu giữ đối tượng để trả cho người dùng Để từ quan hệ đơn mức, sinh khung nhìn đa mức chứa liệu mà người dùng yêu cầu, -Quá trình phân tách: thực chuyển đổi quan hệ đa mức (đối tượng CSDL) thành số quan hệ đơn mức, (chỉ chứa liệu mức an tồn đó), lưu giữ đối tượng OS -Các đối tượng (có nhãn an toàn giống nhau) CSDL lưu giữ đối tượng OS tin cậy Vì vậy, OS tin cậy tiến hành kiểm sốt an tồn đối tượng lưu giữ này, cần có q trình phân tách khơi phục quan hệ nhiều mức Kiến trúc Replicated -Có mẫu thử NRL, chưa có DBMS thương mại nào, đắt! -Người dùng mức cao xem sửa đổi liệu mức thấp mức cao -Để tuân theo giải pháp cần có thuật tốn đồng an tồn để đảm bảo tính tương thích lặp chi phí lặp lớn -Dữ liệu mức thấp lặp CSDL Phần 7: Áp dụng an toàn ứng dụng vào sở liệu VẤN ĐỀ QUẢN LÝ TẢI KHOẢN VÀ MẬT KHẨU NGƯỜI DÙNG Lỗ hổng quản lý mật sở liệu Mơ hình an tồn sở liệu dựa tiến trình xác thực phân quyền Mỗi sở liệu trì danh sách định danh người dùng, người dùng truy nhập vào sở liệu, tên mật danh sách định danh sử dụng để xác thực Sau trình xác thực thành công, sở liệu xác định tập quyền mà người dùng phép thực sở liệu Vì vậy, điều hiển nhiên để đáp ứng u cầu mơ hình an toàn đặt ra, tên người dùng phải quản lý cách an tồn, điều khơng thực tốt tồn mơ hình trở nên vô nghĩa Quy ước đặt tên - Viết hoa chữ đầu - Loại bỏ dấu, ký tự đặc biệt như: ‘:’, ‘ ‘, ‘/’, - Đặt theo dạng số Để bảo vệ trước tiên phải có mật hiệu Mật xem mật hiệu khó xâm phạm, thường có đặc điểm sau: - Thay đổi mật thường xuyên, sáu tháng lần Tránh từ liên quan đến thân, chẳng hạn tên, ngày tháng năm sinh, nơi sinh, địa - Chứa kí tự, kết hợp kí tự số, kí tự chữ (chữ hoa chữ thường) kí đặc biệt, tránh sử dụng từ chung (tên, chữ người khác mà tìm thấy từ điển) - Lỗ hổng đề cập đến vấn đề tên mật sở liệu sử dụng lưu trữ khơng an tồn Có nhiều nguyên nhân dẫn đến lỗ hổng này, nguyên nhân tên mật lưu trữ dạng rõ tệp cấu hình Dẫn đến kẻ cơng lợi dụng để làm hại đến tài nguyên máy chủ ứng dụng, đạt việc truy nhập vào sở liệu cách hợp pháp Đây lỗ hổng bảo mật nghiêm trọng định danh sử dụng ứng dụng để truy nhập vào sở liệu thường có tồn quyền lược đồ sở liệu trí tồn quyền với sở liệu Tên nhân viên Trần Quốc Hồng Đinh Trọng Hịa Phạm Nguyễn Tiến Anh Huỳnh Hải Bằng Lê Đức Thìn Để bảo mật tài khoản người dùng ta dùng mật mã hóa (encrypted_password) dùng mã hoá md5 + salt tạo ngẫu nhiên Password mã hoá sau hash (password +salt) Tên nhân viên Trần Quốc Hồng Đinh Trọng Hịa Ch vụ Hi trư Hi ph Phạm Nguyễn Tiến Anh Huỳnh Hải Bằng Lê Đức Thìn 1.2 KIỂM SỐT TRUY CẬP VÀO CƠ SỞ DỮ LIỆU Bước việc giải lỗ hổng bảo mật mật CSDL giám sát xem truy nhập vào liệu Bắt đầu việc tạo báo cáo tải khoản hoạt động, tài khoản dùng địa IP kết nối tới CSDL, ứng dụng dùng để truy nhập vào CSDL Một tùy chọn thêm để tăng cường an tồn sử dụng tường lửa, hình 4.3, có hai lựa chọn: (1) sử dụng tường lửa tiêu chuẩn, cho phép thực kiểm soát truy nhập dựa IP Port; (2) sử dụng tường lửa SQL, cho phép việc xây dựng tập luật khơng dựa IP mà cịn dựa tên truy nhập, ứng dụng truy nhập, đối tượng CSDL truy nhập Nó cho phép xác định xác tài khoản hay ứng dụng nào, máy tính phép truy nhập vào CSDL Ngoài kết hợp sử dụng thêm phần mềm cảnh báo thời gian thực có vi phạm an ninh Kẻ cơng cố gắng kết nối tới CSDL từ máy tính nó, kết nối bị tường lửa SQL chặn đốn địa IP bị chặn(đang có thiết bị giám sát an ninh tầng 3), quay thực công từ máy chủ ứng dụng, giả mạo địa IP máy chủ ứng dụng thành địa IP máy tiếp tục cơng, Hi ph Gi vi Si vi q trình lọc thêm thời gian, nhiên việc lọc thực sử dụng phần mềm cảnh báo thời gian thực chặn công từ sớm, trước kẻ cơng tìm cách để vượt qua hàng rào bảo vệ Tên nhân viên Trần Quốc Hoàng Đinh Trọng Hòa Phạm Nguyễn Tiến Anh Huỳnh Hải Bằng Lê Đức Thìn Sử dụng Firewall cách kiểm tra packet đến so sánh chúng với rules Nếu packet đáp ứng tiêu chuẩn quy định rules, Firewall chuyển packet đến TCP / IP protocol để xử lý bổ sung Nếu packet không đáp ứng tiêu chuẩn định rules, Firewall loại bỏ packet Ngồi ra, logging bật, firewall tạo mục nhập file logging Firewall Danh sách lưu lượng cho phép theo cách sau: Tự động: Khi Firewall kích hoạt, Firewall tạo danh sách để phản hồi “allowed” (cho phép) Phản hồi xem solicited traffic khơng có cần phải cấu hình Theo cách thủ cơng: Admin cấu hình rules cho Firewall Điều Cho phép truy cập vào chương trình port định máy tính bạn Trong trường hợp này, máy tính chấp nhận unsolicited traffic hoạt động server, listener, peer Đây loại cấu hình phải hồn thành để kết nối với SQL Server XÁO TRỘN MÃ ỨNG DỤNG Phân tích điểm yếu mã nguồn giả mã Trong nhiều môi trường ứng dụng đại ngày nay, số mã đặt định dạng mã nguồn định dạng mà dễ dàng sử dụng dễ dàng lấy Và từ kẻ cơng có nhiều thơng tin hoạt động bên ứng dụng (đây vi phạm quyền sở hữu trí tuệ, không đề cập đến chương này) Một kẻ cơng tìm hiểu cách thức kết nối ứng dụng với CSDL, hay làm tên tài khoản mã hóa, câu truy vấn tới CSDL mà ứng dụng sử dụng Mã nguồn bị kẻ cơng phân tích để tìm lỗ hổng ứng dụng Một vấn đề khác mã bảo vệ liên quan đến mã giả định dạng trung gian Cả hai môi trường Java Microsft Net đểu dựa máy ảo (VM) mẫu, mã nguồn biên dịch thành định dạng trung gian (hay gọi mã giả) mà sau sử dụng máy ảo để chạy ứng dụng Định dạng trung gian bao gồm hướng dẫn, thị cụ thể máy ảo, máy ảo thực thị biên dịch chúng thành mã máy (code on-the-fly / just in time complie) Lợi kiến trúc tính di động khả tương tác tốt Ví dụ mơi trường Java cho phép chương trình chạy hệ điều hành có cài máy ảo Java (JVM - java virtual machine) mà không cần phải sửa đổi hay biên dịch lại code Các lớp (class) Java biên dịch thành file class chứa bytecode, thị, điều khiển máy ảo java (JVM) Nền tảng Net thực tương tác với Microsoft, nhiều ngơn ngữ lập trình tương tác tốt chia sẻ tập lệnh dễ dàng tất biên dịch theo định dạng chung sở chung Cơ sở chung gọi Common Library Runtime(CLR), định dạng trung gian tất chương trình biên dịch gọi Common Intermediate Language(CIL) Định dạng CIL bao gồm siêu liệu (metadata) đọc hiểu code cung cấp nhiều thơng tin có giá trị cho hacker Trong máy ảo mã giả thuận tiện cho việc phát triển đơn giản hóa việc triển khai phần mềm, phần dễ bị tổn thương Mã giả gồm tập lệnh thị mức máy ảo, máy ảo chạy phần mềm thơng dịch, chuyển dịch mã nguồn ngơn ngữ lập trình thành lệnh cho máy tính thực tính tốn, tập lệnh thơng dụng, kẻ cơng xây dựng chương trình gọi phần mềm ăn cắp mã giả Các chương trình đọc biên soạn mã giả tạo mã nguồn Mã nguồn gần xác mã gốc Khắc phục vấn đề công khai thác lỗ hổng dựa phân tích mã nguồn để hạn chế cơng khai thác lỗ hổng dựa phân tích mã nguồn sử dụng kỹ thuật mã hóa ứng dụng gồm: -Mã hóa giao diện: Bao gồm làm xáo trộn nhận dạng, loại bỏ thích câu lệnh, đảo vị trí method -Mã hóa liệu: Ảnh hưởng tới cấu trúc liệu mã hóa liệu Ví dụ: mảng hai chiều chuyển thành mảng chiều trải rộng int i=1; while (i < 100) { arr[i] i++ } Đoạn mã chuyển dạng sau: int i = 7; int j = i + 4; while (j < 8003) { arr[(j-3)/(i+1)] ; j += (i+1); } Kiểm sốt mã mã hóa bao gồm kỹ thuật xếp lại, hay bổ sung câu lệnh không liên quan - - Thêm đoạn mã giúp chống lại việc biên dịch ngược Ví dụ, nhiều năm, ứng dụng phổ biến dùng cho việc dịch ngược mã Java phần mềm freeware tên Mocha Một trình mã hóa giả tạo gọi HoseMocha gắn thêm lệnh giả chống lại việc dịch ngược, mà không làm ảnh hưởng đến việc thực thi chương trình Cú pháp mã hóa: AES_ENCRYPT(chuoi_can_ma_hoa, KEY_SECRET); Cú pháp giải mã: AES_DECRYPT(ten_column, KEY_SECRET); KEY_SECRET khóa dùng để mã hóa giải mã, cần tránh để lộ khóa Ví dụ: INSERT into SinhVien (MaSV, HoTenSV) VALUES (AES_ENCRYPT('SV001', 'secret'), AES_ENCRYPT('Tran Quoc Hoang', 'secret')); TẤN CÔNG SQL INJECTION SQL Injection kỹ thuật lợi dụng lỗ hổng câu truy vấn lấy liệu website khơng an tồn web, kỹ thuật công phổ biến thành cơng tương đối cao Có thể gây thiệt hại khổng lồ Với SQL Injection, hacker truy cập phần toàn liệu hệ thống Lỗ hổng tiếng, từ developer đến hacker gần biết Ngồi ra, cịn có số tool công SQL Injection cho dân “ngoại đạo”, người lập trình Dễ cơng, phổ biến, gây hậu nghiêm trọng, lý dó Inject (Không SQL mà OS LDAP) nằm chễm chễ vị trí đầu bảng top 10 lỗ hỗng bảo mật OWASP Cơ chế SQL Injection vô đơn giản Ta thường sử dụng câu lệnh SQL để truy cập liệu Giả sử, muốn tìm đăng nhập user, ta thường viết code sau: var username = request.username; // Tqh001 var password = request.password; // Tqh123@123 var sql = "SELECT * FROM Users WHERE Username = '" + username + "' AND Password = '" + password + "'"; SELECT * FROM Users WHERE Username = ' Tqh001' AND Password = ' Tqh123@123' / Đoạn code đọc thông tin nhập vào từ user cộng chuỗi để thành câu lệnh SQL Để thực cơng, Hacker thay đổi thơng tin nhập vào, từ thay đổi câu lệnh SQL var password = request.password; // ' OR '' = '' var sql = "SELECT * FROM Users WHERE Username = '" + username + "' AND Password = '" + password + "'"; SELECT * FROM Users WHERE Username = ' Tqh001' AND Password = '' OR '' = '' / Hacker thơng qua SQL Injection để dị tìm cấu trúc liệu (Gồm table nào, có column gì), sau bắt đầu khai thác liệu cách sử dụng câu lệnh UNION, SELECT TOP 1… Cách phịng chống SQL Injection: Hiện có số hướng dẫn tốt để tránh lỗi SQL injection cho nhà phát triển ứng dụng chẳng hạn như: • Tất liệu nhập vào người dùng phải lọc, loại bỏ tất ký tự chuỗi phần biểu thức đầu vào, tất trường nhập vào phải xác nhận • Các lệnh SQL sử dụng để truy nhập sử liệu từ mã lệnh phần mềm ứng dụng không tạo cách sử dụng chuỗi ghép nối • Các tham số có kiểu mạnh (thường kết hợp với Store procedure) phải sử dụng nơi • Việc đăng nhập vào ứng dụng phải sử dụng Store procedure chức thực với Store procedure xác nhận tốt • Dữ liệu nhập vào tất người dùng phải cho vào dấu ngoặc kép, kể liệu số PHẦN : ÁP DỤNG AN TOÀN CƠ SỞ DỮ LIỆU THỐNG KÊ Cơ sở liệu thống kê loại sở liệu chứa thông tin không cho phép câu truy vấn tiết lộ liệu riêng tư đối tượng hay cá nhân sở liệu Một sở liệu thống kê (SDB) sở liệu chứa ghi mô tả cá nhân thông tin thống kê sẵn dùng, có nghĩa câu truy vấn thống kê (như: COUNT, SUM, MEAN, MAX, MIN…) trả lời, câu truy vấn truy vấn vào mục liệu riêng khơng đáp lại Có dạng SDB bản: Áp dụng SDB KeHoachDaoTao dạng CSDL quan hệ Áp dụng SDB KeHoachDaoTao dạng CSDL vĩ mơ COUNT Đếm số lượng lớp học có maKhoa AT Select count(*) from LOP Where maKhoa = ‘AT’ Đếm số lượng lớp học có maKhoa DT-VT Select count(*) from LOP Where maKhoa = ‘DT-VT’ SUM Tính tổng số lượng sinh viên tất lớp Select SUM(soluongSV) from LOP Vấn đề bảo vệ CSDL thống kê Vấn đề bảo vệ SDB dàn xếp yêu cầu cá nhân quyền tổ chức để biết xử lý thông tin Nghĩa bắt buộc phải chia sẻ thông tin thống kê để tổ chức biết xử lý thông tin thống kê, đảm bảo giữ bí mật thơng tin cá nhân SDB Nói đến bảo vệ SDB nói đến việc ngăn chặn hay tránh khả suy diễn thống kê (statistical inference) Suy diễn SDB có nghĩa thu thơng tin bí mật thực thể đơn lẻ, cách lợi dụng câu truy vấn thống kê Biện pháp an toàn xây dựng lọc thống kê (statistical filter), cho phép câu truy vấn thống kê ngăn chặn truy nhập trực tiếp vào thực thể xác định SDB Tuy nhiên, lọc thống kê không đủ ngăn chặn suy diễn Các thống kê đưa thường chứa dấu vết liệu sử dụng tính tốn, người sử dụng có kỹ thu thơng tin khơng phép Ví dụ, trước tiên người sử dụng đưa câu truy vấn mức lương trung bình nữ nhân cơng phận đó, sau đưa câu truy vấn số lượng nữ nhân công Nếu phép tính trả lại giá trị người sử dụng thu (suy diễn) lương nữ nhân công thông qua câu truy vấn thống kê hợp lệ (đây câu truy vấn mà lọc cho phép qua) Việc phát triển kỹ thuật kiểm soát suy diễn hiệu phụ thuộc vào kiến thức mà nhà phát triển có được, kiến thức bao hàm kỹ thuật mà snooper (kẻ công theo kiểu đánh hơi) sử dụng để cơng vào SDB Để đối phó với kỹ thuật công tinh vi, chế bảo vệ cần tinh xảo Hơn nữa, cần kết hợp kỹ thuật nhằm ngăn chặn suy diễn SDB, cần thiết kế kỹ thuật đơn lẻ để đối phó lại kiểu cơng cụ thể Thống kê nhạy cảm Một khái niệm quan trọng SDB khái niệm thống kê nhạy cảm Thống kê nhạy cảm thống kê sử dụng để nhận dạng thơng tin bí mật cá nhân biểu diễn SDB Thống kê tính tốn thuộc tính bí mật tập truy vấn thống kê nhạy cảm Ví dụ, ta dùng truy vấn COUNT(AGE >50) để đếm số cơng nhân có tuổi lớn 50 chẳng hạn, số lượng một, ta dễ dàng tìm lương người công nhân câu truy vấn SUM(Salary, age>50), truy vấn SUM thống kê nhạy cảm, thơng tin bí mật lương (salary) Do đó, nên hạn chế thống kê nhạy cảm, có nghĩa khơng nên để lộ chúng ... Phần 7: Áp dụng an toàn ứng dụng vào sở liệu VẤN ĐỀ QUẢN LÝ TẢI KHOẢN VÀ MẬT KHẨU NGƯỜI DÙNG Lỗ hổng quản lý mật sở liệu Mơ hình an tồn sở liệu dựa tiến trình xác thực phân quyền Mỗi sở liệu trì... xuyên, sáu tháng lần Tránh từ liên quan đến thân, chẳng hạn tên, ngày tháng năm sinh, nơi sinh, địa - Chứa kí tự, kết hợp kí tự số, kí tự chữ (chữ hoa chữ thường) kí đặc biệt, tránh sử dụng từ... hình DAC Create lớp user HIEUTRUONG, HIEUPHO, GIAOVIEN, SINHVIEN mơ hình MAC Object Hiệu trưởng Hiệu phó Giáo viên Sinh viên Subject KHOAHOC SINHVIEN LOP KHDT CT_KHDT CT_KETQUA KETQUA CHUONGTRINH