Tại sao các hệ điều hành dựa trên Linux được coi là an toàn hơn Windows? [đóng cửa]


19

Tôi nghe nói rằng các hệ thống dựa trên Linux là tốt hơn cho bảo mật. Rõ ràng là họ không có virus và không cần phần mềm chống vi-rút. Ngay cả trường đại học của tôi cũng tuyên bố điều này - họ từ chối có Windows trên máy chủ của họ, điều này thật đáng xấu hổ vì chúng tôi muốn sử dụng .NET framework để tạo một số trang web.

Lý do duy nhất tôi có thể thấy Linux an toàn hơn là vì nó là nguồn mở, vì vậy về mặt lý thuyết, các lỗi sẽ bị bắt và sửa sớm hơn.

Tôi biết một chút về cách các hệ điều hành hoạt động, nhưng chưa thực sự hiểu sâu về cách Linux và Windows triển khai HĐH của chúng. Ai đó có thể giải thích sự khác biệt làm cho các hệ thống dựa trên Linux an toàn hơn không?


5
Tôi không trả lời chính xác câu hỏi của bạn, nhưng tôi muốn bảo vệ sự lựa chọn của trường bạn một chút. Trường tôi vận hành cả hệ thống windows và hệ thống linux (cố gắng) chia sẻ một hệ thống tệp chung. Nhưng trong thực tế, điều này có thể tốn kém vì các cửa sổ và tên miền unix trên mạng thực sự không hợp nhau, thật đáng buồn. Cho rằng chúng tôi thấy người dùng Windows cần sử dụng một số thành phần nguồn mở hơn là ngược lại (xin lỗi về .net), nên có một lựa chọn đáng nể là họ chỉ hỗ trợ Linux trên phần cứng nền tảng cốt lõi như máy chủ. Linux hỗ trợ hầu hết các dịch vụ quan trọng hiện nay
Notmyfault

cảm ơn phản hồi của bạn - và với những người phản hồi khác nữa, chắc chắn đã giúp tôi giải tỏa mọi thứ. Đối với hồ sơ, tôi đã hoài nghi hơn là tức giận với yêu cầu của trường đại học của tôi.
echoblaze

Câu trả lời:


55

Tôi không nghĩ một hệ điều hành là "an toàn". Một cấu hình cụ thể của một hệ điều hành có mức độ chống lại các cuộc tấn công cụ thể.

Tôi có lẽ sẽ nổi bần bật vì là một "người xin lỗi Microsoft" ở đây, nhưng chủ đề này rất nghiêm túc đối với việc khái quát về "Windows" không đúng.

Windows 1.0 - 3.11, 95, 98 và ME dựa trên DOS. Dòng hệ điều hành này không có bất kỳ bảo mật nào theo nghĩa chính thức (không gian địa chỉ được bảo vệ, tách chế độ kernel / người dùng, v.v.). May mắn thay, khi chúng ta nói về "Windows" ngày nay, chúng ta không nói về các hệ điều hành này.

