Linux 기반 운영 체제가 Windows보다 안전한 것으로 간주되는 이유는 무엇입니까? [닫은]


19

Linux 기반 시스템이 보안에 더 좋다고 들었습니다. 분명히 바이러스가 없으며 바이러스 백신 소프트웨어가 필요하지 않습니다. 우리 대학조차도 이것을 주장합니다. 서버에 Windows를 설치하는 것을 거부합니다. 우리는 .NET 프레임 워크를 사용하여 일부 웹 사이트를 만들고 싶었으므로 부끄러운 일입니다.

내가 더 안전한 리눅스를 볼 수있는 유일한 이유는 그것이 오픈 소스이기 때문에 이론적으로 버그가 더 빨리 잡히고 고쳐지기 때문입니다.

나는 운영 체제의 작동 방식에 대해 조금 알고 있지만 Linux와 Windows가 OS를 구현하는 방법에 대해서는 깊이 파고 들지 않았습니다. 누군가 Linux 기반 시스템을보다 안전하게 만드는 차이점을 설명 할 수 있습니까?


5
나는 당신의 질문에 정확하게 대답하지는 않지만, 학교의 선택을 조금 변호하고 싶습니다. 우리 학교는 공통 파일 시스템을 공유하려고 시도하는 Windows 시스템과 Linux 시스템을 모두 운영합니다. 그러나 실제로는 네트워크의 Windows와 Unix 도메인이 슬프게도 서로 연결되지 않기 때문에 비용이 많이들 수 있습니다. Windows 사용자가 오픈 소스 구성 요소를 반대 (.net에 대해 유감스럽게도)보다 더 많이 사용해야한다는 것을 감안할 때 서버와 같은 핵심 기본 하드웨어에서만 Linux를 지원하는 것은 훌륭한 선택입니다. 리눅스는 오늘날 가장 중요한 서비스를 지원합니다
Notmyfault

귀하의 답변에 감사드립니다-다른 응답자에게도 분명히 도움이되었습니다. 기록적으로, 나는 대학의 주장에 화가 난 것보다 회의적이었습니다.
echoblaze

답변:


55

나는 운영 체제가 "안전하다"고 생각하지 않습니다. 운영 체제의 특정 구성에는 공격에 대한 특정 수준의 내성이 있습니다.

아마 여기서 "Microsoft apologist"가되어 화를 낼 것입니다. 그러나이 스레드는 사실이 아닌 "Windows"에 대한 일반화에 매우 능숙합니다.

Windows 1.0-3.11, 95, 98 및 ME는 DOS를 기반으로합니다. 이 운영 체제 계열은 공식적인 의미 (보안 주소 공간, 커널 / 사용자 모드 분리 등)에 대한 보안이 없었습니다. 다행히도 "Windows"에 대해 이야기 할 때 이러한 운영 체제에 대해서는 이야기하지 않습니다.

