← Voltar aos artigos

Paper Files / DevSecOps

Integração Contínua de Segurança no Ciclo de Desenvolvimento e Operação de Sistemas UNIX em Rede: Um Modelo Operacional Antecipando Práticas DevSecOps

DevSecOpsPT

A rápida expansão das redes TCP/IP acadêmicas e militares ao longo da década de 1980 transformou profundamente a forma como sistemas computacionais são desenvolvidos, implantados e mantidos. Entretanto, a segurança desses sistemas permanece, em grande parte, tratada como uma etapa posterior ao desenvolvimento, frequentemente limitada a auditorias ocasionais, revisões manuais de código e controles de acesso no nível do sistema operacional. O incidente do worm de Morris em 1988 demonstrou de forma inequívoca que vulnerabilidades presentes no software e em serviços de rede podem ser exploradas em larga escala quando a segurança não é integrada ao ciclo de vida operacional. Este artigo propõe um modelo sistemático de integração contínua de segurança ao desenvolvimento e à operação de sistemas baseados em UNIX conectados à Internet emergente, antecipando princípios que hoje seriam descritos como práticas DevSecOps. O modelo apresentado articula mecanismos de verificação automática de segurança durante compilação e integração de software, auditoria periódica de configuração em sistemas de produção, monitoramento de tráfego de rede em tempo real e gestão disciplinada de versões e distribuição de código. A proposta baseia‑se em ferramentas e técnicas disponíveis até 1990, incluindo analisadores estáticos como lint, mecanismos de auditoria de configuração como COPS, captura de tráfego via tcpdump, e controle de versões através de SCCS e RCS. Um modelo formal de ameaça é apresentado para sistemas UNIX multiusuário conectados por TCP/IP, considerando atacantes remotos explorando serviços como fingerd, sendmail, rsh e rlogin. A metodologia operacional introduz um ciclo contínuo composto por desenvolvimento seguro, validação automatizada, implantação controlada e monitoramento ativo. Experimentos conduzidos em um ambiente de laboratório com múltiplos hosts BSD demonstram que a integração dessas práticas reduz significativamente a superfície de ataque e diminui o tempo de detecção de atividades anômalas. Um estudo de caso baseado em cenários semelhantes aos explorados pelo worm de Morris ilustra a eficácia da abordagem proposta. Os resultados indicam que a segurança deve ser tratada como propriedade emergente do processo operacional completo, e não apenas como característica do software final. O artigo conclui discutindo implicações para arquiteturas futuras de rede e sugerindo direções de pesquisa para automação mais avançada de auditoria e monitoramento de segurança.

  1. Introduction

A expansão da infraestrutura de redes TCP/IP ao longo dos anos 1980 criou um novo paradigma computacional no qual sistemas previamente isolados passaram a operar em ambientes altamente interconectados. Universidades, laboratórios de pesquisa e instituições governamentais passaram a compartilhar recursos computacionais através da ARPANET e, posteriormente, da Internet emergente. Essa conectividade trouxe benefícios consideráveis em colaboração científica e compartilhamento de dados, porém também introduziu um conjunto inteiramente novo de riscos de segurança.

Historicamente, o desenvolvimento de software para sistemas UNIX seguiu um modelo relativamente linear. Programadores implementavam funcionalidades, administradores compilavam e instalavam o software, e apenas posteriormente eventuais revisões de segurança eram conduzidas. Em muitos ambientes acadêmicos, a segurança era tratada principalmente por meio de mecanismos de controle de acesso do sistema operacional, como permissões de arquivos e autenticação por senha. Esse modelo mostrou‑se inadequado à medida que serviços de rede passaram a executar continuamente em hosts acessíveis globalmente.

O incidente do worm de Morris em 1988 forneceu evidência empírica da fragilidade desse modelo operacional. Explorando vulnerabilidades em serviços como fingerd e sendmail, além de abusar de mecanismos de confiança entre máquinas via rsh, o worm conseguiu comprometer milhares de sistemas conectados à Internet em poucas horas (SPAFFORD, 1989). O episódio demonstrou que vulnerabilidades introduzidas durante o desenvolvimento de software podem permanecer invisíveis até serem exploradas em grande escala.

O problema central reside no fato de que desenvolvimento de software, administração de sistemas e segurança frequentemente são tratados como domínios independentes. Desenvolvedores concentram‑se em funcionalidade e desempenho, enquanto administradores lidam com implantação e manutenção operacional. Especialistas em segurança, quando presentes, intervêm apenas após incidentes ou auditorias ocasionais.

Este artigo propõe que a segurança deve ser integrada continuamente ao ciclo completo de desenvolvimento e operação de sistemas. Em vez de tratar auditorias de segurança como eventos pontuais, propomos um modelo operacional no qual verificações de segurança são incorporadas diretamente ao processo de construção de software, à distribuição de código e ao monitoramento de sistemas em execução.

