Os desenvolvedores devem ter permissões de administrador em seu PC

135

Os desenvolvedores devem ter permissões de administrador em seu PC ou estão dando a eles acesso de usuário avançado suficiente?

Alguns comentários:

  • Se eles quiserem experimentar um novo aplicativo que precisaria ser instalado, eles poderiam experimentá-lo em uma máquina virtual e depois solicitar ao administrador da rede que o instalasse para eles. Você acha que isso funcionaria?
  • Existe algo que um desenvolvedor precise fazer em seu PC que exija permissões de administrador?

Somos uma equipe de 5 desenvolvedores e desenvolvemos aplicativos da web

Craig HB
fonte
116
Se eu entrasse em um emprego e descobrisse que não tinha direitos de administrador na minha máquina, não voltaria no dia seguinte. Facilite a vida dos desenvolvedores, não mais.
Annakata 03/04/09
29
Essa pergunta sofrerá um viés de seleção - há momentos em que as máquinas do desenvolvedor devem ser bloqueadas, mas esse tipo de resposta nunca será votado em um site voltado para desenvolvedores.
Romandas 06/06/09
5
Menos comum do que se possa pensar. Na maioria dos casos, o problema subjacente são dados confidenciais - por exemplo, as leis de confidencialidade bancária da Suíça tendem a impedir que os desenvolvedores vejam dados reais do cliente (a reconciliação de contas é deixada como um exercício para o leitor). Nesse caso, o problema não é bloquear as máquinas, mas fornecer conjuntos de dados higienizados para o trabalho de desenvolvimento. A maioria das outras situações são requisitos regulatórios (por exemplo, trabalho com dados classificados) ou CYA de autoatendimento.
ConcernedOfTunbridgeWells
12
Eu me pergunto como a mesma pergunta se desdobraria em ServerFault ... (@romandas)
Ben Mosher
4
@ BenMosher: aqui está sua resposta: serverfault.com/questions/232416/…
kmote

Respostas:

228

A resposta é sim'. Os desenvolvedores precisam seguir as configurações do sistema para testar itens, instalar software (se nada mais, para testar o processo de instalação do que quer que eles estejam desenvolvendo), cutucar o registro e executar o software que não funcionará corretamente sem privilégios de administrador (apenas para listar alguns itens). Existem várias outras tarefas essenciais ao trabalho de desenvolvimento que exigem privilégios de administração.

Tendo em mente que a equipe de desenvolvimento não tem necessariamente acesso root aos sistemas de produção, os direitos de administrador em um PC local não comprometem significativamente a segurança dos sistemas de produção. Quase não há razão operacional legítima para restringir o acesso de administrador aos PCs locais para a equipe que precisa dele para fazer seu trabalho.

No entanto, o motivo mais importante para fornecer acesso administrativo é que a configuração de um ambiente de desenvolvimento comprometido ou de segunda taxa envia uma mensagem para sua equipe de desenvolvimento:

“Valorizamos seu trabalho tão pouco que estamos preparados para comprometer significativamente sua capacidade de realizar seu trabalho sem uma boa razão. De fato, estamos muito felizes em fazer isso para cobrir nossa própria bunda, satisfazer os caprichos da burocracia mesquinha ou porque simplesmente não podemos ser incomodados. Esse é apenas o melhor caso. O pior caso é que somos realmente o tipo de maluco de controle que o vê como nosso perogativo para lhe dizer como fazer seu trabalho e o que você faz ou não precisa. Satisfaça-se com o que lhe é dado e seja grato por ter um emprego.

Geralmente, fornecer um ambiente de trabalho de segunda categoria (e muito fundamentalmente defeituoso) para a equipe de desenvolvimento é uma receita para as consequências naturais de irritar sua equipe - incapacidade de reter pessoas competentes, alta rotatividade de pessoal, moral ruim e entrega de baixa qualidade. Sair do seu caminho para fazê-lo - especialmente se houver um tom de pandering ao capricho burocrático - é simplesmente irresponsável.