Windows NT 운영 체제 제품군 (Windows NT 3.5, 3.51, 4.0, 2000, XP, 2003, Vista, 2008 및 7)은 1992 년 최초 릴리스 이후 "합리적으로 설계된"보안 시스템을 가지고있었습니다. TCSEC "오렌지 북"을 염두에두고 설계되었으며 완벽하지는 않지만 합리적으로 잘 설계되고 구현 된 것으로 생각합니다.

  • Windows NT는 처음부터 "다중 사용자"였습니다 (Windows NT 3.51 시대의 Citrix WinFrame까지 동일한 서버에서 동시에 그래픽 사용자 인터페이스를받는 여러 사용자의 기능은 발생하지 않았 음). 주소 공간 보호는 MMU 및 CPU의 기본 하드웨어 기능에 의존하여 커널 / 사용자 모드 분리가 있습니다. (매우 "Unix-y"라고 말하지만 실제로는 "VMS-y"입니다.)

  • NTFS의 파일 시스템 권한 모델은 상당히 "풍부하며" "상속"과 관련하여 약간의 사마귀가 있지만 ( NTFS 이동 / 복사 설계 결함을 해결하는 방법을 참조하십시오 ). 지난 10 년 정도 유닉스 스타일 운영 체제가 비슷한 기능을 구현했습니다. (Novell NetWare는 MULTICS가 둘 다 이길 것이라고 생각하지만 이것에 대한 펀치로 Microsoft를 이겼습니다 ...> smile <)

  • 시작 / 중지 / 일시 정지 서비스 프로그램에 대한 액세스를 제어하는 ​​권한 시스템을 포함한 서비스 제어 관리자는 매우 잘 설계되었으며 다양한 "init.d"스크립트 "아키텍처"( "신사 계약서"와 유사)보다 훨씬 강력합니다. 많은 리눅스 배포판에서 ").

  • 임원 객체 관리자 (참조 http://en.wikipedia.org/wiki/Object_Manager_(Windows) )는 / proc 파일 시스템과 / dev 파일 시스템이 거의 유사하지 않은 파일 시스템과 비슷하고 파일 시스템에 비해 훨씬 풍부한 ACL 모델을 가지고 있습니다. Linux 배포판에서 / proc 또는 / dev에 대해 알고있는 권한 모델.

  • 레지스트리의 장점과 단점에 대해 토론 할 수는 있지만 레지스트리의 키에 대한 권한 모델은 / etc 디렉토리의 파일에 대한 권한을 설정하는 모델보다 훨씬 세분화됩니다. (특히 Rob Short의 의견 : "비하인드 코드"인터뷰의 레지스트리 :http://channel9.msdn.com/shows/Behind+The+Code/Rob-Short-Operating-System-Evolution Rob은 처음에 Windows 레지스트리의 주요 인물 중 하나였으며 그가 아니라고 말하는 것이 안전하다고 생각합니다. 일이 어떻게 나왔는지 반드시 행복해야합니다.)

Linux 자체는 단지 커널 일 뿐이지 만 Windows는 Linux 배포판에 더 가깝습니다. 사과와 오렌지를 비교하여 그렇게 비교합니다. Windows가 일부 Linux 기반 시스템보다 "제거"하기가 더 어렵다는 데 동의합니다. 반면에 일부 Linux 배포판에는 "스크랩"이 많이 설정된 상태로 제공됩니다. Windows의 다양한 "임베디드"풍미의 출현으로 (일반적으로는 아니지만) Microsoft의 기본값 (다양한 서비스 제외, 기본 권한 변경 등)과는 다른 Windows의 "배포"를 구축 할 수 있습니다. .

다양한 버전의 Windows에는 잘못 선택된 기본값, 권한이없는 사용자가 권한을 얻을 수있는 버그, 서비스 거부 공격 등이 있습니다. Unix 커널 (및 기본적으로 루트로 실행되는 많은 Unix 기반 응용 프로그램)에는 같은 문제. Microsoft는 Windows 2000 이후로 응용 프로그램을보다 쉽게 ​​분류하고, 최소 권한으로 프로그램을 실행하고, 불필요한 OS 기능을 제거하기 위해 놀라운 작업을 수행했습니다.

간단히 말해서, 내가 말하는 것은 보안과 관련하여 귀하의 요구에 따라 주어진 운영 체제의 특정 구성이 사용중인 운영 체제 유형보다 중요하다는 것입니다. Windows 및 Linux 배포는 보안 기능과 관련하여 매우 유사한 기능을 제공합니다. OS에 견고한 보안 기술 (최소 권한, 선택적 구성 요소의 제한된 설치, 암호화 보안 인증 메커니즘 등)을 적용 할 수 있습니다. 당신이 실제로 여부 어떻게 또는 어떤 문제가의 이것도 아니고 ....


윈도우와 리눅스 시스템이 어떻게 만들어 졌는지 전혀 모르는 나 같은 사람을 위해, 당신의 게시물은 믿을 수 없을만큼 유익했다
echoblaze

동의했다. 좋은 지적입니다.
Kyle Hodgson

1
+1-저는 집에서 Linux를 사용하고 직장에서 주로 Windows 보안 전문가입니다. 구성은 OS 자체보다 훨씬 중요하며 커널보다 'Linux'뿐만 아니라 Linux 배포판을 Windows와 비교해야합니다.
romandas

3
느린 박수 +1
chickeninabiscuit

오랜 시간 동안 Windows 세계에 실제로 해를 끼친 한 가지 사실은 (현재 대부분의 역사 임에도 불구하고) 오랜 기간 동안 많은 일을하려면 로컬 관리자 여야했지만 * nix 세계에서는 단순히 그 기계에 sudoer가 되어라. 문제는 분명히 대부분의 컴퓨터에서 로컬 관리자가 실행 한 모든 것이 컴퓨터로 무엇이든 할 수 있다는 것입니다. 항상 잘 알려진 사례는 아니지만 루트가 아니라 필요할 때 sudo / su를 수행하는 것이 Linux / unix에 동등한 위협이되었을 것입니다. 실제로 Windows 문제는 아니지만 소프트웨어 문제이며 UAC의 경우 대부분 고정되어 있습니다.
Fredrik

16

언급되지 않은 또 다른 사항은 Windows의 보안이 Linux보다 훨씬 불투명하다는 것입니다.

예를 들어, 몇 개의 텍스트 파일을보고 웹 서버가 실행중인 것을 정확하게 볼 수 있습니다. IIS? 그다지 많지 않습니다-GUI 도구를 통해 구성 결과를 볼 수 있지만 숨겨진 설정이 있습니다. 그런 다음 다른 도구 세트를 사용하여 파일 등의 ACL을 검토해야합니다.

Windows 세계의 대부분의 프로그램과 동일합니다. 레지스트리와 ACL 사이의 런타임 환경에 영향을 미치는 것을 정확하게 이해하는 것은 매우 어렵습니다.


11

파일 권한 비교를 모릅니다. UNIX / Linux 관리자 인 경우 NT4에는 파일 ACL이 UNIX / Linux의 전통적인 '777'스타일 권한보다 훨씬 세밀했습니다. 물론 권한은 모든 것이 아니며, 최신 Linux 배포판은 기본적으로 구현되지 않았더라도 최소한 세밀한 ACL을 사용할 수 있다고 확신합니다. 필자가보기에 sudo 및 root 개념은 항상 UNIX에서 사용되었지만 Windows는 이러한 개념을 꾸준히 추가하고 있으며 현재는 비슷한 수준입니다.

내 자신의 해석은 Linux 커널 코드와 많은 드라이버 및 유틸리티가 공개되어 있기 때문에 훨씬 광범위하게 검토 될 가능성이 있으며 해커가 악용 할 수있는 원격 취약점으로 이어질 수있는 코딩 실수로 인해 훨씬 ​​더 자주 수정됩니다. 어쨌든 리눅스는 기업이 소유하지 않기 때문에 기업이 할 수있는 것보다 보안 목표를 더 완전하게 탐색 할 수 있다는 이론이있다. 사업체는 돈을 벌어야합니다. 오픈 소스 그룹에는 이러한 제한이 없습니다.

Linux 시스템으로 들어가서 전체 윈도우 시스템, RPC 데몬 등을 종료하는 것이 훨씬 쉽습니다. 리눅스 또는 BSD 기반 시스템을 최소한 하나의 패키지가 설치된 상태에서 하나 또는 두 개의 열린 포트로 다운받을 수 있습니다. 매우 유용한 시스템을 매우 쉽게 가지고 있습니다. 이것은 아마도 개발자의 OS로서 UNIX 유산과 더 관련이 있습니다. 모든 것이 상호 연결되지 않고 모듈 식으로 구축되었습니다. 이것은 관련성이없는 것을 간단히 제거 할 수있는 훨씬 더 구성 가능한 시스템으로 이어집니다. 이런 식으로 Windows 서버를 강화하는 것이 쉽지 않다고 생각합니다.

OpenBSD 그룹은이 개념을 극단으로 가져 왔습니다. 이 프로그램의 주요 목표는 가능한 모든 보안 결함이 있는지 모든 코드 라인을 검토하는 것입니다. 그 증거는 푸딩에 있으며, OpenBSD에 대한 세부 사항에 대한 거의 광신적 인 (나는 관련 단어를 사용합니다) 수년 동안 OpenBSD에 대해 매우 적은 수의 취약점이 발견되었습니다.

기업들은 훌륭한 소프트웨어를 만들지 만 (MSSQL, Exchange, Windows Server 2003은 모두 저의 책에서 훌륭합니다) 목표가 다릅니다.


5
예; Windows ACL은 ACL이없는 Linux / Unix보다 세분화되어 있습니다 (대부분의 최신 버전에는 ACL을 사용하는 옵션이 있음). 중요한 차이점은 사람들이 Windows에 관리자로 로그인하는 경향이 있다는 것입니다. 이는 회사에서 제공하는 XP 랩톱의 표준 설정이지만 Linux / Unix의 사람들은 대부분 루트로 작업하지 않습니다. 이는 기본적으로 Windows와 비교하여 Linux / Unix에서 수행 할 수있는 피해를 제한합니다. 누군가가 항상 루트로 달리면 모든 베팅이 중단됩니다 (후회가 있고 유감스럽게도 사고가 발생한다는 점을 제외하고).
Jonathan Leffler

"sudo 및 root 개념은 항상 UNIX에서 사용되었으며 현재 Windows에만 제공되고 있습니다." 무슨 소리 야? Windows NT는 Unix만큼 오래되지 않았지만 Windows NT는 1992 년에 출시 된 이래로 "설계된"보안 수준을 유지하고 있습니다. 많은 Windows 관리자가 "제한된 사용자"계정으로 사용자를 배포하지 않는 것은 불행합니다. 처음부터 시작 했어야했지만 운영 체제를 손상시키지 않아야합니다.
Evan Anderson

서버 관점에서 보면 당연합니다. 그러나 일반적인 Windows 사용자는 Vista까지 상당히 편안한 환경을 유지하기 위해 관리 액세스 권한이 필요했습니다. Vista의 "오른쪽 클릭, 관리자 권한으로 실행"이 sudo와 비슷한 것으로 보입니다.
Kyle Hodgson

3
전적으로 동의하지 않습니다. 제한된 사용자 계정으로 Windows NT 4.0 이후 수천 대의 데스크톱을 제거했습니다. "sudo"와 다소 유사한 "RunAs"는 Windows 2000 ( "오른쪽 클릭, Run As 기능") 이후 운영 체제에 있습니다. 사용자 계정 컨트롤은 바보 같은 기능이며 OS에 포함되어서는 안된다고 말할 것입니다. Microsoft는 개발자가 빨지 않는 소프트웨어를 작성하도록 장려하는 대신 (예 : "관리자"권한 필요) "관리자"로 실행하기 위해 "안전"으로 설정함으로써 잘못된 일을했습니다.
Evan Anderson

2
내 고객 사이트의 Vista 사용자는 제한된 사용자 계정으로 실행되므로 UAC를 볼 수 없습니다. "관리자"로 실행중인 경우에만 UAC가 표시됩니다. 그룹 정책으로 UAC를 비활성화 할 수 있지만 반드시 그럴 필요는 없습니다.
Evan Anderson

9

제 생각에는 충분한 Linux 기반 시스템이 Windows 시스템보다 안전하다면 충분히 구성되어 있습니다. 그 이유 중 일부는 다음과 같습니다.

  1. 투명성 및 풍부한 단순 네트워크 도구 : 예를 들어 Linux 관리자는 셸에서 "iptables -L -n"을 입력하여 현재 방화벽 구성을 쉽게 볼 수 있습니다. 다른 Linux 시스템에서 "nmap"을 실행하여 시스템에서 어떤 포트가 열려 있는지 확인할 수도 있습니다. 액세스 할 수있는 포트와 주소 등을 매우 정확하게 지정할 수있어 수명이 훨씬 쉬워집니다.

  2. 한 위치의 텍스트 로그 파일 : 한 위치의 "/ var / log"텍스트 기반 로그 파일은 백업 및 분석이 쉽습니다. 또한 로그 파일을 모니터링하고 중요한 라인을 이메일로 보낼 수있는 logwatch와 같은 도구는 작업을 매우 쉽게 만듭니다. 로그 파일을 분석하고 관심있는 정보를 찾기위한 자체 도구를 작성할 수도 있습니다. 동일한 서버에 로그를 표시하지 않으려는 경우 로그를 원격 syslog 서버로 내보낼 수도 있습니다.

  3. 바이러스에 대해 걱정할 필요 없음 : Linux 기반 시스템이 적거나 모든 사용자가 Linux를 좋아하거나 Linux가 더 안전하기 때문에 Linux에서 바이러스가 적은지 여부. 이유는 중요하지 않습니다. 결국 Linux에 바이러스 위협이 적 으면 Linux에 대해 좋은 것입니다. 나는 사람들이 같은 컴퓨터에 두 개의 안티 바이러스, 안티 스파이웨어 및 안티 애드웨어를 설치하는 것을 개인적으로 보았습니다. 이러한 모든 보호 도구는 많은 CPU와 메모리를 사용합니다.

  4. 많은 프로그래밍 언어 지원 : Linux에서 코딩하기가 매우 쉽습니다. C, C ++, Python, Perl, Java 등은 추가 패키지를 설치할 필요없이 작동합니다. (이것은 DVD로 제공되는 Fedora와 같은 큰 배포판을 설치하는 경우입니다.) 코딩을 통해 반복적 인 작업을 수행 할 수 있으므로 보안이 강화됩니다. 따라서 실수를하고 문제가있는 경우 모든 계정에 문제가있을 수 있으며 쉽게 감지하고 수정할 수 있습니다. 많은 수의 계정 / 디렉토리를 수동으로 동일하게 변경해야한다면 한두 번 실수를 범할 수 있으며 그러한 실수를 찾는 데 시간이 오래 걸릴 수 있습니다. 또한 코드를 사용하여 실수를 수정하고 간단한 실수를 찾을 수 있습니다. 모든 구성 파일, 사용자 정보 파일, 로그 파일 등이 텍스트로되어 있기 때문에 달성하고자하는 모든 것을 코딩하는 것이 매우 쉽고 동일한 작업을 수행하는 많은 방법이 있습니다.

  5. 오픈 소스 코드 : 아마도 많은 사람들이이 코드를 보았을 것이므로 일부 스파이웨어 / 애드웨어가 Linux와 함께 제공되는 응용 프로그램의 일부인 경우는 매우 드 rare니다. 일부 서비스에서 보안이 매우 중요한 경우 소스 코드를보고 작동 방식을 확인할 수도 있습니다. 작동 방식을 정확히 알고 있다면 한계와 중단시기를 알고 있습니다. 실제로 매뉴얼 페이지, 패키지 웹 사이트 및 구성 파일의 주석에 문서화 된 보안 제한 사항이 잘 알려져있는 경우. 개발자는 그러한 시나리오에서 우리의 도구를 사용하면 위험하다는 말을 듣지 않아도됩니다. 소프트웨어를 판매하는 조직은 소프트웨어에 대한 제한을 알려주는 것이 유리하지 않을 수 있으며 소프트웨어를 나쁘게 보이게하고 판매 / 수익을 줄일 수 있습니다.

  6. 무료 및 상호 운용성 : 보안과 관련이 없지만 비용이 중요한 대학의 경우 Linux 기반 시스템은 Windows 기반 시스템보다 훨씬 경제적이며 OS 라이센스 및 OS 설치 후 설치할 추가 소프트웨어를 구입할 필요가 없습니다. 상호 운용성과 관련하여 Linux 시스템에서 다른 OS로 연결하고 파일을 쉽게 공유 할 수 있습니다. 리눅스에서는 FAT, NTFS, HFSPLUS를 포함한 많은 파일 시스템을 마운트 할 수 있습니다. 우리는 ftp, http, ssh, samba, nfs 등을 사용하여 내용을 공유 할 수 있으며 이러한 모든 내용은 하나의 명령으로 설치되거나 설치 될 수 있습니다. 다른 OS는 일반적으로 하나의 공유 옵션 만 제공합니다.

그러나 Linux 기반 시스템을 올바르게 구성하지 않으면 더 많은 문제가 발생할 수 있습니다. 많은 사용자가 동시에 컴퓨터에 로그인하여 쉘에서 거의 모든 작업을 수행 할 수 있습니다. 방화벽이 제대로 구성되지 않은 경우 백도어, 트로이 목마를 떠나는 것은 매우 쉽습니다. 공격자는 로그 파일을 삭제하거나 조작하여 자신의 트랙을 숨길 수 있습니다. 공격자가 셸 액세스 권한을 갖 으면 공격자는 모든 편집기, 컴파일러, 디버거를 즉시 사용할 수 있으므로 공격 한 시스템에서 코드를 작성할 수 있습니다. 모든 서버 ftp, http는 보안 포트 (1-1024)가 아닌 사용자 계정에서 실행할 수 있습니다. 따라서 공격자는 http 서버 코드를 다운로드하여 컴파일하고 포트 6000에서 http 서버를 실행하여 X 서버처럼 보이게 할 수 있습니다.

따라서 Linux 시스템은 관리자가 자신이하는 일을 알거나 최소한 새로운 변경을 수행하기 전에 맨 페이지 및 설명서에서 정보를 조회하는 것을 귀찮게한다면 더욱 안전합니다.


6

서버 보안은 단순한 OS 그 이상입니다. 서버 보안의 가장 큰 요인은 서버를 운영하는 사람이며, 서버를 잠그는 데 얼마나주의를 기울 였는지 말하고 싶습니다.

즉, 대학이 Linux 상점이라면 Windows 서버 보안에서 찾은 데이터에 관계없이 Windows Server를 사용할 수 없습니다. .Net 프레임 워크를 사용하려면 Mono (www.mono-project.com)를 사용하여 조사하겠습니다.


6

투명도

  • 실행 ps auxf하면 어떤 계정으로 어떤 서비스가 실행되고 있는지 알 수 있습니다.
  • 실행 netstat -lnp하면 어떤 TCP 포트가 어떤 프로그램에 열려 있는지 알 수 있습니다.
  • 실행 iptables -L하면 방화벽의 규칙이 무엇인지 알 수 있습니다.
  • 프로세스 활성화를 실행 strace하거나 lsof검사 하십시오 .
  • 실행 ls -lah또는 tree -pug당신은 정확하게 완전한 폴더가 무슨 소유권과 권한 알고있다.
  • /var/log간단한 "파일을 통한 검색"을 통해 로그를 검사 할 수 있습니다.
  • 숨겨진 설정이 없습니다. 의 모든 내용은 인간이 읽을 수 있습니다 /etc. 텍스트 파일을 검색하거나 보관하거나 버전 관리 (subversion / git)를 적용하는 것은 정말 쉽습니다.

명확한 권한 시스템

  • 기본적으로 파일 권한 만 있습니다. "정규 키에 대한 권한", 상속 된 ACL 권한, 프로세스 당 보안 컨텍스트 또는 기타 숨겨진 기능이 없습니다.
  • 권한 비트는 간단합니다.
    • 파일 쓰기 = 파일 내용 편집
    • 폴더에 쓰기 = 파일 노드 생성 / 이름 바꾸기 / 제거
    • 고정 = 자신의 파일 만 편집합니다.
    • 실행 또는 setuid 권한이있는 파일이 강조 표시됩니다 ( ls컬러 모드).
  • 간단한 "모든 파일 찾기"는 사용자에게 어떤 권한이 있는지 보여줍니다.
  • 또한 ACL은 이것이 필요한 경우에만 사용할 수 있습니다.
  • 사용자 계정에는 기본적으로 파일을 작성할 장소가 두 개뿐입니다 : 그들의 $HOMEand /tmp.

고급 보안 옵션

  • SELinux / AppArmor는 프로세스가 특정 파일 세트에만 액세스하도록 제한 할 수 있습니다 (파일 권한 외에)
  • 관리자는 Chroot jail을 사용하여 나머지 프로그램과 완전히 격리 된 프로그램을 실행할 수 있습니다. 마치 실제로 필요한 파일 만있는 빈 하드 드라이브에 설치된 것처럼.
  • 을 사용 sudo하면 사용자 및 프로세스에 몇 가지 관리 명령 만 실행할 수있는 권한이 부여 될 수 있습니다.

입학 및 특전 상승을위한 단일 포인트

  • 프로세스는 자체적으로 더 많은 권한을 얻을 수 없습니다. 유일한 방법은 sudoPolicyKit을 먼저 확인하는 DBus 서비스 와 같은 다른 "SetUID Root"프로그램을 실행하는 것 입니다. 이러한 SetUID 프로그램은 단일 "모든 파일 검색"명령으로 찾을 수 있습니다.
  • 프로세스 간 IPC는 상당히 제한되어 공격 경로를 줄입니다.
  • 시스템 액세스 (텍스트 콘솔, 원격 데스크톱, RPC, 명령 호출 제거 ​​등)는 모두를 통해 수행 ssh됩니다. 공개 / 개인 키 검사 기능이있는 SSL 터널입니다.

안전한 백그라운드 프로세스

  • 백그라운드 서비스는 가능한 한 빨리 낮은 권한으로 실행됩니다. Apache, Dovecot 및 Postfix와 같은 서비스는 들어오는 연결을 권한이 낮은 프로세스에 가능한 빨리 전달합니다.
  • 기본적으로 잠겨 있습니다. Microsoft는 Windows Server 2008에서도이 접근 방식을 채택했습니다.

좋은 감사 도구

  • 도구처럼 nmap, ncat쉽게 보안 감사를.
  • 백그라운드 서비스는 명령 줄에서 감사 할 수 있습니다.
  • 로그 감사 도구가 일반적입니다.
  • 모듈 식으로 수행 할 수 있기 때문에 안전한 서비스를 코딩하는 것이 더 쉽습니다.
  • 사용 가능한 무료 침입 탐지 도구가 많이 있습니다.
  • 명령 줄 도구는 스크립팅 가능하도록 설계되었으므로 관리자가 작업을 자동화 할 수 있습니다.

좋은 보안 업데이트

  • 운영 체제의 모든 부분은 보안 업데이트를받습니다. 패키지 관리자를 통해 Apache, Python 또는 PHP를 설치하면 업데이트도 제공됩니다.
  • 보안 업데이트로 수정 된 내용이 많으므로 그 영향이 어떤지 알아낼 수 있습니다.
  • 소프트웨어 패키지는 모두 동일한 라이브러리를 공유합니다. 그들은 별도의 사본을 제공하지 않고 악용 가능한 버전을 남겨 둡니다.
  • 화요일에는 패치가 없습니다. 해커가 이미 버그를 악용 할 때 수정을 기다리고 있습니다.
  • 개발자는 보안 업데이트를 쉽게 테스트하고 배포 할 수 있습니다.
  • 업데이트를 수행하기 위해 재부팅을 예약 할 필요가 없습니다. 기존 프로세스가 디스크의 기존 데이터에 계속 액세스하는 동안 파일을 교체 할 수 있습니다. 나중에 어떤 서비스를 다시 시작해야하는지 확인할 수 있습니다 ( lsof | grep =).
  • 재설치하지 않고도 전체 운영 체제를 업그레이드 할 수 있습니다!

여기에 언급 된 모든 내용 또는 모든 주류 Linux 배포판 (예 : Red Hat, Debian, openSUSE 또는 Ubuntu)이 제공됩니다.


5

Linux는 초기부터 다중 사용자 시스템으로 설계되었으므로 Windows보다 훨씬 강력한 권한 시스템을 갖습니다. 또한 관리자 권한 (루트 액세스)으로 실행하지 않도록 설계되었으므로 모든 프로그램이 권한이 필요하지 않도록 설계되었습니다. 즉, 계정이 손상된 경우 전체 시스템이 손상되지 않습니다.

또한 리눅스를 사용하는 사람들이 (일반적으로 말하면) 더 기술적이고 컴퓨터가 해킹당하는 바보 같은 실수를 저지를 가능성이 적다는 사실에서 비롯된 것일 수도 있습니다.


2
다중 사용자 운영 체제와 단일 사용자 운영 체제의 일부 차이점 : jdurrett.ba.ttu.edu/courseware/opsys/os01a.htm
moshen

7
좋아, 나는 12 년 이상 리눅스를 사용했고 훨씬 더 오랫동안 유닉스 계열 운영 체제를 사용해왔다. Linux를 좋아하는 만큼 Windows 보다 권한 시스템이 더 강력하다고 말할 수는 없습니다 . 초기 Windows 버전보다 보안 모델이 우수하지만 (항상 관리자 일 필요는 없음) WinNT 이상에는 강력한 권한 시스템이있어 그다지 효과가 없었습니다. 최신 Linux 버전에는 selinux가 더 강력하지만 비교적 최신 버전입니다 (매우 강력한 경우).
Eddie

5

'보안은 통제에 관한 것'

내 관점에서 볼 때 Windows에서는 Linux보다 제어가 적습니다. Windows를 강화하는 것은 더 어렵다 :). 모든 도구는 장인의 기술에 달려 있지만 다음을 고려할 것입니다.

  • Windows에는 위험이 더 높은 취약성과 자동 공격 (바이러스, 봇넷)이 더 많습니다
  • Windows 관리자는 편집증 (침입에 대한 두려움 때문에)이어야하며 일종의 강화 작업을 수행했습니다.
  • Linux sysadmins는 때때로 운영 체제 보안을 너무 신뢰하고 강화를 잊어 버립니다.
  • 해킹되면 Linux 시스템에서는 더 강력한 명령 도구가 있기 때문에 Windows 시스템보다 더 많은 일을 할 수 있습니다

따라서 Windows보다 Linux를 선호하지만 기본 설치를 신뢰해서는 안된다고 생각합니다.


3

이전 게시물의 대부분은 침입에 중점을 두 었으며 그 점을 다루는 좋은 일이 이루어졌습니다. 질문의 요점 중 하나는 바이러스에 관한 것입니다. 리눅스 배포판이 바이러스와 관련된 문제가 적은 가장 큰 이유는 리눅스와 맥이 합쳐진 것보다 더 많은 윈도우 박스가 있기 때문입니다. 바이러스 제작자들은 가장 큰 가치를 원하기 때문에 Windows 용으로 작성합니다.

모든 시스템은 침입 및 감염 될 수 있습니다. 강사 나 다른 사람들에게 당신에게 다른 말을하는 사람은 바보가 유타에서 당신을 파는 오션 프론트 재산입니다.


3

요즘 모든 소프트웨어의 보안 수정으로 판단 할 때 문제는 소프트웨어가 아니라 Windows를 실행하는 데스크톱 수라고 생각합니다. 이것이 봇넷을 만들기위한 목표입니다. 리눅스가 데스크톱 공간에서 실제로 성장하면 더 많은 공격을받을 것입니다. 나는 맥 OSX가 이미 이것을보고 있다고 생각한다.


2

Linux와 OpenBSD가 Windows보다 더 안전 할 가능성이있는 중요한 이유가 하나 있습니다. 이것이 운영 체제가 네트워크 공격으로부터 방화벽 자체를 차단하는 능력입니다.

Windows에서 Windows 방화벽이 패킷을 거부하기 전에 수신 네트워크 패킷이 운영 체제의 상당 부분에 노출되었습니다. Linux, IPTables 또는 PF를 사용하는 OpenBSD에서는 OS가 새로운 네트워크 패킷을 수신하는 과정에서 훨씬 일찍 불량 패킷을 격리하여 노출을 줄일 수 있습니다.

그러나 일단 포트를 열고 포트에서 서비스를 실행하면 (즉, 네트워크로 연결된 컴퓨터를 유용하게 만들면) 해당 서비스를 실행하는 코드만큼 안전합니다.


2

다른 OS보다 안전한 OS는 없습니다. 그것은 모두 시스템을 관리하는 사람들의 지식에 달려 있습니다.

수년 동안 재능이 뛰어난 일부 nix 관리자를 만나고 일했으며 매우 안전한 * nix 서버를 구성 할 수있었습니다. 그러나 Windows 호스트 앞에 붙이면 기계를 잠그는 방법을 모릅니다. 다른 방식으로, Windows 호스트 보안에 대해 적절한 금액을 알고 있지만 * nix 상자 앞에 놓으면 내가 무엇을하고 있는지 전혀 알 수 없습니다.

OS는 다른 것보다 안전하지 않습니다. 우리는 플랫폼의 역사에 대해 이야기하고 시간이 지남에 따라 어느 것이 더 안전한지 논의하기 위해 그것을 사용할 수는 있지만 10 년 전의 * nix OS에 대해서는 이야기하지 않고 Windows NT 4를 프로덕션 환경에 배포하는 것이 우리입니다 . 우리는 현대 OS (또는 적어도 우리는 있어야 함)와 더 안전한 OS에 대해 이야기하고 있습니다.

누군가가 Windows 방화벽으로 들어오는 패킷이 Linux 방화벽보다 OS의 많은 부분에 닿는 것에 대한 답변에서 누군가가 말하는 것을 보았습니다. 그에게 의문의 여지가 누가 지옥에서 호스트에서 실행되는 소프트웨어 방화벽을 신뢰합니까? 이것이 엔드 포인트 / 프론트 엔드 방화벽의 목적입니다. 네트워크를 보호합니다. 서비스를 실행하는 호스트에 서비스가 노출되어 있습니다. 서비스가 손상되지 않도록하는 것은 호스트 작업입니다. 다른 패킷이 인터넷에서 다른 서비스로 호스트로 전달되는 것을 방지하기 위해 네트워크 장치가 앞에 있습니다.

네트워크가 제대로 보안되면 호스트에서 실행되는 응용 프로그램의 보안 수준에 따라 달라집니다. 해당 애플리케이션에 악용 될 수있는 버퍼 오버 플로우가 있습니까? 노출 된 응용 프로그램 내에 OS에 도달하고 어쨌든 더 높은 수준의 권한을 얻는 방법이 있습니까? 그렇지 않은 경우 잘 보안 된 응용 프로그램입니다. 그렇다면 노출해야 할 문제가있는 것입니다.

누군가가 데이터 센터에서 다른 OS를 고려하지 않는다면 무지의 징후입니다 (모든 Linux 상점뿐만 아니라 모든 Windows 상점에도 적용됨). 두 OS 모두 사용이 있으며 그대로 사용해야합니다. 둘 다 다른 것보다 낫거나 나쁘지 않습니다. (그렇습니다. 프로덕션 서비스를 처리하는 환경에 몇 개의 Linux 시스템이 있습니다.)


1
나는 그것이 관리자의 지식에 달려 있다고 생각합니다. 당신은 요새 대 공격으로부터 요새를 방어하라는 요청을 받았다면, 나는 당신이 요새와 약간의 이점이 있다고 생각합니다. 여기서 비교되는 두 가지가 Linux와 Windows 인 경우 여러 사용자를 처리하고 시스템에 동시에 액세스 할 수 있도록 서로 다른 두 가지 철학으로 설계되었습니다. 훌륭한 관리자가 결함을 해결하는 데 도움을 줄 수는 있지만 여전히 출발점으로서 서로의 이점이 있습니다.
Bart Silverstrim

1

AdamB가 말한 것처럼 특정 요구 사항에 대해 Linux 서버를 사용하기 위해 대학을 저주 할 필요가 없습니다 (Mono (www.mono-project.com)). OS에 관심이있는 평범한 교수는 리눅스를 선호하고, 어떤 OS 애호가라도 리눅스를 선호 할 것입니다.

  • 이제 보안과 관련하여

리눅스는 이제 DAC (임의 액세스 제어)의보다 스마트 한 액세스 제어 시스템을 따릅니다. 다른 답변에서 언급했듯이 그렇습니다. 리눅스는 다중 사용자 방식이므로 액세스 제어 시스템이 다른 시스템보다 뛰어났습니다.

그러나 당신이 말하는 보안은 서버 보안처럼 보이지만 전체 서버 네트워크 문제보다 OS 문제 만큼은 아닙니다. 방화벽 액세스 제어 목록, 라우터 등을 의미합니다. 업데이트는 평생 무료입니다. 개방형이므로 많은 테스트를 거쳤으며 이는 매우 중요합니다.

보안과는 별도로 경제적 인 생존 능력으로 인해 리눅스는 서버에 가장 적합한 옵션이되지만 응용 프로그램은 서비스를 실행하거나 호스팅한다고 가정합니다. 그리고 이러한 응용 프로그램은 매우 잘 포팅되어 있습니다. 예-Apache.

나는 그것이 보안 만이 아니라 다른 대학들과 마찬가지로 서버에서 리눅스를 선택하게 만드는 다른 요인들이라고 생각합니다.


1

여기에 많은 훌륭한 답변이 있지만 보안 운영 체제와 같은 것은 없다는 것을 덧붙이고 싶습니다.

사람이 '안전한'플랫폼을 만들면 다른 사람이 시간이 지남에 따라 해당 플랫폼에서 구멍을 찾을 수 있다는 것이 알려져 있습니다.

나는 Evan의 첫 두 문장이 OS 보안을 가장 잘 요약한다는 데 동의합니다.

나는 운영 체제가 "안전하다"고 생각하지 않습니다. 운영 체제의 특정 구성에는 공격에 대한 특정 수준의 내성이 있습니다.

따라서 GNU / Linux, BSD 시스템 (Free / Open / Net), Microsoft, Windows, Mac OSX, Symbian, PalmOS, Cisco IOS, AIX, QNX, Solaris, z / OS 또는 TV, MP3 플레이어, 전자 레인지 등을 실행하는 기타 "운영 체제"

이들 각각은 결정된 개인이 착취 할 수있는 능력의 일부를가집니다.

이러한 이유로 대부분의 공급 업체는 시스템을 최대한 안전하게 구성하는 방법에 대한 백서를 보유하고 있습니다. 이는 다른 기술을 사용하여 표면적을 최소화하는 것을 의미합니다.

예 :

  • NAT
  • 리버스 프록시
  • 방화벽

1
나는 "원격으로 취약 할 가능성이 가장 적다"고 생각하기 위해 매일 openbsd에 돈을 넣었습니다.
Kyle Hodgson

나는 너의 돈을 버리지 않을 것이다! DOS <= 4에 대해 이야기하지 않는 한 (5.5 이전에 NDIS 드라이버가 없다고 생각하십니까?)
Wayne

1

프레임 워크에 관한 운영 체제 보안의 사실은 단지 커널 유형 문제보다 조금 더 큽니다. 개별적으로 각 프레임 워크에는 호환 보안 메커니즘이 있습니다. Microsoft Windows의 다중 사용자 계정 사양은 대량 배포 측면에서 약간의 유연성을 허용하지만 Linux를 사용하면 권한 및 위임과 관련하여 티까지 제어 할 수 있습니다.

.NET Framework 보안 수준은 주로 그룹 정책, powershell 및 netsh 콘솔 설정과 관련이 있습니다. 그 이유는 메모리에 동적 액세스 요청이있는 낮은 수준의 액세스 매개 변수에서 커널 원격 측정이기 때문입니다. Linux 프레임 워크는 종종 비슷한 수준의주의가 필요하지만 주로 언어를 구성 할 때 지정하는 플래그와 관련이 있습니다. 적절하게 구성된 Linux는 Microsoft Windows 구성 보안보다 더 안전한 것으로 입증되었습니다. "괜찮은"수준의 구성이지만; 도구는 특정 GUID를 사용하여 IIS를 통해 곧바로 빠져 들어 서비스에 빠질 수 있습니다. 전체 Linux는보다 많은 측면 제어가 가능합니다

주요 포인트 :

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. 

정부 통계 :

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.

개인적인 의견 :

각 운영 체제는 다른 시스템보다 안전 할 가능성이 있습니다. Linux 또는 Windows와의 높은 보안에서 작동하는 프레임 워크의 원시 비교를 살펴보면 웹 보안의 주요 부분이 가장 호환되지 않지만 효율적인 프레임 워크를 사용하고 있다고 말할 수 있습니다. 이런 방식으로 기본 하드 드라이브 액세스 권한과 라이브러리 핸들을 래치하기가 훨씬 어려워집니다. 이런 식으로 운영 체제 상단에 용접 된 그릇이 있습니다. Evan이 NTFS 및 / proc 또는 / dev 권한으로 말한 것처럼. 대화 할 수없는 것을 사용한다면; 깨지기 어렵다.

웹 개발에서 배운 것은 결코 프레임 워크를 과소 평가하지 않는다는 것입니다. .NET에는 SQL Server 클러스터에 대한 공유 탑재 볼륨 및 제어 메커니즘을 만들 수있는 권한이 있습니다. 아파치 소스는 리눅스를 사용하는 운영 체제에서도 같은 일을 할 수 있습니다. 리눅스가 개별적인 측면 제어와 다국어 제한 및 모니터링에 대해 더 많은 보안을 허용한다는 것은 꽤 괜찮은 질문입니다. Windows는 고급 로직 디버그 인터페이스를 통해 광범위한 감사 및 로깅 기능을 제공합니다. 둘 다 비교가 가능하다. 결국 "얼마나 잘 잠그고 있는가"와 "얼마나 많은 종과 휘파람이 있는가"로 좁혀진다. 프레임 워크 내에서. Apache는 추가 보안 강화 기능을 제공합니다.

현재 Linux 또는 Windows에서 PHP를 비교하는 현재 Linux 운영 체제 내에서 더 많은 확장 기능을 사용할 수 있습니다. Windows는 PHP와는 다른 권한 관리 수준을 가지므로 디렉토리 및 파일 액세스를 관리하기가 어렵습니다. 예를 들어 XAMPP, LAMPP 또는 WAMP와 같은 Apache에서는 방화벽에 대한 제한이 웹 브라우저와 동일한 터널링 규칙을 공유하기 때문에 위반하기가 쉽다는 사실을 고려할 때 Windows의 보안 수준이 약간 떨어진다고 생각합니다. 반면에 Linux는 앱 풀과 훨씬 더 복잡한 패킷 수준 보안 메커니즘을 사용하여 더욱 복잡하게 만들 수 있습니다. Windows는 네트워킹의 보안을 강화하기 위해 운영 체제의 모든 측면을 사용해야합니다.

최신 SEC_ATL 믹스를 사용하는 ASP.NET을 사용하는 Windows의 IIS (Windows 클라이언트가 아닌 Microsoft 서버)도 매우 안전 할 수 있습니다.

Apache만으로 Linux에서 Linux를 실행하여 상위 및 하위 레벨 드라이버, SMIME, 코덱 및 패킷 레벨 보안을 사용할 수 있습니다. Windows에서는 수천 대의 서버를 실행하는 경우 트래픽을 방해 할 수있는 오버레이 보안 메커니즘을 설치해야합니다.

Linux를 사용하면 커널이 더 얇아지고 순수 보안에 더 적합합니다 (NSLUG가있는 Apache에서 융합하는 것처럼).

Windows에서는 Powershell 모듈 프로그래밍 및 ASP.NET 프레임 워크에 대한 추가 오버레이 보안 및 그룹 정책을 USGS로 구성하는 것이 더 좋습니다. 대부분의 경우 Linux에서 자동으로 거부하고 생각하지 않는 트래픽을 차단하는 데 실제로 필요하기 때문입니다. 약.

마찬가지로 그들은 강할 수 있습니다. 기본적으로 Linux의 실제 배포는 구성되지 않은 Microsoft Windows Server가 마법사로 설정 한 것보다 강력합니다.

시간이 지남에 따라 Linux는 보안 게임에서 Windows를 능가합니다. 데비안 3 서버는 오늘날에도 여전히 Microsoft Server 2008 R2보다 강력하며 커널 재 구축없이 동일한 기술을 지원할 수있는 제품을 추측합니다. 데비안은 여전히 ​​담배를 피울 수 있으며, 나는 이것을 내 눈으로 보았다.

그것이 확실하기 전에 말한 것처럼. 그것은 당신이 일하는 직원과 당신의 눈을 자세하게 묘사합니다. 이는 대규모 서버 네트워크에서 작업 할 때 항상 가장 큰 차이를 만듭니다.


0

주로 오픈 소스 소프트웨어의 유비쿼터스 사용으로 인해 Linux가 더 안전한 선택이라고 생각합니다.

"커뮤니티"는 비린내가 무언가 어딘가에 추가되면 (예를 들어, openSSH가 갑자기 비밀번호로 집에 전화를 시작한 경우) 알아 차리게된다는 생각에서 비롯됩니다.

그러나 위의 다른 사람들이 이미 말한 것을 반복 할 수는 없습니다. 보안은 구성에 크게 의존합니다. 방화벽이없는 경우 openSSH가 집에 전화하지 않는지 걱정하는 사람은 null 루트 암호와 sshd에서 PermitRootLogin을 사용합니다.)