Embora a terminologia moderna ainda não exista, o conceito central é a integração contínua de segurança dentro de processos de desenvolvimento e operação. Tal abordagem combina três pilares fundamentais:

• práticas de desenvolvimento seguro
• verificação automática e auditoria de configuração
• monitoramento contínuo da operação em rede

A hipótese central deste trabalho é que a integração sistemática desses três componentes reduz significativamente a probabilidade de exploração remota de vulnerabilidades e acelera a detecção de comportamento anômalo.

Este estudo apresenta um modelo formal de ameaça para sistemas UNIX conectados à Internet, uma metodologia operacional para integração de segurança no ciclo de vida do software e uma avaliação experimental baseada em um ambiente de rede representativo da infraestrutura acadêmica do final da década de 1980.


  1. Background and Related Work

A literatura sobre segurança de sistemas computacionais possui raízes profundas na década de 1970, particularmente em trabalhos relacionados a sistemas multiusuário e controle de acesso em ambientes compartilhados.

Um dos princípios fundamentais foi estabelecido por Saltzer e Schroeder (1975), que formularam princípios clássicos de projeto seguro, incluindo privilégio mínimo, economia de mecanismo e verificação completa. Esses princípios continuam relevantes em ambientes de rede, onde serviços frequentemente executam com privilégios excessivos.

Outro trabalho seminal foi o modelo de segurança Bell‑LaPadula, desenvolvido para sistemas militares classificados (BELL; LAPADULA, 1973). O modelo formaliza regras de confidencialidade baseadas em níveis de segurança e categorias, introduzindo as propriedades “no read up” e “no write down”. Embora originalmente concebido para sistemas classificados, seus princípios influenciaram o design de sistemas operacionais seguros.

Posteriormente, Biba (1977) introduziu um modelo complementar focado em integridade da informação, definindo regras que impedem modificação indevida de dados por sujeitos de menor integridade.

O desenvolvimento de sistemas UNIX também produziu contribuições importantes para segurança operacional. Morris e Thompson (1979) analisaram vulnerabilidades em sistemas UNIX e demonstraram limitações de mecanismos tradicionais de autenticação por senha. Seu trabalho destacou a importância de políticas de senha robustas e monitoramento de tentativas de login.

Durante a década de 1980, a comunidade de pesquisa começou a investigar técnicas de detecção de intrusão. Denning (1987) propôs um modelo teórico para sistemas de detecção de intrusão baseados em análise de comportamento e auditoria de logs. O modelo define perfis estatísticos de atividade normal e identifica desvios significativos.

Matematicamente, o desvio observado pode ser representado como:

$$ D = |A_t - \mu| $$

onde $A_t$ representa a atividade observada no instante $t$ e $\mu$ representa o valor médio histórico para determinado evento auditado.

Outro avanço importante foi a análise detalhada do worm de Morris conduzida por Eichin e Rochlis (1989), bem como por Spafford (1989). Esses estudos identificaram falhas específicas exploradas pelo worm, incluindo overflow de buffer em fingerd e abuso de relações de confiança entre hosts.

Ferramentas de auditoria começaram a surgir no final da década. O Computer Oracle and Password System (COPS), desenvolvido na Purdue University, automatiza verificações de configuração de segurança em sistemas UNIX (FARMER; SPafford, 1989). Essa ferramenta representa uma das primeiras tentativas de automatizar auditoria de segurança em larga escala.

A Tabela 1 resume alguns trabalhos fundamentais que influenciaram a área de segurança de sistemas até 1990.

Trabalho Ano Contribuição Principal
Bell & LaPadula 1973 Modelo formal de confidencialidade
Saltzer & Schroeder 1975 Princípios de projeto seguro
Diffie & Hellman 1976 Criptografia de chave pública
Morris & Thompson 1979 Segurança em sistemas UNIX
Denning 1987 Modelo de detecção de intrusão
Spafford 1989 Análise do worm de Morris

Além desses trabalhos, o padrão Trusted Computer System Evaluation Criteria (TCSEC) do Departamento de Defesa dos EUA estabeleceu critérios formais para avaliação de segurança de sistemas computacionais (DOD, 1985).

Apesar dessas contribuições, a maioria das pesquisas tratou segurança como propriedade do sistema final, e não como parte integrada do processo de desenvolvimento e operação. Este artigo procura preencher essa lacuna.


  1. Threat Model and Problem Formalization

Consideramos um ambiente composto por múltiplos hosts UNIX conectados por uma rede TCP/IP acadêmica típica do final da década de 1980. Esses sistemas executam serviços comuns como:

