[정보보안] Database Security
by 너나나- Definition of Database :
is collection of related data (원본 데이터) and its metadata (원본 데이터에 대한 요약정보) organized in a structured format
최적화된 정보관리를 하기 위해!!
Types of data :
- Integrated data : 데이터의 중복이 없는 데이터를 수집
- Stored data : storage medium (하드디스크 ...) 에 저장된 데이터 셋 자체
- Operational data : 조직 고유의 업무를 수행하기 위해 지속적으로 유지해야되는 데이터
- Shared data : Structed collection of data for use by one or more applications 하나 이상의 application에서 공유되어진 데이터 (데이터의 통합 관리를 통해 조직 내 다수의 사용자가 될 수도 있고 응용시스템이 될 수도 있음, 사용자나 응용시스템에서 동일한 데이터를 공유)
- Characteristics of Database
- 데이터베이스에 저장된 데이터는 같은 데이터가 중복되지 않았다는 것을 보장
- data items와 groups of data items의 관계를 포함
- 민감 정보와 민감하지 않은 정보 둘 다 포함할 수 있다.
- Database Management System (DBMS)
- creation, access, and modification of databases를 쉽게 할수 있게 하는 software
- 데이터베이스 관리에 효율적이고 효과적이다!!
- Database System : DB, DBMS, 사용자들, 데이터를 저장하기 위한 하드웨어를 다 포함해서 얘기
Relational Databases
- Table of Data Consisting of Rows and Columns
- 각 column은 속성값을 가지고 있다
- 각 row는 각 column의 특정한 값을 가지고 있다.
얘네 두 그래프를 합쳐서 하나로 만들 수 있다!!
- Terms and Elements
- table = relation = file
- row = tuple = record
- column = attribute = filed
- Primary key : uniquely identifies a row
- Foreign key : links one table to attributes in another
- View / virtual table : Result of a query that returns selected rows and columns from one or more table
DBMS
- DBMS는 database에 대한 접근 제어을 제공해준다.
- DBMS는 database의 일부에 대한 특정 권한을 제공해준다. (ex. create, insert, delete, update, read, write, to entire database, tales, selected rows or columns, possibly dependent on contents of a table entry)
- DBMS는 무단 access로부터 데이터의 보안 부분을 보장하는 데이터베이스 보안 및 권한 부여 하위 시스템이 포함됨
Introduction to Database Security Issue
- Three Basic Concepts for Database Security
- Authentication : 사용자가 진짜 그 사용자가 맞는지 인증 (1-to-1 matching)
- Authorization : subject가 합법적으로 system이나 system's objects에 접근할수 있게 해주는 권한을 부여
- Access Control : 전체 system's objects (the database)에 대한 access를 제한하는 (DBMS의) 보안 메커니즘
- Database Security Threats
- integrity(무결성)의 손실
- availability(가용성)의 손실
- confidentiality(기밀성)의 손실
이런 타입의 threats으로부터 database를 보호하기 위해 4가지 대안이 사용된다.
- Access control : 사용자 계정과 패스워드(인증)를 기반으로 해서 데이터베이스에 접근가능하도록 만드는 방식 (MAC, DAC, RBAC)
- Inference control : 통계적인 데티터 값을 반환하는 statistical database에 대한 접근을 제어하는 기능
- Flow control : 데이터가 권한이 없는 사용자에게 도달하는 과정(정상적인 접근 방식을 우회)을 막기 위한 보안방식
- Encryption : 데이터가 어떤 타입의 통신 네트워크를 통해 전송될때 데이터가 노출되어지는 문제를 막기 위함
Database Access Control Issues : SQL Injection Attacks
- 악의적인 SQL commands를 데이터베이스 서버에 보낸다.
- 일반적은 text string을 빨리 종료하고 뒤에 새 명령어를 ㅊ추가하는 방식으로 동작한다. ex) 105 OR 1=1
SQLi Countmeasures
- Defensive coding : 코딩으로 막는거 -> 1 = 1 같은 형태가 들어오면 실행되지 않게
- Detection
- Signature based (미리 정해진 룰 기반)
- Anomaly based (행위 분석을 기반으로)
- Code analysis (취약한 부분에 대한 코드 분석)
- Runtime prevvention : 실행 과정에서 악의적인 sql injection code가 입력되는 경우라면 실행 과정에서 query를 체크하고 미리 해당부분이 실행되지 않도록 예방
Inferential Attack
데이터베이스에 저장돼있는 민감정보 자체를 공격해서 유출시키는게 목적이 아니고 민감 정보들을 추론할 수 있는 정보들을 특정한 request를 보냄으로써 수집하고 수집되어진 응답을 바탕으로 실제로 민감정보와 같은 내가 접근할 수 없는 영역에 있는 데이터의 정보를 수집하는 방법
- 논리적으로 부적합한 query를 날려서 그 응답 메세지 속에 들어있는 어떤 backend database에 대한 자료구조라던지 자료의 데이터형을 추론하고 혹은 논리적으로 잘못된 query에 대해 database가 error메세지를 보냈을 때 그 에러메세지에 있는 정보를 이용해서 내가 접근할 수 없는 영역에 대한 정보를 추론
- Blind SQLi
Inference Countermeasures
- Inference detection at database design -> Alter database structure or access controls
- Inference detection at query time -> By monitoring and altering or rejecting queries
Statistical Database
일반적으로 사용되는 데이터베이스와 달리 통계적인 분석을 목적으로 해서 설계된 데이터베이스
- It is an OLAP (online analytical processing), instead of OLTP (online transaction processing) system.
- Provides data of a statistical nature (e.g. counts, averages)
- Two types :
- Pure statistical database (원본 데이터 없이 통계적인 데이터만 갖고있음)
- Ordinary database with statistical access : 일부 사용자에 대해서는 관계형 데이터베이스에 대한 접근을 허용하지만 일부 사용자에 대해서는 통계정보에 대해서만 접근을 허용
- Access control objective to allow statistical use without revealing individual entries
- Protecting aginst Inference
Perturbation : 응답값에다 노이즈를 더하는 방식
- Query restriction(suppression) techniques
- Data pertubation techniques
- Output perturbation techniques
Database Encryption
Database is typical a valuable information resource
- protected by multiple layers of security : firewalls, authentication, O/S access control systems, DB access control systems, and database encryption
Can Encrypt
- Entie database - very inflexible and inefficient
- Individual fields - simple but inflexible
- Records (row) or columns (attributes) - best
Data Protection in the Cloud
- Data must be secured while at transit, in use, or at rest
- Client can employ encryption for transit
- Client can encrypt data for storage (rest) but can also be CP's responsibility (key management)
'2021-1 > 정보보안' 카테고리의 다른 글
[정보보안] Malicious Software (0) | 2021.04.03 |
---|---|
[정보보안] Operating System Security (0) | 2021.03.27 |
[정보보안] Access Control (0) | 2021.03.21 |
[정보보안] User Authentication - 2 (0) | 2021.03.17 |
[정보보안] User Authentication - 1 (2) | 2021.03.17 |
블로그의 정보
공부 기록
너나나