Trusted Extensions 구성 및 관리

인쇄 보기 종료

업데이트 날짜: 2014년 7월
 
 

소프트웨어의 보안 평가

소프트웨어에 권한이 지정되거나 소프트웨어를 대체 사용자 ID 또는 그룹 ID로 실행하면 신뢰할 수 있는 소프트웨어가 됩니다. 신뢰할 수 있는 소프트웨어는 Trusted Extensions 보안 정책을 무시할 수 있습니다. 소프트웨어를 신뢰할 만하지 않은 경우에도 신뢰할 수 있는 소프트웨어로 지정할 수 있습니다. 보안 관리자는 세부 조사를 통해 소프트웨어에서 신뢰할 수 있는 방법으로 권한을 사용한다는 사실이 확인될 때까지 기다렸다가 소프트웨어에 권한을 부여해야 합니다.

    프로그램은 신뢰할 수 있는 시스템에서 세 가지 범주로 분류됩니다.

  • 보안 속성이 필요하지 않은 프로그램 – 일부 프로그램은 단일 레벨에서 실행되므로 권한이 필요하지 않습니다. 이러한 프로그램은 공용 디렉토리(예: /usr/local)에 설치할 수 있습니다. 액세스하려면 사용자 및 역할의 권한 프로파일에 있는 명령으로 프로그램을 지정합니다.

  • root로 실행되는 프로그램 – 일부 프로그램은 setuid 0으로 실행됩니다. 이러한 프로그램에는 권한 프로파일에서 유효 UID 0이 지정될 수 있습니다. 그러면 보안 관리자는 프로파일을 관리 역할에 지정합니다.


    팁  - 응용 프로그램에서 권한을 신뢰할 수 있는 방법으로 사용할 수 있는 경우 응용 프로그램에 필요한 권한을 지정하고 프로그램을 root로 실행하지 마십시오.
  • 권한이 필요한 프로그램 - 일부 프로그램은 분명하지 않은 이유로 인해 권한이 필요할 수 있습니다. 프로그램에서 시스템 보안 정책을 위반할 것 같은 기능을 수행하고 있지 않더라도, 해당 프로그램이 보안을 위반하는 기능을 내부적으로 수행할 수 있습니다. 예를 들어, 프로그램에서 공유 로그 파일을 사용하거나 프로그램이 /dev/kmem에서 읽을 수 있습니다. 보안 문제에 대한 자세한 내용은 mem(7D) 매뉴얼 페이지를 참조하십시오.

    내부 정책을 대체해도 응용 프로그램의 올바른 작동에 특별히 영향을 미치지 않는 경우도 있습니다. 오히려 내부 정책을 대체하면 사용자가 기능을 보다 편리하게 수행할 수 있습니다.

    조직에서 소스 코드에 액세스할 수 있는 경우 응용 프로그램의 성능에 영향을 주지 않고 정책을 대체해야 하는 작업을 제거할 수 있는지 여부를 확인합니다.

신뢰할 수 있는 프로그램을 만들 때의 개발자 책임

프로그램 개발자가 소스 코드에서 권한 세트를 조작할 수 있더라도 보안 관리자가 프로그램에 필요한 권한을 지정하지 않은 경우에는 프로그램이 실패합니다. 따라서 신뢰할 수 있는 프로그램을 만들 때는 개발자와 보안 관리자가 상호 협력해야 합니다.

    신뢰할 수 있는 프로그램을 작성하는 개발자는 다음을 수행해야 합니다.

  1. 프로그램에서 작업을 수행하는 데 권한이 필요한 경우를 파악합니다.

  2. 프로그램에서 권한을 안전하게 사용할 수 있도록 권한 분류 등과 같은 기술을 확인하여 따라야 합니다.

  3. 프로그램에 권한을 지정할 때 보안에 미치는 영향에 유의합니다. 프로그램이 보안 정책을 위반하지 않아야 합니다.

  4. 신뢰할 수 있는 디렉토리에서 프로그램에 연결되는 공유 라이브러리를 사용하여 프로그램을 컴파일합니다.

    자세한 내용은 Developer’s Guide to Oracle Solaris 11 Security 를 참조하십시오. Trusted Extensions에 대한 코드 예제는 Trusted Extensions Developer’s Guide 를 참조하십시오.

신뢰할 수 있는 프로그램에 대한 보안 관리자 책임

보안 관리자는 새 소프트웨어를 테스트하고 평가해야 할 책임이 있습니다. 신뢰할 수 있는 소프트웨어인지 확인한 후 보안 관리자는 프로그램에 대한 권한 프로파일과 기타 보안 관련 속성을 구성합니다.

    보안 관리자의 책임은 다음과 같습니다.

  1. 프로그래머와 프로그램 배포 프로세스가 신뢰할 수 있는지 확인합니다.

  2. 다음 중 한 가지 방법으로 프로그램에 필요한 권한을 확인합니다.

    • 프로그래머에게 질문합니다.

    • 소스 코드에서 프로그램에 사용할 권한을 검색합니다.

    • 소스 코드에서 프로그램에서 사용자에게 요구하는 권한 부여를 검색합니다.

    • ppriv 명령에 대한 디버깅 옵션을 사용하여 권한 사용을 검색합니다. 예제는 ppriv(1) 매뉴얼 페이지를 참조하십시오. 또한 dtrace를 사용해서 권한 및 권한 부여 사용을 평가할 수 있습니다.

  3. 소스 코드를 조사하여 프로그램을 작동하는 데 필요한 권한과 관련하여 코드가 신뢰할 수 있는 방법으로 작동하는지 확인합니다.

    프로그램에서 신뢰할 수 있는 방법으로 권한을 사용하지 못하는 경우 프로그램의 소스 코드를 수정할 수 있으면 코드를 수정합니다. 보안에 대해 잘 알고 있는 보안 컨설턴트 또는 개발자는 코드를 수정할 수 있습니다. 권한 분류, 권한 부여 확인 등을 수정할 수 있습니다.

    권한은 수동으로 지정해야 합니다. 권한이 부족하여 실패하는 프로그램에 권한을 지정할 수 있습니다. 또는 보안 관리자가 권한이 필요하지 않도록 유효한 UID 또는 GID를 지정할 수 있습니다.

  4. 새 프로그램에 대한 권한 프로파일을 만들고 지정합니다.