본문 바로가기
정보보호/정보보호학 개론 (2013, 백석대 이근호 교수님)

9-2. 시스템 보안 : 접근 제어와 권한 관리

by 규글 2024. 8. 13.

목표

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

 

: 각 사용자에 대해 참조 테이블의 각 열에 대한 권한을 설정하는 것이 아주 번거롭고 관리가 어려워서 만든 가상의 테이블

 

댓글