1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỀ tài dự án QUẢN lý SINH VIÊN

29 10 0

Đ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

Định dạng
Số trang 29
Dung lượng 0,99 MB

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

Nội dung

Kiến trúc Kernelized -Sử dụng một OS tin cậy, có trách nhiệm đối với các truy nhập vật lý vào dữ liệu trong CSDL và có trách nhiệm tuân theo bảo vệ bắt buộc.. Mỗi cơ sở dữ liệu duy trì d

Trang 1

BÀI TẬP VỀ NHÀ NHÓM 2

1 TRẦN QUỐC HOÀNG- AT150719

2 HUỲNH HẢI BẰNG- AT150802

3 ĐINH TRỌNG HÒA- AT150717

4 PHẠM NGUYỄN TIẾN ANH- AT150702

5 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

1 KHÓA HỌC (mã khóa học, tên khóa học, niên khóa)

2 SINH VIÊN (Mã sinh viên, họ và tên, năm sinh, dân tộc, mã lớp, nguyên quán)

3 CHƯƠNG TRÌNH (Mã chương trình, tên chương trình)

4 MÔN HỌC (Mã môn học, tên môn học, mã khoa)

5 KẾT QUẢ (Mã sinh viên, Mã môn học, lần thi, điểm)

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

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

Trang 4

Phần 3 : Chuẩn hóa dữ liệu

Chuyển đổi ERD mở rộng về ERD kinh điển

Trang 5

Chuyển đổi ERD kinh điển về ERD hạn chế.

Trang 6

Chuyển đổi ERD hạn chế về MH quan hệ

Trang 7

Phần 4 : Bảng đặc tả dữ liệu

KHOAHOC

Khóa Khóa

STT chính ngoài Tên trường Kiểu dữ liệu Diễn giải

Năm bắt đầu - năm kết

SINHVIEN

STT chính ngoài Tên trường Kiểu dữ liệu Diễn giải

Mã quản lý lớp của sinh

LOP

STT chính ngoài Tên trường Kiểu dữ liệu Diễn giải

Mã quản lý lớp của

Giáo viên phụ trách

số lượng sinh viên

Trang 8

STT chính ngoài Tên trường Kiểu dữ liệu Diễn giải

KETQUA

CT_KHDT

Khóa Khóa

STT chính ngoài Tên trường Kiểu dữ liệu Diễn giải

CHUONGTRINH

Khóa Khóa

STT chính ngoài Tên trường Kiểu dữ liệu Diễn giải

Tên đầy đủ của

Trang 9

Khóa Khóa

STT chính ngoài Tên trường Kiểu dữ liệu Diễn giải

Tên đầy đủ của môn

Mã khoa giảng dạy

CT_KETQUA

STT Khóa Khóa Tên trường Kiểu dữ liệu Diễn giải

chính ngoài

Trang 10

Phần 5 Áp dụng mô hình DAC và MAC vào CSDL

Mô hình DAC

Create các lớp user HIEUTRUONG,

HIEUPHO, GIAOVIEN, SINHVIEN

Trang 11

Phần 6: Áp dụng an toàn DBMS

Kiến trúc Woods Hole

Các kiến trúc Woods Hole sử dụng DBMS không tin cậy cùng với một

bộ lọc tin cậy và không quan tâm đến OS có tin cậy hay không

-Phần mềm front ends và DBMS đều không tin cậy (Không quan tâm OS có tin cậy hay không)

-Phần mềm untrusted front-end thực hiện các công việc xử lý trước

và sau các câu truy vấn (phân tích, tối ưu hóa, phép chiếu)

-Phần mềm trusted front end (TFE) ở giữa thực thi các chức năng

an toàn và bảo vệ nhiều mức, vì vậy hoạt động như một TCB

(Trusted Computing Base)

Trang 12

Kiến trúc Integrity Lock

-Khoá toàn vẹn được đề xuất lần đầu tiên tại Viện nghiên cứu của Lực lượng Không quân về An toàn cơ sở dữ liệu [AF83], được dùng để kiểmsoát tính toàn vẹn và sự truy nhập cho cơ sở dữ liệu

-Kiến trúc Integrity lock đã có trong hệ quản trị thương mại TRUDATA

Đặc điểm:

