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

23 771 8
phát triển ứng dụng bảo mật trên oracle

Đ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 luôn là một tài sản vô giá của doanh nghiệp và cần được bảo vệ bằng mọi giá. Tuy nhiên, với những đòi hỏi ngày càng gắt gao của môi trường kinh 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.

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 MỤC LỤC I. Xây dựng ứng dụng oracle 5 1. Mục đích sử dụng 5 2. Cách thức xây dựng 5 2.1. Giao diện lập trình ứng dụng 5 2.2. Các phương pháp xây dựng 6 3. Hiệu suất ứng dụng 9 II. Bảo mật ứng dụng và cơ sở dữ liệu 9 1. Những nguy cơ đối với cơ sở dữ liệu 9 2. Biện pháp bảo vệ 10 3. Mã hóa 11 4. Vài nét về cơ chế quản lý khóa 12 4.1. Vị trí lưu trữ khóa 13 4.2. Kiểm soát truy cập khóa 13 5. Sơ lược về kiến trúc của một hệ bảo mật CSDL 14 6. Các vấn đề bảo mật trong phát triển ứng dụng CSDL Oracle 14 6.1. Lựa chọn mô hình phát triển ứng dụng 16 6.2. Quản lý quyền hạn trong ứng dụng 17 III. Demo 18 KẾT LUẬN 23 Phát triển ứng dụng bảo mật trên oracle 4 LỜI NÓI ĐẦU Thông tin luôn là một tài sản vô giá của doanh nghiệp và cần được bảo vệ bằng mọi giá. Tuy nhiên, với những đòi hỏi ngày càng gắt gao của môi trường kinh 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. 2. Cách thức xây dựng 2.1. Giao diện lập trình ứng dụng Giao diện lập trình ứng dụng (Application Programming Interface - API) là sự mô tả cách thức để phần mềm yêu cầu một chương trình khác thực hiện một dịch vụ nào đó. Dịch vụ này có thể là cấp quyền truy cập dữ liệu hay thực hiện một chức năng đặc biệt nào đó. API tồn tại trong hầu hết các phần mềm xí nghiệp và là thành phần quan trọng của hệ điều hành. Hầu như tất cả các phần mềm đều phải yêu cầu phần mềm khác làm một số công việc cho chúng. Để làm như vậy, chương trình yêu cầu dùng một tập các lời yêu cầu đã được chuẩn hoá, được gọi là giao diện lập trình ứng dụng (API). Hầu như mọi ứng dụng đều dựa vào các API của hệ điều hành để thực hiện những công việc căn bản như truy cập hệ thống tập tin. Về bản chất, API của chương trình định ra phương thức thích hợp để nhà phát triển yêu cầu các dịch vụ của chương trình đó. Các nhà phát triển sẽ đưa ra yêu cầu bằng cách đưa các lời gọi vào mã chương trình ứng dụng của họ. Cú pháp của những lời gọi này được mô tả trong các tài liệu của chương trình được gọi. Phát triển ứng dụng bảo mật trên oracle 6 Bằng cách cung cấp phương tiện để yêu cầu dịch vụ chương trình, API được gọi là cấp quyền truy cập hay “mở cửa” ứng dụng. Xây dựng ứng dụng không có API về căn bản cũng như xây nhà không có cửa; API trong mọi mục đích tính toán là để mở ra cánh cửa và thực hiện việc trao đổi thông tin. 2.2. Các phương pháp xây dựng 2.2.1. Xây dựng dựa trên kết nối qua ODBC Hình 1 : ODBC API Những đặc tính: Giao diện này sử dụng một công nghệ chuyển tiếp cung cấp ODBC truy cập thông qua trình điều khiển ODBC. Là giao diện chuẩn của Mycrosoft. OBDC API lần lượt thực hiện để có thể tiếp cận với cơ sở dữ liệu thông 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 8 Nhược điểm: Cơ sở dữ liệu phải được thực hiện ở tầng máy chủ cụ thể. Vì nó thực hiện các ứng dụng dựa trên Web, nó thực hiện các biện pháp an toàn giống như việc truy xuất qua tường lửa. 2.2.3. Xây dựng dựa trên nền tảng TCP/IP Hình 3 : sử dụng giao thức TCP/IP Những đặc tính: Cách thức này là sự chuyển đổi lời gọi từ giao diện API vào giao thức mạng để liên lạc trực tiếp với cơ sở dữ liệu thông qua giao thức TCP/IP. Đây là liên kết giữa khách hàng gọi trực tiếp tới máy chủ hệ quản trị cơ sở dữ liệu và cung cấp một giải pháp thiết thực cho việc truy xuất mạng nội bộ. Trong hầu các trường hợp, các trình điều khiển cung cấp bởi nhà cung cấp cơ sở dữ liệu. Giao thức này cũng không cần một thư viện cụ thể cho cơ sở dữ liệu có nguồn gốc cụ thể để cấu hình trên máy của khách hàng và có thể triển khai trên Web mà không cần khách hàng cài đặt, theo yêu cầu cho các trình điều khiển loại 3. Ưu điểm: Có thể giao tiếp trực tiếp với cơ sở dữ liệu bằng cách sử dụng TCP/IP, chứ không cần phải thông qua một tầng trung gian hay thư viện gốc nào. Đây chính là lý do các trình điều khiển JDBC hoạt động nhanh nhất. Nó không cần phải bổ xung thư viện gốc là cần thiết để cài đặt trên máy khách hàng. Phát triển ứng dụng bảo mật trên oracle 9 Nhược điểm: Hạn chế duy nhất là client được cơ sở dữ liệu cụ thể. Do đó, nếu trong trường hợp, các thay đổi về sau với cơ sở dữ liệu, thì các nhà phát triển ứng dụng có thể phải mua và triển khai một ứng dụng cụ thể mới cho các cơ sở dữ liệu mới. 3. Hiệu suất ứng dụng Ứng dụng áp dụng cho các cửa hàng, siêu thị lớn, các cơ quan công ty,… nên cần tốc độ truy xuất tốt. Chúng ta có thể đáp ứng được mức thời gian thực với 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 tính của mình bằng tên và mật khẩu) và kiểm soát truy xuất (access control - giới hạn các thao tác của người dùng trên một tập dữ liệu xác định). Tuy nhiên, các biện pháp bảo vệ này hầu như không có tác dụng trước các tấn công từ bên trong. Chẳng hạn, làm sao doanh nghiệp có thể cấm không cho nhân viên phụ trách việc sao lưu dữ liệu (Backup Operator) đọc dữ liệu trong CSDL ? (vì nhiệm vụ của anh ta yêu cầu anh ta phải được đọc dữ liệu để có thể sao chép nó sang nơi khác). Một ví dụ nữa là nếu máy chủ (hoặc ổ cứng) của doanh nghiệp bị mất cắp, làm sao bảo vệ thông tin trong đó không bị nhìn thấy? Để bảo vệ thông tin khỏi mối đe dọa này, người ta cần phải thực hiện hai biện pháp cơ bản là: mã hóa các thông tin quan trọng trong CSDL và quản lý thật chặt chẽ các khóa giải mã (key management). Mã hóa thông tin mà không để ý tới quản lý khóa giải mã thì cũng giống như bạn khóa cửa nhà mà lại để lại chìa khóa ngay trước cửa vậy. Đáng ngạc nhiên là tác vụ quản lý khóa là tác vụ được quan tâm nhiều hơn hiện nay vì các thuật toán mã hóa thông dụng ngày nay đã đủ an toàn. Bên cạnh đó, để thắt chặt hơn nữa, doanh nghiệp có thể còn phải cài đặt thêm các cơ chế giám sát (security audit) để kịp thời phản ứng trước những kiểu [...]... bằng nghi thức SSL hoặc Kerberos 6 Các vấn đề bảo mật trong phát triển ứng dụng CSDL Oracle 14 Phát triển ứng dụng bảo mật trên oracle Bảo mật là một trong những vấn đề mà bất kỳ người nào sử dụng Database đều quan tâm, vấ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, nhưng đa số các chương trình ứng dụng hiện hay lại ít quan tâm đến vấn đề này Trong... các bạn 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 Khi phát triển một ứng dụng lúc nào người phát triển ứng dụng cũng luôn quan tâm đến vấn đề bảo mật hệ thống, để làm một hệ thống bảo mật thì yêu cầu tối thiểu là quản lý user và các quyền hạn trên chức năng cũng như các đối tượng trong ứng dụng Hiện nay đa số mọi người phát triển ứng dụng chủ yếu quản lý user theo 2 cách... tiếp cận 16 Phát triển ứng dụng bảo mật trên oracle này thì mỗi ứng dụng khi truy cập vào database phải thực hiện lại việc bảo mật Việc bảo mật trở nên tốn quá nhiều chi phí(không phải tiền bạc mà là sự nặng nề cho hệ thống) bởi vì nó phải thực hiện cùng 1 cơ chế bảo mật cho nhiều ứng dụng 6.2 Quản lý quyền hạn trong ứng dụng Hầu hết ứng dụng database đều đòi hỏi những quyền khác nhau trên các đối... 18 Phát triển ứng dụng bảo mật trên oracle Hình 7: Mô hình quan hệ database qlCuocHen Chương trình sử dụng giao thức TCP/IP, sử dụng giao diện CallableStatement với lời gọi các thủ tục lưu trữ trong oracle 10g và giao diện Statement để thực hiện truy vấn dữ liệu Hình 8 : Màn hình chính 19 Phát triển ứng dụng bảo mật trên oracle Hình 9 : Menu chức năng Hình 10: Chức năng truy vấn 20 Phát triển ứng dụng. .. dụng bảo mật trên oracle Ấn nút kiểm tra để hiện lên danh sách phân nhóm và tìm kiếm Sau khi đã chọn phân nhóm phù hợp rồi bấm ok, ta sẽ được bảng như sau : Hình 11 : Bảng danh sách bạn bè Chức năng nhập : Hình 12 : Chức năng nhập Nhập vào với các giá trị theo thứ tự : NB,NhaBao,6 21 Phát triển ứng dụng bảo mật trên oracle Hình 13 : Bảng danh sách các phân nhóm 22 Phát triển ứng dụng bảo mật trên oracle. .. hóa một trường có kiểu ngày tháng, khi ứng dụng truy xuất 11 Phát triển ứng dụng bảo mật trên oracle 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... 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... Để tạo role trong oracle thì có 2 phương pháp để tạo : 17 Phát triển ứng dụng bảo mật trên oracle - 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... 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ó thể lợi dụng. .. triển ứng dụng bảo mật trên oracle 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ậttrê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

Ngày đăng: 17/06/2014, 13:36

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan