[DataBase] 데이터베이스 기초

 

데이터베이스


오늘날을 정보화 시대라고 부르는 만큼 사람들은 엄청난 양의 데이터 속에서 살아가고 있습니다.

 

이미지, 텍스트, 문서, 문자열, 숫자 등 데이터는 다양한 형태로 존재하며 각각 용도에 맞게 처리되어 사람들에게 보입니다.

 

많은 양의 데이터를 효율적으로 관리하고 처리하기 위해 고안한 것이 데이터베이스입니다.


(1) 데이터베이스

1-1. 데이터베이스 정의

  • 데이터베이스는 체계적으로 조직된 데이터의 집합

  • 가장 많이 사용되는 데이터 모델은 관계형 데이터 모델이며, 표 형식으로 구성

  • 데이터 구조화 > 사용자가 얻는 이점이 많고, 대량 데이터를 처리하는 여러 기관, 기업, 웹 사이트 등에서 필수적 사용

[표 1] 데이터베이스 예시

고객 아이디 주문번호 주문일자 결제완료일자 결제금액
100101 20200301-001 2020-03-01 2020-03-01 100,000
100102 20200301-002 2020-03-01 2020-03-01 70,000
100103 20200301-003 2020-03-01 2020-03-02 200,000
100104 20200302-001 2020-03-02 2020-03-02 50,000
100105 20200302-002 2020-03-02 2020-03-03 300,000
100106 20200303-001 2020-03-03 2020-03-03 10,000
100107 20200304-001 2020-03-04 2020-03-04 40,000
100108 20200304-002 2020-03-04 2020-03-05 150,000



[표 2] 주문일자가 2020-03-01인 데이터만 추출한 결과

고객 아이디 주문번호 주문일자 결제완료일자 결제금액
100101 20200301-001 2020-03-01 2020-03-01 100,000
100102 20200301-002 2020-03-01 2020-03-01 70,000
100103 20200301-003 2020-03-01 2020-03-02 200,000


위 결과를 보면 비슷한 유형의 데이터끼리 분류되어 있는 것을 알 수 있다.

 

데이터가 일정한 순서로 나열되어 데이터를 수정 및 검색하는 데에 걸리는 시간이 크게 줄어든다.

 

사용자는 SQL(Structured Query Language)이라는 쿼리 언어로 원하는 데이터만 추출이 가능하다.

 

위와 같이 주문일자가 2020-03-01인 정보만을 원한다면, 조건을 추가한 쿼리를 다음과 같이 입력한다.

 

SELECT * FROM 주문정보 WHERE 주문일자 = '2020-03-01'

 

  • 데이터 추출뿐만 아니라, 데이터 삭제 / 수정 / 추가할 때도 간단한 명령문을 입력

  • 일괄적 변경 가능, 표의 내용 일부 변경도 가능

  • 여러 표를 한데 묶어 출력하는 것도 가능

 

1-1-1. 데이터베이스에 어떻게 접근하는가?

  • 사내 네트워크망에 포함되지 않은 외부 사용자는 인터넷을 통해 공개된 웹 서버에 접속

  • 해당 서버는 필요한 데이터를 데이터베이스 서버로부터 불러옴

※ 데이터베이스 보안을 위해 외부 사용자가 데이터베이스 서버에 직접 접속하지 못하게 하는 것

(하지만 웹이나 애플리케이션 보안이 취약하면 공격자가 악의적인 SQL 구문을 입력하여 민감 정보 빼오기 가능)


1-2. 데이터베이스 특징

 

1) 데이터 중복 허용 X

  • DBA(Database Adminstrator)로 중앙 집중화되어 관리 > 불필요한 데이터 중복 피함

  • 저장하고 있는 데이터 총 용량도 줄어듦

  • 데이터 중복은 예기치 못한 상황을 만들 수 있어 허용하지 않는 것이 일반적 (몇몇 경우는 일부러 허용하기도 함)

 

2) 데이터 공유

  • 여러 사용자와 응용 프로그램이 데이터베이스 내의 데이터 공유 가능

 

