資料庫安全 (Database Security)

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
第6章 数据库管理软件Access 年秋.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
十一 ASP对数据库的访问.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
第2讲 Transact-SQL语言.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
第2章 数据模型 2.1 实体联系模型 2.2 关系模型 2.3 面向对象的数据模型 习 题 2.
复习重点; 1. 关系模型、ER模型 2. SQL 3. 事务管理 4. 函数依赖与规范化 5. 数据库设计  复习题 一、单项选择题
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第14章 預存程序 14-1 預存程序的基礎 14-2 建立與執行預存程序 14-3 預存程序的參數傳遞 14-4 預存程序的傳回值
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
資料庫 (Database) SQL Server 2008實作
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
第 八 章 資料庫安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
文科计算机小公共课规划教材 Access 程序设计.
Chap 13 視界與資料庫程式設計.
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
计算机应用基础 上海大学计算中心.
第3章 数据查询与SQL命令.
資料庫管理 資管二 賴柏融.
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
第2章 数据定义功能 创建表 在关系型数据模型中,表(Table)是最基本的数据结构。
An Introduction to Database System
第五讲 利用视图进行查询优化.
Introduction to database
關聯式資料庫.
第六章 學習SQL語言.
資料庫系統 Database Systems
第 8 章 資料的 新增、修改與刪除.
資料庫系統 Database Systems
課程名稱:資料庫系統 授課老師:李春雄 博士
SQL Injection (資料隱碼) 簡介
第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义.
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
Chap 10 SQL定義、操作與控制指令.
彰化縣政府補助辦理網頁設計資料庫應用班 ASP與資料庫介紹 建國技術學院資管系 饒瑞佶.
Transact-SQL 語言設計教學.
SQL Server 2000 数据库入门.
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
第4章 關聯式資料庫模型 4-1 關聯式資料庫模型的基礎 4-2 關聯式資料庫模型的資料結構 4-3 關聯式資料庫模型的完整性限制條件
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
AnQing Teachers College Department of Computer & Information
SQL SERVER 一些经典语句 1.
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
第十二章 SQL語言簡介 講授大綱: 新增資料庫 新增資料表 新增資料 修改資料 刪除資料 查詢資料 透視ASP.NET-第12章
Ch4.SQL Server 2005資料庫組成員元件介紹
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
实验二讲评 … 张榆….
第20章 MySQL数据库.
数据库技术与应用.
CH03 行銷資訊系統資料庫模組--資料庫概論
資料庫概論 許明宗.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
SQL查询语句 蔡海洋.
第三章 SQL Server数据管理.
資料庫管理 Database Managent Ex.1-2 課本範例練習
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
資料庫應用與實作 一到六章重點、習題.
第4章 数据查询.
Web安全基础教程
Presentation transcript:

資料庫安全 (Database Security)

本章內容 15.1 前言 15.2 資料庫管理系統的安全威脅 15.3 資料庫安全實作 15.4 統計資料庫安全 15.5 任意性資料庫安全 15.1 前言 15.2 資料庫管理系統的安全威脅 15.3 資料庫安全實作 15.4 統計資料庫安全 15.5  任意性資料庫安全 15.6  多層式資料庫 15.7  資訊隱碼攻擊

15.1 前言 在介紹資料庫安全之前,必須先對資料庫系統有一初步瞭解,才能夠知道資料庫系統有那些安全上威脅,以及需要使用那些安全技術,才能夠彌補安全上的漏洞。

資料庫內資料之階層關係

資料庫與檔案差異 資料庫是由資料庫管理系統(DBMS)管理,而檔案是由作業系統(OS)所管理。 資料庫安全比作業系統安全更為明細。 資料庫比檔案更經常被存取及更新。 資料庫之存取經常須同時關聯到數個資料表,而檔案之存取則一時間僅處理單一檔案。

結構化查詢語言(SQL) SQL(Structured Query Language) 1. 註解標記 “--” 在「--」符號後面的說明將不會被程式解譯 2.新增一個資料庫 CREATE DATABASE TEST 3. 建立一個資料表 CREATE TABLE TestTable ( ID int, Name char(30))

SQL(續) 4. 在資料表中新增一筆記錄 INSERT TestTable (ID, Name) VALUES (100, ‘test’) 5. 從資料表中顯示指定欄位的資料 SELECT ID, Name FROM TestTable 6. 更改資料表中紀錄內容 UPDATE TestTable SET ID = 101 WHERE Name = test 7. 刪除符合的資料紀錄 DELETE FROM TestTable WHERE Name = test

SQL(續) 設我們要查詢職員資料表中居住在台中的職員資料,其SQL 指令為: SELECT * FROM 職員資料表 WHERE 地址 = ‘台中‘ ; 其查詢結果為: 身分證字號│ 姓名 │ 地址 │生日 B225353217 黃品潔 台中 07.21

15.2 資料庫安全威脅 資料庫內機密資料被非法者所竊知 資料庫內資料被非法者所篡改及偽造 資料庫內資料被非法者所破壞,讓合法者不能存取 資料庫推論(Database Inference) 資料庫聚合(Database Aggregation) 木馬藏兵(Trojan horse) 秘道(Covert Channel) 以 1 次 1 個 bit 的方式慢慢洩漏資料

資料庫推論 如果已知{黃品潔}同學就讀資管系,而且該班只有她一位女同學,若想得知{黃品潔}同學的英文成績 請問資管系英文成績總分 > 405 請問資管系男同學英文成績總分 > 312 非法者因此可推論出{黃品潔}同學的英文成績為 > 405-312=93分。

資料庫聚合 資料庫聚合是指個別資料雖不具機密性,但聚合數筆資料後卻可獲得機密資訊。 職員職位資料表 職位薪資資料表

15.3 資料庫安全實作 好的資料庫應該具備下列特性: 資料分享、最小資料重複、資料一致性、資料完整性、及資料安全性。 資料庫安全分下列四類: 實體安全 建構在作業系統之安全 建構在資料庫管理系統之安全 以密碼學為基礎之安全 備份資料 分散式資料庫於網路上傳輸的資料 傳遞資料的完整性與不可否認性

15.4 統計資料庫安全 統計資料庫是一可提供平均值(AVERAGE)、總合(SUM)、及總數(COUNT)等統計資料之資料庫。 資料庫之推論問題(Inference Problem) 未經授權者不能直接查詢該女性之薪資資料,但他可以將統計查詢結果及一些已知資訊做分析比較,進而推導出該機密資料,統計資料庫之安全性控制,基本上就是要限制這類型統計查詢,以確保個別資料隱密性。 查詢統計的資料量太大或太小都有洩露機密的可能

推理問題解決方法 解決統計資料庫之推理問題,可分成下列三方向: 近似查詢法 限制查詢法 追蹤法 不回答正確的結果給查詢者,而將此結果做些微修改,以偽裝正確資料。 限制查詢法 對於敏感資料的查詢及其統計量可能會危及資料庫安全時,則系統拒絕回答。 追蹤法 在回答查詢時,先分析此查詢是否會被用來推理統計資料庫之敏感資料,若是則拒絕回答。

近似查詢法(Add Noise) 合成法(Combining Results) 隨機取樣法(Random Sample) 隨機誤差法(Random Data Perturbation)

近似查詢法-合成法 個別敏感資料,很容易被推導出來,但若把數個資料項合併成一資料項,使它較不具敏感性,這種方法稱為合成法。 合成法範例 抑制查詢量範例

近似查詢法-隨機取樣法 每次系統所回應查詢結果,並不是從整個資料庫核算出來,而是從資料庫中隨機取樣部份資料核算。例如,某一成績資料庫,內含100位女學生資料,當要查詢女學生之平均成績時,系統並不直接計算資料庫內100位女學生平均成績,而是隨機選取學生當中95位來計算其平均成績。 對同一查詢,取樣需相同,以免不同取樣的結果被拿來進行推論。 變形: 隨機取 5%,重覆外加 隨機取 5%,以其他值取代

近似查詢法-隨機誤差法 每次查詢再加上一誤差值,此誤差值可為正或為負數值,這方法比隨機取樣法更簡單且更有效率,而且不用擔心相同查詢會隨機選取不同樣本。 代價:需維護此誤差值。 Min-Shiang Hwang © The McGraw-Hill Companies, Inc., 2005

15.5 任意性資料庫安全 資料庫安全政策: 任意性(Discretionary, 自由裁決的)安全政策 強制性(Mandatory) 安全政策 系統中權力以整個關係表的內容為單位。對使用者而言,不是對整個關係表沒有權力就是對整個關係表的所有內容都有權力。擁有者具自由裁決權利。 優點:實行容易與理論基礎簡單 缺點:資料保密的單位太大

存取模式 如果張三具有[存取人事資料庫中薪水少於 3 萬元的人事資料權限,當{張三}以下列SQL查詢人事資料庫時: SELECT SALARY FROM EMP WHERE SALARY <20000 系統轉成存取要求 {張三},EMP,SELECT,SALARY < 20000) 存取法則範例

資料庫存取控制處理 有時可以加上存取法則 的授權者及可否將此權 限傳播出去的 flag 資訊

關聯基表與視窗表 關聯基表是每筆資料錄均實際儲存在磁碟內做永久保存。 視窗表(view)則是由基表抽取出來部份或結合其他基表產生出之資料表。

如何產生視窗表 例如,我們想查詢所有部門之平均薪資。 SQL指令: CREATE VIEW AVGSAL AS SELECT DEPARTMENT, AVG(SALARY) FROM EMP GROUP BY DEPARTMENT 視窗表(AVGSAL)之查詢結果

安全性控制 採用視窗表(View)的方法來隱藏敏感的資料,以防止未經授權的使用者 執行非法行為。 由授權系統決定每一個使用者對每一個資料表的使用權限,以控制使用者對資料庫之資料的存取權限。 例如: GRANT SELECT ON TABLE VSAL TO 張三 表示授予{張三}對視窗表VSAL具有存取資料(SELECT)的權限。

15.6 多層式資料庫 多層式資料庫是以第四章之強迫式存取策略(Mandatory Access Control)為基礎之資料庫。 依使用者職位或等級不同,而有不同之安全等級。

多層式資料表 多層式資料表,是指一般資料表內,每一基本資料項(Atomic)、資料錄(Tuple)、屬性(Attribute)或欄位、及資料表(Table)本身均有一相對應之安全等級。 多層式資料表

機密 (Secret) 等級使用者存取的資料 NULL

完整性規則 實體完整性規則 關聯基表(Base Relation)之主鍵(Primary Key),其所有屬性項均不可為虛值(Null Value)。 參考完整性規則 - 關聯基表之外鍵(Foreign Key)值必須存在於其他關聯基表之主鍵,否則此外鍵須為虛值。

資料多重性問題 假如,有一位一般使用者新增一筆(A03、黃品硯、60K)資料錄 此時資料庫管理系統 若以資料重複原因拒絕該一般使用者儲存,該使用者將知曉資料庫中有A03之資料,反而洩漏此資訊。 若資料庫管理系統允許儲存此筆資料,如此又將造成資料重複問題,這稱為資料多重性問題(Polyinstantiation)。

違反多層式實體完整性規則 違反實體完整性規則 具 S 等級的使用者看到:

違反多層式參考完整性規則 違反參考完整性規則 TS TS

多重列錄(Polyinstantiated Tuple) 新增一筆紀錄

多重資料 具 S 等級的使用者看到:

15.7 資訊隱碼攻擊 正常身份認證連線 SELECT * FROM member WHERE UID = ‘& request(“ID”) &’ AND Passwd = ‘& request(“Pwd”) &’; With UID = ‘A123456789’ Passwd = ‘1234’ SELECT * FROM member WHERE UID = ‘A123456789’ AND Passwd = ‘1234’;

資訊隱碼攻擊(續) 正常連線狀態

SQL Injection攻擊 SELECT * FROM member WHERE UID = ‘& request(“ID”) &’ AND Passwd = ‘& request(“Pwd”) &’; UID = ‘Admin’ -- ’ Passwd = ‘ ’ SELECT * FROM member WHERE UID = ‘Admin’ --’ AND Passwd = ‘ ’;

SQL Injection攻擊(續)

SQL Injection攻擊(續) SELECT * FROM member WHERE UID = ‘& request(“ID”) &’ AND Passwd = ‘& request(“Pwd”) &’; UID = ‘ ’ OR 1=1 -- ’ Passwd = ‘12345’ SELECT * FROM member WHERE UID = ‘ ’ OR 1=1 --’ AND Passwd = ‘ 12345’;

SQL Injection其他輸入指令 輸入的SQL指令 產生的後果 ' ;SHUTDOWN-- 停止SQL伺服器 ' ;DROP Database <資料庫名稱>-- 刪除資料庫 ' ;DROP Table <資料表名稱>-- 刪除資料表 ' ;DELETE FROM <資料表名稱>-- ' ;Truncate Table <資料表名稱>-- 清空資料表

SQL Injection的防範 1.網頁程式撰寫方面 2.資料庫管制方面 (1)過濾輸入條件 (2)過濾可能隱含的SQL指令 (3)針對輸入條件進行規範 2.資料庫管制方面 (1)SA管理帳號的密碼管控 (2)刪除多餘的公開資料表、範例等 (3)移除不必要但功能強大的延伸預存程序 (Extended Stored Procedure)

SQL Injection的防範(續) 3.網站伺服器方面 4.外部防護系統的控管 (1)定期修補作業系統與網站伺服器的漏洞 (2)避免ASP、PHP與JSP程式源碼 (Source Code)洩漏 (3)不提供錯誤訊息給使用者 4.外部防護系統的控管 (1)藉由防火牆系統管制連線 (2)藉由Host-based IDS或Application-based IDS監控系統運作