
오늘 기출 풀어봤는데, 아슬아슬하게 합격할 만한 듯. 개념은 다 봤으니 앞으로 문제 양치기할 예정
- 데이터베이스 기본 개념
- 데이터베이스 정의
- 통합된 데이터
- 똑같은 데이터가 중복되지 않음
- 효율성을 위해 일부 데이터 중복 허용
- 저장된 데이터
- 운영 데이터
- 공용 데이터 — 한 조직에서 여러 응용프로그램이 공동으로 소유, 유지 가능한 데이터
- 통합된 데이터
- 키의 유형
- 후보키
- 유일성과 최소성을 만족하는 키
- <학번>, <이름, 학과>
- 슈퍼키
- 유일성을 만족하는 키
- <이름, 학과, 학년>
- 기본키 — 후보키 중 하나를 선정하여 사용하는 것
- 대체키 — 후보키 중 기본키로 선정되고 남은 나머지 키
- 외래키 — 어느 한 릴레이션 속성의 집합이 다른 릴레이션에서 기본키로 이용되는 키
- 후보키
- 무결성의 종류
- 키 무결성 — 한 릴레이션에 같은 키값을 가진 튜플이 있어서는 안 됨
- 개체 무결성
- 기본키에 속해있는 전체 또는 일부 애트리뷰트가 널 값을 가질 수 없다는 제약 조건
- 키값의 전부 또는 일부가 널이 된다면 튜플을 유일하게 식별할 수 없게 되어 기본키의 정의를 위반함
- 참조 무결성
- 외래키는 널이거나 참조 릴레이션에 있는 기본키와 같아야 함
- 외래키가 널 — 아직 참조할 튜플을 정하지 못함
- 릴레이션은 참조할 수 없는 외래키값을 가질 수 없음
- 트랜잭션
- 정의
- 하나의 논리적 기능을 수행하기 위한 작업 단위
- 한꺼번에 모두 수행되어야 할 일련의 데이터베이스 연산
- 병행 제어 및 회복 작업의 논리적 단위(LUW, Logical Unit of Work)
- 트랜잭션의 ACID 성질
- 원자성(Atomicity) — 트랜잭션 내의 모든 연산은 반드시 한꺼번에 완료돼야 하며, 그렇지 못한 경우 한꺼번에 취소돼야 함
- 일관성(Consistency) — 트랜잭션이 성공적으로 완료되면 일관성 있는 데이터 상태로 변환함. 프로그램 실행 중 일관성 위반은 상관없음
- 격리성(Isolation) — 트랜잭션이 실행 중에 있는 연산 중간 결과는 다른 트랜잭션이 접근 못함
- 영속성(Durability) — 트랜잭션이 성공적으로 완료되면, 그 결과는 영속적임. 시스템은 완료된 결과의 영속성을 보장해야 함
- 정의
- 데이터베이스 정의
- 데이터베이스 보안 요구사항
- 데이터베이스 보안
- 보안 위협
- 데이터베이스 보안 위협
- 개요
- 정보의 부적절한 유출, 부적절한 데이터 처리와 수정으로 야기되는 데이터 무결성 손상
- 서비스 거부 공격
- 주요 위협
- 애그리게이션(Aggregation, 집성)
- 민감하지 않은 정보를 수집, 조합하여 민감한 정보 생성
- 낮은 보안 등급의 정보 조각을 조합하여 높은 등급의 정보를 알아냄
- 집성 대응책으로 제안된 것이 거의 없음
- 추론
- 일반적인 데이터로부터 비밀 정보를 획득할 수 있는 가능성
- 통계적인 데이터 값으로부터 개별적인 데이터 항목에 대한 정보를 추적하지 못하도록 해야 함(통제하기 가장 어려운 위협)
- 추론 대응책
- 다중 사례화(Polyinstantiation) — 두 버전의 동일 객체를 생성하여 낮은 주체가 실제 정보를 알지 못하게 하며, 보안 수준을 갖지 않은 엔티티에게 거짓 정보 제공
- Partition, Cell suppression, Noise, Perturbation
- 애그리게이션(Aggregation, 집성)
- 개요
- 데이터베이스 보안 위협
- 보안 요구사항
- 부적절한 접근 방지
- 추론 방지
- 무결성 보장
- 운영적 무결성 보장 — 트랜잭션의 병행 처리 동안 데이터에 대한 논리적 일관성을 보장해야 함
- 의미적 무결성 보장 — 데이터에 대한 허용값을 통제함으로써 변경 데이터의 논리적 일관성을 보장해야 함
- 감사 기능
- 사용자 인증 — OS보다 엄격하게
- 기밀성 보장
- 데이터베이스 보안 통제
- 데이터베이스 보안 제어
- 개요
- 흐름 제어, 추론 제어, 접근 제어에 대한 보안 측정을 통해
- 암호 기법을 첨가하여 비밀성 보장
- 흐름 제어
- X의 값을 읽어 Y에 기록할 때 X와 Y 간 정보 흐름 발생
- 보다 낮은 보호 수준의 객체로 이동하는 것을 검사하여 접근 가능한 객체 간의 정보 흐름 조정
- 추론 제어
- Y=f(X)에서 X를 사용하여 Y를 얻을 수 있음
- 간접적인 데이터 노출로부터 데이터 보호
- 추론 채널
- Y를 유도하기 위해 X를 찾는 채널
- 간접 접근, 상관 데이터, 미싱 데이터
- 방법
- 비밀 정보 은폐
- 모든 사용자에 대한 정보를 유지하며 사용자가 갖고 있는 데이터를 고려하여 질의 허용 여부를 결정하는 사용자의 데이터 지식 추적
- 사용자에게 부정확한/일관성 없는 질의 결과 제공
- 접근 제어 — 데이터베이스의 객체는 상호 관련되어 있어 사용자는 하나의 데이터 요소를 읽고 다른 데이터의 내용을 결정할 수 있음
- 개요
- DBMS 보안 통제
- SQL 기반 접근 통제(GRANT/REVOKE 접근 통제)
- 뷰 기반 접근 통제
- 뷰
- 실제로 존재하지 않고, 조작 요구 시마다 기본 테이블의 데이터를 이용하여 내용 생성
- 실행 시간에만 구체화되는 특수한 테이블
- 논리적 독립성 제공
- 뷰
- DBMS 보안 점검 사항
- 기본적인 보안 취약점 점검
- 디폴트 계정 패스워드 변경
- DB 패스워드 규칙 강화
- DBA 권한 제한 — 일반 계정이 DBA 권한을 갖지 않도록 주의
- 보안 패치 적용
- 추가적인 보안 취약점 점검
- 사용하지 않는 계정 삭제
- 개발자 IP 접근 제한
- 제품별 취약점 제거
- 데이터 암호화
- 기본적인 보안 취약점 점검
- 데이터베이스 보안
- 데이터베이스 보안과 다중 수준 보안
- 세분화 정도의 관점에서 다중 수준 보안을 관계형 데이터베이스에 적용하는 방법
- 전체 데이터베이스
- 개별 테이블(관계)
- 개별 열(속성)
- 개별 행(튜플)
- 개별 요소
- 분류의 세분화 정도 — 접근 제어 시행 방법에 영향, 추론 제어
- 세분화 정도의 관점에서 다중 수준 보안을 관계형 데이터베이스에 적용하는 방법
- DB 암호화 방법
- 개요
- 컬럼 암호화 — Plug-In, API, Hybrid
- 블록 암호화 방식 — TDE, 파일 암호화 방식
- Plug-In 방식
- 암복호화 모듈이 DB 서버에 설치되고 DBMS에서 플러그인으로 연결된 암복호화 모듈을 호출하는 방식
- 응용프로그램의 수정이 거의 필요하지 않아 구현 용이
- 기존 DB 스키마와 대응하는 뷰를 생성하고 암호화할 테이블을 추가하는 작업 필요
- 모듈 호출 시 추가적인 부하로 성능 저하 가능
- API 방식
- 암복호화 모듈이 API 라이브러리 형태로 각 애플리케이션 서버에 설치되고 응용프로그램에서 암복호화 모듈을 호출하는 방식
- 애플리케이션에 부하 발생
- 구축 시 응용프로그램 수정 필요
- 애플리케이션 서버와 DB 서버 간의 통신에서 암호화된 정보의 전송 보장
- 기존 애플리케이션에 대한 전면적인 수정이 가능한 경우 효과적
- Hybrid 방식
- 플러그인 방식의 배치 업무의 성능 저하를 보완하기 위해 AIP 방식 이용
- SQL은 API 방식을 이용하여 성능을 보장하도록 하고, 나머지 대부분은 DB 내 Plug-In 방식을 이용하여 애플리케이션 수정을 최소화하도록 암복호화 모듈을 DB 서버와 애플리케이션 서버에 설치
- TDE(Transparent Data Encryption) 방식
- DBMS에 내장돼 있는 암호화 기능 이용
- DBMS 커널 수준에서 처리되므로 기존 응용프로그램의 수정이나 DB 스키마 변경이 거의 필요하지 않고 DBMS 엔진에 최적화된 성능 제공 가능
- 파일 암호화 방식(운영체제 암호화 방식)
- OS상에서 확인 가능한 개체인 파일을 암호화하는 방식
- 파일에 대해 직접적으로 암호화를 수행하여 DB의 데이터 파일뿐만 아니라 로그 파일, 이미지 파일, 음성/영상 등의 비정형 데이터에 대한 암호화 적용 가능
- 개요
- 데이터베이스 보안과 다중 수준 보안
- 데이터베이스 보안 제어
- DMBS 보안 관리
- MS-SQL
- 개요
- 응용프로그램을 통해 운영체제의 파일이나 명령을 실행시킬 수 있는 것 — MS-SQL, xp-cmdshell
- xp_cmdshell
- 데이터베이스를 통해 운영체제의 명령을 실행하고, 파일 등에 접근할 수 있도록 MS-SQL에서 지원하는 확장 저장 프로시저
- MS-SQL 관리자 계정(sa)에 의해 실행되는데, 계정이 취약한 경우 데이터베이스에 대한 권한뿐만 아니라 운영체제에 대한 접근 권한 노출 가능
- 저장 프로시저
- 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
- 일반적인 쿼리 문장을 사용하는 것보다 성능상의 이점
- 인증
- 윈도우 인증 모드
- SQL Server 기본 인증 모드
- DB 인증 절차를 윈도우 사용자 인증 방법 사용
- 윈도우 사용자 또는 그룹에 따라 SQL 서버에 대한 액세스 부여
- 데이터베이스 관리자가 사용자에게 접근 권한 부여 가능
- 윈도우 인증 로그인 추적 시 SID 값 사용
- 혼합 인증 모드
- Windows 인증과 SQL 서버 인증 혼용
- SQL 서버로 인증된 사용자의 사용자 이름과 암호쌍은 SQL 서버 내에 유지
- 표준 윈도우 로그인을 사용할 수 없는 경우 이용
- 윈도우 인증 모드
- 고정 데이터베이스 역할
- db_owner — 모든 유지 관리 및 구성 작업 수행
- db_accessadmin — 윈도우 사용자, 그룹 및 SQL tjqj fhrmdlsdp eogks dortptm rnjsgks cnrk, wprj
- db_datareader — 모든 사용자 테이블의 모든 데이터 읽기 가능
- db_datawriter — 추가, 삭제, 변경
- db_ddladmin — DDL 명령 실행 가능
- db_securityadmin — 역할 구성원 자격을 수정하고 사용 권한 관리
- db_backupoperator — 데이터베이스 백업 수행
- db_denydatareader
- db_denydatawriter
- 개요
- MS-SQL
'정보보안기사' 카테고리의 다른 글
| [정보보안기사] SECTION 37 침해사고 대응(디지털 포렌식) (0) | 2026.02.24 |
|---|---|
| [정보보안기사] SECTION 36 전자상거래 보안 (0) | 2026.02.22 |
| [정보보안기사] SECTION 34 DHCP와 DNS 보안 (0) | 2026.02.19 |
| [정보보안기사] SECTION 33 웹 보안 (1) | 2026.02.18 |
| [정보보안기사] SECTION 32 이메일 보안 (0) | 2026.02.16 |