如何防止脏手碰我的饼干?


8

根据我的另一个问题,看来我的cookie没有受到保护。(我应该知道,有一段时间我只是从Internet临时文件中手动删除了cookie。)

因此,让我的问题更加笼统:

如何防止计算机上的程序访问计算机上的某些资源?

或反过来:

如何打开仅对选定程序的某些资源的访问?

或看似不切实际的要求:

当程序想要访问某些资源时,如何使它们寻求许可?


尽管Windows 7将更改系统文件作为要求管理特权的规则。但是,所有程序都可以访问(我的意思是仅查看)资源。

虚拟机似乎是一种选择,但是由虚拟机隔离的那些程序没有机会查看外部(主机)系统的任何资源,这似乎不是可取的。

我现在正在使用Windows 7,但是欢迎在任何操作系统上使用解决方案。

Answers:


7

好吧,让我首先回答您更广泛的问题的一部分:如何去做。我的直接经验是在Linux上,但是您说在任何平台上都欢迎回答,因此请继续。如果您使用的是Linux,则可能需要root权限才能以某种方式(除了原则上)删除它们以外的任何方式访问您的cookie。一般过程如下所示:

  1. 更改文件的权限,以使其他用户无法读取它。chmod 600 <file>应该是正确的模式。
  2. 请进行测试以确保您的浏览器不会意外破坏这些权限。
  3. 为您的浏览器创建一个新的用户帐户。foxy为了论证起见,我们称之为它。
  4. 将浏览器的cookie文件的所有权更改为foxy,以及将浏览器可能需要写入的其他任何内容。(实际上,浏览器用户目录中的所有内容实际上都可能受到影响。)
  5. 测试以确保您的浏览器在以方式运行时仍然知道其Cookie的存储位置foxy。如有必要,请foxy专门提供用于此类操作的主目录。
  6. 使用visudo给自己的权限,但只能运行浏览器的时候,要改变用户foxy在sudoers文件将类似于线<your user name> ALL = (foxy) NOPASSWD: /usr/bin/firefox。这样可以保证您仅具有以用户身份运行该特定程序的权限foxy
  7. 编写一个shell脚本,该脚本使用给定的用户名运行浏览器,以便您可以调整用于打开浏览器的链接的.desktop文件。假设您把它放在/usr/local/bin/browse; 它可能只包含(在哈希爆炸行之后)sudo -u foxy /usr/bin/firefox

Linux确实表现出色的部分是这些额外的选项。我对Windows 7不太了解,但是如果它能做同样的事情,我会有些惊讶-如果它具有替代用户系统,该系统可以根据可执行文件名限制您要替代的用户。(请注意,如果我只是给自己任意权限来代替as foxy,这不会阻止专门的攻击者;他们只会将任意命令替换为来读取cookie作为foxy

现在让我解释一下为什么这可能是错误的问题。Gmail碰巧有不错的选项,可迫使您仅通过TLS / SSL(安全的浏览连接)发送cookie。大多数基于登录的服务都不是。这意味着您的Cookie原则上对于整个Internet基础结构都是可见的。出人意料的是,该基础设施已被证明是被动的,并且通常不会攻击您,除非审查您,尽管Internet中有部分内容(例如Tor)完全违反了该规则。

但是,例如,当您使用别人的WiFi连接时,这仍然是一个问题。他们可以“听到”您发送的所有非TLS信息,并且您无法阻止它们,例如,没有使用安全的代理方案来获得通过。(就像Tor!……大呼小叫。)我要说的不只是无线安全性(尽管如果他们没有使用正确的加密,则在同一个房间里有笔记本电脑的任何人都可能对您的cookie造成威胁。就像你一样)。它是机构本身。也许您的酒店前台服务员精通技术,想窃听他所工作的酒店的互联网流量;你怎么阻止他?

您也可以在Linux中解决此问题,但它需要向某人掏出少量现金购买所谓的SSH隧道服务器。这是一个远程代理,您可以控制它,它(希望)具有比您日常无线航行更安全的Internet连接;您通过加密连接连接到它。它仍然取决于互联网的其他部分是否安全,但是您周围的环境可能不安全。通过~/.ssh/authorized_keys在该服务器上设置文件,您可以在不提供密码的情况下使隧道正常工作,尽管您可能希望(或必须)设置一个shell脚本以默认情况下将其添加到Firefox中。


在Windows中,“ runas”可能是替代用户运行以及正确使用NTFS ACL解决方案的一部分
Journeyman Geek

1

一种完成此任务的方法...

  1. 创建一个新的用户帐户并设置密码
  2. 登录到该帐户并安装Chrome或运行Firefox以创建%Appdata%文件夹
  3. 使用EFS加密%AppData%文件夹(右键->属性->高级->加密...)
  4. 切换到您的主帐户按住Shift并右键单击浏览器快捷方式,然后选择“以其他用户身份运行”
  5. 输入新的帐户凭据,然后单击“确定”。

现在,您以其他用户身份运行浏览器,并且这些文件已加密,因此只有用户/应用程序才能读取它们。

对于Chrome,您需要编辑快捷方式以打开浏览器帐户中安装的Chrome。

您还需要将下载目录更改为主要用户,并授予浏览器用户对该目录的权限,或者可以将其设置为公用文件夹,然后将该公用文件夹添加为库。

编辑:刚刚在带有Firefox和Chrome的VM中对其进行了测试。。。Firefox正常工作,但Chrome崩溃了。可能是由于使用了沙箱,但我不确定,可能有一个简单的解决方法。

编辑2:是的沙箱。如果在快捷方式中添加--no-sandbox,它将起作用:\如果您具有沙盒,则可以将Chrome设置为强制进入由浏览器用户加密的沙盒。


使用不同的凭据运行可能会有所帮助。Chrome可能不会以其他用户身份启动,因为它会为当前用户安装自身,并且另一个帐户无法运行/访问它。
尼姆·云

0

大多数现代OS支持称为“ 强制访问控制 ” 的安全模型,该模型可以轻松实现您想要的功能,但是正确配置访问控制策略所需的知识很难学习。

Windows上一个更简单的解决方案是使用基于主机的入侵检测系统(HIDS),该系统现已包含在许多防病毒软件中。通常,它们将允许您为每个应用程序可以访问其资源的规则。只需将cookie文件夹放入受保护文件(或私有文件,或在您的A / V软件中称为它们的任何文件)列表,然后仅允许IE访问它们。某些防病毒产品没有再次读取保护的权限,在这种情况下,您可能不得不退回到创建仅用于访问该应用程序(IE)的用户。

但是,如果要解决此问题,可以在沙箱中运行IE。


0

如果使用Internet Explorer,则自动清空Internet临时文件可能会有所帮助。

如果要保留cookie,只需加密磁盘,删除隐藏的管理共享,并限制对要保护的文件夹的访问。使用Win + L组合键,在计算机从屏幕保护程序返回时分配密码。我就是做这个的。


通过限制访问,如何?无论如何,计算机上的任何程序都具有与我相同的特权。

右键单击任何文件夹>选择属性。将打开一个对话框。单击安全性选项卡,设置权限。PS:您可以在NTFS格式化的驱动器上设置权限。许多硬盘是NTFS格式的。并非很多便携式驱动器(包括存储卡和USB存储器)。
尼姆·云

1
@Nime Cloud:他想通过程序而不是用户来保护自己的文件。您所描述的内容仅允许根据登录用户设置ACL。一种选择是以其他用户身份运行所选程序,并相应地修改文件ACL。但是,我闻到一个架构问题和一个迷失的原因。
于尔根斯特罗贝尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.