MỤC LỤC Lời nói Đầu 2 Chương 1: Cơ sở lý thuyết 3 1.1Giới thiệu về Oracle 3 1.2 Quá trình cài đặt Oracle 4 Chương 2: Các hình thức tấn công phổ biến trên Oracle 9 2.1 Tấn công SQL Injection 9 2.1.1 Định nghĩa 9 2.1.2 Các dạng lỗi thường gặp 9 2.2 Tấn công chèn mã PLSQL 15 2.3 Tấn công Rootkit trong Oracle 17 2.3.1 Ẩn tải khoản Oracle Rootkit 17 2.3.2 Ẩn process 20 2.3.3 Ẩn Database Jobs 21 2.3.4 Mô tả tấn công Oracle sử dụng rootkit kết hợp với backdoor 21 2.4 Tấn công Oracle Listener 22 2.4.1 Khai thác thông tin CSDL Oracle qua Listener 22 2.4.2 Tấn công từ chối dịch vụ 25 2.5 Sâu Oracle 26 2.5.1 Sử dụng WORMFS với NFS Khách hàng 26 2.5.2 Tạo tập tin WORM 29 2.5.3 Thời gian lưu giữ 32 2.6 Tấn công mật khẩu 34 2.6.1 Tấn công dò tài khoản 34 2.6.2 Tấn công tài khoản có mật khẩu yếu 34 2.6.3 Dò mật khẩu SYS. SYSTEM 35 Chương 3: Tổng kết quá trình tìm hiểu tấn công trên CSDL Oracle 37 Tài liệu tham khảo 38 Lời nói Đầu Cơ sở dữ liệu là một trong những ngành được quan tâm nhiều trong khoa học máy tính nói chung và trong công nghệ thồn tin nói riêng. Từ khi có mô hình cơ sở dữ liệu đầu tiên vào những năm 60 đến nay, tuy không phải là chặng đường dài so với các ngành khoa học khác, nhưng với ngành khoa học máy tính và đặc biệt là cơ sở dữ liệu thì đó là thời gian đáng kể. Cơ sở dữ liệu đã trải qua nhiều thế hệ của hệ quản trị cơ sở dữ liệu đã có nhiều ứng dụng trong khoa học và các ngành kinh tế quốc dân. Hệ quản trị cơ sở dữ liệu ORACLE là một trong những hệ quản trị cơ sở dữ liệu lưu trữ thông tin an toàn và chắc chắn đồng thới lại truy cập chính xác, dễ dàng. Cơ sở dữ liệu (CSDL) của các tổ chức, doanh nghiệp luôn là mục tiêu của nhiều cuộc tấn công. Bởi đây là nơi lưu trữ các thông tin về khách hàng và nhiều dữ liệu bí mật khác. Một trong những nguyên nhân khiến cho các CSDL dễ bị tổn thương bởi các tấn công là do các tổ chức, doanh nghiệp chưa có biện pháp bảo vệ đầy đủ cho tài nguyên này. Khi kẻ xấu truy nhập vào dữ liệu nhạy cảm, có thể thực hiện tất cả các công việc để gây mất mát về tài chính hoặc phá hoại danh tiếng của tổ chức, doanh nghiệp. Và sau đây nhóm em xin trình bày đề tài các tấn công vào cơ sở dữ liệu ORACLE. Do còn hạn chế nhiều về thời gian, kiến thức và kinh nghiệm thực tế nên đề tài của nhóm không tránh khỏi những thiếu sót và khuyết điểm. Nhóm thực hiện đề tài rất mong nhận được sự đánh giá, nhận xét của các Thầy, các Cô và sự góp ý của các bạn sinh viên để giúp đề tài này được hoàn thiện hơn, từ đó nhóm chúng em có thể rút kinh nghiệm trong nghiên cứu và công việc sau này. Nhóm chúng em xin chân thành cảm ơn Chương 1: Cơ sở lý thuyết 1.1 Giới thiệu về Oracle Trong quá trình quản lý việc xử lý thông tin là vấn đề phức tạp vì lượng thông tin nhận được ngày một lớn và thường xuyên. Ngày nay có rất nhiều chương trình ứng dụng giúp ta quản lý và lưu trự thông tin dễ dàng. Trong đó có thể kể đến Oracle, là một trong những chương trình ứng dụng, nó có cơ chế bảo mật dữ liệu rất chặt chẽ giúp cho hệ thống hoạt động rất tốt và rất an toàn trong việc cập nhật và truy cập dữ liệu, tránh được việc mất mát dữ liệu, dễ dàng bảo trì và nâng cấp, có cơ chế quyền hạn rõ ràng vì vậy nó được sử dụng ở nhiều tổ chức lớn như ngân hàng, chính phủ…Nó không chỉ có lợi cho những nhà phát triển như dễ cài đặt, dễ triển khai, dễ nâng cấp lên phiên bản mới mà còn thuật lợi cho lập trình viên như viết các Trigger, Package vì trong Oracle còn tích hợp thêm PLSQL là một ngôn ngữ lập trình có cấu trúc ( Structure Language) và đây chính là điểm rất mạnh của Oracle so với các cơ sở dữ liệu khác. Ngoài ra Oracle còn tương tác tốt với nhiều hệ điều hành như Windows , Linux. Oracle là bộ giải pháp được cung cấp bởi công ty Oracle (http:www.oracle.comindex.html ) Đây là một hệ quản trị CSDL có tính bảo mật cao, hỗ trợ tốt các mô hình truy cập dữ liệu tập trung cũng như phân tán. Giải pháp của Oracle bao gồm các sản phẩm sau: Hệ quản trị CSDL Oracle Database được cài đặt trên máy chủ Database Server Oracle Client được cài đặt trên máy trạm cho phép các ứng dụng tại máy trạm truy cập và thao tác với ứng dụng tại máy chủ. Công cụ cho việc thiết kế và quản trị CSDL như Oracle Designer, SQL Plus. PLSQL là ngôn ngữ thủ tục cho được Oracle dùng để xây dựng đối tượng trong Oracle Database.
Trang 1MỤC LỤC
Lời nói Đầu
Cơ sở dữ liệu là một trong những ngành được quan tâm nhiều trong khoa học máy tính nói chung và trong công nghệ thồn tin nói riêng Từ khi có mô hình cơ sở dữ liệu đầu tiên vào những năm 60 đến nay, tuy không phải là chặng đường dài so vớicác ngành khoa học khác, nhưng với ngành khoa học máy tính và đặc biệt là cơ sở
dữ liệu thì đó là thời gian đáng kể Cơ sở dữ liệu đã trải qua nhiều thế hệ của hệ quản trị cơ sở dữ liệu đã có nhiều ứng dụng trong khoa học và các ngành kinh tế quốc dân Hệ quản trị cơ sở dữ liệu ORACLE là một trong những hệ quản trị cơ sở
dữ liệu lưu trữ thông tin an toàn và chắc chắn đồng thới lại truy cập chính xác, dễ dàng
Cơ sở dữ liệu (CSDL) của các tổ chức, doanh nghiệp luôn là mục tiêu của nhiều cuộc tấn công Bởi đây là nơi lưu trữ các thông tin về khách hàng và nhiều dữ liệu
bí mật khác Một trong những nguyên nhân khiến cho các CSDL dễ bị tổn thương bởi các tấn công là do các tổ chức, doanh nghiệp chưa có biện pháp bảo vệ đầy đủ cho tài nguyên này Khi kẻ xấu truy nhập vào dữ liệu nhạy cảm, có thể thực hiện tất cả các công việc để gây mất mát về tài chính hoặc phá hoại danh tiếng của tổ chức, doanh nghiệp Và sau đây nhóm em xin trình bày đề tài các tấn công vào cơ
sở dữ liệu ORACLE
Do còn hạn chế nhiều về thời gian, kiến thức và kinh nghiệm thực tế nên đề tàicủa nhóm không tránh khỏi những thiếu sót và khuyết điểm Nhóm thực hiện đề tài rất mong nhận được sự đánh giá, nhận xét của các Thầy, các Cô và sự góp ý của các bạn sinh viên để giúp đề tài này được hoàn thiện hơn, từ đó nhóm chúng
em có thể rút kinh nghiệm trong nghiên cứu và công việc sau này
Nhóm chúng em xin chân thành cảm ơn!
Trang 2Chương 1: Cơ sở lý thuyết
1.1 Giới thiệu về Oracle
Trong quá trình quản lý việc xử lý thông tin là vấn đề phức tạp vì lượng thông tin nhận được ngày một lớn và thường xuyên Ngày nay có rất nhiều chương trình ứng dụng giúp ta quản lý và lưu trự thông tin dễ dàng Trong đó có thể kể đến Oracle, là một trong những chương trình ứng dụng, nó có cơ chế bảo mật dữ liệu rất chặt chẽ giúp cho hệ thống hoạt động rất tốt và rất an toàn trong việc cập nhật và truy cập dữ liệu, tránh được việc mất mát dữ liệu, dễ dàng bảo trì và nâng cấp, có cơ chế quyền hạn rõ ràng vì vậy nó được sử dụng ở nhiều tổ chức lớn như ngân hàng, chính phủ…
Nó không chỉ có lợi cho những nhà phát triển như dễ cài đặt, dễ triển khai, dễ nâng cấplên phiên bản mới mà còn thuật lợi cho lập trình viên như viết các Trigger, Package vì trong Oracle còn tích hợp thêm PL/SQL là một ngôn ngữ lập trình có cấu trúc
( Structure Language) và đây chính là điểm rất mạnh của Oracle so với các cơ sở dữ liệu khác Ngoài ra Oracle còn tương tác tốt với nhiều hệ điều hành như Windows , Linux
Oracle là bộ giải pháp được cung cấp bởi công ty Oracle
(http://www.oracle.com/index.html ) - Đây là một hệ quản trị CSDL có tính bảo mật
cao, hỗ trợ tốt các mô hình truy cập dữ liệu tập trung cũng như phân tán Giải pháp củaOracle bao gồm các sản phẩm sau:
- Hệ quản trị CSDL Oracle Database được cài đặt trên máy chủ Database Server
- Oracle Client được cài đặt trên máy trạm cho phép các ứng dụng tại máy trạm truy cập
và thao tác với ứng dụng tại máy chủ
- Công cụ cho việc thiết kế và quản trị CSDL như Oracle Designer, SQL Plus
- PL/SQL là ngôn ngữ thủ tục cho được Oracle dùng để xây dựng đối tượng trong Oracle Database
Trang 31.2 Quá trình cài đặt Oracle
Bước 1: Dowload phiên bản Oracle database 11g Release 2 Ở đây ta dùng phiên bản cho Windows 64 bit
Bước 2: Sau khi download thành công ta tiến hành cài đặt
Thực hiện lần lượt:
- Điền địa chỉ email để được support hoặc tích vào ô checkbox để bỏ rồi click next
Trang 4- Chọn “ Desktop Class ” rồi click next
- Điền thông tin quan trọng:
Thư mục cài đặt mặc định là C:\app\{user name}
Global database name: mặc định không nên thay đổi là orcl( cần nhớ SID để đăng nhập lần sau)
Nhập Password: Ví dụ mật khẩu do Oracle hướng dẫn là orcl1234
Trang 5- Click next để tự động kiểm tra các bước cài đặt
- Click Finish để bắt đầu cài đặt
Trang 6- Trong quá trình cài đặt cần xác nhận cho java runtime bởi Firewall và đừng để phần mềm diện virus xóa hay lock file nào Nếu quá trình cài đặt thành công chờ một lát sẽ hiện ra:
Trang 7- Ở đây HTTP Server Control chạy lên: https://localhost:1158/em
Cài đặt hoàn thành
Trang 8Chương 2: Các hình thức tấn công phổ biến trên Oracle 2.1 Tấn công SQL Injection
2.1.1 Định nghĩa
SQL Injection là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng vào việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi của hệ quảntrị cơ sở dữ liệu trả về để inject ( tiêm vào) và thi hành các câu lệnh SQL bất hợp pháp.SQL injection có thể cho phép kẻ tấn công thực hiện thao tác , delete, insert, update…trên cơ sở dữ liệu của các ứng dụng, thậm trí là cả trên sever mà ứng dụng đó đang chạy, lỗi này thường xảy ra trên các ứng dụng web có dữ liệu quản lý bằng các hệ quản trị cơ sở dữ liệu như SQL sever , My SQL , Oracle…
2.1.2 Các dạng lỗi thường gặp
- Không kiểm tra ký tự thoát truy vấn
Đây là dạng lỗi SQL injection xảy ra khi thiếu đoạn mã kiểm tra dữ liệu đầu vào trong câu truy vấn SQL Kết quả là người dùng cuối có thể thực hiện một số truy vấn không mong muốn đối với cơ sở dữ liệu của ứng dụng
Ví dụ: Dùng đoạn mã sau để minh họa lỗi này
statement = "SELECT * FROM users WHERE name = '" + userName + "';"
Câu lệnh được thiết kế để trả về các bản ghi tên người dùng cụ thể từ bảng người dùng Tuy nhiên, nếu biến useName được nhập chính xác theo một cách nào đó bởi người dùng ác ý, nó có thể trở thành một câu truy vấn SQL với mục đích khác hẳn so với mục đích của tác giả của đoạn mã trên Ví dụ như biến useName thành như sau:
a' or 't'='tKhiến câu truy vấn được hiểu như sau:
SELECT * FROM users WHERE name = 'a' OR 't'='t';
Nếu đoạn mã trên được sử dụng trong một thủ tục xác thực thì ví dụ trên có thể được sử dụng để bắt buộc lựa chọn một tên người dùng hợp lệ bởi 't'='t' luôn đúng Trong khi hầu hết các SQL server cho phép thực hiện nhiều truy vấn cùng lúc chỉ với một lần gọi, tuy nhiên một số SQL API như mysql_query của php lại không cho phép điều đó vì lý do bảo mật Điều này chỉ ngăn cản tin tặc tấn công bằng cách sử dụng cáccâu lệnh riêng rẽ mà không ngăn cản tin tặc thay đổi các từ trong cú pháp truy vấn
Trang 9Các giá trị của biến "userName" trong câu truy vấn dưới đây sẽ gây ra việc xoá những người dùng từ bảng người dùng cũng tương tự như việc xóa tất cả các dữ liệu được từ bảng dữ liệu (về bản chất là tiết lộ các thông tin của mọi người dùng), ví dụ này minh họa bằng một API cho phép thực hiện nhiều truy vấn cùng lúc:
a';DROP TABLE users; SELECT * FROM data WHERE 't' = 'tĐiều này đưa tới cú pháp cuối cùng của câu truy vấn như sau:
SELECT * FROM users WHERE name = 'a';DROP TABLE users; SELECT * FROM
DATA WHERE 't' = 't';
- Xử lý không đúng kiểu
Lỗi SQL injection dạng này thường xảy ra do lập trình viên hay người dùng định nghĩa đầu vào dữ liệu không rõ ràng hoặc thiếu bước kiểm tra và lọc kiểu dữ liệu đầu vào Điều này có thể xảy ra khi một trường số được sử dụng trong truy vấn SQL nhưng lập trình viên lại thiếu bước kiểm tra dữ liệu đầu vào để xác minh kiểu của dữ liệu mà người dùng nhập vào có phải là số hay không
Ví dụ:
statement:= "SELECT * FROM data WHERE id = " + a_variable + ";"
Ta có thể nhận thấy một cách rõ ràng ý định của tác giả đoạn mã trên là nhập vào một số tương ứng với trường id - trường số Tuy nhiên, người dùng cuối, thay vì nhập vào một số, họ có thể nhập vào một chuỗi ký tự, và do vậy có thể trở thành một câu truy vấn SQL hoàn chỉnh mới mà bỏ qua ký tự thoát Ví dụ, ta thiết lập giá trị của biến a_variable là:
1;DROP TABLE usersKhi đó, nó sẽ thực hiện thao tác xóa người dùng có id tương ứng khỏi cơ sở dữ liệu, vì câu truy vấn hoàn chỉnh đã được hiểu là:
SELECT * FROM DATA WHERE id=1;DROP TABLE users;
Trang 10nhiều thời gian để phục hồi chính xác từng bit dữ liệu Những kẻ tấn công còn có thể
sử dụng một số công cụ để dò tìm lỗi dạng này và tấn công với những thông tin đã được thiết lập sẵn
- Thay đổi giá trị kiểu truy vấn
Dạng lỗi này khiến kẻ tấn công có thể thay đổi giá trị điều kiện trong câu lệnh truyvấn, làm sai lập sự hiển thị của một ứng dụng trong lỗi này
SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND 1=1;
Sẽ hiển thị một cách bình thường trong khi:
SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND 1=2;
Sẽ hiển thị một nội dung khác, hoặc không hiển thị gì nếu ứng dụng web có chứa lỗi SQL injection dạng này Lỗ hổng dạng này còn cho phép tin tặc không chỉ gây ảnh hưởng tới bảng hay dữ liệu hiện tại mà còn ảnh hưởng tới những dữ liệu hay bảng khác phụ thuộc vào nội dung của dữ liệu hay bảng hiện tại
- Điều kiện lỗi
Lỗi SQL injection dạng này dẫn tới việc buộc cơ sở dữ liệu chỉ được phép đánh giá khi mà giá trị của câu lệnh WHERE là đúng
Ví dụ:
SELECT 1/0 FROM users WHERE username='Ralph';
Phép chia cho 0 chỉ được đánh giá là lỗi khi mà người dùng có tên "Ralph" tồn tại trong cơ sở dữ liệu
- Thời gian trễ
Lỗi SQL injection dạng này tồn tại khi thời gian xử lý của một hay nhiều truy vấn SQL phụ thuộc vào dữ liệu logic được nhập vào hoặc quá trình xử lý truy vấn của SQLengine cần nhiều thời gian Tin tặc có thể sử dụng lỗi SQL injection dạng này để xác định thời gian chính xác mà trang cần tải khi giá trị nhập vào là đúng
Trang 11- Một số dạng tấn công thường gặp với ứng dụng Web
Dạng tấn công vượt qua kiểm tra lúc đăng nhập
Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các trang đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụng web Thông thường để cho phép người dùng truy cập vào các trang web được bảo mật, hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông tin về tên đăng nhập và mật khẩu Sau khi người dùng nhập thông tin vào, hệ thống sẽ kiểm tra tên đăng nhập và mật khẩu có hợp lệ hay không để quyết định cho phép hay từ chối thực hiện tiếp
Ví dụ:
Trong trường hợp sử dụng ASP, người ta có thể dùng 2 trang: 1 trang HTML để hiển thị Form nhập liệu và 1 trang ASP để xử lý thông tin nhập vào từ phía người dùng nhưsau:
Trang nhập liệu: login.html
<form action="ExecLogin.asp" method="post">
Username: <input type="text" name="fUSRNAME"><br />
Password: <input type="password" name="fPASSWORD"><br />
strSQL = "SELECT * FROM T_USERS " & _
"WHERE USR_NAME=' " & vUsrName & _
" ' and USR_PASSWORD=' " & vPassword & " ' "
Trang 12Set objRS = Server.CreateObject("ADODB.Recordset")
Set objRS = Nothing %>
Chỗ sơ hở trong đoạn mã xử lý nhập liệu trên nằm ở chỗ dữ liệu nhập vào từ người dùng được dùng để xây dựng trực tiếp câu lệnh SQL Chính điều này cho phép tin tặc có thể điều khiển câu truy vấn sẽ được thực hiện Ví dụ, nếu người dùng nhập chuỗi trong ngoặc sau vào trong cả 2 ô nhập liệu username/password của trang
login.htm là:('OR=') Lúc này, câu truy vấn sẽ được gọi thực hiện là:
SELECT * FROM T_USERS WHERE USR_NAME =''OR''='' AND
USR_PASSWORD= ''OR''=''Câu truy vấn này là hợp lệ và sẽ trả về tất cả các bản ghi của T_USERS và đoạn
mã tiếp theo xử lí người dùng đăng nhập bất hợp pháp này như là người dùng đăng nhập hợp lệ
Dạng tấn công sử dụng câu lệnh SELECT
Dạng tấn công này phức tạp hơn Để thực hiện được kiểu tấn công này, kẻ tấn công phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi từ hệ thống
để dò tìm các điểm yếu khởi đầu cho việc tấn công Ví dụ, trong các trang tìm kiếm Các trang này cho phép người dùng nhập vào các thông tin tìm kiếm như Họ, Tên, … Đoạn mã thường gặp là:
Trang 13Tương tự như trên, tin tặc có thể lợi dụng sơ hở trong câu truy vấn SQL để nhập vào trường tên tác giả bằng chuỗi giá trị:
Lúc này, ngoài câu truy vấn đầu không thành công, chương trình sẽ thực hiện thêm lệnh tiếp theo sau từ khóa UNION nữa Giả sử đoạn mã nhập vào là:
Câu truy vấn sẽ thực hiện việc xóa bảng
Dạng tấn công sử dụng câu lệnh INSERT
Thông thường các ứng dụng web cho phép người dùng đăng kí một tài khoản để tham gia Chức năng không thể thiếu là sau khi đăng kí thành công, người dùng có thể xem và hiệu chỉnh thông tin của mình SQL injection có thể được dùng khi hệ thống không kiểm tra tính hợp lệ của thông tin nhập vào
Ví dụ: Một câu lệnh insert có dạng
Nếu đoạn mã xây dựng câu lệnh SQL có dạng:
Trang 14Thì chắc chắn sẽ có lỗi SQL vì nếu ta nhập vào câu lệnh thứ nhất ví dụ như:
Lúc này câu truy vấn sẽ là:
Khi đó, lúc thực hiện lệnh xem thông tin, xem như bạn đã yêu cầu thực hiện thêm một lệnh nữa đó là:
2.2 Tấn công chèn mã PL/SQL
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, người tấn công có thểleo thang đặc quyền từ tài khoản Public 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 insert, select, delete, update trong các procedure, package, vào các anonymous
PL/SQL Blook
Ví dụ: Inject vào câu lệnh select trong procedure sau, giả sử nó thuộc sở hữu của user SYS và được thực thi bởi Public:
Create or replace procedure list_libraries(p_owner varchar2) as
Type c_type is ref cursor;
Cv c_type;
Buffer varchar2(200);
Trang 15Dbms_output.enable(100000);
Open cv for ‘select object_name from all_objects where owner=’’’
|| p_owner || ‘’’ and object_type=’’library’’’;
Set serveroutput on
Exec sys.list_libraries(‘foo’’union select password from sys.user$ ‘);
Khi đó câu lệnh trong procedure đã bị chuyển thành:
Select object_name from all_objects where owner=’foo’ union select password from sys.user$ ‘ and object_type=’library’
Ký tự “ ” đánh dấu phần comment ‘ and object_type=’library’ và phần này sẽ bị bỏ qua Vì thế cấu truy vấn sẽ trả về password ở dạng băm
Trang 162.3 Tấn công Rootkit trong Oracle
Oracle database và Os khá tương đồng với nhau về mặt cấu trúc Cả database và
Os đều có user, process, job ,executable Vì vậy hacker có thể lợi dụng sự tương đồng này để triển khai các Rootkit cũng như các mã độc khác như virus, từ phạm vi của OS sang lãnh địa của Oracle database
Một số tương đồng về command và object giữa Oracle và OS*Nix
*NIX
command/object Oracle command/object
kill<processnumner
Executables Views, Packages, Functions and procedures
PROCEDURE
CURRENT_SCHEMA=USER01
Rm delete bla (put in correct sytax)
Hình 1: Tương đồng giữu database và OS
Thông thường có một thủ thuật của rootkit OS thế hệ đầu khi ẩn một tài khoản Lệnh ở trong OS *Nix như ps, who và top đã bị thay thế bằng phiên bản của trojan, liệt
kê tất cả trừ tài khoản của kẻ xâm nhập Hướng tiếp cận này cũng có thể được áp dụng đối với DB Rootkit database cũng cần che giấu các hành tung của nó, cụ thể là các process, job, login Bằng cách tác động vào nơi sẽ lưu trữ và cung cấp các thông tin này, cũng như tác động vào cách thức truy xuất các thông tin này Oracle lưu trữ thôngtin về user trong các base table và các data dictionary view là sys.user$,
v$pwfile_users… Vì vậy attacker cần can thiệp vào source code của các view này
2.3.1 Ẩn tải khoản Oracle Rootkit
User Oracle được lưu trong table SYS.USER$ cùng với database role User có flagTYPE#=1 và role có flag TYPE#=0 Để việc truy nhập dễ dàng hơn, và đảm bảo tính tương thích với các phiên bản trước, Oracle đưa ra 2 view là DBA_USERS và
ALL_USERS thông qua public synonym Hầu hết các DBA và các công cụ sử dụng các view này để truy nhập table SYS.USER$ Vì vậy để ẩn đi các user muốn che giấu cần sửa các view source:
AND U.NAME !=’tên cần ẩn’
Trang 17Hình 2: Trước khi ẩn User Hacker
Mọi thay đổi trên view thuộc về SYS yêu cầu quyền SYSDBA( Cần có một mục
về các tài khoản và quyền hạn trên Oracle) Sau đó truy vấn trở lại view trên sẽ không thấy xuất hiện tài khoản đó:
Trang 18Hình 3: Sau khi ẩn User Hacker