Lembre-se de que a rotatividade de sua equipe não implica apenas custos de substituição da equipe. O custo mais sério da rotatividade de pessoal é que a maioria dos que ficam por aí será a madeira morta que não consegue um emprego melhor. Com o tempo, isso degrada as capacidades dos departamentos afetados. Se o seu setor estiver suficientemente próximo, você também poderá obter uma reputação.

Um ponto a ser observado é que os privilégios administrativos são muito menos problemáticos para o desenvolvimento em sistemas unix-oid ou mainframe do que no Windows. Nessas plataformas, um usuário pode fazer muito mais em seu próprio domínio sem precisar de permissões para todo o sistema. Você provavelmente ainda desejará acesso root ou sudo para desenvolvedores, mas não ter isso será muito menos frequente. Essa flexibilidade é uma razão significativa, mas menos conhecida, da popularidade contínua de sistemas operacionais derivados de unix nas escolas de Ciência da Computação.

ConcernedOfTunbridgeWells
fonte
3
Há uma diferença em ter direitos de administrador e executar tudo com direitos de administrador :) É claro que muitos desenvolvedores precisam de direitos de administrador. Mas executar tudo de forma interativa com direitos de administrador em um sistema local não é o menos privilégio. Ele abre ataques contra sistemas de produção aos quais o desenvolvedor tem acesso e um PC local comprometido oferece a qualquer invasor o mesmo acesso. Isso é mais fácil do que você imagina. A segurança é um problema camada a camada, menos privilégio por processo e problema de treinamento do usuário. Respeitando a segurança de todos os dispositivos é a única maneira: vimeo.com/155683357
Oskar Duveborn
Sou defensor de conceder direitos de administrador local aos desenvolvedores, mas dizer que "os direitos de administrador em um PC local não comprometem significativamente a segurança dos sistemas de produção" dependerão do seu ambiente. O que mais preocupa a equipe de TI é que você instalará um software que contenha malware / vírus que possa se espalhar pela empresa ou se alguém comprometer sua máquina local e você tiver arquivos de dados confidenciais armazenados localmente ou em um banco de dados local. Em um mundo perfeito, nenhum desenvolvedor tem acesso aos arquivos de dados HIPAA / PCI e todos os bancos de dados dev são limpos, mas sabemos que esse não é o caso.
L_7337 13/09/18
87

Os desenvolvedores devem ter controle total e total da máquina que estão usando. A maioria das ferramentas de depuração requer permissões de administrador para se conectar ao tempo de execução do aplicativo que eles estão criando.

Além disso, os desenvolvedores frequentemente baixam e experimentam coisas novas. Adicionar etapas adicionais, como a necessidade de um administrador de rede e instalar algo para eles, frustra o desenvolvedor e rapidamente tornará a vida um inferno para a pessoa de operações de rede.

Dito isto, eles devem ser um administrador em SUA caixa, não na rede.

Eu não
fonte
5
O maior problema que encontrei com os desenvolvedores com permissões de administrador é que você aceita os direitos que possui nos recursos do computador local. Muitos resultados ruins de software - grava em C: \ Arquivos de Programas, grava no HKLM, etc. Na sua estação de trabalho, talvez, mas exige testes onde você não o faz.
SqlRyan 31/03/09
4
@rwmnau: Isso não se aplica ao desenvolvimento web. Além disso, o problema se torna aparente rapidamente ao fazer o controle de qualidade sob permissões normais.
NotMe
2
Disponibilizar VMs e logins de teste de desenvolvimento sem privilégios de administrador é uma boa maneira de facilitar o teste de que o software será executado com permissões normais de usuário.
ConcernedOfTunbridgeWells
O software lançado com essas permissões somente de administrador passou por um processo de controle de qualidade extremamente ruim (ou nenhum). O software deve ser testado em ambientes da vida real, portanto, o controle de qualidade deve detectá-lo mais cedo e o problema ignorado pelos desenvolvedores seria corrigido. Certo?
2
@rwmnau - Qualquer desenvolvedor que se preze está perfeitamente ciente disso, mas a resposta não é bloquear sua máquina de desenvolvimento. É para fornecer a eles um ambiente de teste no qual eles possam implantar seu projeto conforme a sua conveniência, para resolver esses problemas.
Spencer Ruport
48