3) 데이터 무결성

  • 데이터 일관성과 정확성 보장 > DB, RDBMS(Relational Database Management System)의 중요 특징

  • 중앙 집중화 된 관리 > 데이터 정확성, 일관성 유지

 

4) 데이터 보안

  • DBA는 사용자마다 데이터베이스 접근 권한 부여 > 허가받지 않은 접근 차단

  • 접근 권한 부여 및 회수 명령어는 SQL 중 DCL로 GRANT와 REVOKE가 있음

 

5) 데이터 독립성

  • 물리적 독립성과 논리적 독립성으로 나뉨

  • 물리적 독립성은 데이터를 담고 있는 저장장치가 바뀌어도 응용 프로그램까지 바꿀 필요 없음을 의미

  • 논리적 독립성은 데이터베이스 테이블에 데이터가 새로 추가/삭제 /갱신되어도 응용 프로그램을 바꿀 필요가 없음을 의미

  • 결론적으로, 데이터베이스 환경 변화는 해당 데이터베이스를 사용하는 응용 프로그램에 영향을 끼치지 않음


# Reference

 

http://www.yes24.com/Product/Goods/87579830

'DB' 카테고리의 다른 글

[DataBase]DCL (데이터 제어어)  (0) 2020.03.20
[DataBase] DML (데이터 조작어)  (0) 2020.03.20
[DataBase] DDL (데이터 정의어)  (0) 2020.03.20
[DataBase] DBMS(Database Management System)  (0) 2020.03.18
[DataBase] 데이터베이스 모델  (0) 2020.03.16

Disk Forensic #26 (범죄자는 자신의 인생을...)

 

디스크 포렌식 26번 문제

 

이번 문제 파일은 dd 확장자를 가진 이미지 파일이다.

 

해당 파일 분석을 위해 HxD로 열어 확인하였다.

 

HxD로 여는 대신, 해당 파일을 섹션으로 나눠서 보기 위해 HxD의 [기타 설정 메뉴] - [디스크 이미지 열기] 기능을 통해 파일을 확인하였다.

 

[그림 1] 디스크 이미지 열기 기능 (섹터 확인)

 

화면과 같이 섹터가 적혀 있는 것을 확인 가능하다.

 

[그림 2] 3000번 섹터 (JPEG 시그니처 확인)

 

분석하던 도중, 3000번 섹터에 화면과 같은 JPEG 파일 시그니처를 확인하였다.

 

이를 통하여 이미지 파일 안에 JPEG 형태의 사진이 있다는 것을 추측할 수 있다.

 

이미지 파일 추출을 위해 리눅스 환경에서 foremost 도구를 사용하여 파일을 추출하였다.

 

[그림 3] foremost 도구 사용

 

foremost : 데이터 복구를 위한 카빙 도구로 네트워크 패킷 데이터 추출, 악성코드 분석, CTF 포렌식 문제  등에 자주 사용되는 도구

 

설치 사이트 : http://foremost.sourceforge.net/ 

 

Foremost

Foremost Introduction Foremost is a console program to recover files based on their headers, footers, and internal data structures. This process is commonly referred to as data carving. Foremost can work on image files, such as those generated by dd, Safeb

foremost.sourceforge.net

 

[그림 4] jpeg 이미지 파일 확인

 

위 이미지 파일은 추출된 jpeg 이미지 파일이다.

 

하지만 해당 이미지 파일의 md5 값을 문제의 플래그로 인증하면 인증이 되지 않는다.

 

위 이미지 파일을 자세히 보면, 이미지 중간에 초록색 선으로 조금 어긋나 있는 것을 확인할 수 있다.

 

이 문제 때문에 완전한 이미지가 아니라서 인증이 되지 않는 것을 추측할 수 있다.

 

자세한 분석을 위해, jpeg 이미지 파일을 HxD로 위 방법대로 다시 확인하였다.

 

[그림 5] 데이터 값 중간 지워짐

 

분석 결과, 데이터 값 중간이 0으로 덮여 있는 부분을 확인 가능하다.

 

0으로 되어 있는 부분을 지워 이미지를 편집하면 정상적인 이미지가 나올 것 같다.

 

