phát triển ứng dụng bảo mật trên oracle - Pdf 14

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 CƠ SỞ DỮ LIỆU
ĐỀ TÀI
PHÁT TRIỂN ỨNG DỤNG BẢO
MẬT TRÊN ORACLE
Giảng viên hướng dẫn : Trần Hồng Lượng
Sinh viên thực hiện :
- Hoàng Đình Vinh
- Ngô Việt Phương
- Cao Thuỳ Anh
- Dương Văn Thăng
Lớp : AT5B
HÀ NỘI 12/2011
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 CƠ SỞ DỮ LIỆU
ĐỀ TÀI
PHÁT TRIỂN ỨNG DỤNG BẢO
MẬT TRÊN ORACLE

doanh yêu cầu doanh nghiệp phải năng động chia sẻ thông tin của mình cho nhiều
đối tượng khác nhau qua Internet hay Intranet (mạng “Internet” trong nội bộ doanh
nghiệp). Hầu hết các doanh nghiệp ngày nay đều sử dụng các hệ quản trị cơ sở dữ
liệu (CSDL) để lưu trữ tập trung tất cả các thông tin quý giá của mình. Hiển nhiên
hệ thống này sẽ là tiêu điểm tấn công của những kẻ xấu. Nhẹ thì hệ thống CSDL bị
hoạt động không ổn định, mất mát dữ liệu.Nặng thì các thông tin bí mật bị tiết lộ
và được đem bán cho các doanh nghiệp đối thủ. Tất cả điều đó là những thiệt hại
vô cùng lớn lao. Vì vậy việc bảo vệ thông tin trở nên ngày càng quan trọng và khó
khăn hơn bao giờ hết. Chính vì thế nênvấn đề bảo mật trong database là một trong
những ưu tiên hàng đầu của những người phát triển ứng dụng. Và trong bài tập lớn
này này chúng em sẽ tìm hiểu một số vấn đề căn bản về bảo mật Database trong
việc phát triển ứng dụng. Phát triển ứng dụng bảo mật trên oracle
5

I. Xây dựng ứng dụng oracle
1. Mục đích sử dụng
Ứng dụng được sử dụng truy cập cơ sở dữ liệu oracle, nhằm xây dựng cho
các công ty, các cửa hàng, siêu thị lớn,… có nhu cầu truy xuất, lưu trữ dữ liệu.
Những ứng dụng này cần đáp ứng được sự an toàn, bảo mật tốt. Có thể sử
dụng cho các nhân viên trong công ty, nâng cao chất lượng phục vụ tới khách hàng
hay tăng tốc độ làm việc cho các nhân viên.

qua các trình điều khiển ODBC chuẩn. Máy khách cần phải cài đặt các thư viện
ODBC gốc, trình điều khiển, và các tập tin hỗ trợ cần thiết, và trong hầu hết các
trường hợp, cơ sở dữ liệu của khách hàng là những đoạn mã. Đây sẽ là trình điều
khiển thích hợp cho một mạng doanh nghiệp và khách hàng cài đặt ở đâu không
phải là vấn đề lớn.
Ưu điểm: Giao diện này được viết cho phép truy cập và các cơ sở dữ liệu
khác nhau thông qua việc thực hiện trình điều khiển ODBC. Trong một số trường
Phát triển ứng dụng bảo mật trên oracle
7

hợp, sự lựa chọn duy nhất của khách hàng sẽ là MS Access hoặc Mircosoft SQL
Server cho việc gọi tới ODBC, oracle rất ít sử dụng tới ODBC này.
Nhược điểm: Trình điều khiển loại 1 không hỗ trợ hoàn toàn các ứng dụng
được cài đặt trên máy khách hàng. Các thư viện ODBC và các đoạn mã cơ sở dữ
liệu phải nằm trên máy chủ, do đó nó làm giảm hiệu suất.
2.2.2. Xây dưng dựa trên kết nối qua server proxy Hình 2 : Giao diện server proxy
Những đặc tính:Đây là một cách thức chuyển đổi từ lời gọi từ giao diện ứng
dụng vào một hệ quản trị cơ sở dữ liệu với một giao thức mạng độc lập, là một lần
nữa chuyển dịch lời gọi tới cơ sở dữ liệu cụ thể bơi một máy chủ ở tầng trung gian.
Cách thức này không yêu cầu bất kỳ cơ sở dữ liệu, thư viện có nguồn gốc cụ thể sẽ
được cài đặt trên máy khách. Trình điều khiển loại 3 hộ trợ các ứng dụng Web, có
thể triển khai tốt trên Internet mà không cần phải cài đặt trên máy client.
Ưu điểm:Loại giao diện này có tính linh hoạt cao, nhất là nó không yêu cầu
bất kỳ phần mềm hoặc dịch vụ có nguồn gốc được cài đặt trên máy khách hàng. Nó
có một sự thích ứng cao để thay đổi và kiểm soát cơ sở dữ liệu mà không cần phải
sửa đổi trình điều khiển ở máy khách hàng.
Phát triển ứng dụng bảo mật trên oracle

