Notice
Recent Posts
Recent Comments
Today
Total
04-28 00:03
Archives
관리 메뉴

Jeongchul Kim

04 접근 제어와 권한 관리 본문

정보 보호

04 접근 제어와 권한 관리

김 정출 2016. 1. 26. 16:23

04 접근 제어와 권한 관리

시스템에 허가받지 않은 사용자의 접근이 발견되었습니다.

외부의 침입으로부터 시스템 자원을 보호하기 위해서는 데이터 저장 장치에 허가받지 않은 자의 접근을 제어하는 접근 제어가 필요합니다.

그렇다면 접근할 수 있는 사용자 권한과 규칙의 설정은 어떻게 할까요? 바로 권한 관리를 통해서 설정합니다. 윈도우, 유닉스,데이터베이스 등 시스템마다 권한 관리 방법은 다릅니다.



접근 제어

1. 접근 제어의 요소

접근 제어

접근 제어는 시스템에서 사용할 수 있는 기능이나 정보의 범위를 제한하는 것입니다. 접근 제어는  컴퓨터의 발전으로 인해 물리적 형태의 정보들이 컴퓨터에서 활용 가능한 디지털 데이터 형태로 변경되면서 등장하게 되었는데요. 개인이나 조직의 민감한 정보들이 권한이 없는 사용자로 인해 외부에 노출되거나 변조, 파괴될 위험성이 증가하게 되었습니다. 그로 인해 사용자 권한에 맞는 정보만 접근 하도록 하는 접근 제어가 필요하게 되었습니다.

접근 제어의 요소로는 주체, 객체, 접근 이렇게 3가지가 있습니다.

주체는 사용자 혹은 프로세스를 의미합니다. 객체는 파일, 데이터베이스, 프로그램을 의미합니다.  파일에는 레코드, 필드가 있으며, 데이터베이스의 종류로는 테이블, 뷰 등이 있습니다. 접근은 주체가 객체를 사용하는 것입니다. 읽기, 쓰기, 변경, 삭제, 실행 등이 있습니다.



2. 운영체제의 접근 제어

운영체제에는 다양한 서비스들이 동작하고 있습니다. 따라서 운영체제에 대한 접근 제어를 위해서는 이러한 관리적 인터페이스를 파악하고 불필요한 인터페이스를 제거하고 접근 제어를 수행할 부분을 최소화시켜 효율적인 보안 정책을 적용시킬 수 있습니다.

유닉스와 윈도우에서 운영되는 대표적인 서비스는 다음 표와 같습니다.


다음은 운영체제에서 운영 중인 서비스 중 Inetd 데몬과 TCPWrapper에 대해 알아보겠습니다. 먼저 Inetd 데몬에 대해 알아볼 텐데요. Inetd은 클라이언트로부터 Inetd이 관리하고 있는 telnet이나 SSH, FTP 등에 대한 연결 요청을 받은 후 해당 데몬을 활성화시켜 실제서비스를 제공합니다. 그리고 데몬과 클라이언트의 요청을 연결하는 역할을 수행합니다.  서비스가 활성화 되면 클라이언트 해당 서비스에 대한 정당한 권한이 있는지 확인하는 로그인 과정을 거치게 됩니다.

앞서 살펴본 Inetd만 동작하는 경우에는 서버에 접근 하는 클라이언트에 대한 접근 제어 기록을 수행하지 않습니다. 그러나 TCPwrapper가 설치되면 Inetd은 클라이언트의 연결을 TCPWrapper의 Tcpd데몬에게 전달합니다. Tcpd 데몬은 접속을 요구한 클라이언트에 적절한 접근 권한이 있는지 확인하는 작업을 수행하며, 이때  클라이언트가 해당 데몬에 대한 권한을 가지고 있는 경우 클라이언트와 해당 데몬의 연결을 수행합니다. 이처럼 TCPWrappeR 가 설치된 경우에는 Inetd만 동작하는 경우에 비해 좀 더 효율적인 접근 제어가 가능합니다.