0

짧은 대답 : 처음에 UNIX는 안전하도록 설계되었습니다. Windows는 단순하도록 설계되었습니다. 이제 유닉스의 자손은 사용자에게 더 단순한 척 할 것입니다. Windows는 더 안전한 척합니다.

그들은 아직 만나지 못했습니다


2
바! Windows NT는 Unix보다 초기 디자인에서 보안에 대해 더 예견했습니다. 유닉스는 나중에 나중에 보안을 강화했습니다. 최신 Unix와 유사한 운영 체제 (예 : Linux는 완전히 새로운 코드 기반이므로 실제로 "Unix"운영 체제가 아님)는 원래 Unix에서 크게 향상되었지만 Windows NT는 처음부터 미국 국방부 "주황색 책"보안 요구 사항을 충족합니다.
Evan Anderson

0

이전 버전의 Windows에서는 동일한 주소 공간에서 응용 프로그램이 실행되었으므로 서로 포인터를 이동할 수있었습니다. 또한 협력적인 멀티 태스킹에 의존했으며 때로는 협조하지도 않았습니다.

초기 버전의 Linux / Unix조차도 응용 프로그램 간, O / S 및 응용 프로그램 계층 간 분할이있었습니다. 작업 분할은 항상 이상적이지는 않지만 적어도 공평했습니다.