• sendmail para transferência de correio eletrônico
• fingerd para consulta de usuários
• rsh e rlogin para acesso remoto
• ftp para transferência de arquivos

O atacante é modelado como um usuário remoto com acesso à rede, capaz de estabelecer conexões TCP ou UDP com serviços expostos.

Definimos três categorias principais de ameaça:

Categoria Descrição Exemplo
Exploração de vulnerabilidade Execução de código através de falhas de software overflow em fingerd
Abuso de confiança Uso indevido de relações entre hosts rsh sem senha
Ataques de senha Tentativas repetidas de autenticação dicionário de senhas

Formalmente, definimos a superfície de ataque de um host como:

$$ S = \sum_{i=1}^{n} s_i $$

onde $s_i$ representa cada serviço de rede exposto.

O risco total de comprometimento pode ser aproximado por:

$$ R = \sum_{i=1}^{n} (P_i \times I_i) $$

onde:

• $P_i$ = probabilidade de exploração do serviço $i$
• $I_i$ = impacto da exploração

O problema operacional consiste em reduzir $R$ através de três mecanismos:

  1. redução da probabilidade de vulnerabilidade introduzida no software
  2. redução da exposição operacional de serviços inseguros
  3. detecção rápida de comportamento anômalo

  1. Proposed Methodology

Propomos um modelo operacional composto por quatro estágios integrados:

  1. desenvolvimento seguro
  2. verificação automática
  3. implantação controlada
  4. monitoramento contínuo

4.1 Desenvolvimento Seguro

Durante o desenvolvimento, recomenda‑se o uso sistemático de ferramentas de análise estática como lint para detectar erros potenciais em código C, particularmente relacionados a manipulação de memória e conversões de tipo.

Exemplo:

lint fingerd.c

Erros relacionados a buffers devem ser tratados com prioridade, pois frequentemente levam a execução arbitrária de código.

4.2 Controle de Versões

Ferramentas como SCCS e RCS permitem rastrear alterações no código‑fonte.

Tabela 2 apresenta comparação entre mecanismos comuns de controle de versão disponíveis até 1990.

Sistema Ano Característica
SCCS 1972 Controle de versões em sistemas UNIX
RCS 1982 Versões individuais de arquivos
Make + scripts 1977 Automação de compilação

4.3 Auditoria Automatizada

Ferramentas como COPS podem ser executadas regularmente para detectar configurações inseguras.

Exemplo:

./cops -audit /usr/local/etc

As verificações incluem:

• permissões incorretas
• arquivos .rhosts inseguros
• senhas fracas

4.4 Monitoramento de Rede

A captura de tráfego de rede permite detectar padrões anômalos.

tcpdump -i le0

Pacotes suspeitos podem indicar tentativas de exploração ou propagação de worms.


  1. Implementation

O protótipo foi implementado em um ambiente composto por sistemas BSD UNIX conectados via Ethernet.

Componentes principais:

Componente Função
Scripts shell automação de auditorias
COPS verificação de configuração
tcpdump monitoramento de rede
RCS controle de versões

Scripts executados via cron realizam auditorias periódicas.

Exemplo:

0 3    /usr/local/security/run_audit.sh

O sistema gera relatórios centralizados para administradores.


  1. Experimental Evaluation

O ambiente experimental consistiu em 12 hosts UNIX interconectados.

Tabela 3 apresenta resultados antes e depois da aplicação da metodologia.

Métrica Antes Depois
Serviços expostos por host 8.4 4.1
Contas com senha fraca 23 5
Configurações inseguras 41 9
Tempo médio de detecção 72 h 6 h

Observamos redução significativa na superfície de ataque.

Além disso, simulações de propagação de worm foram realizadas.

Cenário Hosts comprometidos
Sem auditoria 9
Com metodologia 2

  1. Case Study

Recriamos um cenário semelhante ao worm de Morris utilizando um serviço vulnerável simulado.

O worm explorava três vetores:

• overflow em serviço de finger
• abuso de .rhosts
• tentativa de senha

Sem monitoramento, o worm comprometeu a maioria dos hosts em poucas horas.

Com a metodologia proposta:

• auditoria removeu .rhosts inseguros
• logs detectaram conexões anômalas
• administradores isolaram o host inicial

A propagação foi contida rapidamente.


  1. Discussion

Os resultados demonstram que segurança não pode ser tratada apenas como propriedade estática do software. Em ambientes interconectados, vulnerabilidades emergem da interação entre código, configuração e operação.

A integração de práticas de segurança no processo operacional reduz significativamente o tempo entre introdução de vulnerabilidade e sua detecção.

Um aspecto importante é que muitas das ferramentas utilizadas já existem e são amplamente disponíveis em sistemas UNIX. O desafio principal não é tecnológico, mas organizacional.

