Why
Linux Will Never Suffer From Viruses Like Windows
Tuesday, September 04,
2012 - by Jesse Litton in Misc
Bài được đưa lên
Internet ngày: 04/09/2012
Lời
người dịch: Một bài so sánh
để giải thích vì sao Linux sẽ luôn ít bị dính virus hơn
Windows, chứ không phải như
các fan hâm mộ Windows luôn khẳng định vì ít người sử
dụng Linux/Mac nên chúng mới có ít virus hơn, chứ không
phải vì bản chất tự nhiên
nguồn đóng của Windows làm cho nó đương nhiên là ít an
ninh hơn so với Linux. Bạn hãy
đọc kỹ và chiêm nghiệm.
Dường như có một
hiện tượng lặp đi lặp lại trong báo chí về công
nghệ, nơi mà bất kỳ trojan nào ảnh hưởng tới Linux
hoặc Macs trở thành các tin tức hàng đầu. Mặt khác,
các trojan mà ảnh hưởng tới Windows lại hầu hết được
bỏ qua, có lẽ vì điều này được coi như là một tình
trạng thông thường.
Có 2 tuyên bố phổ
biến được làm trong các thảo luận về các sự kiến
hiếm hoi đó:
- Không hệ điều hành nào từ trước tới nay là an ninh trước các Trojan.
- Linux/Mac chỉ có ít virus hơn vì không ai sử dụng chúng.
Tuyên bố thứ nhất
hầu như là đúng, trong khi tuyên bố thứ 2 là một chuyện
thần thoại được đánh xẹp theo quan điểm của tôi.
Hãy để tôi giải thích, và tôi sẽ lắng nghe nếu bạn
vẫn không đồng ý sau khi đọc những thứ sau đây một
cách đầy đủ.
1. Không hệ điều
hành nào từ trước tới nay hoàn toàn an ninh đối với
các Trojan... nhưng chỉ tới khi chúng cho phép bất kỳ ai
đó ghi một phần mềm không thể mở ra được đối với
nó.
Nếu những người sử
dụng có khả năng chạy bất kỳ thứ gì, thì họ cũng
có thể cài đặt bất kỳ thứ gì họ bị lừa để
chạy. Bất kỳ ai cũng có thể đánh lừa mọi người
trong việc chạy một script để định dạng ổ đĩa của
họ trong bất kỳ hệ điều hành nào... nếu người sử
dụng đó khờ dại cả tin đủ để nháy vào các lời
nhắc và đưa vào mật khẩu quản trị của mình. Chỉ có
một cách duy nhất đối với việc này: Đừng để những
người sử dụng chạy bất kỳ thứ gì họ muốn!
Lấy XBox 360 làm ví
dụ. Thực sự đây là một máy tính đủ lông đủ cánh,
với thị phần khổng lồ, chạy một hệ điều hành
Windows. Vâng, với tất cả các điểm tổn thương kết
hợp lại đó thì nó không biết các trojan đang trôi nổi
xung quanh trong thế giới hoang dã. Vì sao? Vfi toàn bộ sự
truy cập hệ thống bị hạn chế đối với các công ty
được thiết lập với một chuỗi trách nhiệm rõ ràng.
Những người sử dụng không thể chạy các phần mềm
không được ký trong hệ thống, và thậm chí với những
người lập trình XNA chỉ có được sự truy cập vào
chiếc hộp cát què quặt.
There
seems to be a recurring phenomenon in the technology press, where any
trojan that affects Linux
or Macs becomes front page news. On the other hand, trojans that
affect Windows are mostly ignored, perhaps because this is
considered to be the normal state of affairs.
There
are two common statements made in the discussions of these rare
events:
- No operating system will ever be secure from Trojans.
- Linux/Mac only have fewer viruses because no one uses them.
The
first statement is almost correct, whereas the second one is a flat
out myth in my opinion. Let me explain, and I’ll listen if you
still disagree after reading the following in its entirety.1.
No operating system will ever be totally secure from Trojans...
but only as long as they allow anyone to write un-sandboxed software
for it.
If
users have the ability to run anything, they can also install
anything they are tricked into running. Anyone can trick people into
running a script to format their drive on any operating system... if
the user is gullible enough to click through the prompts and enter
the admin password. There is only one way around this: Don’t
let the users run anything they want!
Take the
XBox 360, for
example. It’s actually a full fledged computer, with huge
marketshare, running a Microsoft
operating system. Yet, with all these compounding points of
vulnerability it has no known trojans floating around in the
wild. Why? Because full system access is restricted to
established companies with a clear chain of responsibility. Users
can’t run unsigned software on the system, and even with XNA indie
devs get only crippled sandbox access.
Apple’s
taking this same approach with their Mac App Store. Apps
delivered through the store must run in a sandboxed
environment. Microsoft is also doing the same thing with their
Windows 8 app store. If devs want to create their own apps with
full system access, they won’t be able to play in these
ecosystems. Of course, Apple and Microsoft still let their
own apps, the ones devs will be competing against, run with full
system access (look for anti-trust lawsuits here later).
After “Secure Boot” (i.e. restricted boot) is prevalent, and the operating systems are locked down to not allow anyone to sideload any non-OEM software, we could be completely free of trojans and viruses. That might be good for the average level of system security, but it would be a horrible blow to innovation, competition, and the indie/hobbyist developers.
After “Secure Boot” (i.e. restricted boot) is prevalent, and the operating systems are locked down to not allow anyone to sideload any non-OEM software, we could be completely free of trojans and viruses. That might be good for the average level of system security, but it would be a horrible blow to innovation, competition, and the indie/hobbyist developers.
Apple thực hiện tiếp
cận y hệt với kho ứng dụng Mac App Store của hãng. Các
ứng dụng được phân phối thông qua cửa hàng phải chạy
trong một môi trường hộp cát đóng. Microsoft cũng làm
điều y hệt với kho các ứng dụng của Windows 8. Tất
nhiên, Apple và Microsoft vẫn để lại các ứng dụng của
riêng họ, các ứng dụng mà các lập trình viên sẽ cạnh
tranh với nhau một lần nữa, chạy với sự truy cập đầy
đủ vào hệ thống (tìm các vụ kiện chống độc quyền
ở đây sau).
Sau khi “Khởi động
An toàn” (như sự khởi động bị hạn chế) là thường
thấy, và các hệ điều hành bị khóa lại không cho phép
bất kỳ ai tải bên ngoài bất kỳ phần mềm không phải
của các nhà sản xuất thiết bị gốc (OEM), chúng ta có
thể hoàn toàn tự do đối với các trojan và virus. Điều
đó có thể là tốt cho mức an ninh hệ thống trung bình,
nhưng nó có lẽ là một cú đánh kinh hoàng cho đổi mới,
sạu cạnh tranh và các lập trình viên chuyên nghiệp/làm
theo niềm đam mê.
2.Liệu
sự áp dụng hệ thống có trực tiếp liên can tới sự
có thể có virus/trojan ngày một gia tăng hay không? Không.
Theo quan điểm của tôi.
Có nhiều lý do các hệ thống Linux có ít virus hơn, và
thị phần chỉ là một yếu tố. Tôi sẽ đề cập tới
chúng từ quan điểm của Linux. Trên các đồ của Mac, vài
điểm không áp dụng được, vì Apple đã lấy các phần
mềm tự do và biến nó thành đóng, khu vường có hàng
rào bao bọc.
Số phần
trăm khổng lồ các phần mềm cho Linux được cài đặt
từ các kho được ký:
1)
Bản thân các bản tải về được ký có mật mã.
Khi
một người sử dụng tải các phần mềm và các trình
điều khiển cho Windows, họ thường làm điều đó từ
nhiều website khác nhau trên Internet, và tin tưởng rằng
những người quản trị của mỗi website có năng lực và
đã làm đúng phận sự của họ để triển khai an ninh
đúng phù hợp. Vào thời điểm tải về, không có sự
kiểm tra để khẳng định sự hợp lệ rằng tệp mà
người sử dụng đang lấy thực sự được một nguồn
tin cậy tạo ra (và không một tin tặc nào đã thâm nhập
được vào site đó) hoặc đang được một số người
trung gian nào đó phục vụ.
Trên
Linux, với một ít ngoại lệ, các trình điều khiển phần
cứng cũng được đưa vào trong nhân. Như đối với phần
mềm, những người sử dụng thường tải về chúng chỉ
từ một tập hợp có giới hạn các kho mà các phát tán
sở hữu. Tất cả các phần mềm được phân phối trong
các gói cài đặt được ký có mật mã và những chữ ký
đó được kiểm tra tại thời điểm cài đặt. Nếu một
gói bị thay thế bằng một phiên bản bị thâm nhập và
vì thế đã không được ký bằng một chứng chỉ tin
cậy, thì những người sử dụng sẽ có được một cảnh
báo lỗi to khổng lồ cho họ về điều đó.
2. Does
system adoption directly correlate to an increased likelihood of
viruses / trojans? No. Not in my opinion. There
are many reasons Linux systems have fewer viruses, and market share
is only one factor. I’ll address these from the Linux
perspective. On the Mac side of things, several of the points
don’t apply, as Apple has taken free software and brought it
into its closed, walled garden.A
huge percentage of Linux software is installed from signed
repositories:
1)
The downloads themselves are cryptographically signed.
When
a user downloads software and drivers for Windows, they’re
typically doing it from many different websites on the internet, and
trusting that the admins of every one of those sites is competent and
has done their due diligence to implement the proper security.
At the time of the download, there is no check to verify that the
file the user is getting was actually created by a trusted source
(and not a hacker that has pwn’d the site) or is being served by
some man in the middle.
On Linux, with few exceptions, the hardware drivers are also included with the kernel. As for software, users typically download that from only a limited set of distro-owned repositories. All software is delivered in installation packages that are cryptographically signed and those signatures are checked at installation time. If a package has been replaced with a hacked version and was therefore not signed with a trusted cert, users will get a big fat error warning them of that.
2) The repositories (“repos”, for short) keep all of the software up to date, not just the kernel or things made by the distro creator.
On Linux, with few exceptions, the hardware drivers are also included with the kernel. As for software, users typically download that from only a limited set of distro-owned repositories. All software is delivered in installation packages that are cryptographically signed and those signatures are checked at installation time. If a package has been replaced with a hacked version and was therefore not signed with a trusted cert, users will get a big fat error warning them of that.
2) The repositories (“repos”, for short) keep all of the software up to date, not just the kernel or things made by the distro creator.
When
a security flaw is found in a Windows application, the vendor will
usually put an update on their website. With the exception of a
few MS partners that have their drivers on Windows Update, it is up
to the user to go discover that and update their software.
On
Linux, security issues can be raised and patches created by any
entity, not just the original software author. These updates
are applied and pushed into the repos for all applications.
Users become aware of it almost immediately - as most distros
check regularly and prompt users to click a button to update the app.
2) Các kho (“repos”,
nói ngắn gọn) giữ cho tất cả các phần mềm được
cập nhật, không chỉ nhân hay những thứ được người
sáng tạo ra phát tán đó làm ra.
Khi
một lỗi an ninh được tìm thấy trong một ứng dụng
Windows, thì nhà cung cấp thường sẽ đặt một bản cập
nhật lên website của họ. Với ngoại lệ của một ít
các đối tác của Microsoft mà có các trình điều khiển
của họ trong Windows Update, còn lại là phụ thuộc vào
người sử dụng đi khám phá là cập nhật cho các phần
mềm của họ.
Trên
Linux, các vấn đề về an ninh có thể được nảy sinh và
các bản vá được bất kỳ thực thể nào tạo ra, chứ
không chỉ tác giả của phần mềm gốc ban đầu. Những
bản cập nhật đó được áp dụng và được đẩy vào
các kho cho tất cả các ứng dụng. Những người sử dụng
đã nhận thức được về nó hầu như ngay lập tức -
khi mà hầu hết các phát tán thường xuyên kiểm tra và
nhắc nhở những người sử dụng để nháy vào một núm
để cập nhật các ứng dụng.
I
finally found a trojan! It's a Windows trojan in my Junk email
folder, that doesn't work on my Linux box.
More
than 99% of the software is open source:
It’s
not unreasonable to wonder “How does having the source code
available for any nefarious hackers to peruse, make software more
secure?”. The answer can be summed up in something Eric
Raymond said about 13 years ago: “Given enough eyeballs, all
bugs are shallow”.
In the Windows world, we are trusting the vendor to have done the due diligence to investigate their own code for buffer overflows and other exploitable flaws. No one else has seen the code, so automated software source scans/reviews are impossible.
In the Windows world, we are trusting the vendor to have done the due diligence to investigate their own code for buffer overflows and other exploitable flaws. No one else has seen the code, so automated software source scans/reviews are impossible.
In
the Linux world, there are dozens of companies and security
researchers that constantly run scans over the entire ecosystem of
software in their repositories - not just the software they’ve
developed themselves.
Hơn 99% các phần mềm là phần mềm nguồn mở:
Hơn 99% các phần mềm là phần mềm nguồn mở:
Không phải là không
hợp lý để nghi ngờ “Làm thế nào có mã nguồn sẵn
sàng cho bất kỳ tin tặc bất chính nào để xem xét kỹ,
lamf cho phần mềm an ninh hơn nhỉ?”. Câu trả lời có
thể được tóm tắt trong thứ gì đó mà Eric Raymond đã
nói 13 năm về trước: “Có đủ các con mắt, thì tất
cả các lỗi sẽ cạn”. Trong thế giới của Windows,
chúng ta đang tin tưởng vào nhà cung cấp đã làm xong
trách nhiệm điều tra mã nguồn của riêng họ đối với
lỗi tràn bộ nhớ đệm và các lỗi có khả năng bị
khai thác khác. Không có ai khác nhìn thấy được mã nguồn
cả, nên việc tự động quét/rà soát lại mã nguồn của
các phần mềm là không thể.
Trong thế giới Linux,
có hàng tá các công ty và các nhà nghiên cứu an ninh
thường xuyên chạy các lần quét qua toàn bộ hệ sinh
thái của phần mềm trong các kho của họ - không chỉ
phần mềm mà bản thân họ đã phát triển.
Mã nguồn mở cũng có
xu hướng tự cho vay để sử dụng lại. Trong thế giới
Linux, các lập trình viên thậm chí sẽ không bị xúi giục
đi triển khai một tính năng trọng tâm về an ninh như bản
thân các thư viện SSL, khi có những thư viện làm việc
tuyệt vời, như những thứ có thể đưa trình gỡ rối
các lỗi của chúng vào và sửa bất kỳ lỗi nào nằm
bên trong, là một tài sản tuyệt vời.
Trong Windows, có một
sự tăng cường về suy nghĩ “không phát minh ở đây”
khi các ứng dụng tái triển khai cái bánh xa cho dự án
nguồn đóng của họ để tránh phải trả tiền cho các
lập trình viên phần mềm sở hữu độc quyền khác vì
một thư viện tiện ích được hiệu đính tốt. Một
phát tán Linux còn hơn cả chỉ Linux. Linux là nhân, và
nhiều thành phần khác là một phần của môi trường
GNU. Các gói chung (như máy chủ web Apache) được sử dụng
trong các hệ điều hành nguồn mở khác nhau, bao gồm cả
BSD. Và, trong trường hợp bạn không biết, thì các chàng
trai BSD là dạng những người say mê về an ninh. Vì thế,
những thành phần đó đã được soi xét kỹ lưỡng với
hàng trăm chiếc răng lược tốt.
Kết hợp bản chất
tự nhiên nguồn mở của Linux với hệ thống các kho được
sử dụng cho sự phân phối các phần mềm, và bất kỳ
ai cũng có thể thấy vì sao các khai thác Linux lại có
vòng đời cực ngắn đáng sốc như vậy: Khi một khai
thác ngày số 0 được tìm thấy, các cao thủ vội vã xem
ai có thể tới với sự sửa lỗi tốt nhất (vì mỗi
người đều có được sự truy cập tới nguồn), và nó
được đẩy vào trong các kho và đưa ra cho mọi người
ngay lập tức.
Open
source code also tends to lend itself to re-use. In the Linux
world, devs are not even going to be tempted to go implementing a
security-centric feature like SSL libraries themselves, when there
are perfectly working ones available for their open source apps to
use for free. Having that code open, such that they can step
their debugger into and fix any underlying bugs themselves, is
a great asset.
On Windows, there’s a reinforcement of the “not invented here” mindset as apps re-implement the wheel for their closed-source project in order to avoid paying other proprietary software developers for a decently vetted utility library. A Linux distribution (distro) is more than just Linux. Linux is the kernel, and many of the other components are part of the GNU environment. Common packages (ex. Apache web server) are used in other open source operating systems, including BSD. And, in case you didn't know, the BSD guys are kind of nuts about security. So, these components have been scrutinized with a hundred fine toothed combs.
On Windows, there’s a reinforcement of the “not invented here” mindset as apps re-implement the wheel for their closed-source project in order to avoid paying other proprietary software developers for a decently vetted utility library. A Linux distribution (distro) is more than just Linux. Linux is the kernel, and many of the other components are part of the GNU environment. Common packages (ex. Apache web server) are used in other open source operating systems, including BSD. And, in case you didn't know, the BSD guys are kind of nuts about security. So, these components have been scrutinized with a hundred fine toothed combs.
Combine
the open-source nature of Linux with the repository system used for
software distribution, and anyone can see why Linux exploits have
shockingly short lifespans: When a 0-day exploit is found,
the geeks rush to see who can come up with the best fix (since
everyone has access to the source), and it’s pushed into the repos
and out to everyone immediately.
Linux
distros are diverse:
Các phát tán Linux
là đa dạng:
Các trojan thành công
dựa vào một số lỗi hoặc sâu bọ để tồn tại, để
giành lấy các quyền ưu tiên được leo thang. (Tôi biết,
đúng thế chứ?). Trên Windows, các tác giả của phần mềm
độc hại có thể khá chắc chắn rằng lỗi của nhân mà
tồn tại trong máy Windows 7 của họ cũng tồn tại trong
máy Windows 7 của bạn (nếu cả 2 đều được cập nhật).
Trên Linux, những tin
tặc có thể đó có lẽ sẽ cực kỳ may mắn nếu 2 phát
tán khác nhau đang chạy cùng một nhân - ít nhiều cùng
tập hợp y hệt các bản vá - và có thể là nếu chúng
đã được xây dựng với cùng y hệt các lực chọn biên
dịch. Các lỗi y hệt không tồn tại ở khắp mọi nơi,
nó làm cho Linux ít trở thành mục tiêu có thể hơn. Nó
vẫn còn là một mục tiêu hấp dẫn (vì một số % lớn
các máy chủ luôn sống trên Internet chạy nó), nó chỉ
không dễ dàng gì bị khai thác ở mức hệ điều hành mà
thôi.
Vì thế, kết luận
là rõ ràng: Thậm chí nếu chúng đã có thị phần chính
xác y hệt như nhau, thì cực kỳ không chắc rằng Linux có
thể bao giờ đó có số lượng các khai thác y hệt như
chúng ta thấy trong hệ sinh thái nguồn đóng như với
Windows. Đây là một kết quả trực tiếp của bản chất
tự nhiên mở, nó cho phép hằng hà xa số các công ty và
những người ham thích truy cập và duy trì tất cả các
phần của hệ thống - một tính năng mà đơn giản không
thể nhân bản được trong các hệ điều hành sở hữu
độc quyền. Linux sẽ luôn có nhiều hơn các con mắt soi
xét qua mã nguồn để làm cho nó an ninh, hơn là việc có
những con mắt nhìn qua mã nguồn để khai thác nó.
Tôi chào đón bất kỳ
đàm luận hiểu biết nào về chủ đề này, thậm chí
nếu bạn không đồng ý với tôi.
Successful
trojans rely on some bug or flaw to exist, in order to gain elevated
privileges. (I know: duh, right?) On Windows, malware authors
can be pretty sure that the kernel bug that exists on their
Windows 7 box also exists on your Windows 7 box (if both are up
to date).
On
Linux, these would-be-hackers would be extremely lucky if two
different distros are running the same kernel -- much less
the same patch-sets -- and maybe if they were built with the
same compile options. The same bugs do not exist everywhere,
which makes Linux a less viable target. It's still an attractive
target (since a large percentage of the always-on servers on the
Internet run it), it's just not as easily exploited at the OS level.
So,
the conclusion is obvious: Even if they had the exact same
market share, it is extremely unlikely that Linux would ever have the
same number of exploits as we see in closed-source ecosystems such as
Windows. This is a direct result of the open nature, which
allows for innumerable companies and hobbyists to access and maintain
all portions of the system--a feature that simply can't be replicated
in proprietary operating systems. Linux will always have more eyes
looking through the code to make it secure, than there are eyes
looking through the code to exploit it.
I welcome any intelligent discourse on the topic, even if you disagree with me.
I welcome any intelligent discourse on the topic, even if you disagree with me.
Dịch: Lê Trung Nghĩa
Phét, vẫn dính như thường.
Trả lờiXóa