3. 데이터베이스의 접근 제어

데이터베이스 또한 클라이언트의 접근에 대한 제어가 가능합니다. 오라클의 경우 IP에 기반한 접근 제어 설정이 가능합니다.

220.68.64.100과 220.68.64.200라는 두 IP의 접근을 허용할 경우 invited_nodes에 해당 IP를 추가하며 220.68.64.150의 접근을 차단할 경우 excluded_nodes에 IP를 추가합니다. MS-SQL은 IP를 통한 접근 제어 기능을 제공하지 않고 있습니다.



4. 네트워크 장비의 접근 제어

네트워크 장비들도 IP를 이용한 접근 제어가 가능합니다. 네트워크 장에서 수행하는 IP에 대한 접근 제어로는 관리 인터페이스의 접근 제어와 ACL을 통한 네트워크 트래픽의 접근 제어가 있습니다. 네트워크 장비의 관리 인터페이스에 대한 접근 제어는 유닉스의 접근 제어와 거의 유사합니다. ACL을 통한 네트워크 트래픽에 대한 접근 제어는 방화벽 에서의 제어와 기본적으로 동일합니다.


권한 관리

1. 윈도우의 권한 관리

권한 관리

윈도우의 권한 관리는 윈도우NT 4.0이후부터 새롭게 변경된 NTFS 파일 시스템을 사용합니다. 이 시스템에서는 보안 설정에 사용자별로 사용 권한을 제한할 수 있습니다. 제한 가능한 항목으로는 모든 권한, 수정, 읽기 및 실행, 디렉터리 내용 보기, 읽기, 쓰기, 특정 권한 및 설정  항목이 있습니다. 항목을 하나씩 살펴보면 모든 권한은 디렉터리에 대한 접근 권한과 소유권을 변경할 수 있으며, 하위에 있는 디렉터리와 파일을 삭제할 수 있습니다. 수정은 디렉터리를 삭제할 수 있습니다. 읽기 및 실행과 쓰기 권한이 주어진 것과 같습니다. 읽기 및 실행은 읽기를 수행할 수 있으며, 디렉터리나 파일을 옮길 수 있습니다. 디렉터리 내용 보기는 디렉터리 내의 파일이나 디렉터리의 이름을 볼 수 있습니다. 읽기는 디렉터리의 내용을 읽기만 할 수 있습니다. 쓰기는 해당 디렉터리에 하위 디렉터리와 파일을 생성할 수 있으며, 소유권이나 접근 권한의 설정 내용을 확인할 수 있습니다.


파일의 속성 창에서 보안 탭, 고급 버튼을 누른 경우 화면과 같은 창이 나타납니다. 윈도우의 특정 권한으로는 좀 더 세부적인 쓰기, 읽기 권한 관리가 가능하다는 것입니다.


윈도우에서 디렉터리 및 파일에 대해 설정되는 접근 권한 규칙은 3가지가 있습니다. 첫째, STFS 접근 권한은 누적됩니다. 둘째, 파일에 대한 접근 권한이 디렉터리에 대한 접근 권한보다 우선합니다. 셋째, 허용보다 거부가 우선시 됩니다.  

윈도우에서는 파일 및 디렉터리에 대한 권한을 확인하기 위한 방법으로 파일의 액세스 제어 목록을 확인할 수 있는 cacls 명령어를 통해서도 확인 가능합니다.


2. 유닉스의 권한 관리

유닉스는 파일 및 디렉터리에 대한 권한 설정 방법이 모두 동일합니다. ls 명령어에 al 옵션을 추가하여 파일 및 디렉터리에 설정된 권한을 확인할 수 있습니다.


