Tải bản đầy đủ (.pptx) (23 trang)

Tấn công rootkit trong Oracle (ppt)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (803.49 KB, 23 trang )

Sinh viên thực hiện:
Nguyễn Nam Thái
Nguyễn Minh Khánh
Lê Viết Tuấn
T n công rootkit trong oracleấ
Giáo viên Hướng dẫn :
Trần Thị Lượng
Học viện kỹ thuậ mật mã
Khoa an toàn thông tin
I : Tìm hiểu về rootkit
II: Tấn công rootkit trong oracle :

Một số kiểu tấn công trong oracle

Tấn công rootkit trong oracle
MỤC LỤC
I:Lịch sử rootkit

Đầu tiên được phát triển trên hệ điều hành Unix-like (Solaris và Linux) và sau
đó là trên Windows. Rootkit đầu tiên được công khai trên Windows là vào
năm 1999 bởi Greg Hoglund- một chuyên gia về bảo mật và người lập
website rootkit.com. Thuật ngữ rootkit bắt nguồn từ root – mức truy nhập cao
nhất vào hệ thống, có quyền admin và từ kit- một tập các công cụ để che giấu
và chiếm quyền.

Ngày 6/12/2005 tạp chí eweek đã công bố rằng có tới 20% malware bị phát
hiện trên Windows XP SP2 là các rootkit. Một số liệu sau đó vào ngày
6/12/2006 cũng ghi nhận rằng tỉ lệ rootkit trong số malware là 14%, trong khi
tại thời điểm của sự kiện Sony Rootkit con số đó là 8%.

I: Tìm hiểu về rootkit trong Oracle


2: Định nghĩa rootkit

Rootkit là một chương trình được thiết kế để che giấu không chỉ chính nó
mà còn các thành phần liên quan khác như process, file, folder, registry
keys, ports và driver. Rootkit có thể có mục đích tốt whitehat (nhưng vẫn
tiềm ẩn nguy cơ mất an toàn) hay mục đích xấu – blackhat. Các rootkit
độc hại thường dùng cho việc xâm nhập và duy trì điều khiển từ xa một
cách bất hợp pháp. Rootkit độc hại che giấu các malware, malwware sẽ cài
đặt các backdoor cho phép hacker truy nhập tới máy bị điều khiển.

Rootkit cho thấy một lỗ hổng cơ bản của hệ điều hành. Khó mà biết được
tính toàn vẹn của hệ thống tới đâu, hay độ tin cậy các bản báo cáo, các kết
quả quét mã độc.
I: Tìm hiểu về rootkit trong Oracle

Cách thức hoạt động của Rootkit

Sự xuất hiện của Rootkit trên máy tính hay mạng cho thấy khả năng bị vi
phạm của các hệ thống mà bạn phải làm việc và tin tưởng và đó cũng là lỗ
hổng an ninh lớn nhất.

Lợi dụng tính mềm dẻo và linh hoạt của kiến trúc Windows.
I: Tìm hiểu về rootkit trong Oracle

Chiếm quyền điểu khiển

Bất kì khi nào user hay một chương trình nào truy vấn hệ thống, kết quả trả
về sẽ được mặc định tin tưởng không gợn chút nghi vấn. Rootkit lợi dụng
sự tin tưởng cơ bản này. Đầu tiên nó phải chiếm được quyền quản trị hệ
thống để có thể điều khiển hệ thống làm gì cho nó.

I: Tìm hiểu về rootkit trong Oracle

Phân loại Rootkit

Rootkit được chia thành hai loại– user mode và kernel mode rootkit, phụ
thuộc vào phạm vi ảnh hưởng và liệu chúng chỉ tồn tại trong bộ nhớ hay sau
khi khởi động lại( được ghi lên ổ đĩa) persisten và non-persistent rootkit .

User-mode rootkit và kernel – mode rootkit

Các rootkit đều dựa trên cơ sở: các chương trình giao tiếp với nhau nhờ các
lời gọi hàm. Tùy vào mức đặc quyền của chương trình, nó có thể tạo lời gọi
trực tiếp tới kernel hay gián tiếp qua một bên xử lí thứ ba đứng giữa nó và
kernel. Hay người ta gọi là User mode và kernel mode.