-TFE thực thi bảo vệ nhiều mức bằng cách gắn các nhãn an toàn vào cácđối tượng CSDL dưới dạng các tem – Stamps

-Một tem là một trường đặc biệt của một đối tượng, lưu thông tin

về nhãn an toàn và các dữ liệu điều khiển liên quan khác

-Tem là dạng mã hóa của các thông tin trên, sử dụng một kỹ thuật niêmphong mật mã gọi là Integrity Lock

Trang 13

-TFE có nhiệm vụ tạo và kiểm tra các tem.

-TFE sử dụng mật mã khóa bí mật để tạo tem và giải mã các tem

Các tem này có thể tạo ra dựa vào tổng kiểm tra (checksum)

-Khóa bí mật chỉ có TFE biết

•Insert dữ liệu: khi người dùng muốn insert một mục dữ liệu, TFE sẽtính:

–Tổng kiểm tra = mức nhạy cảm dữ liệu + dữ liệu

–Mã hoá tổng kiểm tra này bằng một khoá bí mật K, tạo ra tem, và lưu vào trong CSDL cùng với mục dữ liệu đó (gắn với mục dữ liệu)

•Đưa ra dữ liệu: Khi đưa ra dữ liệu trả cho người dùng, TFE nhận được

dữ liệu từ DBMS không tin cậy, nó sẽ kiểm tra tem gắn với mục dữ liệuxem có chính xác không:

Trang 14

–Giải mã tem gắn với dữ liệu.

–So sánh dữ liệu nhận được với dữ liệu sau khi giải mã tem Nếu không khớp chứng tỏ dữ liệu đã bị sửa đổi

–Lưu ý: nếu dùng hàm băm để tạo tem, thì sau khi DBMS nhận được dữliệu và tem tương ứng, nó sẽ băm dữ liệu này ra và so sánh với tem nhậnđược xem có trung nhau không

Kiến trúc Kernelized

-Sử dụng một OS tin cậy, có trách nhiệm đối với các truy nhập vật lý vào

dữ liệu (trong CSDL) và có trách nhiệm tuân theo bảo vệ bắt buộc

-High User (người dùng làm việc ở mức cao) tương tác với một

High DBMS, thông qua một TFE, Low User (người dùng làm việc ởmức thấp) tương tác với một Low DBMS cũng thông qua một TFE.-Sau đó, các yêu cầu của họ được chuyển cho OS, và OS lấy lại dữ liệuhợp lệ từ CSDL

Trang 15

-Đã có trong mẫu thử Sea View và trong hệ quản trị thương mại Oracle.-Quá trình khôi phục: được thực hiện khi OS cần lấy lại dữ liệu được lưugiữ trên các đối tượng của nó để trả về cho người dùng Để từ các quan

hệ đơn mức, sinh ra một khung nhìn đa mức chỉ chứa các dữ liệu mà người dùng yêu cầu,

-Quá trình phân tách: thực hiện chuyển đổi một quan hệ đa mức (đối tượng CSDL) thành một số quan hệ đơn mức, (chỉ chứa dữ liệu ở

một mức an toàn nào đó), được lưu giữ trong các đối tượng OS

-Các đối tượng (có các nhãn an toàn giống nhau) của CSDL được lưugiữ trong các đối tượng của OS tin cậy Vì vậy, OS tin cậy tiến hành kiểm soát an toàn trên các đối tượng lưu giữ này, cần có các quá trìnhphân tách và khôi phục quan hệ nhiều mức

Trang 16

-Để tuân theo giải pháp này cần có các thuật toán đồng bộ an toàn

để đảm bảo tính tương thích lặp và chi phí lặp cũng rất lớn

-Dữ liệu mức thấp được lặp trong CSDL

Trang 17

Phần 7: Áp dụng an toàn ứng dụng vào cơ sở dữ liệu.

VẤN ĐỀ QUẢN LÝ TẢI KHOẢN VÀ MẬT KHẨU NGƯỜI

DÙNG 1 Lỗ hổng trong quản lý mật khẩu cơ sở dữ liệu.

