问题描述
|
我已经为公司的Intranet编写了一个用于内部行为报告的系统。我不应该访问它的数据(不是控制委员会的一部分,但是我可以。)
我已经将帐户从数据中锁定,但可以将其解锁。我可以以加密格式存储数据,但是,即使别人选择了,我也应该将盐存储在某个地方,然后读取它->解密数据。
从理论上讲(我不是在谈论特定的系统,框架或实用程序),我怎么不能访问我完全控制的系统中存储的数据?
解决方法
在我看来,您可以只设置密码,这样只有一个用户可以访问数据库,然后允许其他人设置该密码。这样会使维护工作变得更加棘手,但是一旦说完,完成并进行了全面测试,那么数据库就不需要对此类工具进行大量维护。
如果这是内部的,则无需设置专用的,物理上安全的WAMP或专门用于此目的的类似机器。从理论上讲,让其他人调整root密码并将其与\ committee \一起存储时,您就可以摆脱困境。
我想如果要完全偏执,可以构建一个Web服务,以将数据库与报告功能完全隔离在单独的网络上。从理论上讲,您可以在删除访问的远程计算机上设置Web服务,然后使用前端收集数据并将其传递给Web服务。从那里开始,它完全不可用,没有“数据输出” Web服务来检索数据。
安全始终是一团糟。我曾在银行,电子商务和体育(药物测试)环境中工作,在这些环境中,我深陷于机密数据之中,这不仅有点吓人。在某个时候,您只需要尽力而为,记录您的防护措施,“读入”正确的协议和所需的背景检查,与独立测试人员进行全面测试,然后保持完全透明即可。在IT世界中,我们可以访问大量的信息,而这些信息永远不会消失。
, 基本答案是强制访问控制。大多数计算机用户熟悉的访问控制的类型是Discressionary Access Control。在DAC(自由访问控制)中,计算机上的所有内容均归用户所有。用户可以将对象(文件,服务,外围设备,内存等)的访问权限授予其他用户。用户甚至可以将对象的所有权转让给另一个用户。在MAC(强制访问控制)中,至少某些对象不归任何用户所有。控制用户如何访问这些对象或与这些对象进行交互的规则是固定的,任何用户都不能更改。
在您的示例中,报告系统生成的数据应受Manditory Access Control保护,但是报告系统配置可能归您所有。因此,您可以控制系统的行为方式,但无权访问其生成的数据。
微软开始在Windows Vista中实施MAC。在Vista中,它被称为强制完整性控制(MIC)。
Linux可以通过SELinux或AppArmor实现MAC。
Mac OS X使用TrustedBSD MAC的实现。
那么,为什么不经常使用MAC?
我需要努力设置MAC并不容易,一旦设置就很难更改。可能很复杂。大多数系统和服务都建立在DAC模型上。开启MAC通常会使服务停止工作。