따라서 높은 가용성이 필요한보다 강력한 시스템을위한 유닉스 (또는 Linux)의 유산.

이 모든 것이 오늘날에도 적용됩니까? 또 다른 질문입니다.


물론 그렇지 않습니다. Windows가 Linux 커뮤니티에서 얻는 부정적인 언론은 실제로 이전 버전을 직접 대상으로하며 상황이 바뀌 었다는 사실을 고려하지 않습니다. coop m / t를 사용하는 마지막 Windows 버전은 3.1이었고, DOS가 가장 중요했던 Windows의 마지막 버전은 ME였습니다.
Maximus Minimus

0

NT는 이전에 부족했던 많은 곳에서 유닉스를 따라 잡았으므로 파일 권한과 메모리 보호는 더 이상 큰 문제가되지 않습니다.

그러나 .... Unix 시스템에서 모든 장치에 대한 모든 액세스는 파일을 통해 이루어 지므로 보안을 쉽게 관리 할 수 ​​있습니다. 예를 들어, 사용자 X가 여전히 사용자 Y를 허용하면서 Windows에서 사운드 카드에 액세스하지 못하게하는 방법을 알고 있습니까? 유닉스에서는 이런 종류의 것들이 쉽습니다.

비. 디렉토리 구조는 훨씬 제정신입니다. (예를 들어, 사용자 응용 프로그램은 홈 폴더 등에 대한 쓰기 액세스 권한 만 있으면됩니다.) 그러나 몇 년 동안 창에서도 개선되었습니다.

