JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 11 开发者安全性指南     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

1.  面向开发者的 Oracle Solaris 安全(概述)

面向开发者的 Oracle Solaris 安全功能概述

系统安全

地址空间布局随机化 (Address Space Layout Randomization, ASLR)

调试和 ASLR

网络安全体系结构

2.  开发特权应用程序

3.  编写 PAM 应用程序和服务

4.  编写使用 GSS-API 的应用程序

5.  GSS-API 客户机示例

6.  GSS-API 服务器示例

7.  编写使用 SASL 的应用程序

8.  Oracle Solaris 加密框架介绍

9.  编写用户级加密应用程序

10.  Oracle Solaris 密钥管理框架介绍

A.  适用于开发者的安全编码准则

B.  基于 C 的 GSS-API 样例程序

C.  GSS-API 参考信息

D.  指定 OID

E.  SASL 示例的源代码

F.  SASL 参考信息表

词汇表

索引

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

系统安全

为了实现系统安全,Oracle Solaris OS 提供了进程特权。进程特权是基于超级用户的 UNIX 标准模型的替换模型,可用来授予对特权应用程序的访问权限。系统管理员需要为用户指定一组允许其访问特权应用程序的进程特权。用户不必成为超级用户即可使用特权应用程序。

特权使得系统管理员可以将有限的权限委托给用户而不是授予用户完全的 root 用户权限,以忽略系统安全。相应地,创建新特权应用程序的开发者应该测试特定的特权,而不是检查 UID 是否等于 0。请参见第 2 章

为了实现非常严格的系统安全,Oracle Solaris OS 提供了 Trusted Extensions 功能,该功能不在本书的讲述范围内。Trusted Extensions 功能允许系统管理员指定能够由特定用户访问的应用程序和文件。有关更多信息,请参见《Trusted Extensions Developer’s Guide》《Trusted Extensions 用户指南》

为安全起见,Oracle Solaris 提供了以下公共接口:

地址空间布局随机化 (Address Space Layout Randomization, ASLR)

ASLR 是 Oracle Solaris 系统的一种功能,利用此功能可以随机生成进程地址空间(例如栈、库和基于 brk 的堆)的关键部分的起始地址。缺省情况下,为显式标记为需要 ASLR 的二进制文件启用 ASLR。以下命令提供有关 ASLR 状态的信息:

% sxadm info
EXTENSION        STATUS                   CONFIGURATION 
aslr             enable (tagged-files)    enable (tagged-files)   

ld(1) 命令的 -z 选项用于标记需要使用 ASLR 的新建目标文件。用法如下所示:

ld -z aslr[=mode]

其中 mode 可设置为 enabledisable。如果未指定 mode,则假定使用 enable

以下示例说明了如何使用 -z 选项创建启用了 ASLR 的可执行文件:

% cat hello.c
#include <stdio.h>
int
main(int argc, char **argv) 
{ 
  (void) printf("Hello World!\n");
  return (0);
}

% cc hello.c -z aslr

ASLR 标记由目标文件动态部分中的条目提供,该条目可以使用 elfdump(1) 进行检查。

% elfdump -d a.out | grep ASLR
[28]  SUNW_ASLR   0x2   ENABLE

elfedit(1) 命令可用于在现有目标文件中添加或修改 ASLR 动态条目。

% cc hello.c
% elfedit -e 'dyn:sunw_aslr enable' a.out
% elfdump -d a.out | grep ASLR
[29]  SUNW_ASLR  0x2  ENABLE
% elfedit -e 'dyn:sunw_aslr disable' a.out
% elfdump -d a.out | grep ASLR
[29]  SUNW_ASLR   0x1  DISABLE

给定进程对 ASLR 的要求是在该进程启动时建立的,该进程一旦启动就无法对此要求进行修改。因此,ASLR 标记仅对进程中的主要可执行目标文件有意义。

pmap(1) 实用程序可用于检查进程的地址映射。使用该实用程序观察启用了 ASLR 的可执行文件的映射时,会看到用于栈、库映射和基于 brk 的堆的具体地址在每次调用时均不同。

sxadm(1) 命令用于控制系统的 ASLR 缺省行为。显式标记为禁用 ASLR 的二进制文件优先于 sxadm 建立的系统缺省行为。

调试和 ASLR

调试期间,地址空间随机化可能会出现问题。某些调试需要重复调用同一程序时使用相同的地址映射。您可以采用以下方式之一禁用 ASLR:

有关更多信息,请参见 sxadm(1M) 手册页和《Oracle Solaris 11 安全准则》中的第 2  章 "配置 Oracle Solaris 安全"