Sim e não.

Sim, economiza muito tempo incomodando o suporte ao sistema.

Não, seus usuários não o possuem, portanto não conte com isso.

Desenvolvemos com permissões de administrador e testamos sem. O que dá certo.

Toon Krijthe
fonte
11
Minha esposa teve que pedir uma conta de não administrador em seu computador, para garantir que os usuários pudessem fazer o que podiam. Sua política é exatamente correta (e, portanto, votada).
David Thornley
1
Exatamente, o desenvolvedor deve ter admin, test e o controle de qualidade deve ter usuário.
Dr. Watson
Não posso concordar mais com você! O acesso de administrador é ótimo para o desenvolvimento, mas a maioria dos usuários não o tem (se você desenvolver software corporativo ... A TI bloqueia bastante as coisas normalmente).
Pulsehead 15/09/09
18

Administrador local sim, por todos os motivos mencionados acima. Administrador de rede não, porque eles inevitavelmente serão atraídos para tarefas de administração de rede porque "eles podem". Devs deve estar desenvolvendo. A administração de rede é um trabalho totalmente diferente.

Nick Van Brunt
fonte
15

Os desenvolvedores normalmente precisam fazer coisas que a pessoa comum não faria e, portanto, normalmente devem ter contas de administrador. Fazê-los pular através de aros estranhos desperdiça seu tempo e os desmoraliza. Pode haver exceções em situações de alta segurança, mas se você não pode confiar em alguém com uma conta de administrador, com certeza não pode confiar no código deles.

Eles também devem ter uma conta disponível com a mesma permissão que seus usuários (mais de uma conta se o pool de usuários tiver status de permissão diferente). Caso contrário, eles podem apenas desenvolver algo interessante, implantá-lo e depois descobrir que não funcionará para os usuários.

Também existem muitas maneiras de danificar computadores com contas de administrador (sim, eu fiz isso). O departamento de TI precisa de uma política que recrie novamente o computador de um desenvolvedor se não conseguir consertá-lo rapidamente. Em um local em que contratei, tive que assinar uma cópia dessa política para obter minha conta de administrador.

Esta é uma resposta bastante específica para o Windows. No Linux e em outros sistemas Unix-y, os desenvolvedores costumam se dar bem apenas com contas de usuário, geralmente não precisam de outra conta para teste (se eles têm uma conta com a qual podem fazer sudo, eles sabem quando estão usando o sudo, mas eles podem precisar de um com as mesmas permissões de grupo) e podem causar danos incríveis ao sistema operacional com muita facilidade; portanto, a mesma política de TI é necessária.

David Thornley
fonte
4
"Pode haver exceções em situações de alta segurança, mas se você não pode confiar em alguém com uma conta de administrador, com certeza não pode confiar no código deles". - esse é um ótimo pensamento, obrigado!
Utilizador
Você não pode confiar no código de qualquer maneira: você deve fazer o código revisado por pares para tudo. E acho que isso também faz sentido para as instalações: leve alguém para "revisar por pares" o software que está prestes a instalar.
Tim
10

Sim, o Half-Life 1 (e todos os mods relacionados: contra-ataque, dia da derrota, etc.) precisam de direitos de administrador (pelo menos para a primeira execução, acho) para funcionar corretamente no Windows NT, 2000, XP, etc. .

E que tipo de desenvolvedor não joga Counter Strike na hora do almoço? (uma porcaria, com certeza)

fortran
fonte
10

Tendo suportado a dor de ter que se desenvolver sem direitos de administrador na máquina, minha resposta só pode ser sim, é essencial.

Jason
fonte
8

