목표
1. 접근 제어에 대해서 이해함
2. 권한 관리에 대해서 이해함
3. 운영체제의 권한 관리에 대해서 이해함
AAA
- Authentication(인증) : 자신의 신원을 시스템에 증명하는 과정
- Authorization(인가) : 인증이 수행된 객체에 대해 이미 설정된 권한 구성에서 객체가 요구하는 접근 권한 부여의 적절성을 확인하는 과정
- Accounting : 접근에 성공한 객체에 대한 로그
접근 제어
운영체제의 접근 제어
접근 제어를 수행해야 할 관리 인터페이스
운영체제 | 서비스 이름 | 사용 포트 | 비고 |
유닉스/리눅스 | Telnet | 23 | 텔넷 |
SSH | 22 | SFTP 기능 | |
XDMCP | 6000 | 유닉스용 GUI (XManager) | |
FTP | 21 | 파일 전송 서비스 | |
윈도우 | 터미널 서비스 | 3389 | 포트 변경 가능 |
GUI 관리용 툴 | - | VNC, Padmnin 등 |
inetd 데몬
- 클라이언트로부터 inetd가 관리하고 있는 Telnet이나 SSH, FTP 등에 대한 연결 요청을 받은 후, 해당 데몬을 활성화시켜서 실제 서비스를 하는 데몬과 클라이언트의 요청을 연결하는 역할
TCPWrapper
- 설치되면 inetd 데몬은 연결을 TCPWrapper의 tcpd 데몬에 넘겨줌. tcpd 데몬은 접속을 요구한 클라이언트에 적절한 접근 권한이 있는지 확인한 후, 해당 데몬에 연결을 넘겨줌. 이때 연결에 대한 로그도 실시할 수 있음.
데이터베이스의 접근제어
- 오라클은 $ORACLE_HOME/network/admin/sqlnet.ora 파일에서 IP에 기반한 접근 제어를 설정함
- 200.200.200.100과 200.200.200.200의 두 IP 접근을 허용하고, 200.200.200.150의 접근을 차단하려고 할 때는 다음과 같이 내용을 추가함
tcp.invited_nodes=(200.200.200.100, 200.200.200.200)
tcp.excluded_nodes=(200.200.200.150)
- MS-SQL은 운영체제처럼 IP에 대한 접근 제어를 기본으로 제공하지 않음
네트워크 장비의 접근 제어
- 네트워크 장비도 IP에 대한 접근 제어가 가능함
- 관리 인터페이스의 접근 제어와 ACL(Access Control List)을 통한 네트워크 트래픽의 접근 제어를 생각할 수 있음
- 네트워크 장비의 관리 인터페이스에 대한 접근 제어는 유닉스의 접근 제어와 거의 같음
- ACL을 통한 네트워크 트래픽에 대한 접근 제어는 방화벽에서의 접근 제어와 기본적으로 같음.
권한 관리
윈도우의 권한 관리
- 윈도우 NT 4.0 이후부터는 NFTS(New Technology File System)를 기본 파일 시스템으로 사용함
1. 모든 권한 : 디렉토리에 대한 접근 권한과 소유권을 변경할 수 있으며, 하위에 있는 디렉토리와 파일을 삭제할 수 있음
2. 수정 : 디렉토리를 삭제할 수 있음. 읽기 및 실행과 쓰기 권한이 주어진 것과 같음
3. 읽기 및 실행 : 읽기를 수행할 수 있으며, 디렉토리나 파일을 옮길 수 있음.
4. 디렉토리 내용 보기 : 디렉토리 내의 파일이나 디렉토리의 이름을 볼 수 있음
5. 읽기 : 디렉토리의 내용을 읽기만 할 수 있음
6. 쓰기 : 해당 디렉토리에 하위 디렉토리와 파일을 생성할 수 있으며, 소유권이나 접근 권한의 설정 내용을 확인할 수 있음
- 윈도우의 특정 권한으로는 좀 더 세부적인 쓰기, 읽기 등이 있음
원도우에서 디렉토리 및 파일에 대해 설정되는 접근 권한의 규칙
규칙 1 : NTFS 접근 권한은 누적
규칙 2 : 파일에 대한 접근 권한이 디렉토리에 대한 접근 권한보다 우선함
규칙 3 : '허용'보다 '거부'가 우선
- 파일 및 디렉토리에 대한 권한을 cacls 명령어로도 확인할 수 있음
>>> cacls 파일 혹인 디렉토리
유닉스의 권한 관리
- 파일 및 디렉토리에 대한 권한 설정 방법이 같음
- ls -al 명령으로 해당 디렉토리의 내용을 확인할 수 있음
>>> ls -al
1. 파일의 종류와 권한. 다음의 네 부분으로 다시 나눌 수 있음
a. 파일 및 디렉토리의 종류. - 표시는 일반 파일을, d 표시는 디렉토리를 나타냄
b. 파일 및 디렉토리 소유자의 권한
c. 파일 및 디렉토리 그룹의 권한
d. 해당 파일 및 디렉토리의 소유자도 그룹도 아닌 제 3의 사용자에 대한 권한
- 읽기(r:read), 쓰기(w:wrtite), 실행(x:execute)의 권한을 부여
- 권한은 숫자로 표기할 수도 있음. 읽기는 4, 쓰기는 2, 실행은 1로 바꿔서 환산
ex) rw-r--r-- = 42-4--4-- (644)
2. 파일에 대한 소유자
3. 파일에 대한 그룹. 유닉스에서 dba 그룹에 속한 계정은 /etc/group 에서 dba의 그룹 번호로 확인
데이터베이스의 권한 관리
질의문에 대한 권한 관리
DDL(Data Define Language)
: 데이터 구조를 정의하는 질의문
데이터베이스를 처음 생성하고 개발할 때 주로 사용하고, 운영 중에는 거의 사용하지 않음
- create : 데이터베이스 객체를 생성
- drop : 데이터베이스 객체를 삭제
- alter : 존재하는 기존 데이터베이스 객체를 다시 정의
DML(Data Manipulation Language)
: 데이터베이스의 운영 및 상요과 관련하여 가장 많이 사용하는 질의문.
데이터의 검색과 수정 등을 처리
- select : 테이블이나 뷰의 내용을 읽고 선택함
- insert : 데이터베이스 객체에 데이터를 입력함
- update : 데이터베이스 객체에 있는 데이터를 수정함
- delete : 데이터베이스 객체에 있는 데이터를 삭제함
DCL(Data Control Language)
: 권한 관리를 위한 질의문
- grant : 데이터베이스 객체에 권한을 부여함
- deny : 사용자에게 해당 권한을 금지함
- revoke : 이미 부여된 데이터베이스 객체의 권한을 취소함
- 권한 부여는 일반적으로 다음과 같은 구조로 적용됨
MS SQL에서 권한 관리
- 데이터베이스 테이블에 대한 권한 변경 시, 계정 또는 그룹의 권한 항목만 체크하면 됨.
ex) 내가 A에게 Select에 대한 With Grant 옵션 부여
A가 나의 허락을 받지 않고도 C나 F 등 다른 사람에게 Select 권한을 부여할 권한을 갖게 해줌(일종의 권한 위임)
오라클(Oracle 11g)에서 권한 관리
- 권한 부여와 제거 명령어 형식
## 권한 부여
SQL > grant [권한] on [테이블 이름] to [사용자가 ROLE];
SQL > grant select on member to wishfree;
## 권한 제거
SQL > revoke [권한] on [테이블 이름] from [사용자가 ROLE];
SQL > revoke select on member from wishfree;
- 권한 부여 내역 확인
SQL > select * from user_tab_privs where grantee in ('WISHFREE');
SQL > select * from user_tab_privs
뷰
: 각 사용자에 대해 참조 테이블의 각 열에 대한 권한을 설정하는 것이 아주 번거롭고 관리가 어려워서 만든 가상의 테이블
'정보보호 > 정보보호학 개론 (2013, 백석대 이근호 교수님)' 카테고리의 다른 글
10-2. 보안 시스템 : 침입차단 시스템 및 VPN과 출입 통제 (0) | 2024.08.15 |
---|---|
10-1. 보안 시스템 : 인증 시스템 및 방화벽과 침입 탐지 시스템 (0) | 2024.08.13 |
9-1. 시스템 보안 : 계정과 패스워드 세션 관리 (0) | 2024.08.13 |
8-3. 전자화폐, 워터마크, 암호화 통신 (0) | 2024.08.12 |
8-2. 전자서명, 전자봉투, 신용카드 (0) | 2024.08.12 |
댓글