0으로 쓰여져 있는 부분을 쉽게 확인하기 위해 jpeg 이미지 파일을 위 방법을 통해 섹터로 확인하게 되면 0섹터 ~ 15561 섹터 중에 0으로 쓰여져 있는 부분은 3000섹터 ~ 5999섹터, 9000섹터 ~ 11999섹터라는 것을 확인할 수 있다.

 

지워야 하는 영역을 확인하였으니 해당 부분을 제거하기 위해, 리눅스 환경에서 dd 명령어를 이용하여 섹터 단위로 데이터를 선택해 수정할 수 있다.

 

[그림 6] dd 명령어 이용

 

※ dd 명령어 사용법

  • if : 파일 입력

  • count : 입력된 블록의 크기만큼 복사

  • skip : 파일의 시작부터 입력 값 만큼의 블록을 건너 뜀 

 

[그림 7] 정상적인 이미지 파일 확인

 

0값을 지운 정상적인 이미지 파일의 화면이다.

 

이제 md5 값 확인을 위해 md5sum 명령어를 사용하여 플래그를 확인한다.

 

[그림 8] 플래그 확인

 

md5sum 명령어를 통해 나온 결과값을 플래그로 입력하게 되면, 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Disk Forensic #21 (데이터센터 중 하나가 정보의...)

 

디스크 포렌식 21번 문제

 

문제에서 Docs~ 이름으로 된 zip 파일이 주어진다.

 

압축을 해제하면 jpg 파일과 pdf 파일, Thumbs.db 파일 등을 확인할 수 있다.

 

[그림 1] 압축 해제 (파일 내용 확인)

 

이미지나 다른 파일에서는 플래그에 대한 정보가 없어, Thumbs.db 파일을 분석하였다.

 

Thumbs.db는 윈도우에서 이미지 파일 미리보기를 사용할 때 생기는 파일로, 이미지 파일에 접근하기 전에 Thumbs.db 파일에서 먼저 확인하여 미리보기 속도를 향상시킴

 

 

Thumbs.db 파일 확인을 위해 Thumbs Viewer 도구를 통해 분석하였다.

 

 

Thumbs Viewer : Thumbs.db 파일에 어떤 내용이 담겨 있는지 볼 수 있는 프로그램

 

설치 사이트 : https://thumbsviewer.github.io/

 

Thumbs Viewer - Extract thumbnail images from the Thumbs.db, ehthumbs.db, ehthumbs_vista.db, Image.db, Video.db, TVThumb.db, and

About Thumbs Viewer allows you to extract thumbnail images from the Thumbs.db, ehthumbs.db, ehthumbs_vista.db, Image.db, Video.db, TVThumb.db, and musicThumbs.db database files found on various Windows operating systems. Looking to open thumbcache_*.db fil

thumbsviewer.github.io

 

[그림 2] Thumbs Viewer 실행

 

Thumbs Viewer를 실행하여, Thumbs.db 파일을 오픈한 화면이다.

 

6번 파일에 이번 문제 플래그 포맷에 맞는 문자열이 보인다.

 

6번 파일을 더블 클릭한 뒤에, 해당 문자열을 복사 - 붙여넣기를 통해 플래그를 인증할 수 있다.

 

위와 같은 방법으로 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Disk Forensic #11 (fore1-hit-the-core)

 

디스크 포렌식 11번 문제

 

주어진 문제 파일의 확장자는 거의 처음 보는 core라는 확장자의 파일이다.

 

해당 파일의 자세한 정보 확인을 위해 file 명령어를 사용하여 확인하였다.

 

[그림 1] file 명령어 사용

 

file 명령어를 사용해 확인해보면 ELF 형식의 파일이라는 것을 확인 가능하다.

 

ELF 형식의 파일과, core 확장자로 미루어 보아 해당 파일은 코어 덤프 파일이라는 것을 추측할 수 있다.

 

코어 덤프 파일은 컴퓨터 프로그램이 특정 시점에 작업 중이던 메모리 상태를 기록한 것으로,

보통 프로그램이 비정상적으로 종료했을 때 만들어짐

 

따라서 메모리 내용이 기록되어 있으므로 플래그 값도 기록되어 있는지 확인을 위해 문자열 검색을 통해 플래그에 대한 정보를 분석하였다.

 

