Solaris Trusted Extensions Administrator's Procedures

Evaluating Software for Security

When software has been assigned privileges or when it runs with an alternate user ID or group ID, the software becomes trusted. Trusted software can bypass aspects of the Trusted Extensions security policy. Be aware that you can make software trusted even though it might not be worthy of trust. The security administrator must wait to give privileges to software until careful scrutiny has revealed that the software uses the privileges in a trustworthy manner.

Programs fall into three categories on a trusted system:

Developer Responsibilities When Creating Trusted Programs

Even though a program's developer can manipulate privilege sets in the source code, if the security administrator does not assign the required privileges to the program, the program will fail. The developer and security administrator need to cooperate when creating trusted programs.

    A developer who writes a trusted program must do the following:

  1. Understand where the program requires privileges to do its work.

  2. Know and follow techniques, such as privilege bracketing, for safely using privileges in programs.

  3. Be aware of the security implications when assigning privileges to a program. The program must not violate security policy.

  4. Compile the program by using shared libraries that are linked to the program from a trusted directory.

    For additional information, see Solaris Security for Developers Guide. For examples of code for Trusted Extensions, see Solaris Trusted Extensions Developer’s Guide.

Security Administrator Responsibilities for Trusted Programs

The security administrator is responsible for testing and evaluating new software. After determining that the software is trustworthy, the security administrator configures rights profiles and other security-relevant attributes for the program.

    The security administrator responsibilities include the following:

  1. Make sure that the programmer and the program distribution process is trusted.

  2. From one of the following sources, determine which privileges are required by the program:

    • Ask the programmer.

    • Search the source code for any privileges that the program expects to use.

    • Search the source code for any authorizations that the program requires of its users.

    • Use the debugging options to the ppriv command to search for use of privilege. For examples, see the ppriv(1) man page.

  3. Examine the source code to make sure that the code behaves in a trustworthy manner regarding the privileges that the program needs to operate.

    If the program fails to use privilege in a trustworthy manner, and you can modify the program's source code, then modify the code. A security consultant or developer who is knowledgeable about security can modify the code. Modifications might include privilege bracketing or checking for authorizations.

    The assignment of privileges must be manual. A program that fails due to lack of privilege can be assigned privileges. Alternatively, the security administrator might decide to assign an effective UID or GID to make the privilege unnecessary.