본문 바로가기

IT 살이/03. 관리 - 보안 관리

[연재] 5. 보안 설정 편집

5. 보안 설정 편집

이제 개념적인 내용을 알았으니 PC의 보안 설정을 편집하는 방법을 알아보자.이곳에서는 어셈블리가 실행될 컴퓨터에 코드 그룹을 생성하고 그룹에 권한을 매핑하는 작업을 권한 관리 툴을 이용하는 방법을 보여준다. 툴을 사용해서 편집한 보안 내용은 .config 파일에 저장될 것이고 어셈블리가 로딩될 때 정책 평가기에 의해서 해석되어서 어셈블리에 설정된 권한을 부여할 것이다.
앞에서 이미 개념은 알았으니 툴의 사용 화면 캡쳐와 간단한 설명으로 쉽게 넘어갈 수 있으리라 본다. 엔터프라이즈, 컴퓨터, 사용자, 응용 프로그램 레벨별로 보안 설정이 가능하나 여기서는 주로 사용되는 컴퓨터 레벨의 보안 정책을 구성해보겠다. 다른 레벨의 정책도 동일하게 방법으로 구성될 수 있다. 순서는 간단하다. 다음 순으로 진행된다.
코드 그룹 생성
멤버 조건( 증거에 대한 조건) 입력
코드 그룹에 권한 집합 매핑
관리도구-> Microsoft .NET Framework 2.0 구성 메뉴를 통해서 .NET 설정 관리 툴을 실행시키자.
 

.NET 설정관리 툴 시작 화면

.NET 설정 관리 툴을 시작해서 런타임 보안 정책->컴퓨터->코드 그룹->All_Code를 선택한 화면이다. 기본적으로 생성되어 있는 코드 그룹이 있다.

■ 코드 그룹 생성
All_Code(오른쪽 클릭)->새로만들기…를 선택하면 다음 창이 뜬다.

 

코드 그룹 생성


적절한 코드 그룹 이름을 넣고 다음을 클릭한다. 달봉이는 "SampleGroup"라는 이름의 그룹을 생성할 것이다

■ 멤버 조건 입력
다음은 멤버 조건을 입력하는 화면이다. 멤버 조건이란 코드 그룹("SampleGroup")으로 분류되기 위한 증거들의 조건을 말한다.
 

멤버 조건 입력 #1

멤버 조건 입력화면이 뜨면 기본적으로 [All Code]조건이 선택되어 있다. 목록을 출력해보면 기본 증거에 해당하는 8가지 조건이 모두 출력된다.

 

멤버 조건 입력 #2


목록에서 특정 조건을 선택하면 조건에 따라 적절한 값을 입력할 수 있는 입력화면이 아래 공간에 출력된다.

멤버 조건 입력 #3

그림에서는 URL 조건 형식을 선택한 경우에 출력된 입력 화면을 보여주고 있다. 입력란에 달봉이는 "http://dalbong2.net/*"라고 입력했다. 즉 어셈블리의 CODEBASE URL값이 "http://dalbong2.net/"로 시작하는 모든 어셈블리에 권한을 적용하겠다는 의미다.
다른 조건 형식을 선택해보면 조건 형식에 따라 적절한 값을 입력할 수 있는 화면이 나타난다.  

멤버 조건 입력 #4


강력한 이름을 선택하면 공개키를 필수적으로 입력하고, 선택적으로 어셈블리 이름과 버전을 입력할 수 있는 화면이 출력된다. 가져오기 버튼을 클릭해서 해당 어셈블리를 선택하면 공개키와 이름, 버전을 자동으로 입력해준다. 공개키는 "sn.exe -Tp 어셈블리파일"을 통해서도 구할 수 있다. 이름과 버전의 체크박스를 선택하지 않으면 이름과 버전은 조건값에서 생략된다.

■ 권한 집합 할당

권한 집합 선택
멤버 조건을 입력한 후 다음을 선택하면 그림처럼 코드 그룹에 권한 집합을 매핑할 수 있는 화면이 출력된다. 기본적으로 정의되어 있는 권한 집합을 선택할 수도 있고, 새 권한 집합을 만들겠다고 선택할 수도 있다. 기존 권한 집합을 선택하겠다면 다음을 클릭해서 바로 작업을 마칠 수 있다.
직접 권한 그룹을 생성하는 것도 어렵지는 않다. 관리툴->런타임 보안 정책->컴퓨터->권한 집합(오른쪽 클릭)->새로 만들기… 를 통해서 가능하다. 권한 그룹을 직접 생성하는 것은 다음 예제에서 보겠다.
지금까지 코드 그룹을 생성하고 멤버 조건을 입력하고 권한 집합을 매핑하는 것까지 해서 컴퓨터 레벨의 새로운 보안 정책을 마련했다. 관리자가 보안 설정을 끝내고 저장을 하면 결과는 .config 파일에 XML로 저장될 것이다. 이제 어셈블리가 로딩되면, 권한 풀이기는 어셈블리가 제시할 수 있는 증거들을 근거로 해서 어셈블리가 어느 코드 그룹에 속하는가를 정책 파일을 해석해서 확인한다. 그리고 그 그룹에 부연된 권한을 어셈블리에 부여한다.