Absolutamente! De que outra forma eu instalaria o gerenciador de downloads para baixar filmes à noite?

Às vezes, os desenvolvedores realmente precisam instalar coisas ou mudar alguma coisa no sistema para testar alguma idéia. Será impossível se você precisar ligar para o administrador sempre que precisar alterar alguma coisa.

Também tenho minha observação pessoal de que alguns administradores tendem a estragar tudo o que é possível, a fim de fazer com que pequenas coisas dependam deles diariamente assim ... o que, assegurando seu emprego? irritando os outros usuários? Não tenho resposta. Mas o bom senso não é visto aqui.

Na última vez que houve um problema no meu PC, participei ativamente da restauração do sistema, fazendo algumas sugestões trabalhando em equipe com o administrador, ou então pensei ... Admin ficou muito zangado e me acusou de tentar ensinar ele ou redefinir as regras. Suponho que era apenas o ego dele, pois ele não era visto tão legal em nosso quarto entre outros colegas.

Do utilizador
fonte
Eu não posso concordar mais. Depois de ser um engenheiro de sistemas por 6 anos, é doloroso ter que ligar para o suporte técnico para consertar algo.
Matthew Whited
8

A resposta é: os desenvolvedores devem ter 2 máquinas !!

  • Um desenvolvimento que possui direitos de administrador e energia, memória, tamanho de tela e portabilidade suficientes e privilégios de ADMIN, com software antivírus corporativo carregado mas configurável pelo desenvolvedor quando exigido pela política de conjunto automático.

  • Um corporativo que possui carga corporativa, políticas, privilégios de usuário não administrador, etc ... O desenvolvedor pode usar este para aplicativos de modo de liberação de teste de unidade, pois alguns desenvolvedores têm o hábito desagradável de fazer todos os testes de unidade com privilégios de administrador.


fonte
9
Ótima idéia ... mas a maioria das empresas não oferece nem uma máquina "boa" para duas.
Matthew Whited
1
Você pode executar a segunda máquina em uma VM com a compilação 'padrão'. Isso é particularmente útil se a rede de desenvolvimento for separada em seu próprio domínio. Uma VM de produção separada no domínio principal fornece aos desenvolvedores acesso aos recursos de rede.
ConcernedOfTunbridgeWells
5

Se você inverter a pergunta, acho que fica mais fácil responder; devemos remover permissões de administrador dos desenvolvedores? Qual é o ganho?

Mas, na verdade, acho que a resposta depende do seu contexto, do seu ambiente. Uma pequena startup terá uma resposta diferente para a agência governamental com certificação ISO.

Ed Guiness
fonte
5

Sim, mas eles precisam estar cientes das limitações que seus usuários enfrentarão ao executar o software em um ambiente mais limitado. Os desenvolvedores devem ter acesso fácil a ambientes "típicos" com recursos e permissões limitados. No passado, eu incorporava a implantação de compilações em um desses sistemas "típicos" (geralmente uma VM em minha própria estação de trabalho) como parte do processo de compilação, para que eu pudesse sempre ter uma idéia rápida de como o software funcionava em um máquina do usuário.

Os programadores também têm a responsabilidade de conhecer as regras rígidas e rápidas de escrever software para usuários não administradores. Eles devem saber exatamente quais recursos do sistema eles sempre têm permissão (ou são proibidos) de acessar. Eles devem conhecer as APIs usadas para adquirir esses recursos.

"Funciona na minha máquina" nunca é uma desculpa!

John Cromartie
fonte
5

Como administrador de sistemas, sou a favor de desenvolvedores com direitos de administrador local em suas estações de trabalho. Quando possível, não é uma má idéia fazer a maioria das coisas com uma conta padrão no nível de 'usuário' e, em seguida, usar outra conta 'admin' para fazer alterações, instalar aplicativos etc. Muitas vezes você pode usar sudo ou runas para realizar o que deseja, mesmo sem fazer logon Fora. Também é útil nos lembrar de quais são os problemas de segurança que os usuários finais terão que passar ao liberar para produção.