[그림 2] strings 명령 사용

 

문자열 확인을 위해 strings 명령을 통해 분석하였다.

 

분석하던 도중, 여러 문자열 중에서 이상한 문자열을 확인하였다.

 

[그림 3] 이상한 문자열 확인

 

겉으로 보기에는 일반 문자열 같지만, 플래그의 형식에 들어가는 _ 문자와 {} 문자가 들어가 있는 것을 이상하다고 생각하였다.

 

자세히 분석해보면 위 문자열은 플래그에 대한 간단한 규칙이 있다.

 

중괄호 앞에 대문자 글자들만 확인해보면 ALEXCTF라는 문자열을 확인하였고, 이 문자열은 플래그 포맷에 해당하는 문자열이다.

 

또한 해당 문자열이 A부터 시작하여 5번째 마다 대문자 문자가 있는 것을 확인 가능하며, 해당 규칙이 플래그 값을 추출해내는 규칙이라고 추측해볼 수 있다.

 

[그림 4] 문자열 조합

 

화면대로 문자열을 규칙대로 조합해보면 하나의 플래그가 만들어진다.

 

문자열 추출을 위한 코드를 Python으로 작성하면 다음과 같다.

 

[그림 5] Python 코드

 

따라서 추출한 문자열을 플래그로 입력하게 되면, 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Disk Forensic #10 (저희는 디스크 이미지를 찾았습니다.)

 

디스크 포렌식 10번 문제

 

문제 파일로 img 확장자 파일이 주어진다.

 

확장자의 자세한 정보 확인을 위해, file 명령어를 사용하여 확인하였다.

 

[그림 1] file 명령어 사용

 

확인 결과, ext2 파일 시스템의 데이터라는 것을 확인 가능하다.

 

데이터 복구를 위해 foremost 도구를 사용하여 파일 시스템 속의 파일을 복구하였다.

 

[그림 2] foremost 도구 사용

 

foremost : 데이터 구조를 기반으로 손실된 파일을 복구하기 위한 카빙 도구

 

위 화면과 같이 명령을 수행하게 되면 output이라는 디렉토리가 생성되고, 복구된 파일 확인이 가능하다.

 

[그림 3] output 디렉토리

 

output 디렉토리 안에서 확인할 수 있는 파일이다.

 

jpg 디렉토리와 audit.txt라는 두 개의 파일을 확인하였다.

 

jpg 파일에 뭔가 있을 것 같아 디렉토리를 열어 사진들을 분석하였다.

 

[그림 4] 3개의 jpg 파일 발견

 

화면과 같이 총 3개의 jpg 파일이 확인되었다.

 

[그림 5] 플래그 확인

 

첫 번째 사진을 확인해보면, 오리 사진에 플래그가 적혀있다.

 

사진에 나타난 문자열을 플래그로 입력해주면, 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Disk Forensic #9 (Tommy는 프로그램을 작성했습니다.)

 

디스크 포렌식 9번 문제

 

문제 파일로 zip 압축 파일이 주어진다.

 

해당 파일의 압축을 풀기 위해, 리눅스 unzip 명령어로 풀거나 일반 압축 풀기를 통해 압축을 풀어준다.

 

[그림 1] 300 디렉토리 확인

 

압축을 풀면, 300이라는 디렉토리와 함께 안에 out.txt 파일과 parse라는 파일을 확인할 수 있다.

 

이번 문제 역시나 strings 명령으로 플래그 값을 구할 수 있다.

 

분석 결과, out.txt 파일에는 플래그 값이 없었지만 parse 파일에서 플래그를 확인할 수 있다.

 

[그림 2] 플래그 확인

 

이번 문제의 플래그 포맷은 h4ck1t라고 적혀 있다.

 

따라서 문자열 확인이 가능한 strings 명령과, 특정 문자열 검색 기능인 grep 명령을 함께 사용하여 parse 라는 파일에서 포맷에 맞는 플래그를 찾을 수 있다.

 

위 화면에서 보이는 문자열을 플래그로 입력하게 되면 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

+ Recent posts