Mô hình an toàn cơ sở dữ liệu dựa trên các tiến trình xác thực và phân quyền Mỗi cơ sở dữ liệu duy trì danh sách các định danh của người dùng, mỗi khi người dùng truy nhập vào cơ sở dữ liệu, tên và mật khẩu trong danh sách định danh sẽ được sử dụng để xác thực Sau khi quá trình xác thực đã thành công, cơ sở dữ liệu sẽ xác định tập các quyền màngười dùng được phép thực hiện trên cơ sở dữ liệu

Vì vậy, một điều hiển nhiên là để đáp ứng được yêu cầu mô hình an toàn đặt ra, tên và người dùng phải được quản lý một cách an toàn, nếu điều này không được thực hiện tốt thì toàn bộ mô hình sẽ trở nên vô nghĩa.Quy ước đặt tên

- Viết hoa chữ cái đầu

- Loại bỏ dấu, ký tự đặc biệt như: ‘:’, ‘ ‘, ‘/’,

- Đặt theo dạng số ít

Để bảo vệ thì trước tiên chúng ta phải có một mật khẩu hiệu quả Mật khẩu được xem là một mật khẩu hiệu quả thì rất khó xâm phạm, thường

có các đặc điểm sau:

- Thay đổi mật khẩu thường xuyên, ít nhất sáu tháng mỗi lần

- Tránh những từ liên quan đến bản thân, chẳng hạn như tên, ngày tháng năm sinh, nơi sinh, địa chỉ

- Chứa ít nhất 8 kí tự, kết hợp các kí tự số, các kí tự chữ (chữ hoa và chữthường) và các kí đặc biệt, tránh sử dụng các từ chung (tên, chữ của người khác mà có thể được tìm thấy trong từ điển)

Trang 18

Lỗ hổng này đề cập đến vấn đề tên và mật khẩu của cơ sở dữ liệu được

sử dụng và lưu trữ không an toàn Có nhiều nguyên nhân dẫn đến lỗhổng này, trong đó một nguyên nhân chính là tên và mật khẩu được lưutrữ dưới dạng rõ trong tệp cấu hình Dẫn đến kẻ tấn công có thể lợi dụng

để làm hại đến các tài nguyên của máy chủ ứng dụng, hoặc có thể đạtđược việc truy nhập vào cơ sở dữ liệu một cách hợp pháp Đây là một lỗhổng bảo mật nghiêm trọng vì định danh được sử dụng bằng ứng dụng

để truy nhập vào trong cơ sở dữ liệu thường có toàn quyền đối với lược

đồ cơ sở dữ liệu thậm trí là toàn quyền với cơ sở dữ liệu

Hoàng

Tiến Anh

Bằng

Để bảo mật tài khoản của người dùng thì ta dùng mật khẩu mã hóa

(encrypted_password)

ở đây dùng mã hoá md5 + salt được tạo ngẫu nhiên

Password được mã hoá như sau hash (password +salt)

Tên nhân Chức User Password_encrypted

Trang 19

Phạm Hiệu Pnta003 6abd6a7d4266b2115156b67d35662e65

1.2 KIỂM SOÁT TRUY CẬP VÀO CƠ SỞ DỮ LIỆU.

Bước đầu tiên trong việc giải quyết các lỗ hổng bảo mật về mật khẩuCSDL là giám sát xem ai đang truy nhập vào dữ liệu Bắt đầu bằng việctạo báo cáo về các tải khoản nào đang hoạt động, tài khoản đó đangdùng địa chỉ IP nào kết nối tới CSDL, và ứng dụng nào được dùng đểtruy nhập vào CSDL

Một tùy chọn thêm để tăng cường an toàn là sử dụng tường lửa, nhưtrong hình 4.3, tại đây có hai lựa chọn: (1) sử dụng tường lửa tiêu chuẩn,cho phép thực hiện kiểm soát truy nhập dựa trên IP và Port; (2) sử dụngtường lửa SQL, cho phép việc xây dựng các tập luật không chỉ dựa trên

IP mà còn dựa trên tên truy nhập, ứng dụng truy nhập, đối tượng CSDLđược truy nhập Nó cũng cho phép xác định chính xác tài khoản nào hayứng dụng nào, máy tính nào được phép truy nhập vào CSDL

