技术解析

Linux 比 Windows 安全主要体现在哪里?
0
1975-02-23 17:17:18
idczone
经常看见有人说 Windows 很多程序都需要 UAC 权限才能安装,Linux 下不仅 apt 安装全部程序都需要 root 权限,连 pip 安装模块都要 root 权限,没有普及的安全软件,恶意代码不是更容易被执行,这安全性体现在哪里呢?
发行版多 各个版本又不一样,so 文件编译的版本多 非托管的语言除了 C
C++ Rut 等其它语言的二进制 ABI 经常不稳定,再配合地址随机化,即使有堆栈溢出漏洞,要为每个 Linux 发行版构造一个 shellcode 的工作难度无异于登天,就算是再傻的黑客也知道搞 Linux 费力不讨好,又不挣钱。
而 Windows 基本上每次出漏洞补丁,基本上只要在几个版本上测试一下 shellcode,就可以大规模采肉鸡了,这种事情我年轻的时候也干过。

光是 libc 各个版本的 符号导出表 就够很多黑客喝一壶了,又要溢出,又要刚好满足特定内存地址条件,又能把二进制代码 覆盖过去,难度挺大的。

体现在不会用 Linux~(逃)。

先问是不是

桌面级搞的人少, 服务端搞的人还是蛮多的
安全软件当然有了,selinux 、apparmor 知道的人多一点吧, grsecurity 主机商赞助和使用的比较多

另外我有好多机器是 ARM 的,你弄个 x86 的 shellcode 我这里直接就报错了,另外 ARM 各个版本又不一样

谁说 Linux 比 Windows 安全了?这个可不容易下定论

linux 主要在服务器和嵌入式设备上用,基本上都有专业的人员维护
windows 几乎全是小白用
你说哪个更好下手?

体现在小白用户少

安装要 root 权限又不等于运行的时候有 root 权限,安装那个 root 权限是给了 apt,不是给了你安装的包。
Windows 下面安装要 UAC 的权限的话,那个权限是给了要安装的软件的安装程序,它安装的时候有没有加料我就不知道了。

体现在谣传。
在很多人眼里,对着个黑屏幕敲键盘就是高大上的,哪怕你在 Windows 下面开个全屏 cmd……
那些说 Linux 安全的,和上面的情况类似。

有一个原因是 linux 开发参与的人更多,生态更好
人多对漏洞的识别和解决都有促进作用
还有非商业软件很多是慢慢开发比较不功利,设计上会比较合理

linux 小白一样不少,多少因为 redis 被注入木马的,而且 linux 那套复杂的逻辑,注入就约等于重装

给你 1 天用 c 语言自己写个堆栈漏洞,关闭 PIE 然后弄完 shellcode 反弹回来 shell 再来说这话吧..

其实 UAC 和 ROOT 都智能算个提醒、警告,保障安全并不靠它们

Linux 服务端也经常被黑,Linux 用户端因为用户少不怎么被关注

安装时候要密码,这就足够挡住 90%的自动传播

体现在自由软件
用户知道自己在做什么
用户能看到自己实际做了什么

不认为 linux 比 window 安全。

pip 可以安装在用户目录不用 root 权限,况且还有虚拟环境,一般不用 root 装模块。
软件都在仓库里面,基本不需要去 xx 软件网下载来路不明的可执行文件。
linux 里你知道自己在做什么就相对安全,其实安全关键还是看使用者,人是最大的漏洞。

计算机安全的本质,是攻防两方的数学能力的比拼。
US 作为资本精英制度,有能力的人,社会对 TA 会给足资本与地位,这种制度吸引着整个地球上数学最好的那帮人,这与我们取长补短的制度完全不一样,对于这个问题,我真没啥信心。
这并不是说我们的制度不好,各有优劣。只是在这个问题上,我们需要承认,我们这制度确实很难赢。

归功于 Linux 发行版的碎片化

用户少,相对于能用 linux 的,基本都是有计算机基础的,自然会对安全性比较敏感

我们以前三台 linux 机房服务器,软件不经常更新的话,有 0 day 漏洞,最后直接被黑了两台。
反而 windows 有沙盒软件,你觉得软件不安全,直接放盒子里运行,安全的很。