ls – al 를 통해 파일에 권한을 조회하면 다음과 같은 내용을 확인할 수 있습니다. 여기는 파일의 종류와 권한을 나타냅니다. 이 부분은 다시 4부분으로 구분이 되는데요. 먼저 화면에 강조된 표시는 파일과 디렉터리를 구분하기 위한 기호 입니다. 파일 및 디렉터리에 설정된 권한은 소유자, 그룹, 그 외 사용자로 나누어 설정되어 있습니다. 권한은 3자리 영문자를 이용하여 표시하고 있습니다.  여기서 사용되는 영문자인 r은 읽기, w는 쓰기, x는 실행 권한을 뜻하며, 유닉스 시스템의 종류에 따라 숫자로 표시되는 경우도 있습니다.

읽기는 4, 쓰기는 2, 실행은 1로 바꾸어 환산됩니다. 여기는 파일에 대한 소유자를 나타냅니다. 여기는 파일에 대한 그룹을 나타냅니다.

유닉스에서 dba그룹에 속한 계정은 /etc/group에서 dba의 그룹번호로 확인합니다.



3. 데이터베이스의 권한 관리

데이터베이스의 권한 관리에서는 질의문에 대한 권한 관리가 중요한데요. 접속한 계정에 할당된 권한 이외의 질의문을 수행시킬 경우 데이터의 무결성을 해칠 수 있습니다. 질의문의 종류로는 DDL, DML, DCL이 있습니다.


먼저 DDL은 데이터 구조를 정의하는 질의문으로 데이터베이스를 처음 생성하고 개발할 때 주로 사용합니다. 관련 명령어로는 CREATE, DROP, ALTER이 있으며, CREATE는 데이터베이스 객체를 생성, DROP은 데이터베이스 객체를 삭제, ALTER는 존재하는 기존 데이터베이스 객체를 다시 정의하는 명령어입니다

.

DML은 데이터베이스의 운영 및 사용과 관련해 가장 많이 사용하는 질의문입니다. 데이터의 검색과 수정 등을 처리합니다. 관련 명령어로는 SELECT, INSERT, Update, Delete가 있습니다. 하나씩 살펴보면 SELECT는 사용자가 테이블이나 뷰의 내용을 읽고 선택, INSERT는 데이터베이스 객체에 데이터를 입력, Update는 기존 데이터베이스 객체에 있는 데이터를 수정, Delete는 데이터베이스 객체에 있는 데이터를 삭제하는 명령어입니다.


DCL은 권한 관리를 위한 질의문입니다. 관련 명령어로는 GRANT, DENY, REVOKE가 있습니다.

GRANT는 데이터베이스 객체에 권한을 부여하고, DENY는 사용자에게 해당 권한을 금지하며, REVOKE는 이미 부여된 데이터베이스 객체의 권한을 취소하는 명령어 입니다.


MS-SQL에서 권한 관리입니다. 데이터베이스 테이블에 대한 권한 변경 시 계정 또는 그룹의 권한 항목만 체크합니다. With Grant는 내가 A에게 Select에 대한 With Grant 옵션을 부여하고, A가 내 허락을 받지 않고도 C나 F와 같은 다른 사람에게 Select 권한을 부여할 권한을 갖게 해주는 것입니다.

오라클에서 권한 관리는 권한 부여와 제거 명령어 형식과 권한이 부여된 내역 확인하는 방식이 있습니다. 권한 부여를 위해서 grant 명령어를 사용하게 되는데, 부여할 권한의 종류와 어떤 사용자 혹은 규칙을 적용할 것인지 지정해 줄 수 있습니다. 권한 제거를 위해서는 revoke 명령어를 사용합니다.

권한 확인을 위해서는 selec 명령어를 활용할 수 있습니다. User_tab_privs에서 값과 사용자 이름을 비교하여, 해당 테이블에 권한이 부여된 사용자들을 확인할 수 있습니다.





'정보 보호' 카테고리의 다른 글

06 윈도우 보안  (0) 2016.01.26
05 로그와 취약점 관리  (0) 2016.01.26
03 계정과 패스워드, 세션 관리  (0) 2016.01.26
02 물리적 보안  (5) 2016.01.26
01 정보보호의 개요  (8) 2016.01.26
Comments