Ngoài ra chúng ta có thể kết hợp sử dụng thêm một phần mềm cảnh báothời gian thực khi có bất kỳ vi phạm an ninh nào Kẻ tấn công có thể cốgắng kết nối tới CSDL từ máy tính của nó, và khi không thể kết nối được

do bị tường lửa SQL chặn thì nó có thể đoán rằng địa chỉ IP của đang bịchặn(đang có một thiết bị giám sát an ninh tầng 3), nó có thể quay ra thựchiện tấn công từ các máy chủ ứng dụng, hoặc có thể giả mạo địa chỉ IP củamáy chủ ứng dụng thành địa chỉ IP của máy mình và tiếp tục tấn công,

Trang 20

quá trình lọc có thể mất thêm thời gian, tuy nhiên nếu việc lọc được thựchiện sử dụng phần mềm cảnh báo thời gian thực thì có thể chặn cuộc tấncông từ sớm, trước khi kẻ tấn công tìm mọi cách để vượt qua các hàngrào bảo vệ.

Anh

Sử dụng Firewall bằng cách kiểm tra các packet đến và so sánh chúngvới một bộ rules Nếu packet đáp ứng các tiêu chuẩn được quy định bởicác rules, thì Firewall sẽ chuyển packet đến TCP / IP protocol để xử lý

bổ sung Nếu packet không đáp ứng các tiêu chuẩn được chỉ định bởicác rules, thì Firewall sẽ loại bỏ packet đó Ngoài ra, logging được bật,firewall sẽ tạo một mục nhập trong file logging của Firewall

Trang 21

Danh sách lưu lượng được cho phép theo một trong những cách sau:

Tự động: Khi Firewall được kích hoạt, Firewall sẽ tạo một danh sách đểphản hồi “allowed” (cho phép) Phản hồi này được xem là solicitedtraffic và không có gì cần phải cấu hình

Theo cách thủ công: Admin cấu hình các rules cho Firewall Điều nàyCho phép truy cập vào các chương trình hoặc các port được chỉ định trênmáy tính của bạn Trong trường hợp này, máy tính chấp nhận unsolicitedtraffic khi hoạt động như một server, một listener, hoặc một peer Đây làloại cấu hình phải được hoà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 và giả mã

Trong nhiều môi trường ứng dụng hiện đại ngày nay, một số mã được đặt trong định dạng mã nguồn hoặc trong định dạng mà có thể dễ dàng được sử dụng cũng như

dễ dàng lấy được Và từ đó kẻ tấn công có thể có được rất nhiều thông tin về các hoạt động bên trong của ứng dụng (đây cũng là một vi phạm về quyền sở hữu trí tuệ, nhưng không được đề cập đến trong chương này) Một kẻ tấn công có thể tìm hiểu các cách thức kết nối trong ứng dụng với CSDL, hay làm thế nào tên tài khoản được mã hóa, cũng như các câu truy vấn tới CSDL mà ứng dụng sử dụng là gì Mã nguồn cũng

có thể bị kẻ tấn công phân tích để tìm ra những lỗ hổng trong ứng dụng.

Một vấn đề khác về mã bảo vệ liên quan đến mã giả hoặc định dạng trung gian.

Cả hai môi trường Java và Microsft Net đểu dựa trên một máy ảo (VM) mẫu, trong

đó mã nguồn được biên dịch thành một định dạng trung gian (hay còn gọi là mã giả)

mà sau đó được sử dụng bởi các máy ảo để chạy ứng dụng Định dạng trung gian này bao gồm các hướng dẫn, chỉ thị cụ thể đối với máy ảo, máy ảo thực hiện những chỉ thị này và đôi khi biên dịch chúng thành mã máy (code on-the-fly / just in time complie) Lợi thế của kiến trúc này là tính di động và khả năng tương tác tốt Ví dụ trong môi trường Java nó cho phép một chương trình chạy trên một 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) trong Java được biên dịch thành các file class chứa các bytecode, chỉ thị, điều khiển máy ảo java (JVM) Nền tảng Net thực hiện các

Trang 22

tương tác với Microsoft, trong đó nhiều ngôn ngữ lập trình có thể tương tác tốt và chia

