Bài giảng Bảo mật cơ sở dữ liệu - Chương 5: An toàn CSDL thống kê trình bày các nội dung: Giới thiệu, các khái niệm cơ bản và giả định, một số kiểu tấn công suy diễn, các kỹ thuật chống suy diễn, khung làm việc chung dành cho việc so sánh các kỹ thuật chống suy diễn. Mời các bạn cùng tham khảo.
Trang 1CHƯƠNG 5
Trang 2Mục tiêu
Chúng ta đi sâu vào các vấn đề suy diễn
trên các CSDL thống kê.
Thảo luận một số kỹ thuật bảo vệ cơ bản:
Kỹ thuật dựa vào khái niệm
Kỹ thuật dựa vào hạn chế
Kỹ thuật dựa vào gây nhiễu
Đánh giá chung về đặc trưng của các kỹ
thuật này.
Trang 3Nội dung
4.1 Giới thiệu
4.2 Các khái niệm cơ bản và giả định
4.3 Một số kiểu tấn công suy diễn
4.4 Các kỹ thuật chống suy diễn
4.4.1 Các kỹ thuật khái niệm
4.4.2 Các kỹ thuật dựa vào hạn chế
4.4.3 Các kỹ thuật dựa vào gây nhiễu
4.5 Khung làm việc chung dành cho việc so sánh các kỹ thuật chống suy diễn
Trang 44.1 Giới thiệu
các bản ghi nhạy cảm mô tả về các cá nhân nhưng chỉ các câu truy vấn thống kê (như: COUNT, SUM, MEAN, MAX, MIN…) mới được trả lời, ngoài các câu truy vấn này thì những truy vấn vào các mục dữ liệu riêng sẽ không được đáp lại
Trang 5Ví dụ một số câu truy vấn thống kê
COUNT:
Select count(*) from Nhanvien
(Trả lại tổng số lượng các bg trong table)
Select count(Luong) AS count_Luong from
Nhanvien
Select count(Distinct Luong) from Nhanvien
(Trả lại số lượng các loại lương phân biệt nhau)
select count(*) from nhanvien where
Luong<=1000
Trang 6Ví dụ một số câu truy vấn thống kê
Select SUM(Luong) as sum_Luong from Nhanvien
Select SUM(Distinct Luong) as sum_Luong from
Compute SUM(Luong) by chucvu
(Thêm cột tổng lương với từng kiểu chức vụ)
Trang 7Ví dụ một số câu truy vấn thống kê
Select AVG(Luong) AS avg_Luong from Nhanvien
Select AVG(Luong) AS avg_Luong from Nhanvien where Luong>1000
Select AVG(distinct Luong) AS avg_Luong from Nhanvien
SUM(Luong) as sum_luong from Nhanvien
Group by chucvu
Order by chucvu
Trang 8Ví dụ một số câu truy vấn thống kê
Select MIN(Luong) from Nhanvien
Select MIN(Distinct Luong) from Nhanvien
Select MAX(Distinct Luong) from Nhanvien
Select MAX(Luong) from Nhanvien
Trang 94.1 Giới thiệu
Ứng dụng của SDB (Statistical Database):
CSDL điều tra dân số, CSDL về số người tử
vong, về kế hoạch kinh tế, CSDL thống kê về
khám chữa bệnh, CSDL về các vụ tai nạn ô tô,
CSDL về công nhân, CSDL thống kê về tội
phạm…
Ví dụ:
Trang 104.1 Giới thiệu
Vấn đề bảo vệ SDB: Vấn đề chính trong bảo
vệ SDB là dàn xếp giữa các yêu cầu cá nhân
và quyền của các tổ chức để biết và xử lý thông tin => vấn đề suy diễn trong SDB.
Suy diễn: trong một SDB có nghĩa là có thể thu được các thông tin bí mật trong các thực thể đơn lẻ, bằng cách lợi dụng các câu truy vấn thống kê.
Trang 114.1 Giới thiệu
Một SDB chắc chắn bị lộ: nếu người sử dụng phát hiện được một cá nhân có một đặc điểm cụ thể nào đó, nghĩa là người dùng biết cá nhân này được biểu diễn trong SDB
có một số giá trị thuộc tính nào đó.
Một SDB hoàn toàn không bị lộ: nếu người sử dụng biết được một cá nhân cụ thể không nắm giữ một đặc điểm nào đó.
Trang 124.1 Giới thiệu
Các đặc tính của SDB cần được bảo vệ:
SDB tĩnh: SDB không thay đổi trong suốt thờigian tồn tại của chúng
SDB động: thay đổi liên tục theo sự thay đổi của
dữ liệu thực, cho phép sửa đổi, nghĩa là được phépchèn hoặc xoá các thực thể để phản ánh các thayđổi động của thế giới thực (ví dụ các CSDL nghiêncứu trực tuyến, lớp học trực tuyến khi bổ sungthành viên,…)
Trang 134.1 Giới thiệu
SDB trực tuyến (online): trong đó người sử dụng nhận được các phản hồi thời gian thực cho các câu truy vấn thống kê của mình.
SDB ngoại tuyến (offline): trong đó người sử dụng không biết khi nào các thống kê của họ được xử lý, việc SDB bị lộ sẽ khó khăn.
Trang 144.1 Giới thiệu
Kiến thức làm việc (working knowledge) là tập
các mục thông tin liên quan đến các giá trị thuộc
tính trong SDB và các kiểu thống kê có sẵn
trong SDB
thể có kiến thức bổ sung về các cá nhân được
biểu diễn trong SDB Họ hoàn toàn có thể lợi
dụng kiến thức này cho các mục đích suy diễn.
Trang 15Mô hình làm lộ SDB
Trang 16Ví dụ về làm lộ một SDB
Ví dụ 1 (lộ chính xác)
Trang 17Ví dụ 2 (lộ xấp xỉ)
Trang 18Ví dụ 2
Trang 19Nội dung
4.1 Giới thiệu
4.2 Các khái niệm cơ bản và giả định
4.3 Một số kiểu tấn công suy diễn
4.4 Các kỹ thuật chống suy diễn
4.4.1 Các kỹ thuật khái niệm
4.4.2 Các kỹ thuật dựa vào hạn chế
4.4.3 Các kỹ thuật dựa vào gây nhiễu
4.5 Khung làm việc chung dành cho việc so
sánh các kỹ thuật chống suy diễn
Trang 204.2 Các khái niệm cơ bản và các giả định
CSDL thống kê (SDB): ta xem xét cấu trúc của mộtSDB là một dạng quan hệ, giả sử là R
N là số bản ghi: X i là bản ghi thứ i
M là số thuộc tính: A 1 , A 2 , …, A M
X ij là giá trị của thuộc tính A j trong bản ghi x i
Mỗi thuộc tính Aj (1 j M) có thể có |Aj | giá
trị
Trang 214.2 Các khái niệm cơ bản và các giả định
Trang 224.2 Các khái niệm cơ bản và các giả định
Ví dụ về một SDB:
SDB về công nhân (Lương):
ID Tên Chức vụ Phòng Tuổi Giới tính Lương
01 Nam Nhân viên Maketing 29 M 3500
02 Lan Trưởng phong Kế hoạch 33 F 6200
03 Huệ Nhân viên Kế hoạch 27 F 4000
04 Minh Giám sát viên Maketing 24 M 3600
05 Quỳnh Nhân viên Kế hoạch 24 F 2900
Trang 234.2 Các khái niệm cơ bản và các giả định
SDB về các vụ tai nạn ô tô
HoTen Tuoi Đ/C MauXe LoaiXe ThoiGian CoLoi SayRuou
Trang 244.2 Các khái niệm cơ bản và các giả định
Trang 254.2 Các khái niệm cơ bản và các giả định
SDB vĩ mô về các Sinh viên
Tổng phụ cấp theo giới tính và theo lớp
Toán1 Toán2 Tin1 Tin2
Tổng cộng 600 200 300 100
Trang 26Các khái niệm cơ bản và các giả định
SDB về đảng viên
MaDV HoTen DiaChi ChucVu Luong DangVien
MA01 Trần Văn Nguyên Hà Nội Trưởng phòng 3000 1
MA02 Nguyễn Thị Hoa Hải Phòng Nhân viên 2000 0
MA05 Nguyễn Quang Huy Hải Phòng Giám đốc 5000 1
Trang 27Các khái niệm cơ bản và các giả định
SDB vĩ mô về Công nhân (count)
N ăm sinh Gi ới tính
1952-1962
>1962
F M F
F M
M ã phòng
Phong1 Phong2 Phong3
0 1 8 5 3 0
10 0 2 10 0 12
20 15 20 12 1 10
BSD Table
Trang 28 Công thức đặc trưng: được ký hiệu bởi một chữ cái viết
hoa (A,B,C, ), đây là một công thức lôgíc, trong đó các
giá trị thuộc tính được kết hợp với nhau thông qua cáctoán tử Boolean như OR, AND, NOT (,,) Ví dụ:
C=(GioiTinh=F)((MaPhong=Phong1)
(MaPhong=Phong2)) (NamSinh<1965)
Tập truy vấn (query set): Một công thức đặc trưng sẽxác định một tập các bản ghi trong SDB, và tập bản ghi
này được gọi là tập truy vấn Ký hiệu là X(C).
Các khái niệm cơ bản và các giả định
Trang 29Các quan hệ hai ngôi Thủ_trưởng và Cùng_phòng
có ý nghĩa rõ ràng trên tập D Công thức (1) là đúng nếu năm người Khang , Phong, Mai, Lan, Long làm việc trong cùng phòng và có một người là trưởng
phòng
Trang 30Một số câu truy vấn thống kê
Trang 31Các khái niệm cơ bản và các giả định
Khái niệm bậc: Một thống kê gồm m thuộc tính khác nhau được gọi là thống kê bậc m. Ví dụ, thống kê:
Count ((GioiTinh = F) (MaPhong = Phong1))
là một thống kê bậc 2.
Count(All) hay Count(*) chỉ là một thống kê bậc 0.
Khái niệm thống kê nhạy cảm: Thống kê được tính
toán trên một thuộc tính bí mật trong tập truy vấn có
kích cỡ bằng 1 là thống kê nhạy cảm Ví dụ:
COUNT(AGE >50) =1
=> SUM(Salary, age>50) là thống kê nhạy cảm
Trang 32Giới thiệu CSDL suy diễn
(Deductive Database)
Khái niệm CSDL suy diễn: Khái niệm về CSDL suydiễn cũng được nhiều nhà nghiên cứu đề cập theo
hướng phát triển các kết quả mà Green đã đạt được
vào năm 1969 về các hệ thống hỏi – đáp
Xuất phát từ quan điểm lý thuyết, các CSDL suydiễn có thể được coi như các chương trình logic với
sự khái quát hoá khái niệm về CSDL quan hệ Đó là
cách tiếp cận của Brodie và Manola vào năm 1989, của Codd vào năm 1970, của Date vào năm 1986, của Gardarin và Valdurier vào năm 1989 và của
Trang 33 CSDL suy diễn là CSDL có khả năng suy diễn ra
một số sự kiện (tri thức) mới từ những sự kiện (trithức) đã có, đã được lưu trữ trong CSDL ban đầu
CSDL suy diễn được sử dụng nhiều trong các hệ
quyết định, hệ chuyên gia Nó có khả năng lưu trữ
số lượng lớn thông tin và khả năng suy diễn trên cácthông tin đó
Các hệ CSDL suy diễn được xem như sự tích hợpcủa dữ liệu (như trong một hệ CSDL) và tri thức(như trong một hệ chuyên gia)
Giới thiệu CSDL suy diễn
(Deductive Database)
Trang 344.1 Giới thiệu
Trang 35Cấu trúc CSDL suy diễn
Cấu trúc chung của một CSDL suy diễn gồm 3 phần chính: tập các sự kiện (facts), tập các luật suy diễn
(rules) và các RBTV
Trang 36Cấu trúc CSDL suy diễn:
Tập các sự kiện (facts): Sự
kiện là vị từ mô tả một sự
thật, cho phép biểu diễn
thông tin cơ sở được biết là
đúng trong CSDL
Cấu trúc CSDL suy diễn
Trang 37Cấu trúc CSDL suy diễn:
Tập các luật suy diễn (rules)
Luật suy diễn cũng là các vị
từ diễn tả quy luật suy diễn
mà ta công nhận chúng
Luật suy diễn được trình bày
dưới dạng một mệnh đề Nó
cho phép suy diễn ra các sự
kiện mới từ những sự kiện
được lưu trữ trong CSDL
Cấu trúc CSDL suy diễn
Trang 38Cấu trúc CSDL suy diễn:
như trong các mô hình CSDL
khác như: ràng buộc khóa
chính, khóa ngoại, ràng buộc
miền giá trị ( ràng buộc kiểu)
Cấu trúc CSDL suy diễn
Trang 39Một CSDL ngoại diên (Extension Database- EDB)
EDB là một CSDL quan hệ tiêu chuẩn như mọi hệCSDL truyền thống, được xây dựng trên một tập cáclược đồ quan hệ, có khả năng lưu trữ một khối lượnglớn dữ liệu
Các dữ liệu trong EDB gọi là các sự kiện (facts), mỗi
sự kiện là một bộ của một quan hệ, có thể cập nhật(thêm/sửa/xóa) như là các bộ trong CSDL quan hệ
Các sự kiện biểu diễn các thông tin cơ sở (được cho
là đúng trong CSDL)
Các thành phần của CSDL suy diễn
Trang 40Một CSDL ngoại diên (Extension Database- EDB)
EDB là một CSDL quan hệ tiêu chuẩn như mọi hệCSDL truyền thống, được xây dựng trên một tập cáclược đồ quan hệ, có khả năng lưu trữ một khối lượnglớn dữ liệu
Các dữ liệu trong EDB gọi là các sự kiện (facts), mỗi
sự kiện là một bộ của một quan hệ, có thể cập nhật(thêm/sửa/xóa) như là các bộ trong CSDL quan hệ
Các sự kiện biểu diễn các thông tin cơ sở (được cho
Các thành phần của CSDL suy diễn
Trang 41Biểu diễn CSDL ngoại diên (Extension Database- EDB)
Ví dụ: sự kiện phát biểu rằng Mai là mẹ của Bách và Dương
là bố của Tân được biểu diễn bởi:
Mẹ (Mai, Bách)
Bố (Dương, Tân)
Một CSDL suy diễn chỉ chứa các sự kiện cơ sở, tức là các sự kiện trong EDB, đó là các công thức nguyên tố, trong đó các hạng thức ti đều là các hằng
Tân từ ứng với sự kiện cơ sở gọi là tân từ cơ sở, là tân từ cùng tên và các đối là các biến Chẳng hạn với hai sự kiện trên ta sẽ
có các tân từ cơ sở tương ứng là
Mẹ (x, y)
Các thành phần của CSDL suy diễn
41
Trang 42Một CSDL nội hàm (Intension Database-IDB)
IDB là một CSDL chứa các thông tin nội hàm, lưutrữ một tập các luật, cho phép định nghĩa thông tinmới từ các thông tin được lưu trữ là các sự kiện Có 2loại luật được lưu trữ trong IDB:
Các luật suy diễn (deductive rules): cho phép suy ra các
sự kiện mới từ các sự kiện được lưu trữ trong EDB.
Các ràng buộc toàn vẹn (integrity constraints): được viết
dưới dạng các luật, phát biểu các điều kiện mà mỗi trạng thái của CSDL phải thỏa.
Các thành phần của CSDL suy diễn
Trang 43Một CSDL nội hàm (Intension Database-IDB)
Ví dụ Các luật suy diễn (deductive rules):
“nếu x là Bố của y thì x là Cha_mẹ của y”
“nếu x là Mẹ của y thì x là Cha_mẹ của y”,
sẽ định nghĩa tân từ dẫn xuất mới “Cha_mẹ(x, y)” được biểu diễn là:
Cha_mẹ (x, y) Bố (x, y) (đọc: x là cha mẹ của y nếu x là bố của y)
Cha_mẹ (x, y) Mẹ (x, y)
Các sự kiện ứng với các tân từ dẫn xuất gọi là các sự kiện dẫn xuất, cũng được coi là đúng Các sự kiện này được coi là các thông tin nội hàm, và không được lưu trữ trong CSDL suy diễn.
Các thành phần của CSDL suy diễn
Trang 44Kết luận: một CSDL suy diễn D là một bộ ba
D = {F, DR, IC}
trong đó:
F là tập hữu hạn các sự kiện cơ sở (hay sự kiện),
DR là tập hữu hạn các luật suy diễn và
IC là tập hữu hạn các ràng buộc toàn vẹn
Tập F là CSDL ngoại diên (EDB), còn DR và IC làmthành CSDL nội hàm (IDB)
Các thành phần của CSDL suy diễn
Trang 45Kết luận: một CSDL suy diễn D là một bộ ba
D = {F, DR, IC}
trong đó:
F là tập hữu hạn các sự kiện cơ sở (hay sự kiện),
DR là tập hữu hạn các luật suy diễn và
IC là tập hữu hạn các ràng buộc toàn vẹn
Tập F là CSDL ngoại diên (EDB), còn DR và IC làmthành CSDL nội hàm (IDB)
Các thành phần của CSDL suy diễn
Trang 46Thí dụ: Cho một CSDL suy diễn mô tả các mối quan
Trang 47Thí dụ: Cho một CSDL suy diễn mô tả các mối quan
Trang 48Thí dụ: Cho một CSDL suy diễn mô tả các mối quan
Trang 49Ngôn ngữ thao tác CSDL suy diễn
CSDL suy diễn có thể được hiểu là kết quả của việc áp dụng logic và trí tuệ nhân tạo vào lĩnh vực CSDL truyền thống Ngôn ngữ được dùng để định nghĩa nội dung và cấu trúc thông tin trong CSDL suy diễn là ngôn ngữ Datalog (logic cho
dữ liệu).
Datalog là ngôn ngữ lập trình logic (tương tự như Prolog) được phát triển dựa trên cơ sở Logic tân từ cấp một Ngôn
ngữ Datalog thao tác trên các tân từ ngoại diên (hay tân từ cơ
sở) là tên của các quan hệ trong CSDL ngoại diên (EDB) và tân từ nội hàm (hay tân từ dẫn suất) là tên của các quan hệ
trong CSDL nội hàm (IDB) Một CSDL suy diễn được biểu diễn bởi một chương trình Datalog
Các thành phần của CSDL suy diễn
49
Trang 50Ngôn ngữ thao tác CSDL suy diễn
Hệ quản trị CSDL suy diễn phải có tất cả các chức năng của một hệ QTCSDL thông thường, có thể cho phép khai thác và quản lý CSDL một cách tập trung hoặc phân tán, đảm bảo tính tin cậy và an toàn dữ liệu.
Hệ quản trị CSDL suy diễn còn cho phép suy diễn ra các sự kiện mới (là các sự kiện dẫn suất của các tân từ nội hàm) từ các sự kiện đã có bằng việc sử dụng các quy tắc và các luật logic
Hệ quản trị CSDL suy diễn cung cấp một thủ tục xử lý câu hỏi, có khả năng trả lời các câu hỏi được phát biểu theo các
Các thành phần của CSDL suy diễn
Trang 51Ví dụ: Xem xét một số câu hỏi trong Datalog trên CSDL suy diễn:
1 ? Tổ_tiên (Dương, Mai)
- trả về giá trị đúng (True) nếu Dương là tổ tiên của Mai Câu trả lời
là sai (False) trong trường hợp trái lại
4 ? Tổ_tiên (y, Mai) Tổ_tiên (y, Dương)
Các thành phần của CSDL suy diễn
Trang 52Biểu diễn khung nhìn trong CSDL suy diễn:
Trong CSDL suy diễn, các khung nhìn tương ứng với các tân
từ dẫn xuất, và được định nghĩa nhờ vào các luật suy diễn
Chẳng hạn ta có khung nhìn “Bà” được định nghĩa bởi một
luật suy diễn có đầu luật là tân từ Bà (x, y):
Trang 53Ưu điểm của khung nhìn trong CSDL suy diễn:
Khung nhìn cung cấp một biện pháp bảo vệ vì chúngngăn ngừa người dùng truy cập tới dữ liệu bên ngoàikhung nhìn của họ
Làm đơn giản giao diện người dùng, vì có thể bỏ quanhững dữ liệu không liên quan đến người dùng
Ví dụ: Bà(x, y) Mẹ(x, z) Cha_mẹ(z, y),
thì khung nhìn Bà(x, y) chỉ cung cấp thông tin về người bà
x và người cháu y, còn thông tin về cha mẹ (tức z) được che dấu bởi định nghĩa của khung nhìn.
Các thành phần của CSDL suy diễn
Trang 54Ưu điểm của khung nhìn trong CSDL suy diễn:
Khung nhìn hỗ trợ tính độc lập logic của dữ liệu, vì nó cho phép thay đổi cấu trúc logic của dữ liệu trong CSDL suy diễn,
mà không cần phải tiến hành các thay đổi tương ứng cho các luật khác.
Ví dụ: giả sử tân từ cơ sở Bố (x, y) phải được thay bằng hai tân từ Bố1(x, y) và Bố2(x, y), mỗi tân từ chứa một tập con các xuất hiện của Bố(x, y), khi đó ta xem Bố(x, y) là một tân từ khung nhìn được định nghĩa bởi:
Bố (x, y) Bố1 (x, y)
Bố (x, y) Bố2 (x, y),
thì ta không cần phải thay đổi các luật tham chiếu tới tân từ gốc Bố (x,
Các thành phần của CSDL suy diễn
Trang 55Nguyên lý của thuật toán suy diễn
Thuật toán suy diễn là một thủ tục để chứng minh một công thức T từ tập các công thức {A1, A2,
,An} đã được biết là đúng
T còn được gọi là định lý cần chứng minh, còn A1, A2, ,An gọi là các tiên đề Nếu tồn tại một chứng minh của T từ {A1, A2, ,An}thì ta ký hiệu:
{A1, A2, ,An}├ T
Một quy tắc suy diễn là một quy tắc cho phép sinh
ra một công thức từ hai hoặc nhiều công thức Có 2
qui tắc suy diễn: Quy tắc suy diễn Modus ponens