访问权限设置比较完善。
你不能读,写,就肯定不能读、写。

有生之年,没遇到过 linux 病毒,但见过论坛里 linux 主机文件被加密然后勒索的。

apt 一样会以 root 权限执行软件提供的安装脚本,想加料不是一样

楼主问的是 apt 安装包都要 root 权限相比 Windows 下面只是部分软件要 UAC 权限安装,是否面临更多危险。
他大概不了解 Linux 和 Windows 安装软件的区别,他可能以为 Linux 下面安装的软件都有 root 权限,不放心。


我只是告诉你两种方式的区别,也许你自己知道吧,是我多管闲事了。
如果你觉得我上面的回帖似乎质疑了你的智商,那请当我没有回答好了。

你要说 Linux 文件访问权限管理比 Windows 简单易懂我信,可是说 Linux 更“完善”这就不好说了啊…… Windows 上没有读写权限不也一样就是不能读不能写……

这也能转进到体制问题我是没想到的。。


最近 windows 用的不多。。。大学的时候留下的刻板印象:盗版 windows 满天飞,有各种 hack 技巧。

任何问题归根结底都是体制( zz )问题。

任何一个操作系统给你瞎配置安全性都那个尿性
nginx/apache 在 linux 你用 root 启动,web 端随便一个命令注入也能 rm -rf /* 执行得很彻底
windows 配置得当,空密码不见得你能控制系统
所以安不安全永远是相对的
与其说 windows 不安全,不如说,早期的时候 windows 用户瞎鸡儿配置的太多,与及多数用户量在 windows 这边,所以听到和看到的更多是 win 的不安全
至于...linux 安装程序全要 root pip 也要 root,我觉得你还是需要多学点基础知识,你把程序安装到 /home/users 目录为什么需要 root?你不用特权命令为什么需要 root? linux 安装程序什么时候约定仅限于 apt 和 yum 了?
pip? --user? vitrualenv?
所以楼上有位同学说的,先问 “是不是”

严格说肯定是 windows 文件权限肯定有保障。
但几乎所有 windows 小白用户都不吃这一套,有各种 hack 方法去绕过去。。。(传说中的用户友好~)
而 linux,无论你吃不吃这一套,都没法让你绕过去。

恶意代码是需要执行才有用对吧?
在 Windows 上,执行恶意代码只需要双击。
而在 Linux 上,你还需要 chmod +x 手动给执行权限。
多一个步骤,多一个保险吧。

还有,Linux 的安全性主要体现在对权限的控制。每一个 Linux 软件,都会对应一个普通用户。比如你用源安装的 nginx,会有一个普通用户叫 nginx 。你把网站目录授予 nginx 权限,那么攻击者黑进来了,只能在网站目录内活动。
反观 windows,很多服务软件都是直接跑在 administrator 上。

用的人少,攻击的成本和受益不对等

linux 谁会安装第三方来路不明的软件呢?基本的工具全在库里自带了,少了中招的一大来源

计算机世界的安全下限取决于键盘和椅子之间。
顺便说一句 apt pip 都不需要 root 。
再说一句 linux 作为服务器市场的绝对主力,再加上现在算力能换钱,攻击的人不比 windows 少。

还有一点儿,你安装 Linux 或者 bsd 可控,只需要安装软件必须的依赖,这么下来,一个系统可能就 100 个包不到,非常通透。这些包一般都没啥安全问题,黑客怎么破?特别是 debian 这种老古董的发行版,一个包可能都是 5,6 年前了,有什么安全漏洞早就补全了。

Windows 不管用不用的上,都给你装一堆东西,单单就这一条,增加了攻击面。

apt 包里面也有 post hook 一样会用 root 运行。

1. apt 的 root 是给 apt 用的,不是给安装的程序用的,具体体现在文件的权限在 inode,进程的权限在 task_struct
2. SELinux,apparmor,Cgroups 这些可用的安全工具运行时检查,kalsr,mmap_min 限制,kernel stack canary 这些安全机制
3. linux 的安全机制更新相当频繁,比如 eBPF,KASAN 家族的一堆工具,Kfence,KPTI,freelist randomization 等等等都是最近 3 年内新加入 mainline 的,除此之外还有 grsecurity 的一堆机制等着合并。
4. 最后一点是漏洞曝光和修复比较及时,比如 syzkaller 和邮件列表里面随时更新的一堆

2019 年漏洞数量最高的软件排名分别是 Android 、Debian Linux 、Windows Server 2016 、Windows 10 、Windows Server 2019 、Adobe Acrobat Reader DC 、Adobe Acrobat DC 、cPanel 、Windows 7 、Windows Server 2008 。
linux 好像并没有更安全,是用户群体平均水平高一点罢了。

Linux 哪里比 Windows 安全了???小白用 Linux 还不如用 Windows 安全呢。

Linux 再安全,也顶不住一键安装脚本和各种面板啊

win 用的多,利益更大,才能驱使黑客下手

不知道安不安全,
但是好处有一个好处,
windows 下,用搜索引擎搜索软件安装,小白经常会从第三方下载软件安装,结果被附带安装一堆全家桶。
而 linux 各个发行版基本都有自己的软件仓库,
虽然仓库里面也有些没被发现的恶意软件,但事实至少比 windows 中招的几率低点。

敢用 linux 的一般都有些基础,知道最基本的防护,而且安装软件不会多,大多都是从正式地址装,无形中就已经比 windows 好一些

各种服务配置教程 上来就是一句关闭 selinux, 就这 小白用户能安全就见鬼了


我可没说用 apt 绝对安全。
这个问题是个相对比较的问题吧?
Deb 包大部分是从发行版自己维护的仓库下载的,是不是相对更安全?自己安装第三方的包可以拆开看那几个安装前后执行的脚本,是不是比很难了解内部怎么运行的安装程序相对安全?
对不起他们不是一样的。
事实上在使用这两系统的时候,我是完全不会担心什么 apt 给了 root 会不会不安全,Windows 上面从下载开始我就要考虑下载的地方安全不安全了,安装的时候,有些要 UAC 权限才能安装的东西我是会放弃安装的,即使不要 UAC 权限的软件,安装的时候我也要小心看看有没有什么奇怪的勾选项。
我其实也希望 apt 之类包管理工具可以不用 root 权限只安装在当前用户目录,但只是出于方便和区隔不同用户的需要,并不担心安全问题。

开发恶意软件的成本 > 获利


查了一下,来源应该是 https://www.cvedetails.com/top-50-products.php?year=2019

1. Debian 有 360 个漏洞,前 20 个里面,只有 9 和 13 是 Debian 的锅,其它都是软件包的漏洞。
Debian 有五万多软件包,每个用户都只会装其中的很小一部分,对于每一个 Debian 用户来说,只会被这里面很少的漏洞影响到。
这里面 Windows 的漏洞都是微软的锅。其中大部分应该属于 Windows 默认安装的组件。
2. 如果用 Debian 的归类方式,Acrobat Reader 那 342 个应该算进 Windows 和 Mac OS X 。
3. 这个漏洞数量有重复的,比如 Acrobat 虽然占了两行,但都是那 342 个。
对 Windows 也是一样,所以不能把数字加进来得到 Windows 的总漏洞数,但大约估算一下我觉得 Windows 的总漏洞会比 Linux 多。

结论是,从这个数据来说,好像是 Linux 的安全性更好一些。

体现在用户的操作安全
Linux 一上来就 chmod 777 、关防火墙、随便找个脚本就给 root 权限跑的,被挂马的也不少

论攻击价值,linux 服务器的攻击价值高太多了,盯上 linux 的病毒可不少。
用 windows 的通常都是不懂电脑的人在用,所以很依赖防病毒软件提供各种傻瓜化和半强制性的方法避免用户作死。
用 Linux 的通常都是懂行的人,只要不是太菜,不会做出开门放狗进来的蠢事,而 Linux 服务器的安全防护通常也不是单机层面的,而是一个平台解决方案,例如网络入口的硬件防火墙+系统安插的监控程序+安全监控服务器,我们通常不叫那玩意为安全软件。

windows 自带有极大量的第三方硬件驱动,这些漏洞都会算到微软头上,linux 直接不支持。。。。。。。。。

先问是不是。你对 Windows 了解多少呢?
问个基础的 Linux sudo 在 Windows 上对应是什么命令?
Windows 的 AD,组策略,域控,权限分配,enduser 权限,Defender for Endpoint 有用过么。
很多人学了两天 Linux 就觉得 Linux 高大上 Windows 各种没有,其实 Windows 不知道比 Linux 高到哪去了。
另外 Windows 10 的安全性已经十分强大了,提供内核隔离,Exploit Protection,各种 0day 漏洞的防护

Windows 的权限控制可比 Linux 权限更详细。
"你不能读,写,就肯定不能读、写。 "这都是基础的功能

对于个人用户来说,整个系统实际上一般只有一个账户在日常使用,有价值的东西都在这个账户的控制之下,所以就变成了 xkcd 1200 里面描述的情况了:root 权限把守的是一个毫无价值的保险库,不需要拿到 root 就已经可以对用户形成实质的威胁和伤害。
更何况,就像 Windows 的 UAC,微软不承认 UAC 绕过(从降权管理员 token 到完整管理员 token )算安全漏洞,只是一个“防手贱功能”( forcing function ); Linux 下,sudo 的性质应该也是类似的吧。
对于企业、服务器,那就另当别论了,我也不太了解。

因为正常情况下服务器上 root 的权限都在运维手上,作为用户是拿不到 root 的。如果能拿到 root 要么是虚拟机要么是 docker 。

会用就安全,不会用就不安全。

win 也没不安全吧。没觉得了可比

因为它有 SELinux

非专业人士,不过静态链接不就不用管了么。
cow 漏洞不需要侵入系统 lib 直接提权,不过这样的 0day 比较难找
老的 Linux 还是挺多的,主要还是远程入侵比较困难吧,毕竟 rpc 一般都不像 Win 是开着的。
ARM 机器还是少数。

谁说的?还是你道听途说,看了几篇不懂技术的人乱写的文章然后也跟着起哄?

又碰到你了 老哥

linux 至高无上 用 linux 得人都是谜一般的存在 精英中的精英 当然安全性吊打 windows

区别就是 linux 用户少, 搞恶意软件收益远不如 win 。你觉得有人会干这种吃力不讨好的事吗。
linux 的主要恶意软件都是针对服务器的, 比如比特币敲诈。都是依托于一些流行的软件漏洞。但是这种漏洞很快就会被 idc 补上。

老哥专业啊,而且 Linux 的主要平台 ARM 没有历史包袱,能加好多硬件级别的安全特性。安全栈啥的一搞基本杜绝了溢出类漏洞了

因为 linux 变种发行版多,就和新冠病毒如果多出几十个变种,那么之前全球花大精力研发的针对第一版病毒的疫苗就对别的变种病毒没有效果了。


而且就算是同一个发行版,在不同的版本号下,软件也不能正常运行,做 linux 病毒太吃力不讨好了。

安全都是相对的,这两个现在都烂大街的东西,对比安全性,咱们又不是专家需求,没意义,都安全的很,要说真区别,就是微软的黑盒太厉害,帮助很多都是形同虚设,Linux 的虽然不懂,但都有人给你掰扯清楚

高在玩 linux 的比玩 windows 的人水平高

有次在 windows10 安装第三方软件给予 uac 权限,结果病毒运行了,没办法格了重装系统

体现在没有小白,搞恶意软件收益低。
系统安全? Linux 跟 Windows 系统都很安全,只要你别瞎开配置瞎装软件……

先问是不是,再问为什么。谁说 linux 比 windows 更安全的?

在服务器上 Linux 可不必桌面端的 Windows 安全多少,搞 Linux 服务器的大有人在。只不过在日常,Linux 的用户在执行各种操作时基本都清楚自己在干啥,会有什么风险,Windows 用户就不一定了。单从这点上看,Linux 确实比 Windows 要安全。

sudo rm -rf / ?

mount /dev/null /usr/local

额,点错人了,我要点你楼上那个的。。。尴尬

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服