디. 이는 SELinux (및 Trusted Solaris 및 Mac OS의 "Seatbelt"샌드 박스 기능)입니다. 이것을 NDAC (Non-Discretionary Access Control)라고합니다. 이러한 기능을 가진 OS 배포를 실행하는 경우, Unix가 항상 가지고있는 일반적인 DAC (permissions system)와 최신 버전의 Windows는 동시에 두 가지 보안 계층이 동시에 진행됩니다. SELinux 및 유사한 시스템이 부과하는 "응용 프로그램 방화벽" 예를 들어 Apache 웹 서버가 / tmp에 쓰고 / var / www 및 / etc / apache에서 읽을 수 있도록하는 정책을 설정할 수 있습니다. 다른 모든 디스크 액세스는 거부됩니다 에 관계없이권한. 마찬가지로 포트 80에서 들어오는 연결 만 허용하고 나가는 연결을 만들 수 없도록 지정할 수 있습니다. 그렇다면 누군가가 매우 나쁜 일을 할 수있는 버그가 있고 아파치가 루트로 실행 되더라도 문제가되지 않습니다. 정책은 그것을 막을 것입니다. 이것은 아주 작은 속도의 패널티를 요구하며, 비정상적인 구성을 사용하는 경우 고통 스러울 수 있지만, 일반적인 경우 구식 Unix와 Windows 모두에서 보안 수준을 크게 높일 수 있습니다.