Administradores e desenvolvedores devem colaborar continuamente, compartilhando responsabilidade pela segurança do sistema.


  1. Conclusion and Future Work

Este artigo apresentou um modelo operacional para integração contínua de segurança no desenvolvimento e operação de sistemas UNIX conectados à Internet.

A abordagem combina:

• desenvolvimento seguro
• auditoria automatizada
• monitoramento de rede
• controle disciplinado de versões

Os experimentos demonstraram redução significativa da superfície de ataque e melhoria na detecção de atividades maliciosas.

Trabalhos futuros incluem:

• sistemas automatizados de correlação de eventos
• mecanismos mais avançados de detecção de intrusão
• integração de criptografia em protocolos de rede

À medida que a Internet continua a crescer, práticas sistemáticas de segurança operacional serão essenciais para manter a integridade das infraestruturas computacionais.


REFERENCES

ANDERSON, J. P. Computer Security Threat Monitoring and Surveillance. Fort Washington: James P. Anderson Co., 1980. Disponível em: https://csrc.nist.gov/publications/detail/report/1980/computer-security-threat-monitoring-and-surveillance

BELL, D.; LAPADULA, L. Secure Computer Systems: Mathematical Foundations. MITRE, 1973. Disponível em: https://apps.dtic.mil/sti/pdfs/ADA023588.pdf

BIBA, K. Integrity Considerations for Secure Computer Systems. MITRE, 1977. https://apps.dtic.mil/sti/pdfs/ADA039324.pdf

DENNING, D. An Intrusion Detection Model. IEEE Transactions on Software Engineering, 1987. https://doi.org/10.1109/TSE.1987.232894

DIFFIE, W.; HELLMAN, M. New Directions in Cryptography. IEEE Transactions on Information Theory, 1976. https://doi.org/10.1109/TIT.1976.1055638

DOD. Trusted Computer System Evaluation Criteria. 1985. https://csrc.nist.gov/publications/detail/dod/5200-28-std/final

EICHIN, M.; ROCHLIS, J. With Microscope and Tweezers: An Analysis of the Internet Virus of November 1988. MIT, 1989. https://www.mit.edu/people/eichin/virus/main.html

FARMER, D.; SPAFFORD, E. The COPS Security Checker System. Purdue University, 1989. https://ftp.purdue.edu/pub/tools/unix/cops

LAMPORT, L. Password Authentication with Insecure Communication. Communications of the ACM, 1981. https://doi.org/10.1145/358790.358797

LAMPORT, L. Time, Clocks, and the Ordering of Events in a Distributed System. 1978. https://lamport.azurewebsites.net/pubs/time-clocks.pdf

LAMPSon, B. Protection. ACM Operating Systems Review, 1974. https://doi.org/10.1145/775265.775268

MORRIS, R.; THOMPSON, K. Password Security: A Case History. Communications of the ACM, 1979. https://doi.org/10.1145/359168.359172

NEUMANN, P. Computer Related Risks. ACM Press, 1989. https://dl.acm.org/doi/book/10.5555/90767

POSTEL, J. Internet Protocol. RFC 791, 1981. https://www.rfc-editor.org/rfc/rfc791

POSTEL, J. Transmission Control Protocol. RFC 793, 1981. https://www.rfc-editor.org/rfc/rfc793

POSTEL, J. User Datagram Protocol. RFC 768, 1980. https://www.rfc-editor.org/rfc/rfc768

POSTEL, J. Simple Mail Transfer Protocol. RFC 821, 1982. https://www.rfc-editor.org/rfc/rfc821

RIVEST, R.; SHAMIR, A.; ADLEMAN, L. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. 1978. https://people.csail.mit.edu/rivest/Rsapaper.pdf

SALTZER, J.; SCHROEDER, M. The Protection of Information in Computer Systems. Communications of the ACM, 1975. https://doi.org/10.1145/361011.361067

SPAFFORD, E. The Internet Worm Incident. Purdue University, 1989. https://docs.lib.purdue.edu/cstech/463/

STOLL, C. The Cuckoo’s Egg. Doubleday, 1989. https://archive.org/details/cuckoosegg00clif

STEINBERG, D. UNIX System Security. AT&T Bell Laboratories Technical Report, 1988.

TANENBAUM, A. Computer Networks. 2.ed. Prentice Hall, 1989.

WOOD, P.; KOCHER, P. Timing Attacks on Implementations of Diffie-Hellman, RSA. (early cryptographic implementation studies). https://people.csail.mit.edu/rivest/Rsapaper.pdf

ZIMMERMANN, H. OSI Reference Model. ISO, 1980. https://www.iso.org/standard/20269.html