5 fatores humanos que afetam o desenvolvimento seguro de software

Views: 346
0 0
Read Time:4 Minute, 35 Second

Com a mudança para o trabalho remoto, é especialmente importante entender como apoiar, desencorajar e monitorar as condições das equipes de desenvolvimento.

Fatores humanos são as propriedades psicológicas, fisiológicas e ambientais que são intrínsecas às pessoas e também influenciam sua interação com o mundo. Evidências científicas mostram que certos fatores humanos – como fadiga, hora do dia, distrações e até formatos de exibição visual – afetam o desempenho humano e a segurança de impacto em indústrias como aviação, caminhões, saúde, manufatura e energia nuclear.

Os processos investigativos do Conselho Nacional de Segurança nos Transportes consideram os fatores humanos que contribuem para um acidente, além de falhas mecânicas. A Dirty Dozen da FAA lista as 12 causas comuns de erros no local de trabalho da aviação devido a fatores humanos.

Segurança e segurança estão intimamente ligadas; afinal, as violações de segurança podem fornecer acesso não autorizado a sistemas críticos à segurança. Você provavelmente já leu sobre atacantes ganhando acesso remoto a bombas de infusão médica ou desligando sistemas de segurança de automóveis. E o software, que é um componente importante da maioria dos sistemas críticos à segurança, é notoriamente inseguro.

O que a engenharia de software pode aprender com a pesquisa de fatores humanos em sistemas críticos à segurança?

Onde a Segurança do Aplicativo atende a Psicologia

Eu me propus a responder a esta pergunta com meus parceiros de pesquisa na Secure Decisions e no Instituto de Tecnologia de Rochester. Se pudéssemos identificar os fatores humanos que desempenham um papel na segurança do software, então os gerentes de desenvolvimento poderiam usar esse conhecimento para reduzir a introdução acidental de vulnerabilidades no código. E as equipes de segurança poderiam localizar códigos que eram mais propensos a serem vulneráveis.

Revisamos a literatura científica e conduzimos nossa própria pesquisa. Analisamos fatores como tamanho da equipe, nível de atenção focada, separação física dos desenvolvedores, hora do dia em que o código é escrito e horas trabalhadas por dia e avaliamos suas relações com vulnerabilidades encontradas no software.

Através da pesquisa, conseguimos identificar uma série de fatores humanos que estão associados a softwares inseguros. Com a mudança para o trabalho remoto, é especialmente importante entender os fatores humanos que os gestores precisam apoiar, desencorajar e monitorar para criar condições ideais de trabalho para equipes remotas. Aqui está um resumo de alto nível de algumas de nossas principais descobertas.

Desenvolvedores precisam de atenção focada

A contribuição desfocada aumenta quando um desenvolvedor está modificando vários arquivos ou quando o número de contribuintes exclusivos para um arquivo aumenta. A contribuição desfocada está associada a um maior número de vulnerabilidades. Isso sugere que os gerentes de desenvolvimento devem pensar duas vezes antes de atribuir duas muitas tarefas separadas a um único desenvolvedor. E os desenvolvedores devem se situar em um ambiente relativamente livre de distrações.

Equipes maiores se correlacionam com código menos seguro

Equipes maiores significam mais fraquezas e vulnerabilidades. É difícil dizer qual é o tamanho ideal da equipe. Mas pesquisas mostram que arquivos Chromium com 9 ou mais desenvolvedores eram 68 vezes mais propensos a ter uma vulnerabilidade, e arquivos de servidor web Apache com 9 ou mais desenvolvedores eram 117 vezes mais prováveis. Então, meu conselho é manter as equipes de desenvolvimento relativamente pequenas e focadas.

Horas de trabalho excessivas afetam o desempenho

As diretrizes baseadas em pesquisa em aviação e medicina indicam que as pessoas envolvidas em trabalhos críticos à segurança não devem trabalhar mais de 11 horas por dia. É sabido que o desempenho humano se degrada significativamente à medida que as pessoas trabalham longos períodos de tempo. Devemos aplicar isso aos desenvolvedores de software e limitar seu trabalho sustentado a não mais do que 11 horas por dia. O software “marchas da morte” deve ser evitado e não aplaudido.

O Código hora do dia é matéria escrita

Código redigido entre meia-noite e 8:00 e meio-dia às 16:00 tem arquivos com mais vulnerabilidades. Isso mapeia nossos ritmos circadianos, que são mudanças cíclicas em nosso estado de alerta mental e excitação fisiológica ao longo de um dia. O estado de alerta da maioria dos humanos diminui entre meia-noite e 6 da manhã, e muitos também sofrem alerta reduzido por volta das 14h. É prudente que os engenheiros de software não codam nas primeiras horas da manhã, e faça uma pausa no início da tarde.

Localização da equipe não influencia

A segurança do código realizada pela Microsoft não encontrou diferença na segurança do software entre equipes no mesmo prédio, refeitório, campus, localidade ou mesmo continente. Equipes distribuídas e equipes co-localizadas tiveram essencialmente o mesmo número de falhas pós-lançamento. Isso é bom saber como vivemos agora em um ambiente de trabalho remoto.

Estudar fatores humanos nos dá uma nova maneira de identificar o código fonte que é mais provável de conter vulnerabilidades com base no que sabemos sobre os desenvolvedores e as equipes que escreveram o código. Por exemplo, analistas e desenvolvedores poderiam optar por primeiro triagem de resultados de análise estática ou realizar revisões de código em código que foi construído por uma equipe de nove desenvolvedores onde a maior parte do código foi cometido às 2 da manhã.

Entender os fatores humanos é especialmente importante à medida que desenvolvemos novos modelos para o trabalho remoto. Os gestores poderiam usar pesquisas de fatores humanos para moldar um ambiente de trabalho remoto com menos horas de trabalho sustentadas e menos projetos simultâneos que, por sua vez, promovem práticas de desenvolvimento mais seguras.

FONTE: DARK READING

POSTS RELACIONADOS