이자형. 계층-유닉스 시스템은 교체 가능한 더 많은 개별 계층과 서비스로 구성됩니다. 이는 정확성 및 보안, 스왑 아웃 등을 개별적으로 분석 할 수 있음을 의미합니다. 대부분의 경우 재부팅 할 필요가 없습니다. 이것은 서버 유형 시스템에 큰 장점입니다. 또한 Unix 시스템에서 필요하지 않은 것을 비활성화하고 제거하는 것이 더 쉽습니다. 예를 들어, 웹 서버 박스에서 GUI를 실행하는 이유는 무엇입니까? 공격 표면을 늘리고 RAM을 차지합니다.

에프. Windows NT는 처음부터 보안을 위해 설계되었다고 말한 사람들에게, 사실 커널은 고급 보안 및 다중 사용자 기능으로 처음부터 설계되었지만 다음과 같은 두 가지 주요 문제가 있습니다. 2. OS 전체는 레거시 Windows 응용 프로그램과 호환되도록 설계되었으므로 많은 타협이있었습니다. 유닉스는 항상 다중 사용자 였으므로 보안이 적용될 때 응용 프로그램에 큰 놀라움이 없습니다.


Windows NT에서 "장치 파일"에 대한 보안 액세스는 Executive Object Manager에 적용된 ACL을 통해 수행됩니다. 파일 시스템과 거의 동일한 ACL 모델이 있습니다. Re : 귀하의 요점 "a": Microsoft 개발 지침을 준수하는 로고가있는 응용 프로그램은 사용자의 홈 디렉토리 외부에서도 쓰기 액세스가 필요하지 않습니다. re : "b": Windows에는 MAC 기능이 제한되어 있음에 동의합니다. Vista에 추가 된 무결성 수준은 MAC의 한 형태입니다. "고급 방화벽"(Vista에 추가됨)은 구성 방식을 선택하면 설명하는 방식으로 발신 트래픽을 제한 할 수 있습니다.
Evan Anderson