sẻ các tập lệnh dễ dàng bởi tất cả đều được biên dịch theo một định dạng chung trên một cơ sở chung Cơ sở chung này được gọi là Common Library Runtime(CLR), và các định dạng trung gian trong đó tất cả các chương trình được biên dịch được gọi là Common Intermediate Language(CIL) Định dạng CIL bao gồm siêu dữ liệu (metadata) có thể đọc hiểu code và cung cấp nhiều thông tin có giá trị cho hacker.

Trong khi máy ảo và mã giả rất thuận tiện cho việc phát triển và đơn giản hóa việc triển khai phần mềm, thì chính nó cũng là phần dễ bị tổn thương Mã giả gồm những tập lệnh chỉ thị ở mức máy ảo, và máy ảo chạy như một phần mềm thông dịch, nó chuyển dịch mã nguồn của một ngôn ngữ lập trình thành các lệnh cho máy tính thực hiện tính toán, bởi vì những tập lệnh này rất thông dụng, kẻ tấn công

đã xây dựng các chương trình gọi là phần mềm ăn cắp mã giả Các chương trình này đọc biên soạn mã giả và tạo ra mã nguồn Mã nguồn này gần chính xác như

mã gốc.

Khắc phục vấn đề tấn công khai thác lỗ hổng dựa trên phân tích mã nguồn.

để hạn chế các tấn công khai thác lỗ hổng dựa trên phân tích mã nguồn

là sử dụng các 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 các nhận dạng, loại bỏ các chú thích câu lệnh, vàđảo vị trí các method

Trang 23

là HoseMocha đã gắn thêm các 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.

Trang 24

TẤN CÔNG SQL INJECTION.

SQL Injection là một kỹ thuật lợi dụng những lỗ hổng về câu truy vấnlấy dữ liệu của những website không an toàn trên web, đây là một kỹthuật tấn công rất phổ biến và sự thành công của nó cũng tương đối cao

Có thể gây ra những thiệt hại khổng lồ Với SQL Injection, hacker có thểtruy cập một phần hoặc toàn bộ dữ liệu trong hệ thống

Lỗ hổng này rất nổi tiếng, từ developer đến hacker gần như ai cũng biết.Ngoài ra, còn có 1 số tool tấn công SQL Injection cho dân “ngoại đạo”,những người không biết gì về lập trình

Dễ tấn công, phổ biến, gây ra hậu quả nghiêm trọng, đó là lý dó Inject(Không chỉ SQL mà OS và LDAP) nằm chễm chễ ở vị trí đầu bảngtrong top 10 lỗ hỗng bảo mật của OWASP

Cơ chế SQL Injection vô cùng đơn giản Ta thường sử dụng câu lệnhSQL để truy cập dữ liệu Giả sử, muốn tìm đăng nhập user, ta thườngviết code như 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 trên đọc thông tin nhập vào từ user và cộng chuỗi để thànhcâu lệnh SQL Để thực hiện tấn công, Hacker có thể thay đổi thôngtin 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 + "'";

Trang 25

/ SELECT * FROM Users WHERE Username = ' Tqh001' AND

Password = '' OR '' = ''

Hacker có thể thông qua SQL Injection để dò tìm cấu trúc dữ liệu (Gồmnhững table nào, có những column gì), sau đó bắt đầu khai thác dữ liệubằng cách sử dụng các câu lệnh như UNION, SELECT TOP 1…

• Các lệnh SQL được sử dụng để truy nhập cơ sử dữ liệu từ mã lệnhtrong phần mềm ứng dụng không được tạo ra bằng cách sử dụng cácchuỗi ghép nối

• Các tham số có kiểu mạnh (thường kết hợp với các Store

procedure) phải được sử dụng bất kỳ nơi nào có thể

• Việc đăng nhập vào ứng dụng phải sử dụng một Store procedure chức năng được thực hiện với một Store procedure xác nhận tốt

• Dữ liệu nhập vào của tất cả người dùng phải được cho vào trong dấu ngoặc kép, kể cả dữ liệu số

Ngày đăng: 23/03/2022, 19:21

HÌNH ẢNH LIÊN QUAN

Phần 5 Áp dụng mô hình DAC và MAC vào CSDL Mô hình DAC - ĐỀ tài dự án QUẢN lý SINH VIÊN
h ần 5 Áp dụng mô hình DAC và MAC vào CSDL Mô hình DAC (Trang 10)
w