UNIX系统上跨机作业的安全隐患极其解决方案
试想,如果在您的数据中心有一台HP-UX服务器运行应用程序, 另一台Solaris服务器运行Oracle数据库。 应用程序会产生一些数据, 一旦生成, 需上载到Solaris机器上, 并装入数据库中。
假设数据的上载是由HP-UX上的用户查理(登陆名charlie)用sftp进行的, 其所用的Solaris上的用户为数据库管理员帐号山姆 (登陆名sam)。
现在我们来看看这样的安排有哪些安全风险。

首先, 用sftp本身有两个密码泄密的风险:
1. 同机上凡用同样用户名登陆的人, 或以超级用户登陆的人,均可用tusc命令窃取当你在用sftp登陆时所输            
   入的密码。
2. 心怀不轨的超级用户使用者可将sftp命令替换, 从而窃取密码。

其次, 若查理可用sftp通过数据库管理员帐号山姆将数据传送到Solaris服务器上, 那他也能用sftp修改山姆的.profile文件或.ssh/authorized_keys文件, 可以想象这可能产生多么严重的后果, 特别是当该数据库存的是顾客的存款信息。另外,若查理可传送该文件,则他也可看该文件的内容,当文件的内容包含一些需保密的内容时,这也会造成极大的隐患。

WZIS软件公司对此有一完美的解决方案. 在此解决方案中, 用到了WZIS软件公司的两项产品:
1. Autossh:         该软件包包含两种用以ssh登陆自动化的工具:
      •        assh:        用以无约束的ssh登陆自动化。
      •        asshc:      会对所执行的命令进行备案的ssh登陆自动化的工具。
2. CaclMgr:        一种类似sudo但可用于系统及作业自动化的, 并更安全的授权软件。

以下是WZIS软件公司的解决方案, 该方案不仅解决了上面所发现的安全问提, 还可给您节省费用实现作业自动化:
•    在HP-UX服务器上建一个新的除可读数据文件无其它特殊权限的帐号, 假定名为userc。
•    写一个SHELL文本程序/usr/local/bin/auto_data_load, 内容如下:
   #!/bin/sh
   cat 数据文件|/usr/local/bin/asshc  sam@SunMachine  “cat >/DP/DF;  
   command_for_load_data_into_database”
•    chmod 755 /usr/local/bin/auto_data_load
•    su  userc
•    /usr/local/secbin/cacl  -a charlie /usr/local/bin/auto_data_load
•    ssh-keygen
   生成一对新的密钥, 并将passphrase以两人控制, 以确保任何人都无法获的完整的passphrase.
•    将.ssh/id_dsa.pub 或 .ssh/id_rsa.pub中的内容添加到Solaris服务器上~sam/.ssh/authorized_keys文
   件中。
•    运行ssh  sam@SunMachine uname –a
   以确认以密钥进行的登陆一切完好。
•    将.ssh/id_dsa 或.ssh/id_rsa改名成asshc.key
•    /usr/local/bin/asshckey sam@SunMachine
   建立以AES算法加密的passphrase文件, 供以后用asshc进行ssh自动登陆使用。
•    /usr/local/bin/asshc  sam@SunMachine “uname –a;ls”
   以确认自动登陆无问题。
•    退出userc
•    修改/etc/passwd文件, 将userc 的shell属性改成 /bin/false. 并可将该用户的口令改成非法.

在此之后, charlie虽然无权阅读文件内容,但却可用:
       
/usr/local/secbin/cacl  -e userc /usr/local/bin/auto_data_load
完成从数据传送到数据加载进数据库的一揽子作业, 并可将此完全自动化,节省人工成本并消除由人工所可能产生的失误,一举多得。
我们的assh及asshc可抗系统调用跟踪, 并可检测特洛伊木马的攻击.
以此设置, 无人可通过charlie的帐号对文件传输的功能进行滥用. 甚至是超级用户都无法直接经由userc滥用此功能。