Rootkit mức user, là mức đặc quyền thấp nhất, nó phải sử dụng giao diện
ứng dụng chương trình API để gửi yêu cầu tới hệ thống. Các lời gọi này sẽ
thông qua thư viện liên kết mức user (DLL) để được chuyển thành thông
điệp mà kernel có thể hiểu.
I: Tìm hiểu về rootkit trong Oracle

Kernel mode rootkit: kernel là phần mềm tương ứng với đơn vị xử lí trung
tâm- bộ não của hệ điều hành, là thành phần căn bản. Kernel duy trì và
điều khiển nhiều tài nguyên quan trọng, và các hàm như thông tin bộ nhớ,
an ninh, lập lịch xử lí, giao tiếp giữa phần cứng và phần mềm. Kernel vì
thế có phạm vi ảnh hưởng toàn bộ hệ thống, phần cứng và tất cả các ứng
dụng. Tất cả các chương trình đều phải tương tác với kernel theo một cách
nào đó. Và nếu rootkit thao túng được kernel, nó sẽ ở vị trí điều khiển tất
cả.


Không giống user mode rootkit hoạt động ở Ring 3, kernel mode rootkit
hoạt động ở Ring 0, tương tác trực tiếp với kernel. Kernel mode rootkit sẽ
cài đặt một device driver để lấy quyền điều khiển mức kernel. Sau đó,
rootkit driver sẽ chuyển hướng các system function call sang mã lập trình
của nó để thi hành.
I: Tìm hiểu về rootkit trong Oracle

Persistent và non-persistent rootkit
Một khía cạnh để phân loại rootkit nữa là khả năng tồn tại của nó sau khi hệ thống khởi
động.

Persistent rootkit: để có thể tồn tại sau khi hệ thống khởi động rootkit phải thay đổi
được nội dung ổ cứng. Rootkit sẽ chèn một mục autostart vào Registry, nhờ đó nó
được load vào bộ nhớ và tự động thực thi mỗi lần máy tính khởi động.

Non-Persistent rootkit: chỉ tồn tại trên bộ nhớ và mất đi khi hệ thống khởi động lại.
Các chương trình mà bỏ qua việc quét các nơi lưu trữ vật lí sẽ không phát hiện ra
rootkit này. Đối với một mạng server- với hàng trăm máy tính client, việc reboot
thường rất hiếm. Các rootkit nằm trên bộ nhớ thường lợi dụng điểm này, hơn nữa,
rootkit kiều này không để lại manh mối vật lý nào để có thể bị phát hiện.
I: Tìm hiểu về rootkit trong Oracle

Hack listener

Oracle Database Listener là thành phần software database server mà quản lý
network traffic giữa Oracle Database và client. Oracle Database Listener lắng
nghe trên một port, mặc định là 1521 và chuyển tiếp kết nối tới Database. Tất
cả kết nối client đến DB đều thông qua listener.

Tnslsnr (Listener) : Tnslnsr start và đọc file listener.ora và sqlnet.ora để biết

thông tin cấu hình, như số port và tên dịch vụ database. Được khởi động bởi tài
khoản sở hữu tiến trình lsnrctl.

Listener Control utility (lsnrctl) : Dùng cho việc start và stop tiến trình
listener(tnslsnr).
II: Tấn công Rootkit trong Oracle

PL/SQL injection

PL/SQL injection là một kỹ thuật tấn công khá quan trọng liên quan tới
các procedure được lưu trữ trong Oracle. Sử dụng PL/SQL injection,
attacker có thể leo thang đặc quyền từ tài khoản Public mức thấp tới tài
khoản đặc quyền mức DBA. Kỹ thuật này xuất hiện ở tất cả các phiên bản
của Oracle và có thể dùng để tấn công các procedure của khách hàng cũng
như của chính Oracle. Có thể inject vào các câu lệnh select, insert, delete,
update trong các procedure, package, vào các anonymous PL/SQL block.
II: Tấn công Rootkit trong Oracle
2. Các loại nhãn người dùng

Tại mỗi thời điểm, mỗi người dùng đều có một nhãn gọi là
nhãn người dùng (user label).

Nhãn này có tác dụng cho biết mức độ tin cậy của người dùng
đối với những dữ liệu được chính sách đó bảo vệ

