Bài giảng An toàn cơ sở dữ liệu - Chương 4: An toàn cơ sở dữ liệu thống kê

pdf 121 trang ngocly 380
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng An toàn cơ sở dữ liệu - Chương 4: An toàn cơ sở dữ liệu thống kê", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_an_toan_co_so_du_lieu_chuong_4_an_toan_co_so_du_li.pdf

Nội dung text: Bài giảng An toàn cơ sở dữ liệu - Chương 4: An toàn cơ sở dữ liệu thống kê

  1. CHƯƠNG 4 AN TOÀN CSDL THỐNG KÊ Giảng viên: Trần Thị Lượng
  2. Mụ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.
  3. Nộ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
  4. 4.1 Giới thiệu  CSDL thống kê (SDB) là một CSDL chứa 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
  5. Ví 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
  6. Ví dụ một số câu truy vấn thống kê  SUM:  Select SUM(Luong) as sum_Luong from Nhanvien  Select SUM(Distinct Luong) as sum_Luong from Nhanvien  Select Chucvu, Sum(Luong) from Nhanvien GROUP BY chucvu  Select HoTen, chucvu, Luong from nhanvien ORDER by chucvu Compute SUM(Luong) by chucvu (Thêm cột tổng lương với từng kiểu chức vụ)
  7. Ví dụ một số câu truy vấn thống kê  AVG:  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  Select chucvu, AVG(Luong) as avg_Luong, SUM(Luong) as sum_luong from Nhanvien Group by chucvu Order by chucvu
  8. Ví dụ một số câu truy vấn thống kê  MIN:  Select MIN(Luong) from Nhanvien  Select MIN(Distinct Luong) from Nhanvien  MAX  Select MAX(Distinct Luong) from Nhanvien  Select MAX(Luong) from Nhanvien
  9. 4.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ụ:
  10. 4.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ê.
  11. 4.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 đó.
  12. 4.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ời gian 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ép chè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ên cứu trực tuyến, lớp học trực tuyến khi bổ sung thành viên, ).
  13. 4.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.
  14. 4.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  Kiến thức bổ sung của người sử dụng (sumplementary knowledge): Người sử dụng có 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.
  15. Mô hình làm lộ SDB
  16. Ví dụ về làm lộ một SDB Ví dụ 1 (lộ chính xác)
  17. Ví dụ 2 (lộ xấp xỉ)
  18. Ví dụ 2
  19. Nộ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
  20. 4.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ột SDB là một dạng quan hệ, giả sử là R.  N là số bản ghi: Xi là bản ghi thứ i  M là số thuộc tính: A1, A2, , AM  Xij là giá trị của thuộc tính Aj trong bản ghi xi  Mỗi thuộc tính Aj (1 j M) có thể có |Aj | giá trị.
  21. 4.2 Các khái niệm cơ bản và các giả định
  22. 4.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
  23. 4.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 Nguyễn Văn Tài 25 HN Xanh Honda 13.30 1 1 37 HD Đỏ Toyota 6.25 1 0 Lê sỹ Hoàng Hoàng Văn Minh 42 PT Trắng Audi 17.45 0 0 Vũ Bình Minh 32 PT Vàng Volkswagon 3.30 0 1 Trần Quang Hòa 22 HN Xanh Honda 6.30 1 0
  24. 4.2 Các khái niệm cơ bản và các giả định  SDB về các Sinh viên Tên Giới Địa chỉ Phụ cấp Nghiện ma Lớp tính túy Minh M HN 500 1 Toán1 Hải M HD 0 0 Toán2 Tuyết F NĐ 300 0 Tin1 Nam M BG 100 3 Tin2 Phương F NA 200 1 Toán2 Hạnh F HT 100 0 Toán1
  25. 4.2 Các khái niệm cơ bản và các giả định  SDB vĩ mô về các Sinh viên Toán1 Toán2 Tin1 Tin2 M 500 0 0 100 F 100 200 300 0 Tổng cộng 600 200 300 100 Tổng phụ cấp theo giới tính và theo lớp
  26. 4.2 Cá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 MA03 Vũ Văn Hiển Hà Nội Phó Giám đốc 4000 1 MA04 Trần Thị Mai Nghệ An Trưởng phòng 3000 1 MA05 Nguyễn Quang Huy Hải Phòng Giám đốc 5000 1 MA06 Trần Văn Hải Hà Nam Nhân viên 2000 1 MA03 Lê Minh Sơn Nam Định Nhân viên 2500 0
  27. 4.2 Các khái niệm cơ bản và các giả định  SDB vĩ mô về Công nhân (count) BSD Table Năm sinh Giới tính Mã phòng Phong1 Phong2 Phong3 1941-1951 M 10 12 0 F 1 0 3 1952-1962 M 12 10 5 F 20 2 8 >1962 M 15 0 1 F 20 10 0
  28. 4.2 Các khái niệm cơ bản và các giả định  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ác toá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).
  29. 4.2 Các khái niệm cơ bản và các giả định  Một số câu truy vấn thống kê:  Count(C)=X(C)  Df  Rfreg(C)  Avg(C,Aj)  Ma  d  df
  30. 4.2 Cá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
  31. Nộ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.4.4 Các kỹ thuật dựa vào mẫu ngẫu nhiên  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
  32. 4.2 Các khái niệm cơ bản và các giả định  Một số tấn công suy diễn thống kê  Xét CSDL thống kê về công nhân sau:: ID Tên Chức vụ Phòng Tuổi Giới tính Lương 01 Nam Nhân viên Maketing 29 F 3500 02 Lan Trưởng phong Kế hoạch 33 M 6200 03 Huệ Nhân viên Kế hoạch 27 M 4000 04 Minh Giám sát viên Maketing 24 F 3600 05 Quỳnh Nhân viên Kế hoạch 24 F 2900
  33. 4.3 Một số kiểu tấn công suy diễn  Tấn công trực tiếp: Ví dụ SELECT Ten FROM Employees WHERE Luong>4.360 => Giải pháp: Dùng bộ lọc thống kê  Tấn công dựa vào đếm Đây là loại tấn công bằng cách kết hợp giá trị đếm với giá trị tổng để thu được thông tin bí mật.Ví dụ: COUNT ( ChucVu= ‘Trưởng phòng’, Phong=‘Kế hoạch’) =1 SUM (Salary, (ChucVu= ‘Trưởng phòng’, Phong=‘Kế hoạch’))
  34. 4.3 Một số kiểu tấn công suy diễn  Tấn công dựa vào trình theo dõi ( )  Tấn công hệ tuyến tính ( )
  35. Nộ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.4.4 Các kỹ thuật dựa vào mẫu ngẫu nhiên  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
  36. 4.4 Các kỹ thuật kiểm soát suy diễn  Hai loại làm lộ SDB:  Lộ chính xác (exact compromise): Lộ chính xác xảy ra khi người sử dụng thông qua một hoặc nhiều truy vấn thống kê có thể suy diễn ra: thuộc tính Ai có giá trị 1 nếu Ai là một thuộc tính không số-thuộc tính logic, hoặc giá trị chính xác của Ai nếu Ai là một thuộc tính số, với bản ghi xj trong SDB.  Lộ từng phần (partial compromise): Lộ từng phần xảy ra khi người sử dụng có thể suy diễn ra: thuộc tính Ai có giá trị 0 nếu Ai là một thuộc tính không số, hoặc thu được một ước lượng của giá trị thực của thuộc tính Ai nếu Ai là một thuộc tính số, và thoả mãn:   Var(A ) = A / A
  37. 4.4 Các kỹ thuật kiểm soát suy diễn  Các kỹ thuật chống suy diễn: Từ sự phân loại tổng quát các kỹ thuật chống suy diễn do Denning và Schlorer (1983) và Adam, Wortmann (1989) đưa ra, ta có thể phân loại các kỹ thuật này thành:  Kỹ thuật 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  Kỹ thuật gây nhiễu dữ liệu  Kỹ thuật gây nhiễu đầu ra
  38. Tổng quan về các kỹ thuật kiểm soát suy diễn  Kỹ thuật khái niệm: dựa vào mô hình khái niệm  Kỹ thuật hạn chế tập truy vấn
  39. Tổng quan về các kỹ thuật kiểm soát suy diễn  Kỹ thuật dựa vào gây nhiễu  Kỹ thuật gây nhiễu dữ liệu  Kỹ thuật gây nhiễu đầu ra
  40. 4.4.1 Kỹ thuật khái niệm  Làm việc ở mô hình khái niệm của SDB, để tìm ra các tấn công suy diễn có thể có  Gồm hai kỹ thuật:  Mô hình lưới  Phân hoạch khái niệm
  41. 4.4.1 Kỹ thuật khái niệm  Mô hình lưới: do Denning và Schlorer đề xuất, 1983.  Là một mô hình khái niệm cung cấp nền tảng cho việc phát hiện những tấn công suy diễn có thể xảy ra với SDB.  Xuất phát từ thông tin thống kê được gộp ở nhiều mức khác nhau có thể gây dư thừa dữ liệu => người dùng có thể khám phá dữ liệu nhạy cảm.
  42. 4.4.1 Kỹ thuật khái niệm  Mô hình lưới:  Dựa vào cấu trúc lưới  Các bảng m-chiều (0<=m<=N, N là số thuộc tính của bảng SDB): là các bảng được gộp dữ liệu từ một hay nhiều thuộc tính.  Tính trên một thống kê nào đó như: COUNT, SUM, AVG,
  43. 4.4.1 Kỹ thuật khái niệm  Ví dụ: mô hình lưới cho SDB về công nhân (N=3) (Bảng SDB về công nhân như sau) BSD Table Năm sinh Giới tính Mã phòng Phong1 Phong2 Phong3 Bảng 3-chiều 1941-1951 M 10 12 0 F 1 0 3 1952-1962 M 12 10 5 F 20 2 8 >1962 M 15 0 1 F 20 10 0
  44. 4.4.1 Kỹ thuật khái niệm  Ví dụ: (thống kê Count)  Cấu trúc lưới Tall TG TP TN TGP TNG TNP TNPG
  45. 4.4.1 Kỹ thuật khái niệm  Ví dụ: (thống kê Count)  Các bảng 2-chiều BS Table Giới tính Năm sinh M F 1941-1951 22 4 1952-1962 27 30 >1962 16 30 BD Table SD Table ã phòng Mã phòng Năm sinh M Giới tính Phong1 Phong2 Phong3 Phong1 Phong2 Phong3 1941-1951 11 12 3 M 37 22 6 1952-1962 32 12 13 F 41 12 11 >1962 35 10 1
  46. 4.4.1 Kỹ thuật khái niệm  Ví dụ: (thống kê Count)  Các bảng 1-chiều Giới tính M F 65 64 Năm sinh Mã phòng 1941-1951 26 Phòng1 Phòng2 Phòng3 1952-1962 58 >1962 46 78 34 17  Bảng 0-chiều: 129
  47. 4.4.1 Kỹ thuật khái niệm  Cấu trúc lưới:  Ưu điểm: là một mô hình an toàn hiệu quả cho nghiên cứu các vấn đề suy diễn và các phương pháp kiểm soát suy diễn. Với nhiều bảng ở các mức gộp khác nhau, ta có thể phân tích:  Các kiểu tấn công suy diễn bằng câu truy vấn COUNT, SUM, AVERAGE,  Các tấn công kiểu kết hợp các câu truy vấn khác nhau để suy diễn ra dữ liệu nhạy cảm  So sánh các kiểm soát suy diễn: hạn chế tập truy vấn và gây nhiễu dữ liệu
  48. 4.4.1 Kỹ thuật khái niệm  Cấu trúc lưới:  Nhược điểm: mô hình lưới không thể cung cấp tính đầy đủ của cơ sở dữ liệu và không phù hợp với cơ sở dữ liệu động, vì khi cập nhật SDB ta phải cập nhật tất cả các bảng trong mô hình lưới, do đó rất tốn công.
  49. 4.4.1 Kỹ thuật khái niệm  Phân hoạch khái niệm: do Chin và Ozsoyoglu đề xuất, 1981.  Giải quyết các vấn đề chống suy diễn trong giai đoạn thiết kế khái niệm của SDB.  Dựa vào việc định nghĩa tập các cá thể của SDB tại mức khái niệm, được gọi là các lực lượng (populations).  Dựa vào các điều kiện cần kiểm tra nhằm tránh suy diễn
  50. 4.4.1 Kỹ thuật khái niệm  Phân hoạch khái niệm:  Hình sau minh hoạ mô hình khái niệm của một cơ sở dữ liệu thống kê về công nhân - Employee SDB, trong đó lực lượng Employee được phân tách thành 5 lực lượng con, tuỳ thuộc vào các thuộc tính “giới tính” và "Dept- Code“-Mã phòng.  Lực lượng nguyên tử A-Population là lực lượng không phân tách được nữa
  51. 4.4.1 Kỹ thuật khái niệm  Phân hoạch khái niệm: Employee Male Female Dept1 Dept2 Dept3 Male Male Male Female Female Female Employee Employee Employee Employee Employee Employee Dept1 Dept2 Dept3 Dept1 Dept2 Dept3
  52. 4.4.1 Kỹ thuật khái niệm  Phân hoạch khái niệm:  Để hỗ trợ việc xác định các yêu cầu an toàn thống kê trong mô hình khái niệm này, người ta đã đề xuất hệ thống tiện ích quản lý an toàn thống kê (SSMF) gồm có 3 modul, cụ thể là PDC, UKC và CEC:  PDC (Xây dựng định nghĩa lực lượng- Population Definition Construct)  UKC (Xây dựng trình độ người dùng - User Knowledge Construct)  CEC (Bộ thi hành và kiểm tra ràng buộc - Constraint Enforcer and Checker)
  53. 4.4.2 Kỹ thuật dựa vào hạn chế
  54. 4.4.2 Kỹ thuật dựa vào hạn chế  Các kỹ thuật này chống suy diễn bằng cách hạn chế các câu truy vấn thống kê theo một điều kiện hạn chế nào đó  Kiểm soát kích cỡ tập truy vấn  Kiểm soát kích cỡ tập truy vấn mở rộng  Kiểm soát chồng lấp tập truy vấn  Kiểm soát dựa vào kiểm toán  Gộp  Kỹ thuật giấu ô  Kỹ thuật kết hợp
  55. 4.4.2 Kỹ thuật dựa vào hạn chế  Kiểm soát kích cỡ tập truy vấn  Kiểm soát kích cỡ tập truy vấn mở rộng  Kiểm soát chồng lấp tập truy vấn  Kiểm soát dựa vào kiểm toán  Gộp  Kỹ thuật giấu ô  Kỹ thuật kết hợp
  56. 4.4.2.1 Kiểm soát kích cỡ tập truy vấn  Một thống kê q(C) chỉ được phép nếu tập truy vấn của nó, X(C), thoả mãn quan hệ sau:  k X(C) N-k  0 k N/2  Trong đó, N là tổng số bản ghi trong SDB, k do DBA định nghĩa.
  57. Query Set Restriction
  58. 4.4.2.1 Kiểm soát kích cỡ tập truy vấn  Kiểm soát này ngăn chặn các tấn công đơn giản, dựa vào các tập truy vấn rất nhỏ hoặc rất lớn.  Ví dụ:  Người dùng yêu cầu thống kê q1 = Count (C) =1, => có một cá nhân A thỏa mãn C.  Đưa ra thống kê q2 = Count (C  C') ’  Nếu q2 = 1 => A thỏa mãn C ’  Ngược lại, A không thỏa mãn C  Đưa ra thống kê khác, ví dụ Sum(C, Ai) => Kiểm soát kích cỡ tập truy vấn không cho phép đưa ra q1, q2.
  59. 4.4.2.1 Kiểm soát kích cỡ tập truy vấn  Nhược điểm:  Hạn chế khả năng hữu ích của SDB  Chỉ ngăn chặn được các tấn công đơn giản, khó có thể ngăn chặn được các tấn công phức tạp, như: Trình theo dõi, Tấn công hệ tuyến tính.
  60. Tấn công dựa vào trình theo dõi (Denning&Schlorer)  Trình theo dõi (Tracker): là một tập các công thức đặc trưng, có thể được sử dụng để đưa thêm bản ghi vào các các tập truy vấn kích cỡ nhỏ, làm cho kích cỡ của chúng nằm trong khoảng [k, N-k]. Thông qua các trình theo dõi có thể tính toán được các thống kê bị hạn chế.  Giả sử C là công thức đặc trưng người dùng yêu cầu  T là một trình theo dõi. T thỏa mãn điều kiện: k<|T|< N-k.
  61. Tấn công dựa vào trình theo dõi (Denning&Schlorer)  Kiểu 1:  Giả thiết:  User cần tính Count(C)  Công thức C = (AB), và Count (C) = 1. => Câu truy vấn này bị cấm  Tấn công:  Tính T = A B thỏa mãn k<|T|< N-k.  Tính gián tiếp Count (C): Count(C)= Count (AB) = Count(A)-Count(AB) Count(C) = Count(A) - Count(T)
  62. Ví dụ SDB về công nhân: ID Tên Chức vụ Phòng Tuổi Giới tính Lương 01 Nam Nhân viên Maketing 29 F 3500 02 Lan Trưởng phong Kế hoạch 33 M 6200 03 Huệ Nhân viên Kế hoạch 27 M 4000 04 Minh Giám sát viên Maketing 24 F 3600 05 Quỳnh Nhân viên Kế hoạch 24 F 2900
  63. Ví dụ SDB về công nhân:  C = (Phong=‘Kế hoạch’)(Tuoi =24) (GioiTinh=F)  User cần tính Count(C)  Count (C) = 1.=> Câu truy vấn này bị cấm (k=1)  Tấn công:  Đặt C=(A B )  A = (Phong=‘Kế hoạch’)  B = (Tuoi =24) (GioiTinh = F)  Tính T = A B thỏa mãn k<Coun(T)=2< N-k.  Tính gián tiếp Count (C): Count(C)= Count (AB) = Count(A)-Count(AB) Count(C) = Count(A) - Count(T) = 3-2 =1
  64. Tấn công dựa vào trình theo dõi (Denning&Schlorer)  Kiểu 2:  Giả thiết:  Cần tính Count(C), Count(C) Thống kê này bị cấm  Tấn công: (trường hợp này Q = Count)  Chọn T thỏa mãn: k<|T|, | T |< N-k.  Q(D)= Q(All) = Q(T) + Q(T) (trong trường hợp Q(All) bị cấm )  d
  65. Ví dụ SDB về các vụ tai nạn môtô HoTen Tuoi Đ/C MauXe LoaiXe ThoiGian CoLoi SayRuou Tài 25 HN Xanh Honda 13.30 1 1 Hoàng 37 HD Đỏ Toyota 6.25 1 0 Minh 42 PT Trắng Honda 17.45 1 0 Minh 19 PT Vàng Volkswagon 3.30 0 1 Hòa 22 HN Xanh Honda 6.30 1 0
  66. Ví dụ SDB về các vụ tai nạn môtô  Giả thiết: C = (Ten=‘Minh’) (MauXe=‘Trắng’)  Count(C)=1, SUM(CoLoi, C)=1 => 2 Câu truy vấn này bị cấm (k=1)  Tấn công:  Chọn T = (Tuoi Count(T)=2, Count(T)=3  Count(All)= Count(T)+Count(T) =5  Count(C) = Count(CVT) + Count(CVT)–Count(All) = 3 + 3 – 5 = 1  SUM(CoLoi, C)= Sum(CoLoi, CVTuoi =25) – Sum(CoLoi,All) = 2 + 3 – 4 = 1. => Anh Minh có lỗi trong vụ tai nạn đó!
  67. Tấn công hệ tuyến tính:  Là loại tấn công bằng cách giải một hệ phương trình có dạng: HX = Q 1,1x1 + 1,2x2 + . . . + 1,nxN = q1 2,1x1 + 2,2x2 + . . . + 2,NxN = q2 . . k,1x1 + k,2x2 + . . . + k,nxN = qK Mỗi phương trình tương ứng một câu truy vấn
  68. Tấn công hệ tuyến tính:  H là ma trận truy vấn  H[i,j] = 1 nếu bản ghi xj X(Ci), (tương ứng qi)  H[i,j] = 0 nếu ngược lại  x1 , , xN là giá trị của N bản ghi  Q = (q1, , qk) là vector của các thống kê đưa ra
  69. Ví dụ SDB về công nhân: ID Tên Chức vụ Phòng Tuổi Giới tính Lương 01 Nam Nhân viên Maketing 29 F 3500 02 Lan Trưởng phong Kế hoạch 33 M 6200 03 Huệ Nhân viên Kế hoạch 27 M 4000 04 Minh Giám sát viên Maketing 24 F 3600 05 Quỳnh Nhân viên Kế hoạch 24 F 2900
  70. Ví dụ SDB về công nhân:  C = (Phong=‘Kế hoạch’)(Tuoi =24) (GioiTinh=F)  Cần tính q= Count(C) =1  Tính q1 = Count(Phong=‘Kế hoạch’)  Tính q2 = Count(Phong=‘Kế hoạch’, GioiTinh =M) q1 0x1 1x 2 1x3 0x 4 1x5 3 q2 0x1 1x 2 1x3 0x 4 0x5 2 q3= Count(Phong=‘Kế hoạch’, GioiTinh =F) = q1 – q2 = 3 - 2 =1. q =q3 =1
  71. Ví dụ SDB về công nhân:  C = (Phong=‘Kế hoạch’)(Tuoi =24) (GioiTinh=F)  Cần tính q= Sum(Luong, C)  Tính q1=X(C1) = Count(Phong=‘Kế hoạch’) = 3  Tính q2 =X(C2) = Count(Phong=‘Kế hoạch’, GioiTinh =M)=2  Sum(Luong, C) = Sum(Luong, C1) – Sum(Luong,C2) = (6200+4000+2900) – (6200+4000) = 2900.  Như vậy, kẻ tấn công đã tìm ra lương của người thỏa mãn C.
  72. Tấn công hệ tuyến tính:  Ví dụ  Giả sử cần tính q3= Sum(Sex = M  Dept-Code = Dept3 Birth-Year = 1968, Salary), count = 1. q1 Sum (Sex F Dept-Code Dept3 Birth-Year 1968, Salary) q2 Sum ((Sex FSex M) Dept-Code Dept3 Birth-Year 1968, Salary)  Tương ứng ta có hệ sau:  Count1 = 7 x1 x3 x4 x6 x7 x8 x9 33  Count2 = 8 x1 x3 x4 x5 x6 x7 x8 x9 37  Từ đó, tính được: x5 = q2 – q1 = 4.  Và người dùng biết cout (q3) = 1 => tìm được lương của người này
  73. 4.4.2.1 Kiểm soát kích cỡ tập truy vấn  Ưu điểm:  Đưa ra kêt quả chính xác  Chỉ chống được tấn công suy diễn đơn giản  Nhựơc điểm:  Không chống được một số tấn công phức tạp như: Trình theo dõi, Hệ tuyến tính.  Hạn chế khả năng hữu ích của SDB (vì hạn chế nhiều câu truy vấn)
  74. 4.4.2 Kỹ thuật dựa vào hạn chế  Kiểm soát kích cỡ tập truy vấn  Kiểm soát kích cỡ tập truy vấn mở rộng  Kiểm soát chồng lấp tập truy vấn  Kiểm soát dựa vào kiểm toán  Gộp  Kỹ thuật giấu ô  Kỹ thuật kết hợp
  75. 4.4.2.2 Kiểm soát kích cỡ tập truy vấn mở rộng  Nhược điểm của kiểm soát kích cỡ tập truy vấn là do các công thức đặc trưng liên quan đến nhau (ví dụ: C và T).  Cải tiến: tăng số lượng các tập truy vấn cần được kiểm soát.  Cho công thức đặc trưng C  Tìm tập truy vấn ngầm định của C
  76. 4.4.2.2 Kiểm soát kích cỡ tập truy vấn mở rộng  Cho trước một thống kê bậc m có dạng như sau:  q(A1 = a1 A2= a2  Am =am) Hoặc:  q(A1 = a1 A2= a2  Am =am) m 0 1 2 m-1  Khi đó, tồn tại 2 = Cm + Cm +Cm + + Cm tập truy vấn ngầm định, tương ứng với các thống kê sau đây:  q(A1 = a1 A2= a2  Am =am)  q(A1 = a1 A2= a2  Am =am)   q(A1= a1 A2= a2  Am =am)  q(A1 = a1 A2= a2  Am =am)   q(A1 = a1 A2= a2   Am =am)
  77. 4.4.2.2 Kiểm soát kích cỡ tập truy vấn mở rộng  Ưu điểm:  Chống được các kiểu tấn công: Trình theo dõi, Hệ tuyến tính  Nhược điểm: m  Tốn công: phải kiểm tra 2 tập truy vấn ngầm định (hàm mũ tăng rất lớn theo m). => Giải pháp này khó thực hiện  Ngoài tập truy vấn ngầm định, kẻ tấn công có thể sử dụng những công thức khác liên quan đến tập truy vấn này để tính ra truy vấn yêu cầu.
  78. 4.4.2.2 Kiểm soát kích cỡ tập truy vấn mở rộng  Ví dụ: (tấn công ngoài tập truy vấn ngầm định)  Chúng ta xét 2 thuộc tính Ai và Aj trong SDB  Ai có n giá trị (ai1, , ain) và Aj có p giá trị (aj1, , ajp)  Xét câu truy vấn thống kê:  q(Ai  Aj) được tạo thành n x p câu truy vấn con:  q(Ai=ai1  Aj=aj1), , q(Ai=ai1  Aj=ajp)  q(Ai=ai2  Aj=aj1), , q(Ai=ai2  Aj=ajp)   q(Ai=ain  Aj=aj1), , q(Ai=ain  Aj=ajp)
  79. 4.4.2.2 Kiểm soát kích cỡ tập truy vấn mở rộng  Ví dụ: (tấn công ngoài tập truy vấn ngầm định)  Trong các câu truy vấn trên, giả thiết chỉ có truy vấn sau là nhạy cảm: q(Ai=ai1  Aj=aj1) = q(ai1 aj1) 2  Tập truy vấn ngầm định gồm: 2 =4 tập truy vấn:  q(ai1  aj1), q(ai1  aj1)  q( ai1  aj1), q( ai1  aj1). => 4 câu truy vấn này sẽ bị cấm theo KS kích cỡ tập truy vấn mở rộng
  80. 4.4.2.2 Kiểm soát kích cỡ tập truy vấn mở rộng  Ví dụ: (tấn công ngoài tập truy vấn ngầm định)  Tuy nhiên, kẻ tấn công có thể thực hiện như sau:  q(ai1  aj1) = q(aj1) - q(aj1 ai1 ) (Bị cấm) = q(aj1) - [q(aj1ai2)+ + q(aj1ain)] (Không bị cấm)
  81. 4.4.2 Kỹ thuật dựa vào hạn chế  Kiểm soát kích cỡ tập truy vấn  Kiểm soát kích cỡ tập truy vấn mở rộng  Kiểm soát chồng lấp tập truy vấn  Kiểm soát dựa vào kiểm toán  Gộp  Kỹ thuật giấu ô  Kỹ thuật kết hợp
  82. 4.4.2 Kỹ thuật dựa vào hạn chế  Kiểm soát kích cỡ tập truy vấn  Kiểm soát kích cỡ tập truy vấn mở rộng  Kiểm soát chồng lấp tập truy vấn  Kiểm soát dựa vào kiểm toán  Gộp  Kỹ thuật giấu ô  Kỹ thuật kết hợp
  83. 4.4.2 Kỹ thuật dựa vào hạn chế  Kiểm soát kích cỡ tập truy vấn  Kiểm soát kích cỡ tập truy vấn mở rộng  Kiểm soát chồng lấp tập truy vấn  Kiểm soát dựa vào kiểm toán  Gộp  Kỹ thuật giấu ô  Kỹ thuật kết hợp
  84. 4.4.2.5 Kỹ thuật gộp (microaggregation)  Các câu truy vấn thống kê được tính toán trên các cá thể tổng hợp. Dữ liệu riêng sẽ được nhóm lại thành một khối nhỏ trước khi đưa ra.  Giá trị trung bình của nhóm gộp sẽ thay thế cho mỗi giá trị riêng của dữ liệu được gộp  Kỹ thuật này giúp ngăn chặn khám phá dữ liệu riêng.
  85. 4.4.2.5 Kỹ thuật gộp (microaggregation)  Ví dụ: Cục thống kê nông nghiệp quốc gia (NASS) công bố dữ liệu về các nông trường, trang trại. Để bảo vệ chống lại sự khám phá dữ liệu, dữ liệu chỉ được đưa ra ở mức vùng. Dữ liệu tại các nông trại ở mỗi vùng sẽ được gộp để bảo vệ tính riêng tư và tránh bị khám phá.
  86. Microaggregation
  87. Microaggregation Query Results
  88. 4.4.2.5 Kỹ thuật gộp (microaggregation)  Ưu điểm:  Tránh được việc để lộ thông tin nhạy cảm  Nhựơc điểm:  Kết quả đưa ra không chính xác
  89. 4.3.2.5 Kỹ thuật Giấu ô (Cell suppression)  Kỹ thuật này được thiết kế cho các SDB vĩ mô (đưa ra các thống kê trong bảng 2- chiều, ví dụ các thống kê dân số).  Giấu ô: trong các bảng, giấu đi tất cả các ô tương ứng với các thống kê nhạy cảm và các ô tương ứng với các thống kê có thể gián tiếp khám phá ra các thống kê nhạy cảm (Giấu bổ sung).
  90. 4.3.2.5 Kỹ thuật Giấu ô (Cell suppression)  Tiêu chuẩn giấu ô:  Thống kê Count: kích cỡ tập truy vấn bằng 1, nghĩa là Count(C) =1  Thống kê Sum, tiêu chuẩn nhạy cảm được sử dụng là quy tắc «đáp ứng n, trội k% » . Theo tiêu chuẩn này, một thống kê là nhạy cảm nếu n giá trị thuộc tính của n hoặc ít hơn n bản ghi tạo thành k% hoặc lớn hơn k% trong toàn bộ thống kê Sum đó. Các tham số n và k được giữ bí mật và do DBA xác định.
  91. 4.3.2.5 Kỹ thuật Giấu ô (Cell suppression)  Ví dụ: Giả sử n = 2 và k = 90% Giới tính Mã phòng Tổng lương Phong1 Phong2 Phong3 M 135 80 50 265 F 120 360 100 580 Tổng lương 255 440 150 845 Tổng lương của nam,nữ công nhân trong các phòng
  92. 4.3.2.5 Kỹ thuật Giấu ô (Cell suppression)  Nếu chỉ có 1 công nhân nam làm ở phòng ‘phong3’ thì ta có: (n = 1 và k = 90%) Count(MaPhong = Phong3  GioiTinh=M) = 1 Sum(Lương, MaPhong = Phong3  GioiTinh=M) = 50  Do đó ô (1,3) là ô nhạy cảm cần phải giấu đi vì lương của công nhân này tạo thành 100% của toàn bộ tổng lương tại ô đó (với n=1 90%).  Giấu bổ sung ô (2,3) vì nếu lấy tổng của cột 3 trừ đi tổng ở ô (2,3) sẽ tìm được tổng của ô (1,3).
  93. 4.3.2.5 Kỹ thuật Giấu ô (Cell suppression)  Kết quả: Giới tính Mã phòng Tổng lương Phong1 Phong2 Phong3 M 135 80 _ 265 F 120 360 _ 580 Sum 255 440 150 845
  94. 4.3.2.5 Kỹ thuật Giấu ô (Cell suppression)  Tuy nhiên, để an toàn, trên hàng chứa một ô bị giấu, phải giấu bổ sung thêm 1 ô nữa! Giới tính Mã phòng Tổng lương Phong1 Phong2 Phong3 M 135 _ _ 265 F _ _ 580 360 Sum 255 440 150 845
  95. 4.3.2.5 Kỹ thuật Giấu ô (Cell suppression)  Ưu điểm:  Chống được các tấn công kết hợp dựa vào Count và Sum  Nhược điểm:  Hạn chế khả năng hữu ích của SDB, vì phải che giấu một số ô trong CSDL.
  96. 4.4.2 Kỹ thuật dựa vào hạn chế  Kiểm soát kích cỡ tập truy vấn  Kiểm soát kích cỡ tập truy vấn mở rộng  Kiểm soát chồng lấp tập truy vấn  Kiểm soát dựa vào kiểm toán  Gộp  Kỹ thuật giấu ô  Kỹ thuật kết hợp
  97. 4.4.2 Kỹ thuật dựa vào hạn chế  Kiểm soát kích cỡ tập truy vấn  Kiểm soát kích cỡ tập truy vấn mở rộng  Kiểm soát chồng lấp tập truy vấn  Kiểm soát dựa vào kiểm toán  Gộp  Kỹ thuật giấu ô  Kỹ thuật kết hợp
  98. 4.4.3 Các kỹ thuật dựa vào gây nhiễu  Kỹ thuật gây nhiễu dữ liệu  Kỹ thuật gây nhiễu đầu ra
  99. Data Perturbation
  100. 4.4.3.1 Kỹ thuật gây nhiễu dữ liệu  Gây nhiễu cố định (fixed perturbation)  Gây nhiễu dựa vào truy vấn
  101. 4.4.3.1 Kỹ thuật gây nhiễu dữ liệu  Gây nhiễu cố định (fixed perturbation)  Cho N là kích cỡ của SDB và ta xét thuộc tính Aj.  Mỗi giá trị thực xij (với i =1, ,N) của một thuộc tính Aj bị thay thế bằng một giá trị gây nhiễu x‘ij x‘ij = xij + ei với i =1, ,N  Vector e = (x' - x) = (e1, , eN) là một vector gây nhiễu ngẫu nhiên  x = (x1j , , xNj), x'=(x‘1j , , x‘Nj) là các vector của giá trị thực và giá trị gây nhiễu của các bản ghi trong SDB, dành cho thuộc tính Aj
  102.  4.4.3.1 Kỹ thuật gây nhiễu dữ liệu  Gây nhiễu cố định (fixed perturbation)  e = (e1, , eN), mỗi thành phần ei là các biến ngẫu nhiên, độc lập tuyến tính. 2 E(ei) = 0, D(ei) =   Các giá trị của mỗi thuộc tính Aj sẽ được cộng thêm một vector e ngẫu nhiên.  Xác suất lỗi trong một câu truy vấn vượt quá giá trị giới hạn  cho trước là: 2 2  P(|q’(C) – q(C)| )>= | |X(C)| | )<=  /(|X(C)| )  Như vậy |X(C)| càng lớn thì xác suất lỗi càng nhỏ
  103. 4.4.3.1 Kỹ thuật gây nhiễu dữ liệu  Gây nhiễu cố định (fixed perturbation)  Ưu điểm:  Chống được nhiều tấn công, kể cả tấn công tính trung bình (lặp nhiều lần)  Nhược điểm:  Chỉ áp dụng cho thuộc tính số  Kết quả trả về không chính xác
  104. 4.4.3.1 Kỹ thuật gây nhiễu dữ liệu  Gây nhiễu dựa vào truy vấn  Không yêu cầu tạo một SDB nhiễu  Với mỗi truy vấn được tạo ra trong SDB, một hàm gây nhiễu sẽ được áp dụng với tất cả các thuộc tính của tập truy vấn đó.  Giả sử thống kê q(C), với mọi giá trị xij thuộc ’ X(C): x ij = f(xij). ’  Giá trị  = x ij – xij là ngẫu nhiên.
  105. 4.4.3.1 kỹ thuật gây nhiễu dữ liệu  Gây nhiễu dựa vào truy vấn  Thống kê Sum:  Xét thống kê S= q(C) = Sum(C, Aj), n là số lượng các bản ghi tập truy vấn X(C). n x ' ’  S’ = ij với xij = f(xij) = xij + z1 ( xij - xC ) + z2 i 1 j  z1 và z2 là các biến ngẫu nhiên độc lập được sinh ra cho mỗi bản ghi
  106. 4.4.3.1 kỹ thuật gây nhiễu dữ liệu  Gây nhiễu dựa vào truy vấn  Thống kê Count:  Giả sử thống kê Count(C) = m n ’  m =  z 3 j 3 2 Với E(z3) = 1 và Var(z3) = a 1 /m,  và z3 được sinh ngẫu nhiên và độc lập với các bản ghi xi trong X(C). 2  E(m’) = m và Var(m’) = a 1
  107. 4.4.3.1 kỹ thuật gây nhiễu dữ liệu  Gây nhiễu dựa vào truy vấn  Ưu điểm:  Gây nhiễu dữ liệu nên chống được nhiều tấn công  Nhược điểm:  Với mỗi thống kê, lại phải áp dụng một hàm gây nhiễu f, với gía trị nhiễu=> tốn công, giảm hiệu năng hệ thống.  Kết quả đưa ra không chính xác.
  108. đầu ra 4.4.3.2 Kỹ thuật gây nhiễu Query
  109. 4.4.3.2 Kỹ thuật gây nhiễu đầu ra  Các kỹ thuật gây nhiễu đầu ra thực hiện sửa đổi trên các kết quả được tính toán chính xác của một câu truy vấn thống kê, trước khi chuyển nó cho người sử dụng.  Kỹ thuật Làm tròn (rounding)
  110. 4.4.3.2 Kỹ thuật gây nhiễu đầu ra  Kỹ thuật Làm tròn (rounding)  Kết quả mọi câu truy vấn sẽ được làm tròn: Q' = r(Q)  Làm tròn có hệ thống (systematic rounding)  Làm tròn ngẫu nhiên (random rounding)
  111. 4.4.3.2 Kỹ thuật gây nhiễu đầu ra  Làm tròn có hệ thống (systematic rounding)  Q' là một kết quả sửa đổi, nó được tính toán cho thống kê yêu cầu q(C).  b'= (b+1)/2 (ký hiệu chỉ làm tròn xuống số nguyên gần nhất), giá trị b do Admin chọn.  d = Q mod b. Q nêu d 0  r(Q) = ' Q d nêu d b ' Q b d nêu d b
  112. 4.4.3.2 Kỹ thuật gây nhiễu đầu ra  Làm tròn ngẫu nhiên (random rounding)  Q' là một kết quả sửa đổi, nó được tính toán cho thống kê yêu cầu q(C).  b'= (b+1)/2 (ký hiệu chỉ làm tròn xuống số nguyên gần nhất)  d = Q mod b. Q nêu d 0  r(Q) = Q d voi xác suât1 p Q b d voi xácsuât p  Xác suất p = d/b
  113. 4.4.3.2 Kỹ thuật gây nhiễu đầu ra  Kỹ thuật Làm tròn (rounding)  Ưu điểm: Bảo vệ được những tấn công đơn giản.  Nhược điểm:  Không chống được những tấn công trung bình, tấn công trình theo dõi  Kết quả đưa ra cũng không chính xác.
  114. Nộ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.4.4 Các kỹ thuật dựa vào mẫu ngẫu nhiên  4.5 So sánh các kỹ thuật chống suy diễn
  115. 4.4.4 Kỹ thuật mẫu ngẫu nhiên  Cục điều tra dân số Mỹ sử dụng kỹ thuật mẫu ngẫu nhiên để ngăn chặn suy diễn trong các cơ sở dữ liệu thống kê.  Ý tưởng: của kỹ thuật này là sử dụng các mẫu bản ghi từ các tập truy vấn tương ứng với các truy vấn thống kê, thay vì lấy mẫu trong toàn bộ SDB.
  116. 4.4.4 Kỹ thuật mẫu ngẫu nhiên  Cơ chế cơ bản của kỹ thuật này là thay thế tập truy vấn (có liên quan đến một câu truy vấn thống kê) bằng một tập truy vấn được lấy mẫu (sampled query set) gồm một tập con các bản ghi được chọn lựa chính xác trong tập truy vấn gốc. Sau đó, tiến hành tính toán thống kê yêu cầu trên tập truy vấn mẫu này. Sử dụng một hàm chọn f(C, i) để chọn lựa các bản ghi từ tập truy vấn gốc tương ứng với thống kê q(C) mà người dùng yêu cầu.
  117. Nộ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.4.4 Các kỹ thuật dựa vào mẫu ngẫu nhiên  4.5 So sánh các kỹ thuật chống suy diễn
  118. 4.5 So sánh các kỹ thuật chống suy diễn  Các tiêu chuẩn so sánh:  Security: đánh giá mức độ bảo vệ của kỹ thuật (chống được những tấn công nào), chống được suy diễn, có lộ chính xác, lộ từng phần không.  Mức đầy đủ của thông tin: kết quả trả về có chính xác không, có nhất quán không và có bị mất mát thông tin hay không.  Cost: chi phí thực hiện, chi phí xử lý trên một câu truy vấn (thời gian CPU), chi phí đào tạo ngươì dùng.
  119. 4.5 So sánh các kỹ thuật chống suy diễn Method Security Richness of Costs Information Query-set Restriction Low Low1 Low Microaggregation Moderate Moderate Moderate Data Perturbation High High-Moderate Low Output Perturbation Moderate Moderate-low Low Auditing Moderate-Low Moderate High Sampling Moderate Moderate-Low Moderate