Windows 계열의 운영체제는 다중 사용자 기능 등 여러 가지 편리한 기능을 제공하지만 이는 보안이라는 측면에서는 그리 좋은 기능들만은 아니다. 그래서 MS는 Windows NT/2000/XP에서 FAT뿐만 아니라 NTFS라는 것을 사용하여 기존의 Windows 9X에서 구현하기 어려웠던 사용자 권한 설정/암호화 등 여러 가지 보안요소를 구현하고 있다.
그러나 일반 사용자들은 응용프로그램이나 기타 다른 요소와의 호환성 때문에 대부분 FAT을 사용할 것이고 NTFS를 사용하더라도 NTFS에서 구현되는 보안기능을 제대로 사용하는 사용자는 많지 않을 것이다.
이번에는 NTFS에 대해 간단하게 알아보고 Windows 2000에 초점을 맞춰 NTFS에서 구현되는 보안의 일부인 관리자 입장에서 권한할당 시 생길 수 있는 보안상의 문제점과 해결방안에 대해 알아보도록 하자.
1. NTFS(New Technology File System)의 장점
- 디스크 공간의 효율적 사용 : 아래 표에서 보는 것과 같이 NTFS는 클러스터 크기가 더 작고 남은 클러스터 공간에 다른 파일을 저장할 수 있기 때문에 공간 효율성에서 FAT16/FAT32보다 좋다.
- NTFS 퍼미션 : NTFS는 파일, 폴더, 드라이브 그리고 사용자, 그룹단위로 권한을 설정할 수 있다.
- 파일 시스템의 암호화 : 윈도우 2000/XP에서 사용하는 파일에 대한 암호화 기법은 MS에서 운영체제 자체에 암호화 기법을 이식한 것이다. 이는 각각 독립적으로 파일에 암호를 설정하거나 폴더 전체에 암호를 설정할 수 있다.
최대논리볼륨지원 | 클러스터크기 | 디렉토리최대개수 | 파일과 폴더보안지원 | 파일 시스템 암호화 | 디스크 요량 할당 | 지원하는 OS | |
FAT16 | 2GB | 32KB | 512 | No | No | No | Windows 9X/NT4.0/2000/XP |
FAT32 | 2TB | 4KB | 무제한 | No | No | No | Windows 95osr2 /98/me/2000/XP |
NTFS | 16EB | 512 Bytes | 무제한 | Yes | Yes | Yes | Windows NT4.0/2000/XP |
▲ 파일 시스템 비교표
참고 : FAT32 사용자라면 아래 그림과 같이 하면 데이터를 살리면서 NTFS로 변경할 수 있다.
2. 권한부분에서 발생할 수 있는 문제점
Windows 2000을 NTFS로 사용할 때 c:(system root 폴더)에 대해 기본적으로 Everyone Group에 모든 권한(F/C)이 설정되어 있는데, 설정이 복잡하다는 이유로 그대로 사용하는 경우가 많을 것이다.
특히 다중 사용자 환경이나 네트워크 환경이라면 권한문제는 민감한 보안문제 중 하나로, 만약 사용자들 중에 악의적인 사용자가 있다면 %systemroot% 나 중요한 문서가 저장되어 있는 폴더에 액세스하여 삭제/변조가 가능할 뿐만 아니라 시스템의 중요한 부분인 레지스트리나 보안설정사항을 임의로 변경하여 시스템 손상 등, 보안상 많은 문제가 발생할 수 있다.
▲ Windows 2000의 기본 권한
또한 가장 큰 위험성은 악의적인 사용자에 의해 아래 시나리오에 설명되어 있는 공격이 가해질 수도 있다는 것이다.
공격자는 동일한 시스템의 다른 사용자들을 공격하기 위해 시스템에서 공동으로 사용되는 프로그램의 파일명으로 위장한 파일을 시스템 루트에 생성한다. 그렇게 함으로써 다른 사용자가 로그 온하면 트로이 목마를 실행하도록 한다거나, 레지스트리 변경을 통해 로그 온한 사용자가 어떤 프로그램을 실행하는 지와 상관 없이 트로이 목마가 실행되게 할 수 있다.
다른 공격 시나리오를 살펴보자. 공격자가 시스템의 특정 프로그램이 사용자가 시스템에 로그 온할 때 로그 온 스크립트에 의해 실행된다는 것을 알았을 경우, 공격자는 로그 온 스크립트에 의해 실행되어지는 프로그램과 동일한 파일명을 가진 트로이 목마 프로그램을 생성한 후 다음에 누군가가 시스템에 로그 온 할 때 로그 온 스크립트에 의해 트로이 목마가 실행되도록 할 수 있다.
얼마 전 MS에서도 Windows 2000의 권한문제와 관련된 보안권고문을 발표한 적이 있다. 아래 페이지를 참고하기 바란다.
▶ http://www.microsoft.com/technet/treeview/default.asp?url=/technet/ security/bulletin/MS02-064.asp
3. NTFS 퍼미션을 사용하라.
NTFS 퍼미션은 운영체제의 파일, 폴더, 드라이브들의 접근에 대한 제어를 제공하고, 제 3자 업체 제공 유틸리티의 사용을 못하게 할 수도 있다. 다음과 같이 NTFS 퍼미션을 설정하면 관리하기가 편리하다.
(1) 권한할당하기
□ 사용자에게 권한을 허가하지 말고 그룹단위로 묶어 권한을 부여하라
사용자가 소수일 경우는 사용자 단위로 적절한 권한을 부여할 수 있겠지만 관리해야할 규모가 커진다면, 각각을 사용자 단위에서 관리하는 것은 매우 많은 중복 작업을 해야 하므로 관리적인 면에서 오버헤드가 발생한다.
사용자 또는 그룹에 관리 권한을 부여할 때는 관리자마다 설정 기준에 차이가 있지만 아래를 참고하면 권한을 설정할 때 도움이 될 것이다.
- Administrators : 모든 권한
- Authenticated Users 또는 Everyone : 읽기
- Creator Owner : 모든 권한
- system : 모든 권한
※ 참고사항
- 다중 사용자 환경에서 관리자 그룹이 아닌 일반 사용자로 시스템에 로그 온할 경우 재부팅하는 현상이 발생하는데 원인은 권한이 충분하지 않아서 발생하는 문제이다. 따라서 Authenticated Users 또는 Everyone에 읽기 및 실행/폴더 내용보기/읽기 등으로 설정해 줘야 한다.
- Creator Owner가 추가된 경우 사용자는 My Documents(내 문서)폴더에 생성한 폴더 및 파일에 대해서는 모든 권한을 갖게 되지만 %systemroot%나 다른 폴더에는 기존의 권한설정을 따르게 된다. 만약 폴더나 파일을 생성할 경우는 아래 그림과 같은 메시지가 출력된다.
- Windows XP는 권한 설정을 하기 위해서는 [내 컴퓨터 - 도구메뉴 - 폴더 옵션]을 선택한 다음 보기 탭으로 이동하여 "모든 사용자에게 동일한 폴더 공유 권한을 지정(권장)"에 체크 표시를 해제한다.
□ 상속 기능을 이용하라
기본값으로 파일과 폴더는 그 상위 디렉토리의 권한을 상속받는다. 예를 들어서 사용자들에게 c:\를 읽기 권한으로 설정해 놓는다면, 그 하위 디렉토리는 전부 퍼미션이 읽기 권한으로 상속되게 된다. 참고사항으로 특정파일이나 디렉토리에 대한 퍼미션을 미리 설정해 놓았을 경우에는 앞의 경우에서 처럼 읽기 권한으로 상속되지 않는다.
NTFS 퍼미션은 권한과 세부 퍼미션 권리들의 조합으로 이루어진다. NTFS 퍼미션은 대부분의 보안 목적과 그 상황에 부합하기 때문에, 널리 사용되고 있다. 추가적으로, NTFS 퍼미션이 사용은 각 파일, 폴더, 혹은 드라이브에 대한 세부 퍼미션을 수정하는 일을 좀 더 줄여준다. 아래 표는 NTFS의 퍼미션을 나타내고 있고, 그 각각은 세부 퍼미션의 조합으로 구성되어 있다.
NTFS 퍼미션 | 세부퍼미션 조합 | 적용대상 |
읽기 | 폴더리스트/데이터 읽기 | 파일, 폴더, 드라이브 |
읽기 속성 | ||
읽기 확장 속성 | ||
읽기 퍼미션 | ||
동기화 | ||
쓰기 | 파일 생성/데이터 쓰기 | 파일, 폴더, 드라이브 |
폴더 생성/데이터 추가 | ||
쓰기 속성 | ||
쓰기 속성 확장 | ||
읽기 퍼미션 | ||
동기화 | ||
읽기와 실행 | 읽기 퍼미션과 동일 | 파일, 폴더, 드라이브 |
추가점 : 폴더 이동/파일 실행 | ||
폴더 컨텐츠에 대한 리스트 보이기 | 읽기/실행 퍼미션과 동일 | 폴더, 드라이브 |
변경 | 읽기/실행 퍼미션과 동일 | 파일, 폴더, 드라이브 |
실행 퍼미션에 추가 사항 | ||
파일 생성/데이터 쓰기 | ||
폴더 생성/데이터 추가 | ||
삭제 | ||
쓰기 속성 | ||
쓰기 확장 속성 | ||
모든 기능 | 삭제 퍼미션과 동일 | 파일, 폴더, 드라이브 |
추가점 : 파일, 서브폴더 삭제 | ||
변경퍼미션/오너쉽 가져오기 |
세부 퍼미션의 수정방법은 다음과 같은 과정을 수행해야한다.
②등록정보 대화상자에서 보안탭을 선택한다
③고급 버튼 클릭한다.
④접근 제어 설정 대화상자에서 수정하고 싶은 사항에 대한 퍼미션을 선택하고, 보기/편집버튼을 클릭한다. Windows 2000은 다음과 같은 퍼미션 대화상자를 보여준다.
▲ Windows 2000 세부 퍼미션 사항
(2) 감사정책을 설정하라
감사는 잠재적인 보안 문제를 막지는 못한다. 그러나 로그 파일 등을 통해 수집된 정보들은 어떤 일이 일어났는지를 알 수 있게 한다. 감사는 시스템에 대한 보안을 관리한다는 점에서 아주 중요한 것 중의 하나이다.
그 이유는 감사를 통해서 이전에 어떤 일이 발생했는지를 알 수 있고, 그로 인해 어떤 방법을 통해 해킹이 시도되었는지, 또는 해킹이 되었다면 어디에서 해킹을 하였는지 등을 찾아내는 정보를 제공한다. 윈도우 2000 시스템에서는 인증과 위임에 추가적으로 시스템 관리자가 이벤트를 감시하고, 제한할 수 있는 툴들을 제공한다.
각 로그는 물리적으로 존재하는 데이터를 저장한 파일이다. 기본적으로 모든 로그 파일들은 %systemroot%system32\config 디렉토리에 위치하게 된다.
1) 감사정책 설정
[제어판 - 관리도구 - 로컬 보안 정책]에서 설정한다.
이벤트 범주 | 성공 | 실패 |
개체 액세스 감사 | ○ | ○ |
계정 관리 감사 | ○ | ○ |
계정 로그온 이벤트 감사 | ○ | ○ |
권한 사용 감사 | ○ | |
디렉터리 서비스 액세스 감사(DC에만) | ○ | |
로그온 이벤트 감사 | ○ | ○ |
시스템 이벤트 감사 | ○ | ○ |
정책 변경 감사 | ○ | ○ |
프로세스 추적 감사 |
2) 자원 감사
자원 접근 감사를 사용하기 위해 자원 에 대해서 SACL(System Access Control List)을 설정해야 한다. SACL은 파일, 프린터, 디렉토리 등 자원의 감사 등록정보에서 그 사항에 관해 설정할 수 있다. 자원을 선택하고, 오른쪽 버튼을 누른 후, [등록정보 - 보안 - 고급 - 감사]를 선택하면 된다. 아래 그림은 파일이나 폴더의 감사 등록정보에 설정하는 것을 나타낸다.
▲ 감사 등록 정보에 대한 세부 사항
3) 이벤트 뷰어로 관리하기
이벤트 뷰어는 이벤트 로깅 서비스와 통신해서 수집된 로그 데이터를 보여준다. 그것은 로컬 컴퓨터에서 로그 정보를 볼 수 있거나, 원격에서 네트워크를 통해 로그인 한 후 로그를 볼 수 있다. 이것은 몇 가지 장점을 가진다. 그것이 의미하는 바는 로그 정보를 모으기 위해 각각의 컴퓨터에 일일이 찾아가서 로그인하여 그 로그 정보를 볼 필요가 없고, 한 컴퓨터 앞에 앉아서 다른 컴퓨터로 접속하여 그 로그 정보를 읽어올 수 있다는 것을 의미한다.
[제어판 - 관리도구 - 이벤트 뷰어]를 사용할 수 있다.
로그 | DC | 파일과 프린터 서버 | DB서버 | 웹 서버 | RAS서버 | 워크스테이션 | 보유 기간 |
보안로그 | 5∼10MB | 2∼4MB | 2∼4MB | 2∼4MB | 5∼10MB | 1MB | 최소 21일 이후에 덮어쓰기 |
시스템 로그 | 1∼2MB | 1∼2MB | 1∼2MB | 1∼2MB | 1∼2MB | 1MB | 최소 15일 이후에 덮어쓰기 |
응용프로그램 로그 | 1∼2MB | 1∼2MB | 1∼2MB | 1∼2MB | 1∼2MB | 1MB | 필요에 따라 덮어쓰기 |
▲ 로그 파일 크기 설정(각 로그의 등록정보에서 설정할 수 있다.)
▲ 보안 로그 이벤트 등록 정보
출처 : [기타] http://kr.ahnlab.com/ 보안정보