Nhãn người dùng cũng gồm các thành phần giống như nhãn dữ
liệu

Khi một người dùng truy xuất trên bảng được bảo vệ, nhãn
người dùng sẽ được so sánh với nhãn dữ liệu của mỗi dòng

trong bảng để quyết định những dòng nào người dùng đó có thể
truy xuất được.

II: Tấn công Rootkit trong Oracle

Một số data dictionary view

DBA_JOBS

II: Tấn công Rootkit trong Oracle
Column Comments
Job Xác định một job. Không
thể thay đổi nó dù thực
hiện import hay export
nhiều lần.
Log_user Khi user xác nhận job thì
sẽ được ghi lại.
Priv_user User có quyền mặc định
được áp dụng cho job
này.
Schema_user Schema mặc định được
gán cho job khi thực thi.
Last_date Thời điểm gần nhất mà
job được thực hiện thành
công
This_date
Thời điểm mà job
được bắt đầu thực hiện
(là null nếu không
thực thi).


DBA_JOBS_RUNNING
View Dba_jobs_running liệt kê thông tin về tất cả các job đang chạy.
II: Tấn công Rootkit trong Oracle
Column_name Comments
Failures S l n job đư c kh i ho t và th t b i k ố ầ ợ ở ạ ấ ạ ể
t l n thành công sau cùng.ừ ầ
Instance ID c a instance ch y jobủ ạ
Job ID c a job đang ch yủ ạ
Last_date Ngày g n nh t mà job ch y thành công ầ ấ ạ
Last_sec Tương t như last_date, đó là l n th c ự ầ ự
hi n thành công g n nh tệ ầ ấ
SID ID c a ti n trình đang th c hi n jobủ ế ự ệ
This_date Ngày mà job b t đ u th c hi n (thư ng là ắ ầ ự ệ ờ
null n u không đang th c hi n)ế ự ệ
This_sec Gi ng như this_date. Đó là l n th c hi n ố ầ ự ệ
thành công cu i cùngố

V$PROCESS
Lưu thông tin về các process hiện tại đang chạy.
II: Tấn công Rootkit trong Oracle
C tộ Mô tả
Addr Đ a ch c a processị ỉ ủ
Pid Đ nh danh c a processị ủ
Spid Đ nh danh trên OS c a processị ủ
Username Process đư c ch y b ng tài kho n OS nào.ợ ạ ằ ả
Trace ID Đ nh danh file traceị
Background Nh n di n process có ph i ti n trình background ậ ệ ả ế
không.
Latchwait Đ a ch c a Latch mà process đang đ iị ỉ ủ ợ

Latchspin đ a ch c a latch mà process đang spinning trênị ỉ ủ
Pga_used_me
m
Vùng nh PGA mà process s d ngớ ử ụ
Pga_alloc_me
m
Vùng nh PGA hi n th i đư c c p phát cho processớ ệ ờ ợ ấ

V$Session
V$session liệt kê các thông tin về mỗi session hiện tại. Rootkit cần tìm cách
che giấu thông tin về các process ở trong các view này. Một số thông tin trong
view v$sessions :
II: Tấn công Rootkit trong Oracle
Colum
n
N i dungộ
Saddr Đ a ch sessionị ỉ
Sid Đ nh danh sessionị
Serial# S serial c a session. Dùng đ xác đ nh duy nh t ố ủ ể ị ấ
m t object c a session. Đ m b o r ng các câu l nh ộ ủ ả ả ằ ệ
đư c th c thi đúng đ i tư ng khi session k t thúc và ợ ự ố ợ ế
m t session khác dùng ID l i đ nh danh c a sessionộ ạ ị ủ
Paddr Đ a ch c a process s h u session.ị ỉ ủ ở ữ
Event Tài nguyên ho c s ki n mà session đang đ iặ ự ệ ợ
Status Tr ng thái c a session(active, inactive, killed, ạ ủ
cached…)
Logon_
time
Th i gian logon.ờ
Userna

me
Tên user
Comma
nd
Câu l nh đang x lý.ệ ử
Type Ki u sessionể

Khai thác các PL/SQL Package