mức ứng dụng, và hiệu suất phần mềm được đạt mức tối ưu khi sử dụng giao thức
TCP/IP.
Mặt khác, ở đây chưa kể đến mức độ authentication của database oracle. Khi
oracle không mã hoá dữ liệu, đây là trường hợp ứng dụng tối ưu nhất. Còn khi
database server đã cài đặt cơ chế mã hoá, tốc độ xử lý của ứng dụng sẽ bị giảm đi ít
nhất 5%.
II. Bảo mật ứng dụng và cơ sở dữ liệu
1. Những nguy cơ đối với cơ sở dữ liệu
Hiển nhiên là các đe dọa đối với hệ thống CSDL trước tiên sẽ đến từ các tin
tặc. Chúng sẽ tấn công hệ thống của doanh nghiệp từ bên ngoài thông qua Internet
từ những trang Web công cộng hay từ các ứng dụng chia sẻ thông tin của doanh
nghiệp đối với khách hàng. Các kiểu tấn công này có thể bị loại bỏ phần lớn bằng
cách sử dụng hệ thống tường lửa. Tuy nhiên, hệ thống tường lửa lại thường giới
hạn khả năng truy xuất thông tin của những khách hàng hay người dùng chân chính
những đối tượng mà bản thân doanh nghiệp luôn luôn mời chào đến với mình. Một
điểm nữa là tường lửa không thể giúp doanh nghiệp bảo vệ mình khỏi những lỗ
hổng bảo mật xuất hiện ngày càng nhiều khi hệ thống CSDL của họ ngày càng trở
nên tinh vi và phức tạp.
Phát triển ứng dụng bảo mật trên oracle
10

