소프트웨어에 권한이 지정되거나 소프트웨어를 대체 사용자 ID 또는 그룹 ID로 실행하면 신뢰할 수 있는 소프트웨어가 됩니다. 신뢰할 수 있는 소프트웨어는 Trusted Extensions 보안 정책을 무시할 수 있습니다. 소프트웨어를 신뢰할 만하지 않은 경우에도 신뢰할 수 있는 소프트웨어로 지정할 수 있습니다. 보안 관리자는 세부 조사를 통해 소프트웨어에서 신뢰할 수 있는 방법으로 권한을 사용한다는 사실이 확인될 때까지 기다렸다가 소프트웨어에 권한을 부여해야 합니다.
프로그램은 신뢰할 수 있는 시스템에서 세 가지 범주로 분류됩니다.
보안 속성이 필요하지 않은 프로그램 – 일부 프로그램은 단일 레벨에서 실행되므로 권한이 필요하지 않습니다. 이러한 프로그램은 공용 디렉토리(예: /usr/local)에 설치할 수 있습니다. 액세스하려면 사용자 및 역할의 권한 프로파일에 있는 명령으로 프로그램을 지정합니다.
root로 실행되는 프로그램 – 일부 프로그램은 setuid 0으로 실행됩니다. 이러한 프로그램에는 권한 프로파일에서 유효 UID 0이 지정될 수 있습니다. 그러면 보안 관리자는 프로파일을 관리 역할에 지정합니다.
권한이 필요한 프로그램 - 일부 프로그램은 분명하지 않은 이유로 인해 권한이 필요할 수 있습니다. 프로그램에서 시스템 보안 정책을 위반할 것 같은 기능을 수행하고 있지 않더라도, 해당 프로그램이 보안을 위반하는 기능을 내부적으로 수행할 수 있습니다. 예를 들어, 프로그램에서 공유 로그 파일을 사용하거나 프로그램이 /dev/kmem에서 읽을 수 있습니다. 보안 문제에 대한 자세한 내용은 mem(7D) 매뉴얼 페이지를 참조하십시오.
내부 정책을 대체해도 응용 프로그램의 올바른 작동에 특별히 영향을 미치지 않는 경우도 있습니다. 오히려 내부 정책을 대체하면 사용자가 기능을 보다 편리하게 수행할 수 있습니다.
조직에서 소스 코드에 액세스할 수 있는 경우 응용 프로그램의 성능에 영향을 주지 않고 정책을 대체해야 하는 작업을 제거할 수 있는지 여부를 확인합니다.
프로그램 개발자가 소스 코드에서 권한 세트를 조작할 수 있더라도 보안 관리자가 프로그램에 필요한 권한을 지정하지 않은 경우에는 프로그램이 실패합니다. 따라서 신뢰할 수 있는 프로그램을 만들 때는 개발자와 보안 관리자가 상호 협력해야 합니다.
신뢰할 수 있는 프로그램을 작성하는 개발자는 다음을 수행해야 합니다.
프로그램에서 작업을 수행하는 데 권한이 필요한 경우를 파악합니다.
프로그램에서 권한을 안전하게 사용할 수 있도록 권한 분류 등과 같은 기술을 확인하여 따라야 합니다.
프로그램에 권한을 지정할 때 보안에 미치는 영향에 유의합니다. 프로그램이 보안 정책을 위반하지 않아야 합니다.
신뢰할 수 있는 디렉토리에서 프로그램에 연결되는 공유 라이브러리를 사용하여 프로그램을 컴파일합니다.
자세한 내용은 Developer’s Guide to Oracle Solaris 11 Security 를 참조하십시오. Trusted Extensions에 대한 코드 예제는 Trusted Extensions Developer’s Guide 를 참조하십시오.
보안 관리자는 새 소프트웨어를 테스트하고 평가해야 할 책임이 있습니다. 신뢰할 수 있는 소프트웨어인지 확인한 후 보안 관리자는 프로그램에 대한 권한 프로파일과 기타 보안 관련 속성을 구성합니다.
보안 관리자의 책임은 다음과 같습니다.
프로그래머와 프로그램 배포 프로세스가 신뢰할 수 있는지 확인합니다.
다음 중 한 가지 방법으로 프로그램에 필요한 권한을 확인합니다.
프로그래머에게 질문합니다.
소스 코드에서 프로그램에 사용할 권한을 검색합니다.
소스 코드에서 프로그램에서 사용자에게 요구하는 권한 부여를 검색합니다.
ppriv 명령에 대한 디버깅 옵션을 사용하여 권한 사용을 검색합니다. 예제는 ppriv(1) 매뉴얼 페이지를 참조하십시오. 또한 dtrace를 사용해서 권한 및 권한 부여 사용을 평가할 수 있습니다.
소스 코드를 조사하여 프로그램을 작동하는 데 필요한 권한과 관련하여 코드가 신뢰할 수 있는 방법으로 작동하는지 확인합니다.
프로그램에서 신뢰할 수 있는 방법으로 권한을 사용하지 못하는 경우 프로그램의 소스 코드를 수정할 수 있으면 코드를 수정합니다. 보안에 대해 잘 알고 있는 보안 컨설턴트 또는 개발자는 코드를 수정할 수 있습니다. 권한 분류, 권한 부여 확인 등을 수정할 수 있습니다.
권한은 수동으로 지정해야 합니다. 권한이 부족하여 실패하는 프로그램에 권한을 지정할 수 있습니다. 또는 보안 관리자가 권한이 필요하지 않도록 유효한 UID 또는 GID를 지정할 수 있습니다.
새 프로그램에 대한 권한 프로파일을 만들고 지정합니다.