1. Trang chủ
  2. » Công Nghệ Thông Tin

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

23 1,5K 5

Đ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 23
Dung lượng 883,78 KB

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

Nội dung

MỤC LỤC 1 DANH MỤC CÁC HÌNH VẼ 3 DANH MỤC CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT 4 LỜI NÓI ĐẦU 5 CHƯƠNG 1. 6 TÌM HIỂU VỀ ROOTKIT 6 1.1. Hiểu biết chung về mã độc hại(malware) 6 1.2. Khái niệm Rootkit 7 1.2.1. Lịch sử Rootkit 7 1.2.2. Định nghĩa Rootkit 7 1.3. Cách thức hoạt động của Rootkit 8 1.3.1. Chiếm quyền điều khiển. 8 1.3.2. Kỹ thuật Hooking 8 1.4. Phân loại Rootkit 9 1.4.1. Usermode rootkit và kernel – mode rootkit 9 1.4.2. Persistent và nonpersistent rootkit 11 CHƯƠNG 2. 12 TẤN CÔNG ROOTKIT TRONG ORACLE 12 2.1. Một số kiểu tấn công trong Oracle 12 2.1.1. Tấn công SQL injection 12 2.1.2. Hack listener 15 2.1.3. PLSQL injection 17 2.2. Tấn công Rootkit trong Oracle 18 2.2.1. Tìm hiểu một số data dictionary view 19 2.2.2. Khai thác các PLSQL Package 22 2.2.3. Nhiệm vụ của rootkit 29 2.2.4. Cách thức tấn công của rootkit 34 2.2.5. Mô tả tấn công Oracle sử dụng rootkit kết hợp với backdoor 41 KẾT LUẬN 49 TÀI LIỆU THAM KHẢO 50 DANH MỤC CÁC HÌNH VẼ Hinh 1: Tương đồng giữa database và OS 19 Hinh 2:View dba_jobs 20 Hinh 3: View dba_jobs_running 21 Hinh 4: VProcess 21 Hinh 5:VSession 22 Hinh 6: dbms_metadata 23 Hinh 7: dbms_output 25 Hinh 8: dbms_jobs 25 Hinh 9: dbms_sql 26 Hinh 10: Trước khi ẩn user Hacker 30 Hinh 11: Sau khi ẩn user Hacker 31 Hinh 12: vsession trước khi ẩn session 32 Hinh 13:vsession sau khi ẩn session 32 Hinh 14:dba_jobs trước khi ẩn job 33 Hinh 15:dba_jobs sau khi ẩn job 33 Hinh 16:Truoc khi thay đôi binary 35 Hinh 17:Sau khi thay đổi binary. 36 Hinh 18: Đường dẫn thực thi trong Oracle 37 Hinh 19: Trước khi thay đổi đường dẫn thực thi 37 Hinh 20: Tạo view mới 38 Hinh 21: Truy xuất sau khi thay đổi đường dẫn 38 Hinh 22 :Sử dụng PLSQL native 41 DANH MỤC CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT API Application Program Interface ARCn Archive CSDL Cơ sở dữ liệu DB Database DCL Data Control Language DDL Data dictionary Language DML Data Manipulate Language DBWn Database Written DLL Thư viện liên kết động Function Hàm Instance Thành phần logic của DB LGWR Log writer OS Hệ điều hành Package Chứa các procedure, function PGA Private Global Area PLSQL Ngôn ngữ truy vấn có thủ tục Procedure Thủ tục RDBMS Hệ quản trị cơ sở dữ liệu quan hệ Rootkit Chương trình che giấu hành vi của hacker SQL Ngôn ngữ truy vấn SGA System Global Area Table Bảng Tablespace Tập hợp các table, view, index… View Table chứa metadata LỜI NÓI ĐẦU Rootkit trong OS không còn xa lạ với chúng ta. Chúng đã được các kẻ xâm nhập sử dụng để che giấu các dấu vết từ rất lâu. Tuy nhiên, không phải ai cũng biết rằng rootkit còn có thể được sử dụng và đang được các hacker sử dụng trong cơ sở dữ liệu, thường chứa các dữ liệu quan trọng của các công ty, tổ chức. Theo ước tính, khoảng 100 triệu người có thông tin cá nhân nằm trong tầm kiểm soát của tội phạm Internet. Lấy cắp thông tin đã trở thành một nguy cơ chính, thông tin đã trở thành mỏ vàng cho tội phạm. Thông tin cá nhân được chia thành nhiều loại với mức giá khác nhau. Ví dụ, thông tin về địa chỉ, số điện thoại, ngày sinh, số dịch vụ xã hội, số đăng ký băng lái…đều được đặt giá. Rất nhiều cơ sở dữ liệu của các công ty lớn bị xâm phạm. Nhất là các ngân hàng, nhà băng, dịch vụ thẻ thanh toán như CardSystems, Citigroup, Bank of America, DSW Shoe Warehouse… đều đã bị tội phạm nhòm ngó và gây ra thiệt hại nhất định. Oracle là hãng dẫn đầu trong thị trường cơ sở dữ liệu và thường được sử dụng ở các cơ quan, tổ chức lớn. Với khối lượng dữ liệu lớn và quan trọng. Không nghi ngờ gì, Oracle đã trở thành đích ngắm hấp dẫn trong các cuộc tấn công. Oracle database rootkit là hướng tấn công khá mới. Rootkit được cài đặt sau khi đã đột nhập thành công vào một Oracle database, để che giấu mọi dấu vết của cuộc đột nhập, và trở thành tấm bình phong che chắn sự hiện diện của attacker trong database. Người quản trị sẽ khó lòng biết được database của mình có đang bị nhìn ngó hay bị tấn công hay không, dù có sử dụng các công cụ tìm kiếm rootkit. Và vì thế không có biện pháp cải thiện hay áp dụng phương pháp tự bảo vệ, qua một thời gian dài thiệt hại sẽ rất đáng kể. Khi mà cơ sở dữ liệu là một tài nguyên vô cùng quan trọng có ý nghĩa sống còn đối với doanh nghiệp, tổ chức. Chương 1. TÌM HIỂU VỀ ROOTKIT 1.1. Hiểu biết chung về mã độc hại(malware) Thuật ngữ malware là từ viết tắt của malicious software. Malware được tạo với mục đích truy nhập, chỉnh sửa và phá hoại các software khác trên máy tính. Malware có nhiều loại: virus, worms, trojans, backdoor, spyware… và các biến thể khác

Trang 1

Sinh viên thực hiện:

Nguyễn Nam Thái

Nguyễn Minh Khánh

Lê Viết Tuấn

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

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

 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

Trang 9

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

Trang 10

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

Trang 11

II: Tấn công Rootkit trong Oracle

Trang 12

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

Trang 13

Một số data dictionary view

 DBA_JOBS

II: Tấn công Rootkit trong OracleColumn 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).

Trang 14

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 ố

Trang 15

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

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 ị ỉ ủ

Trang 16

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, ạ ủ

Tên user

Comma nd

Câu l nh đang x lý ệ ử

Type Ki u session ể

Trang 17

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

Trang 18

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

item, values, object_row

sys.ku$_ddl ddlText, parsedItem

sys.ku$_Errorlin e

errorNumber, errorText

sys.ku$_submitr esult

ddl, errorlines

Trang 19

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

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 ộ

Trang 20

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 ổ ặ ả ủ ộ

Trang 21

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

Trang 23

Ẩ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

Ngày đăng: 24/03/2015, 15:45

TỪ KHÓA LIÊN QUAN

w