Nhóm hệ điều hành Windows NT (Windows NT 3.5, 3.51, 4.0, 2000, XP, 2003, Vista, 2008 và 7) đã có một hệ thống bảo mật rất hợp lý được "thiết kế" kể từ khi phát hành lần đầu vào năm 1992. Hệ điều hành này là được thiết kế với "Cuốn sách màu da cam" của TCSEC trong khi không hoàn hảo, tôi nghĩ nó được thiết kế và thực hiện hợp lý.

  • Windows NT là "nhiều người dùng" ngay từ đầu (mặc dù chức năng của nhiều người dùng nhận giao diện người dùng đồ họa đồng thời từ cùng một máy chủ đã không xảy ra cho đến khi Citrix WinFrame trong kỷ nguyên Windows NT 3.51). Có sự phân tách chế độ kernel / user, với bảo vệ không gian địa chỉ dựa trên các chức năng phần cứng cơ bản của MMU và CPU. (Tôi muốn nói rằng nó rất "Unix-y", nhưng thực ra nó rất "VMS-y".)

  • Mô hình cấp phép hệ thống tập tin trong NTFS khá "phong phú" và mặc dù nó có một số mụn cóc liên quan đến "thừa kế" (hoặc thiếu nó - xem Làm thế nào để khắc phục lỗ hổng thiết kế Di chuyển / Sao chép NTFS? ), Cho đến khi 10 năm gần đây, các hệ điều hành kiểu Unix đã thực hiện chức năng tương tự. (Novell NetWare đánh bại Microsoft về cú đấm này, mặc dù tôi nghĩ rằng MULTICS đã đánh bại cả hai ...

  • Trình quản lý điều khiển dịch vụ, bao gồm hệ thống cấp phép để kiểm soát quyền truy cập vào các chương trình dịch vụ bắt đầu / dừng / tạm dừng được thiết kế rất tốt và mạnh mẽ hơn nhiều trong thiết kế mà các kiến ​​trúc "init.d" "khác nhau" (giống như "thỏa thuận của quý ông" ") Trong nhiều bản phân phối Linux.

  • Người quản lý đối tượng điều hành (xem http://en.wikipedia.org/wiki/Object_Manager_(Windows) ), một cách lỏng lẻo đối với hệ thống tập tin / Proc và hệ thống tập tin / dev kết hợp, có mô hình ACL tương tự với hệ thống tập tin và phong phú hơn nhiều bất kỳ mô hình cấp phép nào tôi biết về / Proc hoặc / dev trên bất kỳ bản phân phối Linux nào.

  • Mặc dù chúng ta có thể tranh luận về ưu điểm và nhược điểm của sổ đăng ký, mô hình cấp phép cho các khóa trong sổ đăng ký chi tiết hơn nhiều so với mô hình thiết lập quyền trên các tệp trong thư mục / etc. (Tôi đặc biệt thích ý kiến ​​của Rob Short: đăng ký trong cuộc phỏng vấn "Phía sau bộ luật":http://channel9.msdn.com/shows/Behind+The+Code/Rob-Short-Operating-System-Evolution Rob ban đầu là một trong những người đứng sau Windows registry và tôi nghĩ rằng anh ta không an toàn khi nói rằng anh ta không an toàn nhất thiết phải hạnh phúc với cách mọi thứ bật ra.)

Bản thân Linux chỉ là một hạt nhân, trong khi Windows thì khó phân phối hơn Linux. Bạn đang so sánh táo và cam để so sánh chúng như thế. Tôi đồng ý rằng Windows khó "lột xác" hơn một số hệ thống dựa trên Linux. Mặt khác, một số bản phân phối Linux cũng được phát hành với rất nhiều "tào lao". Với sự ra đời của các hương vị "nhúng" khác nhau của Windows, có thể (mặc dù không công khai) để xây dựng "bản phân phối" Windows khác với hành vi của chúng từ mặc định của Microsoft (không bao gồm các dịch vụ khác nhau, thay đổi quyền mặc định, v.v.) .

Các phiên bản khác nhau của Windows đã có phần mặc định được chọn kém, các lỗi cho phép người dùng trái phép có được đặc quyền, từ chối các cuộc tấn công dịch vụ, v.v. Các hạt nhân Unix (và nhiều ứng dụng dựa trên Unix chạy mặc định là root) cùng một vấn đề Microsoft đã thực hiện một công việc tuyệt vời, kể từ Windows 2000, giúp dễ dàng phân chia các ứng dụng, chạy các chương trình với đặc quyền ít nhất và loại bỏ các tính năng không cần thiết của HĐH.

Nói tóm lại, tôi đoán những gì tôi đang nói là cấu hình cụ thể của một hệ điều hành nhất định cho nhu cầu của bạn, liên quan đến bảo mật, quan trọng hơn loại hệ điều hành bạn đang sử dụng. Các bản phân phối Windows và Linux có các khả năng rất giống với các tính năng bảo mật. Bạn có thể áp dụng các kỹ thuật bảo mật vững chắc (đặc quyền tối thiểu, cài đặt hạn chế các thành phần tùy chọn, cơ chế xác thực bảo mật bằng mật mã, v.v.) trong cả hai hệ điều hành. Cho dù bạn có thực sự làm hay không-- đó là điều quan trọng.


Đối với một người như tôi không biết các cửa sổ và hệ thống linux được xây dựng như thế nào, bài viết của bạn có nhiều thông tin
echoblaze

Đã đồng ý. Điểm tốt.
Kyle Hodgson

1
+1 - Tôi là người dùng Linux tại nhà và chủ yếu là chuyên gia bảo mật Windows tại nơi làm việc. Cấu hình quan trọng hơn nhiều so với HĐH, và bạn chắc chắn cần so sánh các bản phân phối Linux với Windows, không chỉ là 'Linux' là hạt nhân.
romandas

3
vỗ tay chậm +1
bánh quy gà

Một điều thực sự đã làm tổn thương thế giới Windows trong một thời gian dài (ngay cả khi bây giờ chủ yếu là lịch sử) là trong một thời gian rất dài, bạn phải là quản trị viên địa phương để làm rất nhiều việc trong khi trong thế giới * nix bạn chỉ đơn giản là được sudoer trên máy đó. Vấn đề rõ ràng là mọi thứ được điều hành bởi một quản trị viên cục bộ, hầu hết các máy đều có thể làm bất cứ điều gì với máy. Nó sẽ là một mối đe dọa tương đương với linux / unix nếu nó không phải là một thực tiễn nổi tiếng không phải là root mà là sudo / su khi cần thiết. Tôi đoán nó không thực sự là một vấn đề về windows nhưng là một phần mềm và với UAC thì nó hầu như đã được sửa.
Fredrik

16

Một điều khác không được đề cập là bảo mật trong Windows mờ hơn nhiều so với Linux.

Ví dụ: tôi có thể xem một vài tệp văn bản và xem chính xác máy chủ web của tôi đang chạy gì. IIS? Không quá nhiều - bạn có thể thấy kết quả của cấu hình thông qua công cụ GUI, nhưng có các cài đặt ẩn. Sau đó, bạn phải sử dụng một bộ công cụ khác để xem lại ACL trên các tệp, v.v.

Hầu hết các chương trình trong thế giới windows đều giống nhau - rất khó để hiểu nhanh chính xác những gì ảnh hưởng đến môi trường thời gian chạy, giữa registry và ACL.


11

Không biết về so sánh quyền truy cập tệp đó ... khi tôi là quản trị viên UNIX / Linux, NT4 có tệp ACL có độ chi tiết cao hơn nhiều so với quyền theo kiểu '777' truyền thống của UNIX / Linux. Tất nhiên, quyền không phải là tất cả mọi thứ và tôi chắc chắn rằng các bản phân phối Linux hiện đại ít nhất cũng có sẵn các ACL chi tiết, ngay cả khi chúng không được triển khai theo mặc định. Theo quan điểm của tôi, các khái niệm sudo và root luôn xuất hiện trong UNIX, mặc dù Windows đã bổ sung các khái niệm này một cách ổn định và có lẽ bây giờ đã ngang bằng.

Giải thích của riêng tôi là vì mã nhân Linux, và nhiều trình điều khiển và tiện ích của nó, đã mở - có thể nó đã được xem xét rộng rãi hơn và được sửa chữa thường xuyên hơn cho các lỗi mã hóa có thể dẫn đến các lỗ hổng từ xa mà tin tặc có thể khai thác. Lý thuyết cho rằng, dù sao đi nữa, vì Linux không thuộc sở hữu của một tập đoàn, nên nó có thể khám phá mục tiêu bảo mật đầy đủ hơn so với một tập đoàn có thể. Doanh nghiệp phải kiếm tiền; trong khi các nhóm nguồn mở đơn giản là không có hạn chế này.

Việc truy cập vào hệ thống Linux dễ dàng hơn nhiều và chỉ cần tắt toàn bộ hệ thống cửa sổ, trình nền RPC, v.v. - bạn có thể đưa hệ thống dựa trên Linux hoặc BSD xuống một hoặc hai cổng mở với tối thiểu các gói được cài đặt và vẫn có một hệ thống rất hữu ích rất dễ dàng Điều này có lẽ có liên quan nhiều đến di sản UNIX với tư cách là hệ điều hành của nhà phát triển; tất cả mọi thứ được xây dựng để được mô-đun, không kết nối quá nhiều. Điều này dẫn đến một hệ thống có thể cấu hình hơn nhiều, nơi bạn có thể chỉ cần loại bỏ những thứ không liên quan. Tôi không nghĩ nó dễ làm cứng máy chủ Windows theo cách này.

Nhóm OpenBSD đã đưa khái niệm này đến mức cực đoan. Mục tiêu số một của chương trình là xem xét mọi dòng mã cho các lỗi bảo mật có thể xảy ra. Bằng chứng là trong pudding, một số lỗ hổng cực kỳ thấp đã được tìm thấy cho OpenBSD trong những năm qua do sự chú ý gần như cuồng tín này (tôi sử dụng từ này với sự chú ý).

Các tập đoàn, trong khi họ tạo ra phần mềm tuyệt vời (MSSQL, Exchange, Windows Server 2003 đều tuyệt vời trong cuốn sách của tôi), chỉ có các mục tiêu khác nhau.


5
Vâng; Windows ACL có độ mịn cao hơn Linux / Unix không có ACL (mặc dù hầu hết các phiên bản hiện đại đều có tùy chọn sử dụng ACL). Sự khác biệt đáng kể là mọi người có xu hướng đăng nhập vào Windows với tư cách Quản trị viên - đó vẫn là thiết lập tiêu chuẩn trên máy tính xách tay XP do công ty cung cấp - trong khi mọi người trên Linux / Unix không thực hiện hầu hết các hoạt động với quyền root. Điều này giới hạn thiệt hại có thể được thực hiện trên Linux / Unix so với Windows - theo mặc định. Nếu ai đó chạy bằng root toàn bộ thời gian, tất cả các cược đều bị tắt (ngoại trừ việc họ sẽ gặp sự cố đáng tiếc - và hối tiếc - sớm hay muộn).
Jonathan Leffler

"Rất đúng là các khái niệm sudo và root luôn xuất hiện trong UNIX và giờ chỉ đến với Windows." Bạn đang nói về cái gì vậy? Windows NT không cũ như Unix, nhưng Windows NT có bảo mật "được thiết kế" rất hợp lý kể từ khi nó được phát hành vào năm 1992. Thật không may là rất nhiều quản trị viên Windows không triển khai người dùng với tài khoản "người dùng hạn chế" (như họ nên có, ngay từ đầu), nhưng điều đó không làm hỏng hệ điều hành.
Evan Anderson

Từ quan điểm máy chủ, được cấp. Nhưng một người dùng Windows thông thường cần có quyền truy cập Quản trị để có một môi trường thậm chí hợp lý thoải mái cho đến Vista. Tôi thấy "nhấp chuột phải, chạy với tư cách quản trị viên" của Vista tương đương với sudo.
Kyle Hodgson

3
Tôi hoàn toàn không đồng ý. Tôi đã làm mất hàng ngàn máy tính để bàn kể từ Windows NT 4.0 với tài khoản người dùng hạn chế. "RunAs", có phần khó hiểu với "sudo", đã có trong hệ điều hành kể từ Windows 2000 ("nhấp chuột phải, chức năng Run As"). Tôi sẽ nói rằng kiểm soát tài khoản người dùng là một tính năng ngu ngốc và không nên được đưa vào HĐH. Microsoft đã làm điều sai trái bằng cách làm cho nó "an toàn" hơn khi hoạt động như một "Quản trị viên" thay vì làm cho nó trở nên khó khăn và đau đớn hơn trong khi khuyến khích các nhà phát triển làm việc trên phần mềm không viết (tức là yêu cầu quyền "Quản trị viên").
Evan Anderson

2
Người dùng Vista tại các trang web Khách hàng của tôi không bao giờ thấy UAC vì họ đang chạy dưới dạng tài khoản người dùng bị giới hạn. Bạn sẽ chỉ nhìn thấy UAC nếu bạn đang chạy với tư cách là "Quản trị viên". Bạn có thể vô hiệu hóa UAC bằng chính sách nhóm, nhưng bạn không cần phải làm thế.
Evan Anderson

9

Theo tôi, nếu cấu hình đủ các hệ thống dựa trên Linux thì an toàn hơn các hệ thống Windows. Một số lý do là:

  1. Tính minh bạch và các công cụ mạng đơn giản phong phú: Ví dụ, người quản trị Linux rất dễ dàng nhìn thấy cấu hình tường lửa hiện tại bằng cách nhập "iptables -L -n" trên shell. Bạn cũng có thể xem cổng nào đang mở trên máy bằng cách chạy "nmap" từ máy Linux khác. Điều này làm cho cuộc sống dễ dàng hơn nhiều khi bạn có thể chỉ định rất chính xác cổng nào được phép truy cập và từ địa chỉ nào, v.v.

  2. Tệp nhật ký văn bản ở một vị trí: Tệp nhật ký dựa trên văn bản ở một vị trí "/ var / log" dễ dàng sao lưu và phân tích. Ngoài ra các công cụ như logwatch có thể giám sát các tệp nhật ký này và gửi email cho bạn các dòng quan trọng giúp mọi việc trở nên rất dễ dàng. Chúng tôi thậm chí có thể viết các công cụ của riêng mình để phân tích các tệp nhật ký và tìm thông tin mà chúng tôi quan tâm. Nhật ký thậm chí có thể được xuất sang máy chủ nhật ký hệ thống từ xa trong trường hợp chúng tôi không muốn có nhật ký trên cùng một máy chủ.

  3. Không phải lo lắng về vi-rút: Liệu vi-rút có ít hơn trong Linux hay không vì có ít hệ thống dựa trên Linux HOẶC vì tất cả người dùng yêu thích Linux hoặc vì Linux an toàn hơn. Lý do không quan trọng. Nếu cuối cùng Linux có ít mối đe dọa virus hơn thì đó là một điều tốt về Linux. Cá nhân tôi đã thấy mọi người cài đặt hai phần mềm chống vi-rút, chống phần mềm gián điệp và chống phần mềm quảng cáo trên cùng một máy. Tất cả các công cụ bảo vệ này ăn rất nhiều CPU và bộ nhớ.

  4. Hỗ trợ cho nhiều ngôn ngữ lập trình: Rất dễ viết mã trong Linux. C, C ++, Python, Perl, Java, v.v ... chỉ hoạt động mà không cần cài đặt bất kỳ gói bổ sung nào. (Điều này trong trường hợp bạn cài đặt một bản phân phối lớn như Fedora có trong DVD.) Nó tăng thêm tính bảo mật khi chúng ta có thể thực hiện các tác vụ lặp đi lặp lại bằng cách mã hóa. Vì vậy, nếu mắc lỗi và có một vấn đề, đó sẽ là với tất cả các tài khoản và nó sẽ dễ dàng phát hiện và sửa chữa. Nếu chúng tôi phải thực hiện các thay đổi tương tự với số lượng lớn tài khoản / thư mục bằng tay, chúng tôi có thể mắc lỗi trong một hoặc hai và có thể mất nhiều thời gian để tìm ra những lỗi đó. Ngoài ra chúng ta có thể sửa các lỗi và tìm kiếm các lỗi đơn giản bằng cách sử dụng mã. Vì tất cả các tệp cấu hình, tệp thông tin người dùng, tệp nhật ký, v.v. đều ở dạng văn bản nên rất dễ mã hóa bất cứ thứ gì chúng ta muốn đạt được và có nhiều cách để thực hiện cùng một việc.

  5. Mã nguồn mở: Vì có lẽ nhiều người đã nhìn thấy mã, rất hiếm khi một số phần mềm gián điệp / phần mềm quảng cáo là một phần của các ứng dụng đi kèm với Linux. Bạn cũng có thể xem mã nguồn nếu bảo mật rất quan trọng đối với một số dịch vụ và xem nó hoạt động như thế nào. Nếu bạn biết chính xác làm thế nào nó hoạt động, sau đó bạn biết những hạn chế và khi nào nó sẽ phá vỡ. Trong thực tế nếu có những hạn chế bảo mật nổi tiếng sẽ được ghi lại trong các trang man, trang web gói và trong các bình luận trong các tệp cấu hình. Các nhà phát triển không có gì để nói rằng nếu bạn sử dụng công cụ của chúng tôi trong kịch bản như vậy thì thật rủi ro. Nó có thể không sinh lợi cho các tổ chức bán phần mềm để đưa ra các hạn chế cho phần mềm và nó sẽ làm cho phần mềm của họ trông tệ và có thể làm giảm doanh số / lợi nhuận.

  6. Miễn phí và khả năng tương tác: Mặc dù điều này không liên quan đến bảo mật. Đối với trường đại học có vấn đề về chi phí, các hệ thống dựa trên Linux tiết kiệm hơn nhiều so với các hệ thống dựa trên Windows và không cần phải mua giấy phép cho HĐH, cũng như đối với phần mềm bổ sung mà chúng tôi sẽ cài đặt sau khi cài đặt HĐH. Liên quan đến khả năng tương tác, chúng tôi có thể kết nối từ các máy Linux với các HĐH khác và chia sẻ tệp dễ dàng. Trong linux, chúng ta có thể gắn kết nhiều hệ thống tập tin bao gồm FAT, NTFS, HFSPLUS. Chúng tôi có thể chia sẻ mọi thứ bằng cách sử dụng ftp, http, ssh, samba, nfs, v.v. và tất cả những thứ này được cài đặt hoặc có thể được cài đặt bằng một lệnh. Hệ điều hành khác thường chỉ cung cấp một tùy chọn chia sẻ mọi thứ.

Nhưng nếu không được cấu hình đúng hệ thống dựa trên Linux có thể gây ra nhiều vấn đề hơn thì người ta có thể tưởng tượng. Nhiều người dùng có thể đăng nhập vào máy cùng một lúc và làm hầu hết mọi thứ chỉ từ vỏ. Nó rất dễ dàng để rời khỏi backtime, trojan trong trường hợp tường lửa không được cấu hình đúng. Kẻ tấn công có thể xóa tệp nhật ký hoặc giả mạo chúng để ẩn dấu vết của mình. Kẻ tấn công có thể mã hóa trên máy bị tấn công vì tất cả các trình soạn thảo, trình biên dịch, trình gỡ lỗi đều có sẵn một khi kẻ tấn công có quyền truy cập shell. Tất cả các máy chủ ftp, http, có thể được chạy từ tài khoản người dùng không phải trên các cổng an toàn (1-1024). Vì vậy, kẻ tấn công có thể tải xuống mã máy chủ http, biên dịch mã và chạy máy chủ http trên cổng 6000 để làm cho nó trông giống như X Server.

Vì vậy, các hệ thống Linux được quản trị viên cung cấp an toàn hơn, biết những gì anh ta đang làm hoặc ít nhất là cả hai phải tìm kiếm thông tin trong các trang hướng dẫn và tài liệu trước khi thực hiện một số thay đổi mới.


6

Bảo mật máy chủ không chỉ là HĐH. Tôi muốn nói rằng một yếu tố lớn hơn trong bảo mật máy chủ là người điều hành máy chủ và họ đã cẩn thận như thế nào về việc khóa mọi thứ.

Điều đó nói rằng, nếu trường đại học là một cửa hàng Linux, họ sẽ không cho phép bạn sử dụng Windows Server bất kể dữ liệu nào bạn tìm thấy trên bảo mật máy chủ Windows. Tôi sẽ điều tra bằng Mono (www.mono-project.com) nếu bạn muốn sử dụng khung .Net.


6

Trong suốt

  • Chạy ps auxfvà bạn biết dịch vụ nào đang chạy, theo tài khoản nào.
  • Chạy netstat -lnpvà bạn biết chương trình nào có cổng TCP mở.
  • Chạy iptables -Lvà bạn biết những gì quy tắc tường lửa của bạn.
  • Chạy stracehoặc lsofđể kiểm tra hoạt động quá trình.
  • Chạy ls -lahhoặc tree -pugvà bạn biết chính xác quyền sở hữu và quyền mà một thư mục hoàn chỉnh có.
  • Nhật ký đang ở trong /var/logvà có thể được kiểm tra bằng một "tìm kiếm thông qua các tập tin" đơn giản.
  • Không có cài đặt ẩn. Tất cả mọi thứ là con người có thể đọc được /etc. Tìm kiếm thông qua các tệp văn bản hoặc lưu trữ chúng hoặc áp dụng kiểm soát phiên bản (subversion / git) thực sự dễ dàng.

Xóa hệ thống cấp phép

  • Trong cơ sở, chỉ có quyền truy cập tập tin. Không có "quyền trên khóa regex", quyền ACL được kế thừa, bối cảnh bảo mật trên mỗi quy trình hoặc các tính năng ẩn khác.
  • Bit cho phép rất đơn giản:
    • Viết vào tập tin = chỉnh sửa nội dung tập tin
    • Viết vào thư mục = tạo / đổi tên / loại bỏ các nút tập tin.
    • Dính = chỉ chỉnh sửa các tập tin.
    • Các tệp có quyền thực thi hoặc setuid được tô sáng (ở lschế độ màu).
  • Một "tìm tất cả các tập tin" đơn giản tiết lộ những quyền mà người dùng có.
  • Ngoài ra, ACL chỉ có thể được sử dụng khi cần thiết.
  • Tài khoản người dùng chỉ có hai nơi để ghi tệp theo mặc định: của họ $HOME/tmp.

Tùy chọn bảo mật nâng cao

  • SELinux / AppArmor có thể hạn chế các quy trình chỉ truy cập vào một tập hợp các tệp cụ thể (bên trên các quyền của tệp)
  • Nhà tù Chroot cho phép quản trị viên chạy chương trình cách ly hoàn toàn với phần còn lại. Như thể nó được cài đặt trên một ổ cứng trống, chỉ với các tệp mà nó thực sự cần.
  • Với sudo, người dùng và quy trình có thể được cấp quyền để chỉ chạy một vài lệnh quản trị.

Điểm duy nhất cho lối vào và độ cao đặc quyền

  • Một quá trình không thể có được nhiều đặc quyền hơn trên chính nó. Cách duy nhất là bằng cách chạy một chương trình "SetUID Root" khác, như sudohoặc liên hệ với dịch vụ DBus để kiểm tra Chính sách trước. Các chương trình SetUID đó có thể được tìm thấy bằng một lệnh "Tìm kiếm tất cả các tệp".
  • IPC giữa các quá trình khá hạn chế, làm giảm các vectơ tấn công.
  • Truy cập hệ thống (bảng điều khiển văn bản, máy tính để bàn từ xa, RPC, xóa lệnh gọi, v.v.) tất cả đều xảy ra ssh. Đó là một đường hầm SSL với kiểm tra khóa chung / riêng.

Quy trình nền an toàn

  • Dịch vụ nền chạy với các đặc quyền thấp hơn càng sớm càng tốt. Các dịch vụ như Apache, Dovecot và Postfix chuyển giao kết nối đến một quy trình đặc quyền thấp càng sớm càng tốt.
  • Bị khóa theo mặc định. Microsoft cũng đã áp dụng phương pháp này trong Windows Server 2008.

Công cụ kiểm toán tốt

  • Công cụ như nmap, ncatlàm cho kiểm toán an ninh dễ dàng.
  • Dịch vụ nền có thể được kiểm tra từ dòng lệnh.
  • Công cụ kiểm toán log là phổ biến.
  • Mã hóa một dịch vụ an toàn dễ dàng hơn vì có thể được thực hiện theo cách mô đun.
  • Có rất nhiều công cụ phát hiện xâm nhập miễn phí có sẵn.
  • Các công cụ dòng lệnh được thiết kế để có thể viết script, vì vậy quản trị viên có thể tự động hóa các tác vụ.

Cập nhật bảo mật tốt

  • Mỗi phần của hệ điều hành đều nhận được cập nhật bảo mật. Khi Apache, Python hoặc PHP được cài đặt thông qua trình quản lý gói, chúng cũng sẽ nhận được các bản cập nhật.
  • Có nhiều sự cởi mở trong những gì một bản cập nhật bảo mật sửa chữa, vì vậy bạn có thể tìm hiểu làm thế nào điều đó ảnh hưởng đến bạn.
  • Tất cả các gói phần mềm đều có chung các thư viện. Họ không gửi các bản sao riêng biệt, để lại các phiên bản có thể khai thác xung quanh.
  • Không có bản vá thứ ba, chờ đợi sửa chữa khi tin tặc đã khai thác lỗi trong tự nhiên.
  • Các nhà phát triển dễ dàng kiểm tra các bản cập nhật bảo mật và triển khai chúng.
  • Không có khởi động lại phải được lên lịch để thực hiện cập nhật. Các tập tin có thể được thay thế trong khi các quy trình hiện có tiếp tục truy cập dữ liệu cũ trên đĩa. Sau đó, bạn có thể tìm ra dịch vụ nào cần khởi động lại ( lsof | grep =).
  • Toàn bộ hệ điều hành có thể được nâng cấp mà không cần cài đặt lại!

Mọi thứ được đề cập ở đây đều được phân phối hoặc mọi bản phân phối Linux chính, như Red Hat, Debian, openSUSE hoặc Ubuntu.


5

Linux được thiết kế để trở thành một hệ thống nhiều người dùng từ sớm, vì vậy nó có hệ thống cấp phép mạnh hơn nhiều so với Windows. Nó cũng được thiết kế để bạn không chạy với quyền quản trị (quyền truy cập root), vì vậy tất cả các chương trình được thiết kế không cần quyền. Điều này có nghĩa là nếu tài khoản của bạn bị xâm phạm, toàn bộ hệ thống thì không.

Một phần của nó có lẽ xuất phát từ thực tế là những người chạy Linux (nói chung), kỹ thuật hơn, và do đó ít có khả năng mắc những lỗi ngu ngốc dẫn đến máy tính bị hack.


2
Một số khác biệt giữa hệ điều hành nhiều người dùng và một người dùng: jdurrett.ba.ttu.edu/cferenceware/opsys/os01a.htmlm
moshen

7
OK, tôi đã sử dụng Linux hơn 12 năm và các hệ điều hành giống UNIX lâu hơn nữa. Nhiều như tôi thích Linux, bạn không thể nói rằng nó có hệ thống cấp phép mạnh hơn Windows. Nó có một mô hình bảo mật tốt hơn các phiên bản Windows đầu tiên (nghĩa là không phải luôn là quản trị viên), nhưng WinNT và sau này có một hệ thống cấp phép mạnh mà không được sử dụng để có hiệu quả tốt. Các phiên bản Linux gần đây có selinux, thậm chí còn mạnh hơn, nhưng đây là một bổ sung tương đối gần đây (nếu rất mạnh mẽ).
Eddie

5

'Bảo mật là về kiểm soát'

Theo quan điểm của tôi, trong Windows, bạn có ít quyền kiểm soát hơn trong Linux. Làm cứng Windows là ... khó hơn :). Mặc dù bất kỳ công cụ nào phụ thuộc vào kỹ năng của người sử dụng, tôi sẽ xem xét những điều sau:

  • Windows có nhiều lỗ hổng rủi ro cao hơn và khai thác tự động hơn (virus, botnet)
  • Quản trị viên Windows bị (hoặc nên) hoang tưởng (vì sợ xâm nhập) và đã thực hiện một số loại cứng
  • Linux sysadins đôi khi tin tưởng quá nhiều vào bảo mật hệ điều hành và quên đi việc làm cứng
  • Sau khi bị tấn công, trong một hệ thống Linux, bạn có thể làm nhiều hơn trong một hệ thống Windows, vì có nhiều công cụ ine lệnh mạnh mẽ hơn

Vì vậy, mặc dù tôi thích Linux hơn Windows, tôi nghĩ rằng bạn không nên tin tưởng cài đặt mặc định.


3

Hầu hết các bài viết trước đã tập trung vào sự xâm nhập và một công việc tốt đã được thực hiện trong thời điểm đó, một trong những điểm của câu hỏi của bạn là về virus. Những lý do lớn nhất khiến các bản phân phối Linux có ít vấn đề hơn với vi-rút là có nhiều hộp Window ngoài đó hơn là có Linux và Mac được đặt cùng nhau. Những người viết virus muốn kiếm được nhiều tiền nhất cho họ, do đó họ viết cho Windows.

Tất cả các hệ thống có khả năng xâm nhập và bị nhiễm bệnh. Bất cứ ai nói với bạn khác nhau, có thể là người hướng dẫn của bạn hoặc người khác, hoặc là những kẻ ngốc đều có tài sản phía trước đại dương ở Utah để bán cho bạn.


3

Đánh giá từ các bản sửa lỗi bảo mật trên TẤT CẢ phần mềm hiện nay, tôi nghĩ vấn đề không phải là phần mềm mà là số lượng máy tính để bàn chạy Windows. Đây là mục tiêu, để tạo botnet. Nếu Linux thực sự phát triển trong không gian máy tính để bàn, thì nó cũng sẽ bị tấn công nhiều hơn. Tôi nghĩ rằng Mac OSX đã nhìn thấy điều này.


2

Có một lý do rất quan trọng tại sao Linux và OpenBSD có tiềm năng bảo mật hơn windows. Đó là khả năng hệ điều hành tự tường lửa khỏi các cuộc tấn công mạng.

Trên Windows, các gói mạng đến đã được tiếp xúc với các phần quan trọng của hệ điều hành từ lâu trước khi tường lửa windows có thể từ chối gói. Trên linux, sử dụng IPTables hoặc trên OpenBSD bằng PF, bạn có thể cách ly các gói giả mạo sớm hơn nhiều trong quá trình HĐH nhận gói mạng mới - giảm phơi sáng.

Tuy nhiên, một khi bạn mở một cổng và chạy một dịch vụ trên nó - tức là làm cho máy tính nối mạng trở nên hữu ích - bạn chỉ an toàn như mã chạy dịch vụ đó.


2

Không có thứ gọi là HĐH nào an toàn hơn HĐH khác. Tất cả phụ thuộc vào kiến ​​thức của những người quản trị hệ thống.

Tôi đã gặp và làm việc với một số quản trị viên * nix cực kỳ tài năng trong nhiều năm và họ có thể định cấu hình máy chủ * nix cực kỳ an toàn. Tuy nhiên, hãy dán chúng trước máy chủ Windows và họ không biết làm cách nào để khóa máy. Điều tương tự cũng xảy ra theo cách khác, tôi biết một số tiền kha khá về việc bảo vệ máy chủ Windows, nhưng đặt tôi trước một hộp * nix và tôi không biết mình đang làm gì.

Cả hệ điều hành đều an toàn hơn hoặc kém hơn các hệ điều hành khác. Chắc chắn chúng ta có thể nói về lịch sử của các nền tảng và sử dụng nó để tranh luận về cái nào an toàn hơn theo thời gian, nhưng chúng ta không nói về các hệ điều hành * nix từ 10 năm trước và triển khai Windows NT 4 vào môi trường sản xuất. . Chúng ta đang nói về các hệ điều hành hiện đại (hoặc ít nhất là chúng ta nên có) và những hệ điều hành nào có thể được bảo mật tốt hơn.

Tôi thấy ai đó nói điều gì đó trong câu trả lời về các gói đến tường lửa Windows chạm vào nhiều phần của HĐH hơn tường lửa Linux. Bằng câu hỏi cho anh ta trở thành ai địa ngục tin tưởng một tường lửa phần mềm chạy trên máy chủ? Đó là những gì tường lửa điểm cuối / kết thúc phía trước là dành cho. Để bảo vệ mạng. Các máy chủ đang chạy một dịch vụ có một dịch vụ tiếp xúc. Đó là công việc của chủ nhà để đảm bảo rằng, dịch vụ đó không bị xâm phạm. Đó là các thiết bị mạng hoạt động trước nó để ngăn các gói khác truy cập từ Internet đến các dịch vụ khác.

Khi mạng được bảo mật đúng cách, tất cả phụ thuộc vào mức độ bảo mật của ứng dụng đang chạy trên máy chủ. Ứng dụng đó có bất kỳ bộ đệm nào có thể được khai thác không? Có cách nào trong ứng dụng được hiển thị để truy cập HĐH và trong một ngày nào đó có được cấp phép cao hơn không? Nếu không hơn nó là một ứng dụng được bảo mật tốt. Nếu có thì bạn có một vấn đề cần được phơi bày.

Nếu ai đó sẽ không xem xét một hệ điều hành khác trong trung tâm dữ liệu của họ thì đó là dấu hiệu của sự thiếu hiểu biết (dành cho tất cả các cửa hàng Linux, cũng như tất cả các cửa hàng Windows). Cả hai hệ điều hành đều có sử dụng và nên được sử dụng như vậy. Không phải là tốt hơn hoặc xấu hơn so với người khác. (Và vâng, chúng tôi đã có một vài máy Linux trong các dịch vụ sản xuất xử lý môi trường của chúng tôi.)


1
Tôi có ý kiến ​​khác nhau rằng tất cả phụ thuộc vào kiến ​​thức của các quản trị viên. Nếu bạn được yêu cầu bảo vệ pháo đài khỏi bị tấn công so với lều, tôi nghĩ bạn có một chút lợi thế với pháo đài. Nếu hai cái được so sánh ở đây là Linux và Windows, thì chúng được thiết kế với hai triết lý khác nhau để xử lý nhiều người dùng và truy cập đồng thời vào hệ thống. Mặc dù các quản trị viên giỏi có thể giúp khắc phục các thiếu sót, nhưng vẫn có những lợi thế từ điểm này so với điểm khác.
Bart Silverstrim

1

Không cần phải nguyền rủa trường đại học của bạn vì sử dụng máy chủ linux, vì các yêu cầu cụ thể của bạn như AdamB đã nói, hãy sử dụng Mono (www.mono-project.com). Giáo sư thường quan tâm đến HĐH, thích linux, thậm chí bất kỳ người đam mê HĐH nào cũng thích linux, vì sự tò mò đơn giản về cách mọi thứ hoạt động trong thực tế ra khỏi sách.

  • Bây giờ liên quan đến an ninh,

linux bây giờ đi theo DAC (kiểm soát truy cập tùy ý), đây là một hệ thống thông minh hơn để kiểm soát truy cập. Như đã đề cập trong các câu trả lời khác, có linux đã trở lại nhiều lần và do đó, hệ thống kiểm soát truy cập, đã tốt hơn so với các hệ thống khác.

Nhưng bảo mật mà bạn đang đề cập đến trông giống như bảo mật máy chủ, đây không phải là vấn đề của hệ điều hành so với toàn bộ các sự cố mạng máy chủ. trong đó theo tôi có nghĩa là Danh sách điều khiển truy cập tường lửa, bộ định tuyến, v.v ... Cập nhật miễn phí, lâu dài. Nó mở nên đã thử nghiệm rất nhiều, điều này rất quan trọng.

Ngoài bảo mật, khả năng kinh tế làm cho linux trở thành lựa chọn tốt nhất cho các máy chủ, nơi rất ít, nhưng các ứng dụng được cho là chạy hoặc lưu trữ các dịch vụ. Và những ứng dụng này được chuyển đến chúng rất tốt. Ví dụ: Apache.

Tôi nghĩ rằng đó không phải là bảo mật một mình, mà là các yếu tố khác khiến bạn giống như hầu hết các trường đại học còn lại lựa chọn linux tại các máy chủ.


1

Mặc dù có nhiều câu trả lời tuyệt vời ở đây, tôi chỉ muốn nói thêm rằng không có thứ gọi là hệ điều hành an toàn.

Người ta biết rằng nếu một người tạo ra một nền tảng 'an toàn', thì một người khác có thể tìm thấy lỗ hổng trong nền tảng đó theo thời gian.

Tôi đồng ý rằng hai câu đầu tiên của Evan tổng hợp bảo mật hệ điều hành tốt nhất:

Tôi không nghĩ một hệ điều hành là "an toàn". Một cấu hình cụ thể của một hệ điều hành có mức độ chống lại các cuộc tấn công cụ thể.

Vì vậy, không có vấn đề gì nếu chúng ta so sánh GNU / Linux, Các hệ thống BSD (Free / Open / Net), Microsoft, Windows, Mac OSX, Symbian, PalmOS, Cisco IOS, AIX, QNX, Solaris, z / OS hoặc bất kỳ các "hệ điều hành" khác chạy các thứ như TV, máy nghe nhạc MP3, lò vi sóng, v.v.

Mỗi trong số này có một phần của tổng thể có khả năng được khai thác bởi một cá nhân xác định.

Vì lý do này, hầu hết các nhà cung cấp đều có trang trắng về cách thiết lập hệ thống của họ để bảo mật cấu hình nhất có thể. Điều này có nghĩa là sử dụng các công nghệ khác để giảm thiểu diện tích bề mặt.

ví dụ:

  • NAT
  • proxy ngược
  • tường lửa

1
Tôi vẫn sẽ đặt tiền của mình vào openbsd bất cứ ngày nào vì "ít có khả năng bị tổn thương từ xa nhất".
Kyle Hodgson

Tôi cũng sẽ không để tiền của mình chống lại bạn! Trừ khi chúng ta nói về DOS <= 4 (tôi không tin trình điều khiển NDIS trước 5.5?)
Wayne

1

Thực tế của Bảo mật hệ điều hành liên quan đến các khung công tác không chỉ là vấn đề về loại nhân. Cá nhân mỗi khung công tác có cơ chế bảo mật tuân thủ của họ. Đặc tả tài khoản nhiều người dùng trong Microsoft Windows cho phép linh hoạt hơn một chút về mặt triển khai hàng loạt, tuy nhiên với Linux, bạn có khả năng kiểm soát tee - các quyền và ủy quyền.

Mức bảo mật .NET Framework chủ yếu liên quan đến chính sách nhóm của bạn, cài đặt bảng điều khiển powershell andnetsh. Lý do là từ xa kernel ở các tham số truy cập mức thấp với các yêu cầu truy cập động trong bộ nhớ. Các khung Linux thường yêu cầu mức độ chú ý tương tự, nhưng chủ yếu phải thực hiện với các cờ mà bạn chỉ định khi bạn định cấu hình ngôn ngữ. Linux khi được cấu hình đúng cách được chứng minh là an toàn hơn bảo mật được cấu hình của Microsoft Windows. Mặc dù ở mức cấu hình "khá"; các công cụ có thể lướt thẳng qua IIS của bạn và nhúng ngay vào các dịch vụ của bạn bằng cách sử dụng GUID cụ thể. Linux nói chung cho phép kiểm soát nhiều khía cạnh hơn

Những điểm chính:

inodes and NTFS index primers and permissions in Windows (including registry) 
    are easier to sift through than an EXT hardnened Linux 

protocol traversal within Linux for exception handling are easier to find 
    than a solid configured Windows Firewall. 

cache indexes within ASP.NET are easier to violate than cache management    
    technologies which are well handled within GNU and C++ libraries
    they are practically built for parallel systems now. 

SQL parse queries, have been proven over and over again; MySQL is faster. 
    than MSSQL, though Oracle has been pushing the belt. Transactional 
    security is proven to be more secure on Windows, but for performance 
    and sheer flexibility shows that MySQL should be used or something 
    along the lines of a iSQL or NSQL (not SQLAB like Berkeley SQL which 
    MSSQL is based on) 

Gateway permissions, Linux has an amazing ability to fondle packets and tiny 
    little things that Windows can only put into sorting bins. This being 
    said, if you are running a Windows network, you have more network auditing 
    than a Linux network because the packages are easier to apply walls to 
    than DLL files and protocol requests. 

Surface layer GUI, .NET Framework offers strict field definitions; while Linux 
    allows intense PCRE and other Regular Expressions. 

Báo cáo chính phủ:

OWASP proves over and over again that it is harder to crack a hardened Linux Server 
than it is to crack a hardened Windows Server. Why? Because the firewall and Group 
Policy does not allow as far a tuned key for aspects of the closed source framework 
within ASP.NET; Linux will let you choose a color for every letter on your command. 

NIST Shows over time that SQL management permissions are harder to parse with Windows 
while Linux PCRE makes it harder to bypass SQL queries whether it be within a GUI or 
a Web Interface. 

Carnagie Mellon shows that ASP.NET can hold higher regulations because it is built 
in a more module based context which employs the use of MVC frameworks and can potentially 
have a higher restriction. Meanwhile PHP and Java show that they are incredibly robust 
with their Obfuscation and encapsulation methodologies.

Ý kiến ​​cá nhân:

Mỗi hệ điều hành có khả năng an toàn hơn so với phần còn lại. Lấy so sánh sơ bộ các khung hoạt động với độ bảo mật cao hơn với Linux hoặc Windows Tôi sẽ phải nói rằng phần chính của bảo mật web là sử dụng khung không tương thích nhưng hiệu quả nhất. Bằng cách này, việc nắm bắt các quyền truy cập ổ đĩa cứng và thư viện sẽ trở nên khó khăn hơn nhiều. Bằng cách này, bạn có phần nào một bát hàn ontop của hệ điều hành của bạn. Như Evan đã nói với quyền NTFS và / Proc hoặc / dev. Nếu bạn sử dụng một cái gì đó không thể nói chuyện với nó; nó khó nứt hơn.

Những gì tôi đã học được từ phát triển web là, đừng bao giờ đánh giá thấp khuôn khổ của bạn. .NET có quyền tạo các khối được gắn kết và cơ chế điều khiển cho các cụm máy chủ SQL; trong khi Nguồn Apache có thể làm điều tương tự với Hệ điều hành bằng Linux. Đó là một câu hỏi khá hay mặc dù tôi có thể nói, Linux cho phép bảo mật hơn về kiểm soát khía cạnh cá nhân và giám sát và hạn chế đa ngôn ngữ; trong khi Windows có sức mạnh lớn về kiểm toán và ghi nhật ký với giao diện gỡ lỗi logic mức cao. Cả hai đều tương đương nhau, cuối cùng nó thu hẹp lại thành "bạn có khóa nó tốt không" và "có bao nhiêu chuông và còi ở đó?" trong khuôn khổ. Apache có nhiều tăng cường bảo mật bổ trợ;

Tại thời điểm hiện tại kết hợp PHP trên Linux hoặc Windows, có một điều khá rõ ràng là có nhiều phần mở rộng bạn có thể sử dụng trong Hệ điều hành Linux; Windows có một cấp quản lý cấp phép khác với PHP, điều này khiến việc quản lý truy cập tệp và thư mục trở nên khó khăn hơn. Trong Apache, ví dụ XAMPP, LAMPP hoặc WAMP, tôi sẽ cảm thấy rằng Windows kém an toàn hơn một chút vì thực tế là các hạn chế của nó đối với tường lửa dễ vi phạm hơn vì nó chia sẻ các quy tắc đường hầm giống như trình duyệt web của bạn. Mặt khác, Linux có thể sử dụng các nhóm ứng dụng và các cơ chế bảo mật cấp gói khác phức tạp hơn nhiều để mô phỏng. Windows sẽ yêu cầu bạn sử dụng tất cả các khía cạnh của hệ điều hành để làm cho mạng an toàn hơn.

IIS (Trên Microsoft Server, không phải Windows Client) trên Windows với ASP.NET với các hỗn hợp SEC_ATL mới nhất cũng có thể rất an toàn.

Chỉ riêng Apache, bạn có thể muốn chạy nó với Linux để kích hoạt trình điều khiển cấp cao hơn và thấp hơn, SMIME, codec và chứng khoán cấp gói. Mặc dù Windows sẽ yêu cầu bạn cài đặt các cơ chế bảo mật chồng lấp, điều này sẽ làm tắc nghẽn lưu lượng truy cập của bạn xuống một chút so với bạn có thể nếu chạy hàng ngàn máy chủ.

Với Linux, hạt nhân càng mỏng và tối ưu hơn cho bảo mật mạng thì càng tốt (như hợp nhất trong Apache với NSLUG).

Với Windows, bạn thích lập trình các mô-đun Powershell và bảo mật lớp phủ quảng cáo cho khung ASP.NET của bạn và định cấu hình chính sách nhóm của bạn thành USGS vì hầu hết thời gian thực sự cần nó để loại bỏ lưu lượng mà Linux sẽ tự động từ chối và không nghĩ trong khoảng.

Tương tự họ có thể mạnh mẽ. Out of the Box, bản phân phối trực tiếp của Linux sẽ mạnh hơn một Microsoft Windows Server chưa được cấu hình vừa được thiết lập với Wizard.

Theo thời gian, Linux sẽ vượt qua Windows trong trò chơi bảo mật. Các máy chủ Debian 3 ngày nay vẫn mạnh hơn Microsoft Server 2008 R2 và đoán xem chúng có thể hỗ trợ các công nghệ tương tự mà không cần xây dựng lại kernel. Debian vẫn có thể hút nó và tôi đã nhìn thấy điều này bằng chính mắt mình.

Mặc dù như đã nói trước đây tôi chắc chắn. Nó thuộc về các nhân viên bạn làm việc và mắt của bạn để chi tiết. Điều đó luôn tạo ra sự khác biệt lớn nhất khi làm việc trong một mạng máy chủ lớn.


0

Phần lớn, tôi tin rằng Linux được coi là sự lựa chọn an toàn hơn vì việc sử dụng phần mềm nguồn mở phổ biến của nó.

Sự dễ dãi xuất phát từ ý tưởng rằng "cộng đồng" sẽ nhận thấy nếu một thứ gì đó tanh tanh được thêm vào đâu đó (giả sử, nếu openSSH đột nhiên bắt đầu gọi điện về nhà bằng mật khẩu) thì nó sẽ không tồn tại lâu.

Nhưng tôi không thể nhắc lại đủ những gì người khác đã nói ở trên: bảo mật phụ thuộc phần lớn vào cấu hình: ai quan tâm nếu openSSH không gọi điện về nhà nếu bạn không có tường lửa, mật khẩu gốc null và PermitRootLogin được bật trong sshd;)


0

Câu trả lời ngắn: ban đầu, UNIX được thiết kế để bảo mật; Windows được thiết kế đơn giản. Bây giờ, hậu duệ của UNIX sẽ giả vờ đơn giản hơn cho người dùng của họ; Windows giả vờ an toàn hơn.

Họ chưa gặp nhau


2
Bah! Windows NT có nhiều dự đoán về bảo mật trong thiết kế ban đầu so với Unix. Unix đã được bảo mật sau đó như là một suy nghĩ sau. Các hệ điều hành hiện đại giống Unix (như Linux, không thực sự là hệ điều hành "Unix" vì đây là cơ sở mã hoàn toàn mới) đã cải thiện rất nhiều so với Unix ban đầu, nhưng ngay từ đầu, Windows NT đã được thiết kế đáp ứng các yêu cầu bảo mật "Sách cam" của US DoD.
Evan Anderson

0

Các phiên bản trước của Windows có các ứng dụng chạy trong cùng một không gian địa chỉ, vì vậy chúng có thể đi bộ con trỏ qua nhau. Họ cũng dựa vào đa nhiệm hợp tác và đôi khi không hợp tác.

Ngay cả các phiên bản đầu tiên của Linux / Unix cũng có phân vùng giữa các ứng dụng và giữa lớp O / S và lớp ứng dụng. Cắt lát nhiệm vụ, trong khi không phải lúc nào cũng lý tưởng, ít nhất là công bằng.

Do đó, di sản của Unix (hoặc Linux) cho các hệ thống mạnh hơn cần tính sẵn sàng cao hơn.

Có phải tất cả điều này vẫn áp dụng ngày hôm nay? Đó là một câu hỏi khác.


Tất nhiên là không rồi. Rất nhiều báo chí tiêu cực mà Windows nhận được từ cộng đồng Linux thực sự được nhắm trực tiếp vào các phiên bản trước đó và không tính đến thực tế là mọi thứ đã chuyển sang. Phiên bản cuối cùng của Windows để sử dụng coop m / t là 3.1 và phiên bản Windows cuối cùng có DOS đập vào trái tim là ME.
Maximus Minimus

0

Bây giờ NT đã bắt kịp Unix ở nhiều nơi còn thiếu trước đây, Quyền truy cập tệp và bảo vệ bộ nhớ không còn là vấn đề khác biệt lớn nữa.

Nhưng .... a. Trong các hệ thống Unix, tất cả quyền truy cập vào tất cả các thiết bị đều đi qua các tệp mà bảo mật có thể dễ dàng được quản lý. Ví dụ: bạn có biết cách ngăn người dùng X truy cập card âm thanh trong Windows trong khi vẫn cho phép người dùng Y không? Trong Unix, đó là loại công cụ dễ dàng.

b. Các cấu trúc thư mục là lành mạnh hơn nhiều. (Ví dụ: một ứng dụng người dùng chỉ cần có quyền truy cập ghi vào thư mục nhà của bạn, v.v.) Tuy nhiên, điều này đã được cải thiện trong các cửa sổ trong vài năm.

d. Đây là một vấn đề lớn: SELinux (và tính năng hộp cát "Seatbelt" đáng tin cậy của Solar Solar và Mac OS). Điều này được gọi là NDAC (Kiểm soát truy cập không tùy ý). Nếu bạn đang chạy một bản phân phối HĐH với các tính năng này, thì về cơ bản có hai lớp bảo mật đang diễn ra, bộ xử lý (hệ thống cấp phép) thông thường mà Unix luôn có, và các phiên bản hiện đại của windows có - và trên hết là "tường lửa ứng dụng" mà SELinux và các hệ thống tương tự áp đặt. Ví dụ: bạn có thể đặt chính sách cho biết máy chủ web Apache được phép ghi vào / tmp và đọc từ / var / www và / etc / apache. Tất cả các truy cập đĩa khác sẽ bị từ chối bất kểquyền. Tương tự, bạn có thể chỉ định rằng nó chỉ có thể chấp nhận các kết nối đến trên cổng 80 và không tạo kết nối đi. Sau đó, ngay cả khi có một lỗi sẽ cho phép ai đó làm điều gì đó rất tệ và ngay cả khi apache đang chạy bằng root, điều đó cũng không thành vấn đề - chính sách sẽ ngăn chặn điều đó. Điều này đòi hỏi một hình phạt tốc độ (rất nhỏ) và có thể gây đau đớn nếu bạn đang sử dụng một cấu hình bất thường, nhưng trong trường hợp bình thường có thể tăng mức độ bảo mật của bạn lên rất nhiều so với cả Unix và Windows kiểu cũ.

e. Các lớp - Các hệ thống Unix bao gồm nhiều lớp và dịch vụ riêng biệt hơn có thể được hoán đổi. Điều này có nghĩa là chúng có thể được phân tích riêng về tính chính xác và bảo mật, được hoán đổi, v.v ... Đối với hầu hết mọi thứ trong số này, không cần phải khởi động lại. Đây là một điểm cộng lớn trên các hệ thống loại máy chủ. Ngoài ra, việc vô hiệu hóa (và gỡ cài đặt) những thứ bạn không cần trên hệ thống Unix sẽ dễ dàng hơn. Ví dụ, tại sao lại chạy GUI trên hộp máy chủ web? Nó làm tăng bề mặt tấn công và chiếm RAM.

f. Đối với những người nói rằng Windows NT được thiết kế để bảo mật ... đó là sự thật, hạt nhân được thiết kế từ đầu với các tính năng bảo mật và nhiều người dùng tiên tiến, nhưng có hai vấn đề chính: 1. Hồ sơ theo dõi kém của Microsoft với bảo mật và 2. Toàn bộ HĐH được thiết kế để có khả năng tương thích với các ứng dụng Windows cũ có nghĩa là có nhiều thỏa hiệp. Unix luôn có nhiều người dùng và vì vậy các ứng dụng không có bất ngờ lớn khi bảo mật được thi hành - điều đó có nghĩa là ít thỏa hiệp hơn.


Bảo mật truy cập "tệp thiết bị" trong Windows NT được thực hiện thông qua ACL được áp dụng trong trình quản lý đối tượng điều hành. Nó có mô hình ACL gần giống với hệ thống tập tin. Re: quan điểm của bạn "a": Các ứng dụng Logo tuân thủ các nguyên tắc phát triển của Microsoft không cần truy cập ghi bên ngoài thư mục chính của người dùng. re: "b": Tôi đồng ý rằng chức năng MAC bị hạn chế trong Windows. Các mức toàn vẹn, được thêm vào trong Vista, là một dạng MAC. "Tường lửa nâng cao" (cũng được thêm vào trong Vista) có thể hạn chế lưu lượng đi theo cách bạn mô tả nếu bạn chọn định cấu hình theo cách đó.
Evan Anderson

re: "e": Về nguyên tắc, tôi đồng ý rằng phần mềm ít hơn có nghĩa là ít khả năng thất bại hơn. Có những bản dựng Windows bên trong không có GUI, nhưng Microsoft đã chọn không phát hành chúng. re: "f": Các nhà phát triển bên thứ 3 gặp nhiều vấn đề hơn: nhận các chính sách bảo mật mặc định lành mạnh được đặt trong Windows so với Microsoft. Cá nhân, tôi nghĩ Microsoft nên cứng rắn hơn về các ứng dụng hoạt động kém, nhưng chúng sống ở một "không gian" khác với các nhà phát triển hệ điều hành nguồn mở và miễn phí khi đảm bảo các ứng dụng của Khách hàng của họ chạy.
Evan Anderson

re: "Toàn bộ hệ điều hành ... được thiết kế để có khả năng tương thích ..." Win32 là một hệ thống con kernel-- nó không phải là NT. Nếu Microsoft muốn (hoặc sẽ cho người khác), bạn có thể xây dựng một "bản phân phối" Windows NT không có hệ thống con Win32, không có GUI và được khởi động cùng với hệ thống con hạt nhân POSIX "Interix". Hầu như tất cả các giao diện người dùng trong HĐH NT đều dựa trên Win32, nhưng hạt nhân hoàn toàn có khả năng hỗ trợ môi trường không phải Win32.
Evan Anderson

0

Có một số lý do tại sao các hệ thống dựa trên Linux thường được coi là an toàn hơn các hệ thống Windows.

Một là kỹ năng của chủ sở hữu. Nếu bạn bước vào Best Buy hoặc Wal-mart (ở Mỹ) và mua một chiếc máy tính mà không nghĩ nhiều về nó, nó sẽ chạy Microsoft Windows. Điều đó có nghĩa là có vô số hệ thống Windows được điều hành bởi những người không có đầu mối. Vì hầu như không ai mua máy tính Linux một cách tình cờ (ít nhất là từ khi Microsoft phản công trên netbook), hầu hết người dùng Linux đều biết điều gì đó về máy tính hoặc đã cài đặt máy tính của họ bởi ai đó. Điều này áp dụng cho tất cả các môi trường nơi bạn có được những người không biết họ đang làm gì; những người không chạy Windows và những người chạy các hệ điều hành khác nhau.

Một là số lượng kẻ tấn công. Microsoft Windows là một mục tiêu hấp dẫn hơn nhiều, bởi vì tất cả các máy được quản lý tồi ở ngoài kia. Có rất nhiều mục tiêu Linux có giá trị cao, nhưng chúng thường được quản lý tốt (cùng với rất nhiều mục tiêu Windows có giá trị cao). Nói một cách gần đúng hợp lý, không ai nói chung là nhắm vào máy tính Linux.

Một là văn hóa. Trong bất kỳ môi trường Unix / Linux nào, có sự phân biệt rõ ràng giữa tài khoản root và tài khoản người dùng và trong hầu hết các trường hợp, mọi người làm việc trong tài khoản người dùng của họ khi họ không cần phải root. Theo tôi, sự khác biệt không phải là mạnh mẽ trong môi trường Windows, ở chỗ mỗi người dùng thường sẽ có một tài khoản, với bất kỳ đặc quyền nào được liên kết. Bây giờ tôi đang ở trên máy tính làm việc, nơi tôi có một tài khoản, một tài khoản quản trị viên. Tất cả mọi thứ tôi làm được thực hiện bởi một tài khoản có đặc quyền cao. Khi tôi trở về nhà với hộp Linux của mình, tôi sẽ làm hầu hết mọi thứ trong tài khoản đặc quyền giới hạn và leo thang khi tôi cần. Vợ tôi đã phải tranh cãi rất nhiều để có hai tài khoản trên máy tính tại nơi làm việc, một tài khoản quản trị bình thường và một tài khoản đặc quyền hạn chế để cô ấy có thể xem liệu người dùng thông thường có đặc quyền để chạy những gì cô ấy viết hay không.

Một là khả năng tương thích ngược. Mặc dù Unix không khởi đầu như một hệ điều hành an toàn, nhưng nó có bảo mật sớm. Các chương trình cho Linux không yêu cầu chạy bằng root trừ khi chúng thực sự làm các chức năng root. Mặt khác, Windows chạy một số lượng lớn các chương trình yêu cầu tài khoản quản trị viên vì đó là những gì các nhà phát triển đã chạy và thử nghiệm (xem đoạn trên) và những nhà phát triển đó thường không có ý thức bảo mật và được sử dụng để hoạt động tốt. Đó là vấn đề lớn mà Microsoft đang cố gắng giải quyết với UAC. Tôi không nghĩ đó là một giải pháp đặc biệt tốt, nhưng thành thật mà nói, Microsoft sẽ không tìm thấy một giải pháp tốt ở đây (tôi không nghĩ rằng giảm khả năng tương thích ngược là một giải pháp tốt ở đây).

Những điều này dẫn đến thực tế là hầu hết các vấn đề bảo mật quy mô lớn sẽ xảy ra trên các hệ thống của Microsoft, bất kể giá trị của các mô hình bảo mật và nhận thức rằng Microsoft gặp phải các vấn đề bảo mật lớn. Theo kinh nghiệm sẵn có, thực tế là mọi người có thể nghĩ về nhiều vấn đề bảo mật của Microsoft làm sai lệch phán đoán của họ.

Đó là, theo tôi, những lý do hợp lệ. Tôi chưa chạm đến bảo mật hệ điều hành thực tế, vì tôi không biết rằng Windows hoặc Linux distro dễ bị tổn thương hơn so với cái khác khi được quản trị viên am hiểu. Linux có lợi thế về nguồn mở, trong đó bất kỳ ai cũng có thể tìm và sửa lỗi, trong khi Microsoft đã thiết lập các thực tiễn bảo mật có thể hoặc không thể hoạt động tốt hơn. (Nếu tôi muốn chạy một hệ điều hành thực sự an toàn, tôi sẽ chọn OpenBSD, một hệ điều hành nguồn mở cố gắng bảo mật.) Cả hai hệ điều hành này đều có hệ thống cấp phép tốt (sở thích của tôi là Unix, nhưng những người hợp lý khác không đồng ý).

Tất nhiên, có những lý do tồi để xem xét các HĐH kém an toàn hơn. Một số người có một hệ điều hành yêu thích và không lãng phí cơ hội để làm xấu những người khác. Một số người không thích Microsoft hoặc Richard Stallman hoặc một số người hoặc tổ chức khác và chê bai các HĐH liên quan. Một số người không nhận thấy rằng Microsoft đã thay đổi trong những năm qua, vì cách đây không lâu, Microsoft thực sự không quan tâm đến bảo mật và Windows thực sự kém an toàn hơn Linux.


-1

Không có lý do thực sự nào khác ngoài quán tính. Tôi đã thấy rất nhiều người ủng hộ Linux đưa ra lập luận chống lại Windows (và không chỉ về mặt bảo mật) mà trên bề mặt có vẻ hợp lệ, nhưng - khi bạn đào một chút - chỉ áp dụng cho Windows 3.1 hoặc 95/98.

Tôi đã nói điều đó trước đây, nhưng trong khi Windows có thể có nhiều bản vá / v.v., đây là những sửa chữa cho các lỗ hổng bảo mật đã được xác định . Và đó không phải là những cái đã được sửa mà bạn phải lo lắng, phải không? Tôi không tin rằng nguồn mở về bản chất cũng an toàn hơn. Sử dụng các bản vá của riêng bạn có thể tốt cho người dùng gia đình, nhưng người dùng hoặc quản trị viên của công ty sẽ luôn muốn Real Thing được chứng nhận hoạt động (và đã được kiểm tra đầy đủ) với nhiều ứng dụng và được chứng nhận không bị hỏng bản cập nhật kernel tiếp theo. Điều tương tự cũng áp dụng cho các bản sửa lỗi từ cộng đồng FOSS.

Vì vậy, trong cuốn sách của tôi, đó là sự pha trộn của quán tính, định kiến ​​và được đưa vào văn hóa UNIX để loại trừ các lựa chọn thay thế.


-2

Các quy trình trên Linux / Unix không thể thay đổi các quyền riêng tư sau khi chúng được gán cho người dùng, các quy trình trên windows có thể thay đổi quyền riêng tư của người dùng và thay đổi người dùng mạnh hơn trong khi xử lý giữa.

Đây là bản chất của lý do tại sao các cửa sổ kém an toàn hơn linux / unix.


2
Điều đó chỉ đúng nếu bối cảnh mà quy trình đang chạy có quyền "Hoạt động như một phần của hệ điều hành" (SE_TCB PRIVILEGE). Nếu bạn bắt đầu một quy trình với bối cảnh bảo mật không có SE_TCB PRIVILEGE thì quá trình đó không thể chỉ là "mạo danh" ngẫu nhiên (NT-ism để giả sử bối cảnh bảo mật khác) cho một người dùng khác. Nếu bạn đang chạy một ứng dụng với SE_TCB PRIVILEGE mà không có lý do chính đáng thì bạn sẽ nhận được những gì bạn xứng đáng, IMO.
Evan Anderson

Vì vậy, bảo mật được thi hành bởi một "bối cảnh" như được áp dụng theo quy tắc toàn hệ thống, đó là lý do tại sao các cửa sổ kém an toàn hơn unix / linux.
Lửa quạ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.