re : "e": 원칙적으로 소프트웨어가 적을수록 오류 발생 가능성이 적다는 데 동의합니다. GUI가없는 내부 Windows 빌드가 있지만 Microsoft는이를 릴리스하지 않기로 선택했습니다. re : "f": 써드 파티 개발자는 더 많은 문제가 있습니다. 개인적으로, Microsoft는 제대로 작동하지 않는 응용 프로그램에 대해 더욱 신중해야한다고 생각하지만 고객의 응용 프로그램이 실행되도록하려면 자유 및 오픈 소스 운영 체제 개발자와는 다른 "공간"에 살고 있습니다.
Evan Anderson

re : "OS 전체는 ... 호환성을 갖도록 설계되었습니다 ..."Win32는 커널 하위 시스템이며 NT가 아닙니다. Microsoft가 Win32 하위 시스템, GUI가없고 "Interix"POSIX 커널 하위 시스템으로 부팅 된 Windows NT의 "배포"를 구축하려는 경우 (또는 다른 사람을 허용하려는 경우) NT OS의 거의 모든 UI는 Win32 기반이지만 커널은 Win32 이외의 환경을 완벽하게 지원할 수 있습니다.
Evan Anderson

0

Linux 기반 시스템이 종종 Windows 시스템보다 안전한 것으로 간주되는 데에는 몇 가지 이유가 있습니다.