Em uma nota lateral, também é aconselhável ter um sistema [limpo] ou VM (s) para que você possa testar as coisas corretamente e não entrar no cenário "parece / funciona bem no meu sistema" devido a ajustes no sistema.

atom255
fonte
3

Nenhum usuário avançado

Antes de tudo, o Usuário avançado é basicamente um administrador - portanto, " limitar " um usuário ao Usuário avançado não fornece nenhum aumento de segurança ao sistema - você também pode ser administrador.

Faça logon interativamente como um usuário normal

Segundo, é claro que um desenvolvedor precisa de acesso administrativo à sua máquina de desenvolvedor (e servidores e segundas caixas e assim por diante), mas é claro que ninguém deve fazer logon interativamente como administrador durante o desenvolvimento ou teste normal. Use uma conta de usuário normal para este e muitos aplicativos.

Você realmente não deseja executar [inserir nenhum navegador, plug-in, mensagem instantânea, cliente de e-mail e outros] como administrador.

Normalmente, você também não faz logon na sua caixa do Linux como root, mesmo que tenha acesso root quando precisar.

Use uma conta de administrador pessoal separada

Forneça ao desenvolvedor uma conta de administrador pessoal separada em sua máquina (preferencialmente na conta de domínio), que também é um administrador válido em outros servidores de desenvolvimento / teste e caixas às quais a pessoa precisa de acesso administrativo.

Utilize "executar como" e no Vista + UAC para solicitar ou solicitar prompt e insira as credenciais administrativas para tarefas e processos somente quando necessário. PKI com cartões inteligentes ou similar pode reduzir bastante a tensão na inserção de credenciais com frequência.

Todo mundo está feliz (ou?;)

Em seguida, audite o acesso. Dessa forma, há rastreabilidade e uma maneira fácil de descobrir quem está usando as sessões de serviços de terminal em um servidor de desenvolvimento / teste específico que você precisa acessar agora ...

É certo que há definitivamente um trabalho de desenvolvimento que nunca exigirá privilégios de administrador local - como a maioria do desenvolvimento da Web, onde a implantação é testada em um servidor ou máquina virtual separada e onde o cassini ou o que é usado para depuração local realmente funciona bem como um usuário normal.

Oskar Duveborn
fonte
2
Você está dizendo: não permita que eles façam logon como administrador, mas forneça as chaves caso precisem fazer algo que exija. Eu li essa mesma porcaria no site da MS sobre o UAC, e mostra uma completa falta de consideração real sobre as centenas de coisas que um desenvolvedor faz em um dia.
NotMe
2
O UAC foi colocado para impedir que pessoas normais atirassem no próprio pé. Se um desenvolvedor faz isso, tenha vergonha dele. Se ele faz isso continuamente, ele precisa encontrar outra linha de trabalho.
NotMe
Se você fornecer as chaves, você realmente "permitirá" que elas façam login como administradores. Só que nunca é uma boa ideia fazer isso nas tarefas diárias. Por que as pessoas ainda pensam que isso é normal ou necessário, apenas porque são geeks, codificadores ou administradores, está além de mim.
Oskar Duveborn
Se você já viu o que um administrador de sistemas moderno faz em um dia, perceberia que a necessidade de acesso administrativo e a inserção de credenciais alternativas são muito maiores do que qualquer codificador de nível de sistema incondicional jamais verá. Eles ainda não fazem logon como administradores para as tarefas do dia-a-dia e se saem bem.
Oskar Duveborn
Você normalmente não faz logon como root em um sistema unix, mesmo quando o está administrando. Por que você faria isso em um sistema Windows, mesmo que seja um desenvolvedor? Isso não faz sentido. A execução de todos os aplicativos aleatórios como o Skype ou outros enfeites com altos privilégios do sistema é ignorante para dizer o mínimo - você apenas eleva os aplicativos que precisam.
Oskar Duveborn
3

