공부 기록

[정보보안] 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)

블로그의 정보

공부 기록

너나나

활동하기