Package là một schema object nhóm các kiểu, biến và chương trình
PL/SQL có liên quan. Package thường có hai phần, phần đặc tả (spec) và
phần thân (body), đôi khi phần body không cần thiết. Phần đặc tả là phần
giao tiếp của package. Nó khai báo các kiểu, các biến, hằng, ngoại lệ, con
trỏ và các chương trình con mà bên ngoài có thể tham chiếu tới. Phần body
định nghĩa các truy vấn cho con trỏ và mã cho các chương trình con (các
procedure, function…). Phần spec được coi là phần hộp trắng, phần body
là hộp đen. Có thể debug, thay đổi phần body mà không ảnh hưởng tới
phần spec.
II: Tấn công Rootkit trong Oracle

Package DBMS_METADATA

Để thay đổi thông tin mà các view đưa ra, attacker cần phải tác động tới mã
nguồn (mã tạo ra) các view, table. Trong các function, procedure được viết để
thực hiện ý đồ của mình, attacker sẽ cần phải lấy mã nguồn của các view, table
cần thay đổi, sau đó, thêm vào phần mã của mình và thực hiện tạo lại view,
table. Attacker có thể sử dụng package dbms_metadata của Oracle để lấy được
mã nguồn (DDL) này.
II: Tấn công Rootkit trong Oracle
Table Các column


sys.ku$_parsed_
item
item, values, object_row
sys.ku$_ddl ddlText, parsedItem

sys.ku$_Errorlin
e
errorNumber, errorText

sys.ku$_submitr
esult
ddl, errorlines

Package DBMS_OUTPUT

Dbms_output package cho phép gửi message từ pl/sql. Thường dùng nhất
là kích hoạt package dbms_output và hiển thị nội dung của message buffer.
Trong sql*plus điều này có thể thực hiện bằng lệnh: ‘Set serveroutput on’
hoặc ‘Setserverout on’.
II: Tấn công Rootkit trong Oracle
Subprogram N i dungộ
Dbms_output.ena
ble
Enable các chương trình con Put,
put_line, get_line, get_lines và new_line.
Dbms_output.ne
w_line
Thêm m t end-of-line vào bufferộ
Dbms_output.get

_line(s)
L y 1 ho c nhi u dòng t bufferấ ặ ề ừ
Dbms_output.put Chuy n tham s đư c g i vào bufferể ố ợ ọ
Dbms_output.put
_line
them m t end-of-line vào bufferộ

Package DBMS_JOB

Dbms_job cung cấp một job cho nhiều instance. Mặc định job có thể chạy
trên bất kỳ instance nào, nhưng chỉ một instance sẽ chạy nó. Các job
không thể bị sửa đổi hay xóa ngoài job sở hữu bởi user đó.
II: Tấn công Rootkit trong Oracle
Subprogra
m
N i dungộ
Broken Ch n th c hi n jobặ ự ệ
Change Ch nh s a tham s ngư i dung đ nh nghĩa ỉ ử ố ờ ị
liên quan t i jobớ
Instance Gán m t job cho m t instance ch yộ ộ ạ
Next_date L n th c hi n job ti p theoầ ự ệ ế
Remove Xóa m t job kh i hang đ i jobộ ỏ ợ
Run Th c hi n ch y jobự ệ ạ
Submit Đưa m t job vào hàng đ i jobộ ợ
What Thay đ i đ c t c a m t jobổ ặ ả ủ ộ

Nhiệm vụ của rootkit

Ẩn tài khoản truy nhập


Các DBA và các công cụ sử dụng các view DBA_USERS và
ALL_USERS
để truy nhập table SYS.USER$.
II: Tấn công Rootkit trong Oracle
II: Tấn công Rootkit trong Oracle

Ẩn Process

User process: Bắt đầu khi database user yêu cầu kết nối tới Oracle server

Server process: Xử lý các yêu cầu từ user process kết nối tới instance.

Background process: Là các tiến trình tương tác lẫn nhau và với hệ điều
hành để quản lý bộ nhớ, quản lý các tín hiệu nhập xuất để ghi dữ liệu ra
đĩa, và một số nhiệm vụ khác. Nó được bắt đầu khi Oracle instance hoạt
động.
II: Tấn công Rootkit trong Oracle

×