Trabalho principalmente no mundo * nix e no modelo padrão para os desenvolvedores trabalharem em uma conta de usuário normal e sem privilégios, com a capacidade (via sudoou su) de escalar para privilégios de administrador conforme necessário.

Não sei ao certo qual seria o arranjo equivalente do Windows, mas, na minha experiência, a configuração ideal:

  • Por um lado, ter direitos de administrador disponíveis sob demanda fornece ao desenvolvedor todo o poder sobre sua estação de trabalho, quando necessário.

  • Por outro lado, o software Windows tem uma longa e longa história de suposição de que todos os usuários têm direitos de administrador, a ponto de muitos programas não serem executados para um usuário não administrador. Muitos dos problemas de segurança do Windows decorrem diretamente desse requisito implícito de que, para poder usar o computador com confiabilidade, todos os usuários devem ser administradores. Isso deve mudar e a maneira mais eficaz de garantir que seu software seja executado para usuários não administradores é que seus desenvolvedores os executem como usuários não administradores.

Dave Sherohman
fonte
Acho que não encontrei um aplicativo comercial que não possa ser executado como um usuário normal nos últimos 5 a 10 anos. Uma vez eu era um BOFH e todos os usuários naquele local foram forçados a executar tudo como usuários normais desde ~ 2001, na verdade - nenhum administrador privado delegou e funcionou muito bem e impediu muitos malwares da época. Também existem shims automáticos aplicados nas versões mais recentes do Windows, se um aplicativo herdado for executado (enganando-o em uma sandbox) e, no meu trabalho de desenvolvimento diário, é praticamente o Visual Studio que se eleva quando preciso anexar para outros processos para depuração.
Oskar Duveborn
3

[desculpas inglês não é minha língua materna, fazendo o meu melhor :)] Bem,

Experiência pessoal (eu sou um desenvolvedor c ++ / SQL):

Eu costumava ser administrador da minha máquina Windows no meu trabalho anterior. Eu também tinha direitos dbo (não dba) em bancos de dados, incluindo bancos de dados do ambiente de produção. Em 2 anos e meio, com 8 pessoas com esses altos direitos loucos ... nunca tivemos problemas. Na verdade, resolvemos muitos problemas atualizando o db manualmente. Poderíamos fazer muitas coisas rapidamente para hot fixes e desenvolvedores.

Agora mudei de emprego. Eu consegui (chorando muito) ser administrador da minha máquina Windows. Mas o servidor dev é um servidor red hat ao qual nos conectamos usando ssh. Tentar instalar o Qt foi uma tortura, limites de cota, limites de espaço, execução e direitos de gravação. Finalmente desistimos e pedimos ao administrador para fazer isso por nós. 2 semanas depois ainda nada está instalado. Estou ficando muito rápido lendo jornais e pressionando alt + tab.

Eu pedi direitos de administrador, pois apenas o desenvolvedor do meu soft usa esta máquina.

-> Resposta: "Se houver processos para você não fazer o que quiser. Ele deve funcionar bem uma vez no prod".

-> Tentando explicar a um gerente não técnico: "Não terei direitos de administrador em ambientes de produção ou UAT. Mas minha máquina de desenvolvimento é diferente. Se eu fosse construir cadeiras em vez de softwares, você me diria que posso coloquei as ferramentas que eu quero no meu workshop porque meu workshop precisa parecer com o local em que a cadeira será usada? Dou um pacote executável ao uat. As bibliotecas e ferramentas que eu usei para construí-los são invisíveis para o usuário final ou o cara instalando o pacote ".

Eu ainda estou esperando hoje. Encontrei uma solução, abra um ambiente de desenvolvimento, acesse seu juiz online favorito, desafie-se. quando alguém olha para sua tela, ele vê você programando. ;)


fonte
2

Você pode responder a isso de duas maneiras. Sim e não, ou depende. - Posso ser mais vago ....

