본문/내용
프로그램의 무결성 보안에 대하여
1. 들어가며
프로그램의 무결성을 위협하는 요소들로 인한 컴퓨터 사고가 빈번해 지고 있다. 가장 대표적인 것이 트로이 목마인데, 이는 트로이 목마를 프로그램내에 설치하여, 시스템에 피해를 입히는 것이다. 만약 부정한 목적으로 프로그래머가 트로이 목마가 설치된 인적정보활용 프로그램을 작성한다면, 그 피해는 엄청날 것이다. 이러한 프로그램의 무결성 보안을 위한 대응책이 폭넓게 연구되고 있다. 유닉스 시스템의 사용자 모드(user/group/other)는 프로그램이 불법으로 변경이나 삭제를 방지하기 위한 제어방식이다. 이런 제어방식은 장점도 있지만 프로그래머에 입장에서는 적절한 방지책이 아니다.
다음에서는 프로그램 무결성을 보호하기 위한 방법으로 액세스 제어를 통한 무결성 보호 방법과 개발된 프로그램의 전달 및 유지보수 과정에서의 보호방법을 설명한다.
2. 임의적 액세스 제어의 문제점
대부분의 컴퓨터 시스템에서 개발중인 프로그램에 대한 사용자의 액세스는 임의적 액세스 제어에 의해 통제된다. 사용자는 일반적으로 객체에 시스템 프로그램이나 개발도구를 이용하여 액세스한다. 프로그램의 무결성을 보장하기 위해 프로그램 객체를 수정할 수 있는 도구는 정확성이 보장되어야 한다. 또한 소스코드 개발자 소유의 데이터들을 변경할 수도 있다. 임의적 액세스 제어에서는 소스코드 개발자에 의해 프로그램에 대한 액세스 권한 부여가 가능하므로 이러한 취약성이 발생할 수 있다.
임의적 액세스 제어가 프로그램 개발자에게 많은 융통성을 제공해주지만 프로그램 객체의 무결성 측면에서는 잠정적인 위협이 될 수 있다. 소스 코드를 복제한 프로그램의 실행은 예측할 수 없는 영향을 초래할 수 있다. 유닉스 환경에서는 위조…
3. 강제적 액세스 제어에 의한 무결성 보호
프로그램의 일관성을 유지하고 무결성을 보호하는 방법은 아래와 같다.
4. 무결성 보호를 위한 4 단계
① 전달
② 검증
③ 설치
④ 회수
것이다. 전달 단계에서 사용자에게 전달된 프로그램은 여전히 신뢰할 수 없다. 따라서 프로그램을 설치하기 전에 사용자는 프로그램 무결성 검증을 먼저 실시해야 한다.
② 검증
검증은 사용자가 프로그램이 신뢰할 수 없는 형태로 개발되었는지를 확인하는 활동이다. 이러한 검증을 위해 사용자는 프로그램의 설계서, 소스코드, 시험 결과 등을 분석하여 인가되지 않은 액세스 경로나 요구하지 않은 기능의 유무를 검증하여야 한다. 정확한 검증 활동을 위해 프로그램 분석 도구를 사용하여야 한다. 정확한 검증 활동 결과 신뢰성이 보장되지 않은 프로그램은 다시 개발자에게 반환되어야 한다.
③ 설치
설치 단계는 신뢰할 수 있는 프로그램을 물리적으로 안전한 시스템에 설치하는 것이다. 설치 활동단계에서는 형상관리가 함께 수행되어야 한다.
④ 회수
회수는 신뢰할 수 없는 프로그램을 관리자로부터 개발자에게 물리적으로 전달하는 활동이다. 프로그램이 일단 개발자에게 전달되면 더 이상 신뢰할 수 없다. 회수된 프로그램은 다시 전달, 검증, 설치 과정을 거쳐 신뢰할 수 있는 프로그램이 될 수 있다.