Ouvi dizer que os sistemas baseados em Linux são melhores para segurança. Aparentemente, eles não têm vírus e não precisam de software antivírus. Até minha universidade afirma isso - eles se recusam a ter o Windows em seus servidores, o que é uma pena, porque queríamos usar a estrutura .NET para criar alguns sites.
A única razão pela qual eu vejo o Linux mais seguro é porque é de código aberto, então os bugs teoricamente seriam capturados e corrigidos mais cedo.
Eu sei um pouco sobre como os sistemas operacionais funcionam, mas realmente não me aprofundou em como o Linux e o Windows implementam seu sistema operacional. Alguém pode explicar a diferença que torna os sistemas baseados em Linux mais seguros?
Respostas:
Eu não acho que um sistema operacional seja "seguro". Uma configuração específica de um sistema operacional possui um grau específico de resistência a ataques.
Provavelmente, eu vou ser inflamado por ser um "apologista da Microsoft" aqui, mas esse tópico está muito afetado em generalizações sobre o "Windows" que não são verdadeiras.
O Windows 1.0 - 3.11, 95, 98 e ME são baseados no DOS. Essa linhagem de sistemas operacionais não tinha nenhuma segurança no sentido formal (espaços de endereço protegidos, separação de modo kernel / usuário, etc.). Felizmente, quando estamos falando sobre o "Windows" hoje, não estamos falando sobre esses sistemas operacionais.
A família de sistemas operacionais Windows NT (Windows NT 3.5, 3.51, 4.0, 2000, XP, 2003, Vista, 2008 e 7) possui um sistema de segurança razoavelmente "projetado" desde o lançamento inicial em 1992. O sistema operacional era projetado com o "Livro Laranja" do TCSEC em mente e, embora não seja perfeito, acho que é razoavelmente bem projetado e implementado.
O Windows NT era "multiusuário" desde o início (embora a funcionalidade de vários usuários recebendo uma interface gráfica do usuário simultaneamente no mesmo servidor não tenha acontecido até o Citrix WinFrame na era do Windows NT 3.51). Há uma separação do modo kernel / usuário, com a proteção do espaço de endereço confiando nas funções de hardware subjacentes da MMU e da CPU. (Eu diria que é muito "Unix-y", mas na verdade é muito "VMS-y".)
O modelo de permissão do sistema de arquivos no NTFS é bastante "rico" e, embora tenha algumas verrugas relacionadas à "herança" (ou a falta dela - consulte Como solucionar a falha de design de Mover / Copiar do NTFS? ), Não foi até nos últimos 10 anos, mais ou menos, nos quais os sistemas operacionais no estilo Unix implementaram funcionalidade semelhante. (O Novell NetWare venceu a Microsoft com força, embora eu ache que a MULTICS venceu ...> smile <)
O gerenciador de controle de serviço, incluindo o sistema de permissão para controlar o acesso aos programas de serviço iniciar / parar / pausar, é muito bem projetado e tem um design muito mais robusto que as várias arquiteturas "script" init.d "" (mais como "acordos de cavalheiros" ") em muitas distribuições Linux.
O gerente executivo de objetos (consulte http://en.wikipedia.org/wiki/Object_Manager_(Windows)) ), que é vagamente análogo ao sistema de arquivos / proc e ao sistema de arquivos / dev combinado, possui um modelo de ACL que é semelhante ao sistema de arquivos e muito mais rico do que qualquer modelo de permissão que eu conheça para / proc ou / dev em qualquer distribuição Linux.
Embora possamos debater os méritos e as desvantagens do registro, o modelo de permissão para chaves no registro é muito mais granular do que o modelo de configuração de permissões em arquivos no diretório / etc. (Gosto particularmente dos comentários de Rob Short sobre o registro em sua entrevista "Behind the Code":http://channel9.msdn.com/shows/Behind+The+Code/Rob-Short-Operating-System-Evolution Rob foi uma das principais pessoas por trás do registro do Windows inicialmente, e acho seguro dizer que ele não está necessariamente feliz w / como as coisas acabaram.)
O Linux em si é apenas um kernel, enquanto o Windows é mais análogo a uma distribuição Linux. Você está comparando maçãs e laranjas para compará-las assim. Concordo que o Windows é mais difícil de "desmontar" do que alguns sistemas baseados em Linux. Algumas distribuições Linux, por outro lado, também são enviadas com muita "porcaria" ativada. Com o advento dos vários sabores "incorporados" do Windows, é possível (embora não para o público em geral) criar "distribuições" do Windows que diferem em seu comportamento dos padrões da Microsoft (excluindo vários serviços, alterando permissões padrão, etc.) .
As várias versões do Windows tiveram sua parcela de padrões mal escolhidos, bugs que permitiram que usuários não autorizados obtivessem privilégios, ataques de negação de serviço etc. mesmos problemas. A Microsoft fez um trabalho incrível, desde o Windows 2000, ao facilitar a compartimentação de aplicativos, a execução de programas com menos privilégios e a remoção de recursos desnecessários do sistema operacional.
Em suma, acho que o que estou dizendo é que a configuração específica de um determinado sistema operacional para suas necessidades, com relação à segurança, é mais importante do que o tipo de sistema operacional que você está usando. As distribuições do Windows e Linux têm recursos muito semelhantes em relação aos recursos de segurança. Você pode aplicar técnicas de segurança sólidas (privilégios mínimos, instalação limitada de componentes opcionais, mecanismos de autenticação criptograficamente seguros etc.) em qualquer sistema operacional. Se você faz ou não, é isso que importa.
fonte
Outra coisa que não é mencionada é que a segurança no Windows é muito mais opaca do que no Linux.
Por exemplo, posso ver alguns arquivos de texto e ver exatamente o que meu servidor Web está executando. IIS? Nem tanto - você pode ver os resultados da configuração através da ferramenta GUI, mas há configurações ocultas. Então você precisa usar um conjunto diferente de ferramentas para revisar as ACLs nos arquivos etc.
É o mesmo com a maioria dos programas no mundo do Windows - é muito difícil entender rapidamente exatamente o que está afetando o ambiente de tempo de execução, entre o registro e as ACLs.
fonte
Não sei sobre a comparação de permissões de arquivo ... quando eu era administrador do UNIX / Linux, o NT4 tinha ACLs de arquivos muito mais granulares do que as permissões tradicionais do estilo '777' do UNIX / Linux. Permissões não são tudo, é claro, e tenho certeza de que as distribuições modernas do Linux disponibilizam ACLs refinadas, mesmo que não sejam implementadas por padrão. Na minha opinião, os conceitos sudo e root sempre existiram no UNIX, embora o Windows tenha adicionado esses conceitos constantemente e provavelmente esteja agora no mesmo nível.
Minha própria interpretação é que, uma vez que o código do kernel do Linux, e muitos de seus drivers e utilitários, estão abertos - provavelmente foi revisado muito mais amplamente e é corrigido com muito mais frequência por erros de codificação que podem levar a vulnerabilidades remotas que um hacker pode explorar. De qualquer maneira, a teoria diz que, como o Linux não é de propriedade de uma corporação, ele pode explorar o objetivo de segurança mais completamente do que uma corporação. As empresas devem ganhar dinheiro; enquanto grupos de código aberto simplesmente não têm essa restrição.
É muito mais fácil acessar um sistema Linux e simplesmente desligar o sistema de janelas inteiro, daemons RPC e assim por diante - você pode obter um sistema baseado em Linux ou BSD em uma ou duas portas abertas com um mínimo de pacotes instalados e ainda assim tenha um sistema muito útil com muita facilidade. Provavelmente, isso tem mais a ver com a herança do UNIX como sistema operacional do desenvolvedor; tudo foi construído para ser modular, não excessivamente interconectado. Isso leva a um sistema muito mais configurável, no qual você pode simplesmente remover coisas que não são relevantes. Não acho que seja tão fácil proteger servidores Windows dessa maneira.
O grupo OpenBSD levou esse conceito ao extremo. O principal objetivo número um do programa é revisar todas as linhas de código para possíveis falhas de segurança. A prova está no pudim, um número incrivelmente baixo de vulnerabilidades foi encontrado para o OpenBSD ao longo dos anos devido a essa atenção quase fanática (eu uso a palavra com respeito) aos detalhes.
As empresas, apesar de criarem um software maravilhoso (MSSQL, Exchange, Windows Server 2003 são maravilhosas no meu livro), têm apenas objetivos diferentes.
fonte
Na minha opinião, se os sistemas baseados em Linux configurados o suficiente forem mais seguros, os sistemas Windows. Alguns dos motivos são:
Transparência e ferramentas de rede simples e abundantes: por exemplo, é muito fácil para o administrador do Linux ver a configuração atual do firewall digitando "iptables -L -n" no shell. Você também pode ver quais portas estão abertas na máquina executando "nmap" de outra máquina Linux. Isso facilita muito a vida, pois você pode especificar com precisão quais portas têm permissão para serem acessíveis e de quais endereços, etc.
Arquivos de log de texto em um local: Os arquivos de log baseados em texto em um local "/ var / log" são fáceis de fazer backup e analisar. Também ferramentas como o logwatch, que podem monitorar esses arquivos de log e enviar por e-mail linhas importantes, facilitam as coisas. Podemos até escrever nossas próprias ferramentas para analisar os arquivos de log e encontrar as informações em que estamos interessados. Os logs podem até ser exportados para o servidor syslog remoto, caso não desejemos que os logs estejam presentes no mesmo servidor.
Não se preocupe com vírus: se os vírus são menos no Linux porque há menos sistemas baseados no Linux OU porque todos os usuários amam o Linux ou porque o Linux é mais seguro. O motivo não importa. Se, no final, o Linux tem menos ameaças de vírus, é uma coisa boa sobre o Linux. Eu pessoalmente vi pessoas instalarem dois antivírus, anti-spyware e anti-adware na mesma máquina. Todas essas ferramentas de proteção consomem muita CPU e memória.
Suporte para muitas linguagens de programação: É muito fácil codificar no Linux. C, C ++, Python, Perl, Java etc. funcionam apenas sem a necessidade de instalar nenhum pacote adicional. (Caso você instale uma grande distribuição como o Fedora, que vem em DVD.) Isso aumenta a segurança, pois podemos executar tarefas repetitivas por codificação. Portanto, se cometer um erro e houver um problema, isso seria com todas as contas e seria fácil de detectar e corrigir. Se tivéssemos que fazer as mesmas alterações em um grande número de contas / diretórios manualmente, poderíamos cometer erros em uma ou duas e levar muito tempo para encontrar esses erros. Também podemos corrigir os erros e procurar erros simples usando o código. Como todos os arquivos de configuração, arquivos de informações do usuário, arquivos de log etc. estão em texto, é muito fácil codificar o que queremos alcançar e há muitas maneiras de fazer as mesmas coisas.
Código de código aberto: como provavelmente muitas pessoas viram o código, é muito raro que algum spyware / adware faça parte dos aplicativos que acompanham o Linux. Você também pode ver o código-fonte se a segurança for muito importante para alguns serviços e ver como funciona. Se você sabe exatamente como isso funciona, você conhece as limitações e quando será quebrado. De fato, se houver limitações de segurança conhecidas que teriam sido documentadas nas páginas de manual, no site do pacote e nos comentários nos arquivos de configuração. Os desenvolvedores não têm nada a perder em dizer que, se você usar nossa ferramenta nesse cenário, será arriscado. Pode não ser lucrativo para as organizações que vendem software dizer limitações para o software e isso faria com que o software parecesse ruim e reduzisse a venda / lucro.
Livre e interoperabilidade: Embora isso não esteja relacionado à segurança. Para a Universidade, onde os custos são importantes, os sistemas baseados em Linux são muito mais econômicos que os sistemas baseados em Windows e não há necessidade de comprar licenças para SO, bem como para software adicional que instalaríamos após a instalação do SO. No que diz respeito à interoperabilidade, podemos conectar máquinas Linux a outros sistemas operacionais e compartilhar arquivos facilmente. No Linux, podemos montar muitos sistemas de arquivos, incluindo FAT, NTFS, HFSPLUS. Podemos compartilhar coisas usando ftp, http, ssh, samba, nfs, etc. e todas essas coisas vêm instaladas ou podem ser instaladas com um único comando. Outro sistema operacional geralmente oferece apenas uma opção de compartilhamento de coisas.
Mas se não estiver configurado corretamente, os sistemas baseados em Linux podem causar mais problemas, então podemos imaginar. Muitos usuários podem fazer login na máquina ao mesmo tempo e fazer quase tudo apenas a partir do shell. É muito fácil deixar backdoors, trojans, caso o firewall não esteja configurado corretamente. O atacante pode excluir o arquivo de log ou adulterá-los para ocultar suas faixas. O atacante pode codificar na máquina atacada, pois todos os editores, compiladores e depuradores estão prontamente disponíveis quando o atacante tiver acesso ao shell. Todos os servidores ftp, http, podem ser executados a partir da conta do usuário, mas não em portas seguras (1-1024). Assim, o invasor pode baixar o código do servidor http, compilá-lo e executar o servidor http na porta 6000 para torná-lo parecido com o X Server.
Portanto, os sistemas Linux são mais seguros, desde que o administrador saiba o que está fazendo ou pelo menos se preocupe em procurar informações nas páginas de manual e na documentação antes de fazer novas alterações.
fonte
A segurança do servidor é mais do que apenas o sistema operacional. Eu diria que um fator maior na segurança do servidor é a pessoa que está executando o servidor e quão cuidadosos eles foram em bloquear as coisas.
Dito isto, se a universidade for uma loja Linux, eles não permitirão que você use um Windows Server, independentemente dos dados encontrados na segurança do servidor Windows. Eu investigaria usando o Mono (www.mono-project.com) se você quiser usar a estrutura .Net.
fonte
Transparência
ps auxf
e você sabe quais serviços estão sendo executados, em qual conta.netstat -lnp
e você sabe quais programas têm quais portas TCP abertas.iptables -L
e você sabe quais regras seu firewall possui.strace
oulsof
inspecione o processo ativamente.ls -lah
outree -pug
e você sabe exatamente qual propriedade e permissões tem uma pasta completa./var/log
e podem ser inspecionados com uma simples "pesquisa nos arquivos"./etc
. Pesquisando arquivos de texto, arquivando-os ou aplicando o controle de versão (subversion / git) é realmente fácil.Sistema de permissão claro
ls
modo de cor).$HOME
e/tmp
.Opções de segurança avançadas
sudo
, usuários e processos podem receber permissões para executar apenas alguns comandos administrativos.Pontos únicos para entrada e elevação de privilégios
sudo
entrar em contato com um serviço DBus que verifica primeiro o PolicyKit. Esses programas SetUID podem ser encontrados com um único comando "Pesquisar todos os arquivos".ssh
. Esse é um túnel SSL com verificação de chave pública / privada.Proteger processos em segundo plano
Boas ferramentas de auditoria
nmap
,ncat
auditoria de segurança make fácil.Boas atualizações de segurança
lsof | grep =
).Tudo o que é mencionado aqui é entregue ou todas as principais distribuições Linux, como Red Hat, Debian, openSUSE ou Ubuntu.
fonte
O Linux foi projetado para ser um sistema multiusuário desde o início, por isso possui um sistema de permissões muito mais forte que o Windows. Também foi projetado para você não executar com direitos administrativos (acesso root); portanto, todos os programas foram projetados para não precisar dos direitos. Isso significa que, se sua conta for comprometida, o sistema inteiro não estará.
Parte disso também provavelmente vem do fato de que as pessoas que executam o Linux são (de um modo geral), mais técnicas e, portanto, menos propensas a cometer os erros estúpidos que levam os computadores a serem invadidos.
fonte
Do meu ponto de vista, no Windows você tem menos controle do que no Linux. Endurecer o Windows é ... mais difícil :). Embora qualquer ferramenta dependa das habilidades do usuário, eu consideraria o seguinte:
Portanto, embora eu prefira o Linux ao Windows, acho que você não deve confiar nas instalações padrão.
fonte
A maioria das postagens anteriores se concentrou na invasão, e um bom trabalho foi feito abordando esse ponto; um dos pontos da sua pergunta era sobre vírus. As maiores razões pelas quais as distribuições Linux têm menos problemas com vírus são o fato de haver mais caixas de janelas disponíveis do que Linux e Mac juntos. Os criadores de vírus desejam obter o melhor retorno possível, portanto, escrevem para o Windows.
Todos os sistemas são capazes de invadir e serem infectados. Quem lhe disser diferente, sejam seus instrutores ou outros, sejam tolos, terá uma propriedade em frente ao mar em Utah para vendê-lo.
fonte
A julgar pelas correções de segurança em TODOS os softwares hoje em dia, acho que o problema não é o software, mas o número de desktops executando o Windows. Este é o objetivo, criar redes de bots. Se o Linux realmente crescer no espaço da área de trabalho, ele também será atacado. Eu acho que o Mac OSX já está vendo isso.
fonte
Há uma razão muito importante pela qual o Linux e o OpenBSD têm o potencial de serem mais seguros que o Windows. Essa é a capacidade do sistema operacional de se proteger contra ataques de rede.
No Windows, os pacotes de rede recebidos foram expostos a partes significativas do sistema operacional muito antes de um firewall do Windows poder rejeitar o pacote. No linux, usando IPTables ou no OpenBSD usando PF, você pode isolar pacotes não autorizados muito antes no processo do SO receber um novo pacote de rede - reduzindo a exposição.
No entanto, depois de abrir uma porta e executar um serviço nela - ou seja, tornar um computador em rede útil - você fica tão seguro quanto o código que executa esse serviço.
fonte
Não existe um sistema operacional mais seguro que outro. Tudo depende do conhecimento das pessoas que administram o sistema.
Eu conheci e trabalhei com alguns administradores * nix extremamente talentosos ao longo dos anos e eles poderiam configurar um servidor * nix extremamente seguro. No entanto, coloque-os na frente de um host do Windows e eles não têm idéia de como travar a máquina. Da mesma forma, eu sei bastante sobre a segurança de um host Windows, mas me coloquei na frente de uma caixa * nix e não teria ideia do que estava fazendo.
Nenhum sistema operacional é mais ou menos seguro do que outros. Claro que poderíamos falar sobre o histórico das plataformas e usá-lo para debater qual deles foi mais seguro ao longo do tempo, mas não estamos falando de sistemas operacionais * nix de 10 anos atrás e da implantação do Windows NT 4 em ambientes de produção. . Estamos falando de sistemas operacionais modernos (ou pelo menos deveríamos estar) e quais podem ser melhor protegidos.
Vi alguém dizer algo em resposta sobre pacotes chegando ao firewall do Windows tocando mais partes do sistema operacional do que o firewall do Linux. Por pergunta a ele se torna quem confia em um firewall de software em execução no host? É para isso que servem os firewalls de ponto final / front-end. Para proteger a rede. O host que está executando um serviço tem um serviço exposto. É o trabalho dos hosts garantir que esse serviço não seja comprometido. É o trabalho dos dispositivos de rede à sua frente para impedir que outros pacotes passem da Internet para os outros serviços dos hosts.
Uma vez que a rede está adequadamente protegida, tudo depende de quão bem o aplicativo está sendo executado no host. Esse aplicativo possui estouros de buffer que podem ser explorados? Existem maneiras dentro do aplicativo exposto de acessar o sistema operacional e de alguma forma obter um nível mais alto de permissões? Caso contrário, é um aplicativo bem protegido. Se houver, você tem um problema que precisa ser exposto.
Se alguém não considerar outro sistema operacional em seu data center, isso é um sinal de ignorância (vale para uma loja totalmente Linux, bem como uma loja totalmente Windows). Ambos os sistemas operacionais têm usos e devem ser usados como tal. Nem é melhor ou pior que o outro. (E sim, temos duas máquinas Linux em nosso ambiente que lidam com serviços de produção.)
fonte
Não há necessidade de amaldiçoar sua universidade pelo uso de servidores Linux, para seus requisitos específicos, como AdamB disse, use o Mono (www.mono-project.com). Normalmente, o professor interessado em sistemas operacionais prefere o linux, mesmo qualquer entusiasta do sistema operacional prefere o linux, por simples curiosidades sobre como as coisas funcionam na prática em livros.
O linux agora segue o DAC (controle de acesso discricionário), um sistema mais inteligente para o controle de acesso. Como mencionado em outras respostas, sim, o linux estava no modo multiusuário e, portanto, o sistema de controle de acesso ficou melhor que os outros.
Mas a segurança a que você está se referindo se parece com a segurança do servidor, que não é apenas um problema de sistema operacional, mas todos os problemas de rede do servidor. Onde, quero dizer, Firewalls Access Control Lists, roteador etc ... As atualizações são gratuitas, por toda a vida. é aberto e testado muito, o que é muito importante.
além da segurança, a viabilidade econômica faz do linux a melhor opção para servidores, onde são poucos, mas os aplicativos devem executar ou hospedar serviços. E esses aplicativos são muito bem portados para eles. Por exemplo - Apache.
Eu acho que não era apenas segurança, mas outros fatores que fazem com que você goste da maioria das outras universidades optando pelo Linux nos servidores.
fonte
Embora haja muitas ótimas respostas aqui, só quero acrescentar que não existe um sistema operacional seguro.
Sabe-se que se um humano criou uma plataforma 'segura', outro humano pode encontrar buracos nessa plataforma com o tempo.
Concordo que as duas primeiras frases de Evan resumem melhor a segurança do SO:
Portanto, não importa se comparamos o GNU / Linux, os sistemas BSD (Free / Open / Net), Microsoft, Windows, Mac OSX, Symbian, PalmOS, Cisco IOS, AIX, QNX, Solaris, z / OS ou qualquer um dos outros "sistemas operacionais" que executam coisas como sua TV, MP3 player, forno de microondas etc., etc.
Cada um deles tem uma parte do todo que tem a capacidade de ser explorada por um determinado indivíduo.
Por esse motivo, a maioria dos fornecedores possui white papers sobre como configurar seus sistemas para garantir a configuração mais segura possível. Isso significa usar outras tecnologias para minimizar a área da superfície.
por exemplo:
fonte
O fato da Segurança do sistema operacional em relação às estruturas é um pouco mais do que apenas um problema do tipo kernel. Individualmente, cada uma das estruturas possui seus mecanismos de segurança compatíveis. A especificação da conta de multiusuários no Microsoft Windows permite um pouco mais de flexibilidade em termos de implantação em massa; no entanto, no Linux, você tem a capacidade de controlar tudo - os detalhes das permissões e delegações.
O nível de segurança do .NET Framework tem a ver principalmente com a diretiva de grupo, as configurações do powershell e do console do neth. O motivo é a telemetria do kernel em parâmetros de acesso de baixo nível com solicitações de acesso dinâmico na memória. As estruturas do Linux geralmente exigem um nível de atenção semelhante, mas isso tem a ver principalmente com os sinalizadores que você especifica quando está configurando o idioma. O Linux, quando configurado corretamente, é comprovadamente mais seguro do que a segurança configurada pelo Microsoft Windows. Embora em um nível "decente" de configuração; as ferramentas podem deslizar diretamente pelo seu IIS e entrar diretamente nos seus serviços usando um GUID específico. O Linux geral permite mais controle de aspecto do que
Pontos principais:
Estatutos do Governo:
Opiniões pessoais:
Cada sistema operacional tem o potencial de ser mais seguro do que o restante da caixa. Tomada a comparação bruta de estruturas que operam com uma segurança mais alta com Linux ou Windows, eu diria que a parte principal da segurança da web está usando a estrutura mais incompatível, mas eficiente. Dessa forma, torna-se muito mais difícil acessar as permissões de acesso do disco rígido nativo e os identificadores da biblioteca. Dessa forma, você tem uma tigela soldada sobre o sistema operacional. Como Evan havia dito com permissões NTFS e / proc ou / dev. Se você usa algo que não pode falar com isso; é mais difícil de quebrar.
O que aprendi com o desenvolvimento da web é: nunca subestime sua estrutura. O .NET tem permissões para criar volumes montados compartilhados e mecanismos de controle para clusters do SQL Server; enquanto o Apache Source pode fazer a mesma coisa com sistemas operacionais usando Linux. É uma pergunta bastante decente, embora eu deva dizer que o Linux permite mais segurança no controle de aspectos individuais e restrições e monitoramento em vários idiomas; enquanto o Windows tem o amplo poder de auditoria e registro em log com uma interface de depuração lógica de alto nível. Ambos são comparáveis, eventualmente se reduz a um "quão bem - você o trava" e "quantos sinos e assobios existem?" dentro da estrutura de trabalho. O Apache tem mais reforços de segurança suplementares;
No momento atual, comparando o PHP no Linux ou Windows, é óbvio que existem mais extensões que você pode usar em um sistema operacional Linux; O Windows possui um nível de gerenciamento de permissão diferente do PHP, o que dificulta o gerenciamento de diretórios e acesso a arquivos. No Apache, por exemplo, XAMPP, LAMPP ou WAMP, eu sentiria que o Windows é um pouco menos seguro, considerando o fato de que suas restrições no firewall são mais fáceis de violar porque ele compartilha as mesmas regras de encapsulamento do seu navegador. Por outro lado, o Linux pode usar pools de aplicativos e outros mecanismos de segurança em nível de pacote que são muito mais difíceis de imitar. O Windows exigiria o uso de todos os aspectos do sistema operacional para tornar a rede mais segura.
O IIS (em um servidor Microsoft, não o Windows Client) no Windows com ASP.NET com as misturas SEC_ATL mais recentes também pode ser muito seguro.
Somente no Apache, você pode executá-lo com o Linux para habilitar os drivers de nível superior e inferior, SMIME, codec e pacotes. Embora o Windows exija que você instale mecanismos de segurança sobrepostos que, de outra forma, obstruiriam seu tráfego um pouco mais do que você gostaria, se tratasse de executar milhares de servidores.
No Linux, quanto mais fino o kernel for e mais ideal para a segurança da rede, melhor (como a fusão do Apache com o NSLUG).
Com o Windows, você gosta mais de programar módulos Powershell e segurança adicional de sobreposição para sua estrutura ASP.NET e configurar sua política de grupo para USGS, porque na maioria das vezes ele realmente precisa bloquear o tipo de tráfego que o Linux negará automaticamente e não pensará sobre.
Igualmente eles podem ser fortes. Out of the Box, uma distribuição ao vivo do Linux será mais forte do que um Microsoft Windows Server não configurado que acabou de ser configurado com o Assistente.
Com o tempo, o Linux ultrapassará o Windows no jogo de segurança. Os servidores Debian 3 ainda são mais fortes atualmente do que o Microsoft Server 2008 R2 e adivinhem o que eles podem suportar as mesmas tecnologias sem uma reconstrução do kernel. O Debian ainda pode fumar, e eu já vi isso com meus próprios olhos.
Embora, como já foi dito antes, tenho certeza. Tudo se resume à equipe com a qual você trabalha e seu olhar aos detalhes. Isso sempre faz a maior diferença quando se trata de trabalhar em uma grande rede de servidores.
fonte
Predominantemente, acredito que o Linux é visto como uma opção mais segura devido ao seu uso onipresente de software de código aberto.
A facilidade vem da idéia de que "a comunidade" notará que se algo suspeito for adicionado a algum lugar (por exemplo, se o openSSH de repente começar a telefonar para casa com senhas) ele não ficará por muito tempo.
Mas não posso reiterar o suficiente o que os outros acima já disseram: a segurança depende muito da configuração: quem se importa se o openSSH não está ligando para casa se você não tiver firewall, uma senha raiz nula e o PermitRootLogin ativado no sshd;)
fonte
Resposta curta: inicialmente, o UNIX foi projetado para ser seguro; O Windows foi projetado para ser simples. Agora, os descendentes do UNIX vão fingir ser mais simples para seus usuários; O Windows finge ser mais seguro.
Eles ainda não se conheceram
fonte
As versões anteriores do Windows tinham aplicativos em execução no mesmo espaço de endereço, para que pudessem passar os ponteiros entre si. Eles também contavam com multitarefa cooperativa e, às vezes, não estavam cooperando.
Mesmo versões muito antigas do Linux / Unix tinham particionamento entre aplicativos e entre o O / S e a camada de aplicativo. A divisão de tarefas, embora nem sempre seja ideal, era pelo menos justa.
Assim, o legado do Unix (ou Linux) para sistemas mais robustos que precisam de maior disponibilidade.
Tudo isso ainda se aplica hoje? Essa é outra pergunta.
fonte
Agora que o NT alcançou o Unix em muitos dos lugares anteriormente deficientes, as permissões de arquivo e a proteção de memória não são mais grandes problemas de diferenciação.
Mas .... a. Nos sistemas Unix, todo o acesso a todos os dispositivos passa por arquivos, para os quais a segurança pode ser facilmente administrada. Por exemplo, você sabe como impedir o usuário X de acessar a placa de som no Windows enquanto ainda permite o usuário Y? No Unix, esse tipo de coisa é fácil.
b. A estrutura de diretórios é muito mais sã. (Por exemplo, um aplicativo de usuário precisa ter apenas acesso de gravação à sua pasta pessoal, etc.) Isso também melhorou no Windows nos últimos anos.
d. Isso é demais: SELinux (e o recurso de sandbox "Cinto de segurança" do Trusted Solaris e do Mac OS). Isso é conhecido como NDAC (Controle de Acesso Não Discricionário). Se você estiver executando uma distribuição de SO com esses recursos, haverá basicamente duas camadas de segurança acontecendo simultaneamente: o DAC (sistema de permissões) normal que o Unix sempre teve e as versões modernas do Windows - e, além disso, o "firewall de aplicativo" que o SELinux e sistemas similares impõem. Por exemplo, você pode definir uma política que diga que o servidor da Web Apache tem permissão para gravar em / tmp e ler em / var / www e / etc / apache. Todos os outros acessos ao disco serão negados independentementede permissões. Da mesma forma, você pode especificar que ele pode aceitar conexões de entrada apenas na porta 80 e não fazer conexões de saída. Então, mesmo se houver um bug que permita que alguém faça algo muito ruim, e mesmo que o apache esteja sendo executado como root, isso não importará - a política o impediria. Isso requer uma penalidade de velocidade (muito pequena) e pode ser um problema se você estiver usando uma configuração incomum, mas, no caso normal, pode aumentar seu nível de segurança em uma quantidade enorme em relação ao Unix e Windows à moda antiga.
e Camadas - Os sistemas Unix são compostos de muito mais camadas e serviços distintos que podem ser trocados. Isso significa que eles podem ser analisados individualmente quanto à correção e segurança, trocados etc. Para quase qualquer um deles, não há necessidade de reiniciar. Essa é uma grande vantagem nos sistemas de servidor. Além disso, é mais fácil desativar (e desinstalar) as coisas que você não precisa em um sistema Unix. Por exemplo, por que estar executando uma GUI em uma caixa de servidor da web? Aumenta a superfície de ataque e ocupa a RAM.
f. Para aqueles que disseram que o Windows NT foi projetado desde o início para segurança ... isso é verdade, o kernel foi projetado desde o início com recursos avançados de segurança e multiusuário, mas há dois problemas principais: 1. Histórico ruim da Microsoft com segurança e 2. O sistema operacional como um todo foi projetado para ter compatibilidade com aplicativos legados do Windows, o que significava muitos compromissos. O Unix sempre foi multiusuário e, portanto, os aplicativos não têm grande surpresa quando a segurança é imposta - o que significa menos comprometimentos.
fonte
Existem várias razões pelas quais os sistemas baseados em Linux são frequentemente considerados mais seguros que os sistemas Windows.
Uma é a habilidade do proprietário. Se você entrar na Best Buy ou no Wal-Mart (aqui nos EUA) e comprar um computador sem pensar muito, ele executará o Microsoft Windows. Isso significa que existem imensos números de sistemas Windows executados por pessoas que não têm idéia. Como quase ninguém compra um computador Linux por acidente (pelo menos desde que a Microsoft contra-atacou nos netbooks), a maioria dos usuários de Linux sabe alguma coisa sobre computadores ou teve seu computador configurado por alguém que o faz. Isso se aplica a todos os ambientes onde você recebe pessoas que não sabem o que estão fazendo; aqueles que não estão executando o Windows e aqueles que executam vários sistemas operacionais diferentes.
Um é o número de atacantes. O Microsoft Windows é um alvo muito mais atraente, por causa de todas as máquinas mal administradas por aí. Existem muitos destinos Linux de alto valor, mas geralmente são bem administrados (juntamente com muitos destinos Windows de alto valor). Para uma aproximação razoável, ninguém mira em computadores Linux em geral.
Um é a cultura. Em qualquer ambiente Unix / Linux, há uma distinção clara entre contas raiz e de usuário e, em quase todos os casos, as pessoas trabalham em suas contas de usuário quando não precisam ser raiz. Na minha experiência, a distinção não é tão forte em ambientes Windows, pois cada usuário normalmente terá uma conta, com os privilégios associados. Agora estou no meu computador de trabalho, onde tenho uma conta, uma conta de administrador. Tudo o que faço é feito por uma conta com altos privilégios. Quando eu voltar para a minha caixa do Linux, farei quase tudo em uma conta de privilégios limitados e aumentarei quando necessário. Minha esposa teve que argumentar muito para conseguir duas contas em seu computador no trabalho, uma conta de administrador normal e uma conta de privilégios limitados para que ela pudesse ver se usuários comuns têm privilégios para executar o que escrevem.
Uma é a compatibilidade com versões anteriores. Embora o Unix não tenha começado como um sistema operacional seguro, ele obteve segurança desde o início. Os programas para Linux não requerem execução como root, a menos que efetuem funções raiz. O Windows, por outro lado, executa um grande número de programas que exigem contas de administrador, porque foi nisso que os desenvolvedores executaram e testaram (veja o parágrafo acima), e esses desenvolvedores geralmente não tinham consciência da segurança e costumavam funcionar bem. Esse é o grande problema que a Microsoft estava tentando resolver com o UAC. Não acho que seja uma solução particularmente boa, mas para ser sincero, a Microsoft não encontrará uma boa solução aqui (não acho que largar a compatibilidade com versões anteriores seja uma boa solução aqui).
Isso leva ao fato de que a maioria dos problemas de segurança em larga escala ocorrerá nos sistemas Microsoft, independentemente dos méritos dos modelos de segurança e da percepção de que a Microsoft recebe os grandes problemas de segurança. Pela heurística da disponibilidade, o fato de as pessoas pensarem em mais problemas de segurança da Microsoft influencia seu julgamento.
Essas são, na minha opinião, os motivos válidos. Não toquei na segurança real do sistema operacional, pois não sei se a distribuição do Windows ou do Linux é mais vulnerável que a outra quando executada por um administrador experiente. O Linux tem a vantagem do código aberto, pois qualquer um pode encontrar e corrigir bugs, enquanto a Microsoft instituiu práticas de segurança que podem ou não funcionar melhor. (Se eu quisesse rodar um sistema operacional realmente seguro, escolheria o OpenBSD, um sistema operacional de código aberto que se esforça para ser seguro.) Ambos os sistemas operacionais têm bons sistemas de permissões (minha preferência é o Unix, mas outras pessoas razoáveis discordam).
Obviamente, existem más razões para considerar os sistemas operacionais menos seguros. Algumas pessoas têm um sistema operacional favorito e não perdem a oportunidade de falar mal de outros. Algumas pessoas não gostam da Microsoft ou Richard Stallman ou de outra pessoa ou organização e denegrem os SOs associados. Algumas pessoas não notaram que a Microsoft mudou ao longo dos anos, já que não faz muito tempo que a Microsoft realmente não se importava com segurança, e o Windows era menos seguro que o Linux.
fonte
Não há outro motivo real além da inércia. Eu já vi muitos defensores do Linux argumentando contra o Windows (e não apenas no lado da segurança) que, aparentemente, são válidos, mas - que quando você cava um pouco - se aplicam apenas ao Windows 3.1 ou 95/98.
Eu já disse isso antes, mas, embora o Windows possa ter mais patches / etc, esses são correções para vulnerabilidades de segurança que foram identificadas . E não são os que foram corrigidos que você precisa se preocupar, é? Não acredito que ser de código aberto seja intrinsecamente mais seguro também. A rolagem de seus próprios patches pode ser boa para um usuário doméstico, mas um usuário corporativo ou administrador sempre desejará que o Real Thing certificado para funcionar (e que tenha sido testado totalmente) com uma variedade de aplicativos e certificado para não quebrar a próxima atualização do kernel. O mesmo se aplica às correções da comunidade FOSS.
Então, no meu livro, é uma mistura de inércia, preconceito e estar incorporado na cultura UNIX, com exclusão de alternativas.
fonte
Os processos no Linux / Unix não podem alterar seus privilégios após a atribuição de um usuário, os processos no Windows podem alterar seus privilégios de usuário e seu usuário durante o processo.
Essa é a essência da razão pela qual o Windows é menos seguro que o linux / unix.
fonte