Tin tặc không phải là mối lo ngại duy nhất. Các đe dọa còn đến từ bên trong,
từ chính các nhân viên của doanh nghiệp - những người mặc nhiên được truy cập
vào hệ thống CSDL và được mặc nhiên tin tưởng. Điều đặc biệt là hệ thống tường
lửa hoàn toàn vô hiệu trước đối tượng này. Đáng nói hơn nữa là các biện pháp bảo
vệ thông tin từ bên trong không ít thì nhiều bị các doanh nghiệp đầu tư chưa đúng
mức hoặc hoàn toàn bị “quên”.
2. Biện pháp bảo vệ
Dĩ nhiên là các hệ CSDL ngày nay đều có sẵn các công cụ bảo vệ tiêu chuẩn
như hệ thống định danh (authentication - yêu cầu người dùng phải xác nhận danh

Đầu tiên là ảnh hưởng đến kích thước dữ liệu. Các thuật toán mã hóa đều ít nhiều
làm tăng kích thước của dữ liệu gốc. Thứ hai là làm biến đổi kiểu của dữ liệu. Dữ
liệu khi được mã hóa sẽ trở thành một “đống” bit vô nghĩa (kiểu binary) nên
thường không thể được lưu trữ như ban đầu.
Đối với kiểu dữ liệu dạng text (như char, varchar hay text), ta có thể không
cần phải thay đổi kiểu dữ liệu vì ta có thể biểu diễn kiểu binary theo định dạng
Base64.
Điểm cần quan tâm kế tiếp là việc mã hóa các trường (field) có chỉ mục có
thể sẽ ảnh hưởng trầm trọng đến tốc độ của CSDL. Đáng tiếc là các trường này đôi
lúc lại cần phải được mã hóa (như số an sinh xã hội - một dạng giống như số
Chứng Minh Nhân Dân hay số thẻ tín dụng). Đa số các hệ bảo mật CSDL đều
không cho phép mã hóa các trường có chỉ mục hoặc cho phép nhưng luôn luôn
cảnh báo về các hiệu ứng lề.
Như vậy, mã hóa thông tin trong CSDL (hay nói gọn là mã hóa CSDL) ít
nhiều làm biến đổi cấu trúc của CSDL và ảnh hưởng đến hiệu suất của CSDL đó.
Thay đổi cấu trúc CSDL sẽ ảnh hưởng đến các ứng dụng sử dụng CSDL đó. Một ví
dụ là chẳng hạn ta mã hóa một trường có kiểu ngày tháng, khi ứng dụng truy xuất
Phát triển ứng dụng bảo mật trên oracle
12

mà không có khóa giải mã thì sẽ nhận được kiểu dữ liệu binary. Kết quả là ứng
dụng sẽ bị treo hoặc hoạt động không ổn định.
Để giảm thiểu ảnh hưởng đối với ứng dụng của CSDL người ta có các giải
pháp sau:
 Giải quyết vấn đề mã hóa CSDL ngay khi đang phát triển ứng dụng: điều này
thường hiếm xảy ra đối với đa số hệ thống hiện nay.
 Điều chỉnh lại ứng dụng đang có để áp dụng mã hóa CSDL: chi phí cho giải
pháp này thường rất cao.
 Sử dụng các hệ bảo mật CSDL loại “trong suốt” (transparency): các hệ thống
này sẽ mã hóa CSDL (đồng thời cung cấp cơ chế quản lý khóa) đằng sau hậu

nhiên” truy xuất được khóa giải mã.
4.2. Kiểm soát truy cập khóa
Để kiểm soát truy cập khóa khi khóa được lưu trữ trên một server riêng ta
phải giải quyết được vấn đề cơ bản nhất là: xác định danh tính của người dùng truy
cập vào khóa. Đơn giản nhất là sử dụng tên người dùng và mật khẩu. Cách này khá
đơn giản nhưng vẫn có nhược điểm cố hữu là dễ bị tấn công nếu người dùng sử
dụng các mật khẩu dễ đoán. Cách thứ hai mạnh hơn là sử dụng smart-card. Smart-
card hoạt động giống như các thẻ ATM của ngân hàng. Smart-card an toàn hơn vì
nó xác định danh tánh của người dùng thông qua hai yếu tố: (1) một vật mà người
dùng sở hữu (cái thẻ) và (2) một thông tin mà người dùng đó biết.
Để một “kẻ xấu” có được cả hai điều trên là cực khó. Nguyên tắc hoạt động
của smart-card cũng khá đơn giản: mật khẩu để truy cập của người dùng được lưu
trữ bên trong bộ nhớ của smart-card và được mã hóa. Khóa để giải mã ra mật khẩu
chính là số PIN của smart-card (hoặc là một mậu khẩu khác mà chỉ có người dùng
đó biết).
Cách thứ ba mạnh nhất là sử dụng các thông tin sinh học (như vân tay, mắt
hoặc giọng nói) kết hợp với mật khẩu hoặc smart-card.
Phát triển ứng dụng bảo mật trên oracle
14

5. Sơ lược về kiến trúc của một hệ bảo mật CSDL
Triggers: các trigger được sử dụng để lấy dữ liệu đến từ các câu lệnh
INSERT, UPDATE (để mã hóa).
Views: các view được sử dụng để lấy dữ liệu đến từ các câu lệnh SELECT
(để giải mã)
Extended Stored Procedures: được gọi từ các Triggers hoặc Views dùng để
kích hoạt các dịch vụ được cung cấp bởi module DBPEM từ trong môi trường của
hệ quản tri CSDL.
DBPEM (Database Policy Enforcing Module): cung cấp các dịch vụ mã
hóa/giải mã dữ liệu gửi đến từ các Extended Stored Procedures và thực hiện việc

Cách 1. Dùng Database User làm user cho ứng dụng Hình 4 : mô hình quản lý user mức ứng dụng
Cách 2. Dùng Application User làm user cho ứng dụng
Hiện tại thì đa số chọn phương án thứ 2, khi sử dụng phương án này người
phát triển phải làm thêm một chương trình để quản lý thông tin về User, cũng như
quyền hạn trên đó, về mặt kết nối database thì dùng 1 user để kết nối và user này
thường có quyền rất cao trong Database (nhiều người cho luôn nó là user quản thị
hệ thống để khỏi phải mất công phân quyền), Oracle gọi đó là mô hình “One Big
Application User”. Đối với mô hình “One Big Application User” nó có một số
giới hạn, ví dụ như một nguyên tắc căn bản của bảo mật là ghi nhận lại thông tin về
Phát triển ứng dụng bảo mật trên oracle
16

việc thay đổi dữ liệu trong database (auditing). Nếu sử dụng trong mô hình “One
Big Application User”, thì việc auditing không thể xác định được chính xác là user
nào đã thao tác trên dữ liệu đã thay đổi đó. Ứng dụng phải thực hiện một cơ chế
auditing riêng, bắt lại các sự kiện thao tác của user. Mô hình “One Big Application
User” bạn không thể tận dụng được cơ chế bảo mật của Oracle Security, bạn phải
xây dựng mọi thứ trong khi Oracle đã làm cho bạn đầy đủ.

Hình 5 : mô hình quản lý user mức ứng dụng
6.1. Lựa chọn mô hình phát triển ứng dụng
Những ứng dụng mà user cũng là user trong cơ sở dữ liệu cũng là user ứng
dụng có thể tận dụng được nhiều cơ chế mà cơ sở dữ liệu mang lại như quyền hạn
trên các đối tượng, hay việc chia nhỏ quyền hạn theo từng hàng(row) hay
cột(column) trong table, ngoài ra còn có thể sử dụng role và các quyền hạn trên
store procedure cũng như sử dụng auditing do database cung cấp. Oracle khuyên
bạn nên sử dụng user trong database làm user cho ứng dụng, khi đó ứng dụng có

khác. Mỗi khi gán role cho user, thì mặc định role sẽ được thiết lập là default role
(role có hiệu lực không cần kích hoạt), vì thế mà các quyền hạn liên kết với nó sẽ
có hiệu lực và user được xác minh các quyền hạn đó khi truy cập database. Nếu
bạn thiết đặt lại cho nó không là default, lúc đó muốn role có hiệu lực thì user phải
ra lệnh “set_role”.
Để tạo role trong oracle thì có 2 phương pháp để tạo :
Phát triển ứng dụng bảo mật trên oracle
18

- Tạo role không có chỉ định cách xác minh
- Tạo role có xác minh khi sử dụng

Hình 6 : mô hình tạo role
Khi tạo role có xác minh, muốn sử dụng nó bạn có 4 phương pháp chọn lựa tùy
theo câu lệnh lúc tạo role :
- Sử dụng mật khẩu để xác minh
- Sử dụng thủ tục hay package để xác minh
- Sử dụng dịch vụ bên ngoài để xác minh (như hệ điều hành chẳng hạn)
- Sử dụng dịch vụ Directory
Trong phần này chúng tôi muốn giới thiệu với các bạn về cách bảo vệ role bằng
cách sử dụng “Secure Application Roles”, tức là dùng thủ tục hay package để xác
minh và làm cho role có hiệu lực tại lúc runtime.
CREATE ROLE role IDENTIFIED USING schema.package
Khi sử dụng câu lệnh trên để tạo role tức là bạn đang sử dụng phương pháp kích
hoạt role bằng thủ tục hay package. Thủ tục hay Package này phải được gán quyền
execute cho user, để user này kích hoạt role(user không thể tự kích hoạt role bằng
lệnh SET ROLE trong trường hợp này). Trong thủ tục hay Package bạn có thể
kiểm tra tùy theo tình huống hay ngữ cảnh mà bạn kích hoạt role, đây là một lợi ích
rất lớn khi mà quyền hạn truy cập của user động theo từng trường hợp cụ thể.
III. Demo
Hình 13 : Bảng danh sách các phân nhóm Phát triển ứng dụng bảo mật trên oracle
23

KẾT LUẬN

Oracle hiện nay là cơ sở dữ liệu hàng đầu, mức độ bảo mật, hỗ trợ người
dùng tốt. Và khi xây dựng ứng dụng cơ sở dữ liệu, chúng ta phải đặt vấn đề bảo
mật là trên hết. Qua những tìm hiểu ở trên, chúng em đã hiểu được phần nào của
việc xây dựng ứng dụng bảo mật trong cơ sở dữ liệu nói chúng cũng như trong cơ
sở dữ liệu oracle nói riêng. Trong thời gian tới, chúng em sẽ tiếp tục tìm tòi nhiều
hơn nữa, để trau dồi thêm kiến thức cũng như kinh nghiệm cho bản thân sau
này.Chúng em xin cảm ơn cô giáo Trần Hồng Lượng đã hết sức giúp đỡ, chỉ bảo
tận tình chúng em hoàn thành đề tài.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status