1.5.1. Mô hình kết nốị
Các Client có thể kết nối tới Oracle Server thông qua 03 cách sau:
• Kết nối trực tiếp: kết nối mà Client nằm trên cùng một máy chủ Oracle server.
• Kết nối hai lớp (two-tiered) client-server: Client nằm trên một máy tính khác và kết nối trực tiếp tới máy chủ Oracle Server.
• Kết nối ba lớp (three-tiered): Client nằm trên máy tính khác với máy chủ Oracle Server, nó giao tiếp với một ứng dụng hay một máy chủ mạng (network server) và điều khiển ứng dụng hay máy chủ này kết nối tới Oracle server.
Hình 1.15: Kết nối tới Oracle server
1.5.2. Một số khái niệm cơ bản liên quan đến kết nốị
1.5.2.1. Connection (liên kết).
Liên kết là đường liên lạc giữa một user process và một Oracle server. Trong trường hợp user sử dụng các tool hoặc các ứng dụng ngay trên cùng một máy với Oracle server, đường liên lạc sẽ được tạo lập ngay trên máy đó. Trong trường hợp user nằm trên một máy khác thì liên kết sẽ sử dụng đường mạng để kết nối tới Oracle server.
1.5.2.2. Session (phiên).
Một phiên tương ứng với một liên kết cụ thể của một user tới một Oracle server. Phiên bắt đầu khi user kết nối tới Oracle Server đã được kiểm tra hợp lệ và kết thúc khi user thực hiện log out khỏi Oracle Server hoặc user kết thúc một cách bất thường. Một user cùng một lúc có thể có nhiều phiên làm việc để kết nối tới Oracle Server thông qua các ứng dụng hay các tool khác nhaụ Ví du: User có thể đồng thời có các phiên làm việc giữa SQL*Plus, Developer/2000 Form,... tới Oracle Server.
Lưu ý: Phiên chỉ tạo lập được khi Oracle Server đã sẵn sàng cho việc kết nối của các client.
Để kết nối tới database trước tiên, cần phải tạo liên kết tới Oracle Server. Liên kết tới Oracle Server được tạo theo các bước sau:
• User sử dụng công cụ SQL*Plus hay sử dụng các công cụ khác của Oracle như Developer/2000 Forms để khởi tạo tiến trình. Trong mô hình Client-Server, các công cụ hay ứng dụng này được chạy trên máy Client.
• User thực hiện log in vào Oracle server với việc khai báo username, password và tên liên kết tới databasẹ Các ứng dụng tools sẽ tạo một tiến trình để kết nối tới Oracle server qua các tham số nàỵ Tiến trình này được gọi là tiến trình phục vụ. Tiến trình phục vụ sẽ giao tiếp với Oracle server thay cho tiến trình của user chạy trên máy Client.
1.6.1 Trình tự kiện toàn an ninh Oracle Database 10g.
Bước 1 – Chỉ cấu hình cài đặt chức năng cần dùng. Tính năng tùy chọn.
Tài khoản mẫụ
Bước 2 - Khóa và làm mất hiệu lực các tài khoản mặc định. Tài khoản của Oracle Enterprise Manager.
Bước 3 - Đổi mật khẩu tài khoản mặc định.
Đổi mật khẩu tài khoản mặc định có quyền quản trị. Đổi mật khẩu tài khoản mặc định.
Áp dụng thủ tục quản lý mật khẩu của Oraclẹ Bước 4 - Bảo vệ từ điển dữ liệụ
Bước 5 - Thực hiện nguyên tắc quyền tối thiểụ Chỉ gán quyền cần thiết
Gỡ quyền không cần thiết khỏi PUBLIC..
Chỉ gán ROLE khi cần tất cả quyền trong ROLẸ.
Giới hạn quyền được cấp trong thời gian chương trình chạỵ Bước 6 - Áp dụng kiểm soát truy cập chặt và xác thực mạnh. Xác thực máy trạm đúng.
Bước 7 - Giới hạn truy cập Hệ điều hành máy chủ Oraclẹ Bước 8 - Giới hạn truy cập mạng.
Sử dụng Tường lửạ Bảo vệ Oracle Listener. Giám sát truy cập hệ thống. Kiểm tra địa chỉ IP.
Mã hóa giao thông mạng.
Bước 9 - Cập nhật bản vá lỗi định kì Bước 10 - Liên hệ Oraclẹ
1.6.2. Bảo mật cơ sở dữ liệụ
Một hệ thống an toàn đảm bảo tính bảo mật của dữ liệu mà nó chứa. Có một số khía cạnh của bảo mật:
• Hạn chế truy cập dữ liệu và dịch vụ
• Chứng thực người dùng
• Giám sát đối với hoạt động đáng ngờ
• Oracle Database 10g cung cấp framework tốt nhất của ngành công nghiệp cho một hệ thống an toàn. Nhưng để framework có hiệu quả, người quản trị cơ sở dữ liệu phải tuân theo các thực hành tốt nhất và liên tục giám sát hoạt động cơ sở dữ liệụ
1.6.2.1. Hạn chế truy cập đến dữ liệu và dịch vụ.
Tất cả người dùng không phải có quyền truy cập vào tất cả các dữ liệụ Tùy thuộc vào những gì được lưu trữ trong cơ sở dữ liệu,truy cập bị giới hạn có thể được uỷ quyền yêu cầu kinh doanh, bởi những kỳ vọng của khách hàng, và ngày càng được hạn chế pháp lý. Thẻ tín dụng thông tin, dữ liệu y tế, thông tin nhận dạng,và như vậy phải được bảo vệ khỏi truy cập trái phép. Các cơ sở dữ liệu Oracle cung cấp uỷ quyền kiểm soát để hạn chế truy cập cơ sở dữ liệụ Hạn chế truy cập phải có áp dụng các nguyên tắc đặc quyền tối thiểụ
1.6.2.2. Chứng thực người dùng.
Để thực thi kiểm soát truy cập vào dữ liệu nhạy cảm, hệ thống đầu tiên phải biết ai đang cố gắng truy cập dữ liệu.Bị trục trặc về chứng thực có thể dẫn tới các đề phòng về bảo mật khác trở thành vô dụng.
Hình thức xác thực người dùng cơ bản nhất bằng cách thử thách người dùng để cung cấp một cái gì đó mà họ biết,chẳng hạn như một mật khẩụ Đảm bảo rằng mật khẩu theo những quy tắc đơn giản rất nhiều có thể tăng bảo mật hệ thống.
Phương pháp xác thực mạnh mẽ hơn bao gồm yêu cầu người dùng cung cấp một cái gì đó mà họ có, chẳng hạn như một thẻ bài hoặc public key infrastructure (PKI) certificatẹ
Thậm chí còn mạnh mẽ hơn nữa là hình thức thẩm định là xác định người dùng thông qua một đặc tính sinh trắc học độc đáo như một vân tay, quét mống mắt, mô hình cấu trúc xương. Các cơ sở dữ liệu Oracle hỗ trợ nâng cao thẩm định kỹ thuật, chẳng hạn như thẻ-, sinh trắc học-, xác định dựa trên chứng chỉ và, thông qua các tùy chọn Advanced Securitỵ
Tài khoản người dùng mà không được sử dụng phải được khóa để ngăn chặn nỗ lực để thỏa hiệp xác thực.
1.6.2.3. Giám sát cho Hành vi Đáng ngờ.
Thậm chí có thẩm quyền và người sử dụng chứng thực đôi khi có thể thỏa hiệp hệ thống. Xác định cơ sở dữ liệu hoạt động không bình thường (chẳng hạn như một nhân viên đột nhiên bắt đầu truy vấn số lượng lớn thông tin thẻ tín dụng, kết quả nghiên cứu, hoặc các thông tin nhạy cảm khác) có thể là bước đầu tiên phát hiện hành vi trộm cắp thông tin. Các cơ sở dữ liệu Oracle cung cấp một bộ công cụ phong phú của kiểm toán để theo dõi người dùng hoạt động và xác định xu hướng đáng ngờ.
1.6.3. Nguyên lý đặc quyền tối thiểụ
Cài đặt phần mềm chỉ cần thiết trên máỵ Kích hoạt dịch vụ chỉ cần thiết trên máỵ
Cung cấp cho hệ điều hành và truy cập cơ sở dữ liệu để chỉ những người sử dụng yêu cầu truy cập.
Hạn chế truy cập vào thư mục gốc hoặc tài khoản quản trị. Hạn chế truy cập vào các tài khoản SYSDBA và SYSOPER.
Hạn chế người dùng truy cập để chỉ các đối tượng cơ sở dữ liệu cần phải làm công việc của họ.
1.6.3.1. Các nguyên lý đặc quyền tối thiểụ
Áp dụng các nguyên tắc đặc quyền tối thiểu bắt đầu từ mức thấp nhất, và tiếp tục ở mọi cấp độ. Luôn có những hành động khai thác bảo mật mới mà không thể được dự đoán. Bằng cách áp dụng nguyên tắc này, các khả năng khai thác giảm và thiệt hại có thể có.
Cài đặt phần mềm chỉ cần thiết trên máy tính này: Bằng cách giảm số lượng các phần mềm gói, Cần giảm bảo trì, nâng cấp, khả năng lỗ hổng bảo mật, và phần mềm xung đột.
Kích hoạt dịch vụ chỉ cần thiết trên máy: các dịch vụ ít hơn hàm ý ít cổng mở và ít tấn công vectơ.
Cung cấp cho hệ điều hành (OS) và truy cập cơ sở dữ liệu để chỉ những người dùng đó có yêu cầu truy cập: Ít có nghĩa là người sử dụng mật khẩu ít hơn và các tài khoản. Điều này làm giảm khả năng mở hoặc các tài khoản cũ. Tài khoản ít hơn làm cho nó dễ dàng hơn cho các quản trị viên để giữ tài khoản hiện hành.
Hạn chế truy cập vào thư mục gốc hoặc tài khoản quản trị: Các tài khoản quản trị phải được cẩn thận bảo vệ, kiểm toán, và không bao giờ chia sẻ.
Hạn chế truy cập vào các tài khoản SYSDBA và SYSOPER: Người dùng cần truy cập vào các vai trò của từng tài khoản riêng của họ và được kiểm toán.
Hạn chế người dùng truy cập,để họ chỉ truy cập các đối tượng cơ sở dữ liệu cần thiết để làm công việc của họ
1.6.3.2. Áp dụng các nguyên tắc đặc quyền tối thiểụ
• Bảo vệ dữ liệu từ điển(data dictionary)
• Thu hồi những đặc quyền không cần thiêt từ Public
• Hạn chế người dùng với quyền administrativẹ
• Hạn chế xác thực cơ sở dữ liệu từ xa
Trong quá trình xác thực từ xa:
• Người sử dụng cơ sở dữ liệu được chứng thực từ bên ngoài
• Hệ thống xác thực người dùng từ xa
• Người sử dụng đăng nhập vào cơ sở dữ liệu mà không cần xác thực hơn nữa
Chương 2
KIỂM TOÁN TRONG ORACLE 10G
2.1. TẠI SAO PHẢI KIỂM TOÁN.
An toàn thông tin trong cơ sở dữ liệu bao gồm 3 yếu tố chính: tính bí mật, toàn vẹn và sẵn sàng.Vì thế để đảm bảo an toàn thông tin trong cơ sở dữ liệu cần đảm bảo cả ba yếu tố.Bí mật yếu tố quan trọng nhất để đảm bảo an toàn trong các môi trường, cả quân sự lẫn thương mạịĐảm bảo tính toàn vẹn có nghĩa là ngăn chặn, phát hiện và xác định các sửa đổi thông tin trái phép. Đảm bảo tính sẵn sàng có nghĩa là ngăn chặn, phát hiện và xác định các từ chối truy nhập chính đáng vào các dịch vụ mà hệ thống cung cấp.
Một hiểm hoạ có thể được xác định khi đối phương (người, hoặc nhóm người) sử dụng các kỹ thuật đặc biệt để tiếp cận nhằm khám phá, sửa đổi trái phép thông tin quan trọng do hệ thống quản lý.
Các xâm phạm tính an toàn cơ sở dữ liệu bao gồm đọc, sửa, xoá dữ liệu trái phép. Thông qua những xâm phạm này, đối phương có thể:
• Khai thác dữ liệu trái phép thông qua suy diễn thông tin được phép.
• Sửa đổi dữ liệu trái phép.
• Từ chối dịch vụ hợp pháp.
Các hiểm hoạ an toàn có thể được phân lớp, tuỳ theo cách thức xuất hiện của chúng, là hiểm hoạ có chủ ý và vô ý (ngẫu nhiên).
Những xâm phạm trên liên quan đến hai lớp người dùng sau:
• Người dùng được phép là người có thể lạm dụng quyền, sử dụng vượt quá quyền hạn được phép của họ.
• Đối phương là người, hay nhóm người truy nhập thông tin trái phép, có thể là những người nằm ngoài tổ chức hay bên trong tổ chức. Họ tiến hành các hành vi phá hoại phần mềm cơ sở dữ liệu hay phần cứng của hệ thống, hoặc đọc ghi dữ liệu trái phép. Trong cả hai trường hợp trên, họ đều thực hiện với chủ ý rõ ràng.
Một số tấn công phổ biến hiện nay:
Tấn công SQL injection
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 trong việc kiểm tra dữ liệu nhập trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu để "tiêm vào"(inject) và thi hành các câu lệnh SQL bất hợp pháp (không được người phát triển ứng dụng lường trước). Hậu quả của nó rất tai hại vì nó cho phép những kẻ tấn công có thể thực hiện các thao tác xóa, hiệu chỉnh, … do có toàn quyền trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạỵ Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lí bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbasẹ
Có bốn dạng thông thường bao gồm: vượt qua kiểm tra lúc đăng nhập (authorization bypass), sử dụng câu lện SELECT, sử dụng câu lệnh INSERT, sử dụng các stored-procedures [2], [3].
- Dạng tấn công vượt qua kiểm tra đă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.
- 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.
- 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 giạ 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àọ
- Dạng tấn công sử dụng stored-procedures
Việc tấn công bằng stored-procedures sẽ gây tác hại rất lớn nếu ứng dụng được thực thi với quyền quản trị hệ thống 'sá. Ví dụ, nếu ta thay đoạn mã tiêm vào dạng: ' ; EXEC xp_cmdshell ‘cmd.exe dir C: '. Lúc này hệ thống sẽ thực hiện lệnh liệt kê thư mục trên ổ đĩa C:\ cài đặt server. Việc phá hoại kiểu nào tuỳ thuộc vào câu lệnh đằng sau cmd.exẹ
Attacking Oracle
Đầu tiên kẻ tấn công sử dụng TCP scan port để quét lỗ hổng trên Server Database Oraclẹ Để phát hiện được bước đầu tiên kẻ tấn công sẽ thực hiện quét trên cổng TNS . Cổng TNS làm việc như sau:
- Bất cứ khi nào một kết nối có Username , mật khẩu và ID của phiên làm việc hoặc tên dịch vụ được gửi đến cổng TNS
- Hệ thống sẽ kiểm tra ID của phiên làm việc và tên dịch vụ nếu sẽ cho phép đăng nhập nếu không sẽ gửi lại thông điệp báo lỗị Thông tin đăng nhập sẽ được xác thực , hệ thống bắt đầu lắng nghe các yêu cầu từ Client gửi đến
server qua cổng bất kỳ và một phiên làm việc mới sẽ được thiết lập giữa Client và Server
Khi luồng dữ liệu kết thúc , Oracle có thể lắng nghe nhiều phiên kết nối đến nó
Tấn công DoS
Kẻ tấn công thường làm tràn bộ đệm của hệ thống hoặc làm ngập lụt băng thông mạng để sửa đổi dữ liệu hoặc đánh cắp thông tin
Tấn công leo thang đặc quyền
Sự leo thang đặc quyền có thể hiểu đơn giản là một phương thức tấn công mà với cách này, các User có quyền hạn thấp hơn sẽ tấn công vào một điểm dễ bị tổn thương nhất của hệ thống để trở thành một người quản trị hoặc có thể trở thành các User có quyền hạn cao hơn. Cách để leo thang đặc quyền mà ta có thể nghĩ ngay đến đó là việc chiếm quyền thông qua crack password của người quản trị, tấn công tràn bộ đệm của máy đó và ăn cắp password. Bài phân tích này sẽ đưa ra một điểm yếu chung mà có thể được khai thác để ăn cắp password và sau đó là leo thang đặc quyền. Và cũng qua bài phân tích này, chúng ta sẽ thấy được các nhược điểm của các hệ thống từ đó đánh giá đúng hơn về việc tấn công leo thang đặc quyền và tầm quan trọng của việc tiến hành vá lỗi liên tục cho hệ thống.
2.1.2. Các yêu cầu bảo vệ cơ sở dữ liệụ
Bảo vệ cơ sở dữ liệu khỏi các hiểm hoạ, có nghĩa là bảo vệ tài nguyên, đặc biệt là dữ liệu khỏi các thảm hoạ, hoặc truy nhập trái phép. Các yêu cầu bảo vệ cơ sở dữ liệu gồm:
• Bảo vệ chống truy nhập trái phép
• Bảo vệ chống suy diễn