Depende se é necessário que eles façam seu trabalho. Se for o caso, conceda a eles poderes administrativos no computador. Se não, então não. Nem todo desenvolvimento de software exige que um engenheiro tenha direitos de administrador.

Sim e não depende da sua opinião. Alguns engenheiros veem o computador como domínio e são as regras do domínio. Outros não querem a responsabilidade.

Trabalhei em uma empresa em que não tinha direitos de administrador e sempre que precisava fazer algo que exigia direitos de administrador, era necessário ligar para o suporte técnico e eles me concederam direitos de administrador temporário até a reinicialização. Às vezes era uma dor, mas era assim que eu vivia com ela. Também trabalhei em locais em que tenho direitos administrativos totais no meu computador. Isso foi ótimo, exceto no momento em que instalei algum software que hospedava o sistema operacional e tive que levar meu computador ao suporte técnico e fazer com que eles reinventassem o disco rígido ....

Pessoalmente, acho que um engenheiro deve ter direitos de administrador em seu computador, mas com o entendimento de que, se eles estragar tudo, uma nova imagem de linha de base pode ser recarregada e eles perderão tudo o que foi feito desde a linha de base original. No entanto, não acredito que todos em uma empresa devam ter direitos de administrador em seu computador. Os departamentos de contabilidade, assistentes administrativos e outros departamentos não precisam ter esses direitos para que não sejam concedidos.

Marca
fonte
Eu era contratado de uma empresa uma vez em que, para obter direitos de administrador, precisava assinar um aviso de que a equipe de TI não passaria mais de dez ou quinze minutos tentando consertar meu computador e, em seguida, faria uma limpeza completa e re -imagem. Pareceu-me justo.
David Thornley
Acordado. Com grandes poderes vem grandes responsabilidades.
CraigTP
2

ht tp: //msdn.microsoft.com/en-us/library/aa302367.aspx

Na minha experiência, é sempre necessário um compromisso entre nós (codificadores) e eles (segurança). Eu admito (embora eu odeie), há mérito no artigo da Microsoft acima. Como sou programador há anos, experimentei a dor de precisar instalar apenas um depurador diferente, para ficar irritado por não poder. Isso me forçou a pensar criativamente em como fazer meu trabalho. Depois de anos lutando contra nossa equipe de segurança (e várias discussões), entendo o trabalho deles de ter de proteger todas as áreas, incluindo minha área de trabalho. Eles me mostraram as vulnerabilidades diárias que aparecem, mesmo no aplicativo Quicktime mais simples. Eu posso ver sua frutificação toda vez que eu quero instalar um utilitário rápido ou ajustar meu IIS local para que eu possa causar um sério problema de segurança. Eu não entendi completamente até ver outro desenvolvedor ser enlatado. Ele estava tentando depurar e acabou desligando a Symantec apenas para obter (e depois DAR) algum vírus a centenas de pessoas. Foi uma bagunça. Ao conversar com um dos "secheads" (pessoal da segurança) sobre o que aconteceu, eu pude ver que ele queria apenas dizer "disse a você ...".

Aprendi que nossos secheads (bem, pelo menos os meus) só querem proteger nossa empresa. A boa notícia é que encontramos um compromisso, e eu posso fazer o meu trabalho e os secheads são legais com a nossa rede segura!

Credo


fonte
1

Sim, se você deseja que os participantes ou alguns usuários mal-intencionados se comprometam a comprometer seu domínio.

ou seja, Comprometer uma conta de baixo nível> Encontre onde admin -> Mimikatz -> Elevar permissões -> Administrador de domínio.

Portanto, não, usuários normais não devem ser administradores.

A Microsoft também disse que o UAC não é um limite de segurança; portanto, não o use como tal. Existem vários desvios do UAC disponíveis no mundo real.

Se eles precisam de administrador como parte de sua função, forneça contas de usuário administrador local de domínio separadas, usadas apenas para instalar o software (com permissões de administrador apenas em sua própria máquina), nunca para uso geral ou acesso à Internet. Isso deve ter uma política de senha mais rigorosa (por exemplo, comprimento mínimo de 15 caracteres). A funcionalidade Runas deve ser usada para isso.

