본문 바로가기

Computer/0x04 데이터베이스

DB보안 - 01


DB보안 study





데이터베이스 : 여러 사람에 의해 공유되어 사용될 목적으로

통합하여 관리되는 데이터의 집합을 말한다.


데이터:

가공되지 않는 상태  



정보 : 

가공된 데이터 



지식

정신이 어떤 대상을 아는 작용 


* 데이터베이스는 응용시스템들이 공용할 수 있도록 통합, 저장된 운영데이터의 집합


- 통합,저장,운용,공용 



데이터베이스는 중복성 감소,불일치 제거,공유, 표준화, 보안,

무결성의 특징을 가짐



*본원적 특성

: 중복성 감소,불일치 제거,공유,표준화,보안,무결성



*시스템적 특성

: 실시간 접근성,계속적변화,동시공유,내용에 의한 참조 



================================================================================


데이터베이스 관리 시스템( DBMS ) : 통제, 제어, 책임


 



[ DBMS 구성요소 ] 



질의 컴파일러 


내장 질의 전처리기


질의 실행기


저장 관리기


트랜젝션 관리기


저장구조 



[ DBMS 저장구조 ]

: 데이터베이스는 Logical 구조와 Physical 구조의 특성을 

바탕으로 다음과 같은 저장 구조 가짐 



[ 데이터 모델 ]

: 데이터베이스에 데이터를 넣기 위해서는 Entity를 정의하고 Entity간의 관계를 설정하여

저장함



[ 데이터 모델링 ]

: 현실세계의 업무 프로세스를 추상화 하여 데이터베이스의 데이터로

표현하기 위한 설계 과정 


1) 개념설계

2) 논리설계

3) 물리설계 


번호

이름

연락처

1

박찬호

111-1234

2

선동열

222-1234

3

임꺽정

333-1234

4

홍길동

444-1234

5

박주영

555-1234


회원 ç===== [실체] =====è 상품


코드

상품명

정가

AA

새우깡

700

BB

초코파이

2,000

CC

감자

300

DD

꼬꼬

400

EE

파워

1000



트랜잭션

한번에 처리되어야 할 하나 또는 둘 이상의 일련의 작업단위, ACID 특성을 만족하는 연산들의 그룹


- 원자성 : 트랜젹션은 더 이상 분이할 수 없는 작업단위, 하나의 트랜잭션 작업은 모두 수행되거나 수행되지 않아야 함 


(예시): (A+1, B+1)이 하나의 트랜잭션 이라면 두 필드의 값이 모두 1씩 증가하거나 변화가 없어야 함

 

- 일관성: 트랜젹션의 실행을 성공적 완료되면 언제나 일관성있는 DB 상태 유지 


(예시): 무결성 제약이 A,B필드의 값이 있어야 한다면, 이를 위반하는 트랜젹션은 중단


- 고립성: 트랜잭션 수행 시 다른 트랜잭션은 연산 작업이 끼어들지 못하도록 보장. 

트랜젹션 밖의 어떤 연산도 중간 단계 데이터를 볼 수 없음


(예시): (A+1,B-1)이 하나의 트랜잭션이라면, 다른 연산 작업은 A만 1이 증가하거나 B만 1이 증가하는 결과

를 볼 수 없음



- 지속성 : 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함, 2차 저장소에 저장 


(예시): (A+1,B+1) 수행 완료 후 장애가 발생되더라도 데이터 내용이  변하지 않아야 함 



데이터베이스 트랜잭션

데이터베이스 트랜잭션이 왜 중요하고 DB보안과 어떤 관계가 있을까?



데이터의 흐름: 

전통적으로 보안 시스템은 출입통제에서부터 기밀정보를 관리하는 데이터베이스까지 보안 흐름을

가지고 있음 


데이터 관리:

데이터는 데이터베이스에 저장되며, 일반적으로 데이터베이스를 활용하는 어플리케이션에 의해

데이터가 조회되고 저장됨 



Q. 데이터베이스 트랜잭션이 왜 중요하고 DB보안과 어떤 관계가 있을까요?


A. 

 데이터베이스의 영속성 원자성 이 중요해서

 데이터 베이스는 값의 상태가 중요하니까 변경에 대해서 정확해야되고 여러사람의 변경에 대해서도 각각의 정확한 값을 보여주고 일치 시켜줘야하니깐


디비보안 과의 관계는 결국 디비의 값을 변경하거나 취득하기 위해서

해킹을 하게되는데 그런 값의 상태를 트랜잭션의 의해서 임의의 변경을 방지하기위해 디비 접근제어를 쓰고 누출시 임의 사용자에 의해 노출을 방지하기위해 암호화 하겠지.





[DB보안의 주요 요구사항]

: DB보안은 어플리케이션에서 DB 오브젝트까지 세부적인 요구사항을 정의하여 보안체계를 구축해야 함.


- 정당한 사용자의 데이터 접근 보장

- 추론방지

- 데이터의 무결성 유지

- 데이터의 의미 무결성 유지


- 시스템 감사 지원

- 사용자 인증

- 기밀 데이터 관리와 보호

- 다단계 보호 




[ DB 접근 유형 ]



* DB접근제어 방식:


1. 게이트웨이를 통한 방식

2. DB Server Agent 방식

3. Application Sniffing 방식




In-line 게이트웨이 방식:


방화벽과 같이 사용자와 DBMS 접속 경로 사이에 위치 하는 방식이

DB접속자, DB시스템 환경 변화가 없음 



[ Proxy + PC Agent ] 

: 물리적으로 다른 지역 또는 여러 Switch에 연결된 다수의 DB 시스템을 관리할 떄 유용한 방식임.

DB 접속 사용자 PC에 Client 프로그램 설치가 필요함 



[ Server Agent ]


DB 시스템에 Server Agent 를 설치하여 콘솔 작업을 포함한 telnet 등 Local 접속 통제가 

필요할 경우 사용하는 방식임 




[ 우회 접속 차단 ]

: Server Agent 우회를 차단




[ Hybrid 방식 ]

:여러 방식중 2개 이상을 혼용하여 구성 하는 방식임 .



[ 사용자 인증 ]


[ 접근통제 ]


[ SQL 통제 ]





[ 데이터베이스 접근제어 ]

: 데이터베이스 접근제어를 통한 문제점은 무엇이고, 보완해야 할 점은 무엇일까?




[ 데이터베이스 암호화 고려사항 ]

: 데이터베이스 암호화 위해서는 다음과 같은 요소가 고려되어야 함


- 안전한 알고리즘

- 안전한 키 관리

- 인덱스 암호화 및 검색

- 성능