하나는 소유자의 기술입니다. Best Buy 또는 Wal-mart (여기서는 미국)에 들어가 컴퓨터를 많이 생각하지 않고 구입하면 Microsoft Windows가 실행됩니다. 즉, 실마리가없는 사람들이 운영하는 수많은 Windows 시스템이 있음을 의미합니다. 리눅스 컴퓨터를 실수로 구매하는 사람은 거의 없기 때문에 (적어도 Microsoft가 넷북에 반격을 가한 이후) 대부분의 Linux 사용자는 컴퓨터에 대해 알고 있거나 컴퓨터를 설치 한 사람이 컴퓨터를 설치 한 적이 있습니다. 이것은 자신이하는 일을 모르는 사람들을 얻는 모든 환경에 적용됩니다. Windows를 실행하지 않는 사람과 다양한 OS를 실행하는 사람.

하나는 공격자 수입니다. Microsoft Windows는 제대로 관리되지 않는 모든 시스템이 있기 때문에 훨씬 매력적인 대상입니다. 고가의 Linux 대상은 많지만 일반적으로 (고가의 Windows 대상과 함께) 잘 관리됩니다. 합리적인 근사치로, 아무도 리눅스 컴퓨터를 일반적으로 목표로 삼지는 않습니다.

하나는 문화입니다. 모든 유닉스 / 리눅스 환경에서 루트 계정과 사용자 계정은 분명하게 구별되며, 대부분의 경우 사람들은 루트가 아니어도 사용자 계정에서 작업합니다. 필자의 경험에 따르면 Windows 환경에서는 각 사용자가 일반적으로 하나의 계정을 가지며 모든 권한이 관련되어 있다는 점이 다릅니다. 저는 현재 업무용 컴퓨터를 사용하고 있는데 관리자 계정이 하나 있습니다. 내가하는 모든 일은 높은 권한을 가진 계정으로 이루어집니다. Linux 박스로 이동하면 제한된 권한 계정으로 거의 모든 작업을 수행하고 필요할 때 에스컬레이션합니다. 아내는 직장에서 자신의 컴퓨터에 두 개의 계정 (일반 관리자 계정과 제한된 권한 계정 하나)을 얻기 위해 열심히 노력해야했기 때문에 일반 사용자가 자신이 작성한 것을 실행할 권한이 있는지 확인할 수있었습니다.

하나는 이전 버전과의 호환성입니다. 유닉스는 안전한 OS로 시작하지는 않았지만 초기에는 보안을 확보했습니다. Linux 용 프로그램은 실제로 루트 기능을 수행하지 않는 한 루트로 실행할 필요가 없습니다. 반면에 Windows는 개발자 계정을 실행하고 테스트 한 것 (위 단락 참조)이기 때문에 관리자 계정이 필요한 많은 수의 프로그램을 실행합니다 (위 단락 참조). 일반적으로 개발자는 보안에 신경 쓰지 않았으며 정상적으로 작동했습니다. 이것이 바로 Microsoft가 UAC로 해결하려는 큰 문제입니다. 나는 이것이 좋은 해결책이라고 생각하지 않지만 솔직히 말해서 Microsoft는 여기서 좋은 해결책을 찾지 못할 것입니다 (역 호환성을 떨어 뜨리는 것이 여기에서 좋은 해결책이라고 생각하지 않습니다).

이로 인해 대부분의 대규모 보안 문제는 보안 모델의 장점과 Microsoft가 큰 보안 문제를 겪게된다는 인식에 관계없이 Microsoft 시스템에서 발생합니다. 가용성 휴리스틱에 의해 사람들이 더 많은 Microsoft 보안 문제를 생각할 수 있다는 사실은 판단에 편향됩니다.

이것이 제 생각에는 유효한 이유입니다. 지식이 풍부한 관리자가 실행할 때 Windows 또는 Linux 배포판이 다른 배포판보다 더 취약하다는 것을 알지 못하므로 실제 OS 보안에 대해서는 다루지 않았습니다. 리눅스는 누구나 버그를 찾아서 고칠 수 있다는 점에서 오픈 소스의 장점을 가지고 있으며, 마이크로 소프트는 더 잘 작동하거나 작동하지 않을 수있는 보안 관행을 제정했다. (실제로 안전한 OS를 운영하고 싶다면 보안을 위해 노력하는 오픈 소스 OS 인 OpenBSD를 선택하겠습니다.) 두 OS 모두 좋은 권한 시스템을 가지고 있습니다 (유닉스가 선호하지만 다른 합리적인 사람들은 동의하지 않습니다).

물론 OS의 보안 수준을 떨어 뜨리는 데는 나쁜 이유가 있습니다. 어떤 사람들은 좋아하는 OS를 가지고 있으며 다른 OS를 악용 할 기회를 낭비하지 않습니다. 어떤 사람들은 Microsoft 나 Richard Stallman 또는 다른 사람이나 조직을 싫어하고 관련 OS를 거부합니다. 마이크로 소프트가 실제로 보안에 신경 쓰지 않았고 Windows가 Linux보다 덜 안전하다는 것은 오래전이 아니었기 때문에 일부 사람들은 Microsoft가 수년에 걸쳐 변경되었음을 알지 못했습니다.


-1

관성 이외의 실제 이유는 없습니다. 나는 많은 리눅스 옹호자들이 보안 측면뿐만 아니라 Windows에 대해 논쟁을 벌이는 것을 옹호하는 것을 보았습니다.

이전에 말했지만 Windows에 더 많은 패치 등이있을 수 있지만 이러한 취약점은 확인 된 보안 취약점에 대한 수정 입니다 . 그리고 그것은 한 사람이 아니다 고정 당신이이다에 대해 걱정할 필요가 있다고? 나는 오픈 소스가 본질적으로 더 안전하다고 믿지 않습니다. 개인 사용자에게는 패치를 롤링하는 것이 좋을 수 있지만 회사 사용자 또는 관리자는 항상 다양한 앱에서 작동하고 완벽하게 테스트되고 인증 된 Real Thing을 원할 것입니다. 다음 커널 업데이트 FOSS 커뮤니티의 수정 사항에도 동일하게 적용됩니다.

제 책에서, 그것은 대안을 배제하기 위해 관성, 편견 그리고 유닉스 문화에 포함되어 있습니다.


-2

Linux / Unix의 프로세스는 사용자가 지정된 후에는 해당 권한을 변경할 수 없으며, Windows의 프로세스는 프로세스 중 사용자 권한을 변경하고 사용자를 변경할 수 있습니다.

이것이 왜 윈도우가 리눅스 / 유닉스보다 안전하지 않은지에 대한 본질입니다.


2
프로세스가 실행중인 컨텍스트에 "운영 체제의 일부로 작동"(SE_TCB PRIVILEGE) 권한이있는 경우에만 해당됩니다. SE_TCB PRIVILEGE가없는 보안 컨텍스트로 프로세스를 시작하면 프로세스가 다른 사용자를 임의로 "가장"(다른 보안 컨텍스트를 가정하는 NT-ism) 할 수 없습니다. 특별한 이유없이 SE_TCB PRIVILEGE를 사용하여 응용 프로그램을 실행하는 경우 자격이있는 IMO를 얻을 수 있습니다.
Evan Anderson

따라서 보안은 시스템 전체 규칙에 따라 "컨텍스트"에 의해 시행되므로 Windows는 unix / linux보다 보안 성이 떨어집니다.
불 까마귀
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.