Qualquer ambiente em que as contas de usuário normais sejam administrativas é uma receita para um desastre de segurança.

SilverlightFox
fonte
0

Uau, essa pergunta certamente abrirá algumas respostas interessantes. Em resposta, cito o frequentemente usado - 'Depende' :)

Nas pequenas empresas, isso pode ser apenas uma questão de ser pragmático. É provável que os desenvolvedores sejam os mais adeptos tecnicamente, por isso faz sentido para eles administrar suas próprias máquinas.

Pessoalmente, sou fã da "conta de administrador", que pode ser usada quando necessário - ou seja, "Executar como ..." (notei que essa abordagem era muito semelhante ao UAC posteriormente).

Se você estiver desenvolvendo software de desktop, não é uma má idéia para os desenvolvedores trabalhar dentro dos limites que o usuário final experimentará - ou seja, direitos limitados ou restritos. Se você criar o software com direitos limitados, é uma boa chance de encontrar os mesmos problemas que seus usuários-alvo enfrentariam com o mesmo conjunto de permissões.

Dito isto, se você tiver um bom laboratório de testes e / ou uma equipe decente de controle de qualidade, isso pode ser um ponto discutível - especialmente se você tiver uma prática ALM meio decente.

Então, finalmente - eu desenvolvo sem o UAC, principalmente porque confio em mim e em minhas habilidades. Em um ambiente de equipe, eu colocaria em votação. Em organizações maiores, talvez você não tenha essa liberdade. Os administradores da empresa geralmente têm a palavra final :)

RobS
fonte
0

Na minha empresa, desenvolvedores, engenheiros e meu chefe (proprietário da empresa) têm privilégios de administrador local. Meu chefe também tem privilégio de administrador de rede, caso eu seja atingido por esse barramento rebelde (ou saia). Todo mundo fica trancado.

Como administrador de sistema, essa configuração me causou um pouco de dor de vez em quando, especialmente quando um software não aprovado é instalado. No entanto, como parte de um programador, entendo a necessidade de usuários avançados terem mais controle sobre seu ambiente e, como tal, estou disposto a aturar as peculiaridades ou problemas ocasionais que possam surgir. Eu faço backups de rotina de suas estações de trabalho - apenas por precaução.

A propósito, tive mais problemas com o chefe mexendo nas coisas do que com qualquer outra pessoa. Como a velha pergunta: "Onde fica um elefante? Onde ele quiser!" Mas em uma pequena empresa onde ele é essencialmente o administrador de sistemas de "backup", não há muita escolha.

Mike
fonte
-1

Depende das habilidades do desenvolvedor e se ele é consultor ou não.

Eu acho que é razoável que um desenvolvedor experiente e confiável tenha o direito de fazer o que quiser com seu PC, desde que não prejudique sua produtividade.

Manrico Corazzi
fonte
6
Por que você amarraria as mãos de um consultor e não de um funcionário regular? Os dois não estão fazendo o mesmo trabalho? Você espera menos do consultor, embora provavelmente pague mais por eles? Isso parece realmente idiota. Além disso, se um desenvolvedor não pode manter sua própria máquina em funcionamento, ele precisa de um novo emprego #
214
-1

Ninguém no Windows XP deve usar uma conta de administrador para uso diário e, no Vista, se você precisar ser administrador, pelo menos, o UAC deve estar ativado. Especialmente desenvolvedores web e outros desenvolvedores que navegam na web com o Internet Explorer.

O que você pode fazer é fazer com que os desenvolvedores usem sua conta de usuário comum, mas forneça a eles uma segunda conta que seja um administrador em seu PC para que eles possam usá-la conforme necessário (Executar como). Eu sei que eles disseram desenvolvimento da Web, mas para o desenvolvimento do Windows, seu software deve ser testado usando uma conta de usuário comum, não como administrador.

Bratch
fonte