4. 접근 제어
1) 접근 제어 (access control)
(1) 정의
: 인가자만 접근하도록 통제. (시스템 보안의 가장 기본적인 수단)
(2) 접근 제어 수단
- IP
- 서비스 포트
+) IP (Internet Protocol)
: PC, 모바일 등 정보통신 매체를 식별할 수 있는 것.
★☆★ (IP는 3계층 = network layer) ★☆★
+) 포트 ( port)
:모뎀과 컴퓨터 사이에 데이터를 주고받을 수 있는 통로
★☆★(port는 4계층 = transport layer)★☆★
+) 웹서버 포트 번호 80번
★☆★ http어쩌구 443번 ★☆★ >> 이게...뭔디...
+) ★접근 권한 통제
- 임의적 접근 제어 (DAC, discretionary access control, 덱)
: (주체,객체의 신분과 DAC 규칙에 따라) 객체에 대한 주체의 접근을 제어하는 기능
- 강제적 접근 제어 (MAC, Mandatory access control, 맥)
- 권한을 정책과 규칙에 따라 부여. (주체, 객체 모두 등급 매겨짐)
- 숫자가 낮을수록 중요 (1등급이 가장 중요)
- 예: 주체3급, 객체 2급 >> 주체는 객체의 파일을 쓸 수만 있음. 쓰기는 정보 유출이 안 되기 때문. (rwx = XOX)
- MAC는 좋은데 사용되기 어려움. 모든 정보의 등급을 매겨야 함. (하나하나 통제)
- OS 보안 제품 = Secure OS = MAC?
- RBAC (Rule Based Access Control, 알백)
- 역할별로 권한을 준다. (이 역할은 이것만 할 수 있어~)
2) 운영체제 접근 제어
(1) 기본적으로 접근 제어하는 서비스 (OS에 접근하는 기본적인 방법)
- 윈도우 : 터미널 서비스(Terminal service) (윈도우의 GUI)
- 유닉스 : 텔넷 (Telnet), SSH (Secure Shell)
+) GUI (Graphic User Interface)
: 사용자 - 컴퓨터 정보 교환 시, 그래픽을 통해 작업할 수 있는 환경.
+) 인터페이스 (Interface)
: 사물-사물 / 사물-사람 사이 소통을 위한 물리적 매개체 / 프로토콜
(2) 윈도우 OS 인터페이스 (접근 제어되어야 하는 서비스)
- 터미널 서비스 (사용포트 : 3389) (특징 : 포트 변경 가능)
- GUI 관리용 툴 (특징 : VNC, Radmin 등)
(3) 유닉스 OS 인터페이스 (접근 제어되어야 하는 서비스)
- 텔넷 (사용포트 : 23) (특징 : 암호화 안 한 세션 >> 스니핑(도청), 세션 하이재킹(가로채기)에 취약)
- SSH (사용포트 : 22) (특징 : SFTP) (사용하기 굳)
- XDMCP (사용포트 : 6000) (특징 : 유닉스용 GUI (XManager)) (사용하기 굳)
- FTP (사용포트 : 21) (특징 : 파일 전송 서비스) (스니핑(도청)에 취약) (접근 IP/PW 뺐길 수 있음)
(4) 접근 제어 정책
- 유닉스는 관련 데몬으로 IP 접근 제어. (TCPWeapper 등)
- 윈도우는 (시스템에 설치된) 방화벽으로 접근 제어. (IP 접근 제어 기능 없음)
+) TCPWapper (Transfer Control Protocol Wapper) (개념만 알고 있기)
- 유닉스 OS 자체가 가지고 있는 방화벽. (윈도우는 방화벽 자체가 있음)
- 공용 컴퓨터 프로그램. 유닉스 서버에서 침입 차단 서비스를 제공.
- (TCPWrapper를 통해) (유닉스) 텔넷, SSH, FTP 접근 제어 가능
- 동작원리 : TCPWrapper 설치 >> (inetd가) (TCPWrapper의) tcpd 데몬에 연결 넘겨줌 >> (tcpd 데몬이) 인가자 권한 확인 >> 해당 데몬에 연결 넘겨줌 (연결에 대한 로그 실시 가능)
- inetd데몬을 기반으로, TCPWrapper가 추가로 붙는 형식.
+) inetd 데몬 (개념만 알고 있기)
- 슈퍼데몬
(여러 서비스를 한꺼번에 관리 >> 불필요한 리소스 사용 감소) (서비스 요청이 적은 애들 모아서 관리하기 좋음)
- 클라이언트 >> (inetd가 관리하는) OS 인터페이스 연결 요청 >> 해당 데몬 활성화 >> 서비스 수행.
- 포트를 가지고 관리를 한다.
+) 데몬 (daemon, resident program, 상주 프로그램) (유닉스) (개념만 알고 있기)
- (시스템 운영 관련 작업을) 백그라운드 상태로 동작/실행하는 프로그램. (백그라운드 프로세스)
- 예약된 시간 / 이벤트 요청이 발생 시, 지정된 서비스 실행
- (여러 프로세스 중에서) 지금 활성화 된 프로세스
- inetd, xinetd, systemctl 등
+) XDMCP
- TCPWrapper의 통제를 받지 않는 데몬.
- 접근 제어 설정 : 별도의 접근 제어 설정 파일로, 클라이언트 IP를 접근 제어 해야함.
+) 내 IP 확인하기
: 윈도우에 CMD 검색 >> 실행 >> ipconfig 명령어 입력
3) 데이터베이스 접근 제어
(1) 데이터베이스 (DB, Data Base)
: 조직의 영업, 운영 정보가 있는 핵심 응용 프로그램.
(2) 오라클 데이터베이스 접근 제어
- 일정 수준 이상의 보안 정책 적용 가능 (다른 DB는 적절한 접근 제어 수단을 제공하지는 않을 수 있음.)
- 접근 제어 설정 파일 : $ORACLE_HOME/network/admin/sqlnet.ora
- IP 접근 허용 방법 : tcp.invited_nodes=(IP 주소 1, IP 주소 2, ... ,IP 주소 n)
- IP 접근 차단 방법 : tcp.excluded_nodes = (IP 주소)
(3) MySQL 데이터베이스 접근 제어
- (시스템에 설치된) 방화벽으로 접근 제어. (IP 접근 제어 기능 없음)
- 권한 부여 방법 : GRANT [권한] ON [DB], [Table] TO [ID]@[IP] IDENTIFIED BY [PW]
- 윈도우 인증 모드, 혼합 인증 모드 (윈도우 인증 + SQL 인증) 지원.
4) 응용 프로그램 접근 제어
(1) 접근 제어 제공
: IIS (Internet Information Services), NGINX
(2) 접근 제어 미제공
: SSL
+) SSL (Secure Socket Layer, 보안 소켓 계층)
- 인터넷 통신 규약 프로토콜 (인터넷에서 데이터를 안전하게 전송하기 위한 프로토콜.)
- 인터넷 프로토콜의 단점 (기밀성 유지 못함) 보완.
- 인터넷 상거래 개인정보, 신용카드 (credit card) 정보 보안 유지에 사용. (기밀성 유지 굳)
- 접근 제어 방법 : 클라이언트의 서버 인증서 이용.
5) 네트워크 장비 접근 제어
: IP 접근 제어 가능.
( 관리 인터페이스 접근 제어, 네트워크 트래픽 접근 제어 (ACL이용) )
(1) 관리 인터페이스 접근 제어
: 유닉스의 접근 제어와 유사. (TCPWrapper 등 관련 데몬 이용)
+) 데몬 (daemon, president program, 상주 프로그램)
: (유닉스) 정해진 이벤트/시간 발생 시, 미리 저장된 내용을 백그라운드에서 동작/실행.
(2) 네트워크 트래픽 접근 제어 (ACL이용)
: 방화벽에서 수행하는 접근 제어와 유사.
+) ACL (Access Control List, 접근 제어 목록)
: 보안 객체, 리소스, 요소와 관련된 권한이 있는 사용자 / 시스템 프로세스 목록. 시스템 관리자가 관리.
5. 권한 관리
1) 권한 관리
: OS 파일 / 디렉터리 접근 권한 관리, DB 정보 접근 권한 관리
2) 운영체제 권한 관리
(1) 윈도우 권한 관리
- NTFS (New Technology File System) 사용. (윈도우의 기본 파일 시스템)
- 파일은 기본 권한 설정 사용. (아마?)
- 그룹/사용자의 6가지 디렉터리 권한 설정 가능
(① 모든 권한, ② 수정, ③읽기 및 실행, ④ 디렉터리 내용 보기, ⑤ 읽기, ⑥ 쓰기)
- 6가지 권한에 적용되는 규칙
( ① 접근 권한 누적, ② 파일 접근 권한이 디렉터리 접근 권한보다 우선, ③ '거부'가 '허용'보다 우선)
(2) 유닉스 권한 관리
- 파일 권한 설정 방법 = 디렉터리 권한 설정 방법
- 열람 권한 : 임의의 디렉터리에서 ls-al 명령
+) ls-al (list)
: 윈도우의 dir 명령과 동일.
+) 유닉스 etc 항목 예시
( drw-r-xr-x 117 root root 12288 Jul 28 06:42 etc)
① drw-r-xr-x : 파일 종류, 권한
② root : 파일 소유자
③ root : 파일에 대한 그룹
+) drw-r-xr-x (- rw- r-- r--)
( r = read = 4, w = write = 2, x = execute = 1 = 실행)
① - : 파일, 디렉터리 종류. ( - = 일반 파일, d = 디렉터리, i = 링크(link) )
② rw- : 파일, 디렉터리 소유자 권한
③ r-- : 파일, 디렉터리 그룹 권한
④ r-- : 파일, 디렉터리 제3의 사용자 권한
(drw 디렉터리 읽고 쓰기, r 소유자 read, xr 그룹 execute and read, x 제3자 execute) (아마...)
+) rwx rwx rwx
111 010 000 >> (7 나는 모두 가능, 2 그룹은 쓰기만 가능, 0 제3자는 불가능)
3) 데이터베이스 권한 관리 (이런게 있다~하고 보기. 그냥 넘어감)
(1) 질의문 (query) 권한 관리
① DDL (Date definition Language, 데이터 구조 정의 질의문)
: CREATE (DB 객체 생성), DROP (삭제), ALTER (기존 DB 재정의)
② DML (Data Manipulation Language, DB 운영 / 사용 질의문)
: SELECT (Table, View 선택), INSERT (데이터 입력), UPDATE (데이터 수정), DELETE (데이터 삭제)
③ DCL (Data Control Language, 권한 관리 질의문)
: GRANT (DB 객체에 권한 부여), DENY (사용자 해당 권한 금지), REVOKE (DB 객체 권한 취소)
+) DCL에 의한 권한 부여 구조
(DCL에 의해 DDL, DML grant, deny 가능)
+) ★데이터베이스
- black list = accept 기반
- white list = deny 기반
(2) 뷰 권한 관리
+) 뷰 (view)
: 가상 테이블. (참조 테이블 각 열에 대해 사용자 권한 설정이 불편해서 개발)
(예시 : 테이블에 이름, 주소, 번호 있음. 근데 주소 권한 제한 필요 >> 한명 한명 설정 필요 >> 뷰에는 이름, 번호만 뜸)
4) 응용 프로그램 권한 관리
- 응용 프로그램 마다 조금씩 다름. (공통적으로 관리자 계정, 일반 사용자 계정으로 나뉨)
- 응용 프로그램 자체의 실행 권한이 더 중요하기도 함. (계정 권한 관리보다)
- 공격자가 취약점을 통해 해당 프로세스 권한 얻을 수 있음
>> 실행 프로세스 권한 별도로 만듦 (윈도우IIS), 제한된 계정 권한 사용 (유닉스) (nobody 등)
'대학교 수업 > 사이버보안개론' 카테고리의 다른 글
2.1 정보보안개론 2단원 (1) (12) | 2024.09.22 |
---|---|
1. 정보보안개론 1단원 - 연습문제 정답 (4) | 2024.09.17 |
1. 정보보안개론 (1단원 전체 묶음) (8) | 2024.09.08 |
0. 개요 및 교재 (0) | 2024.09.08 |