Paper Files / DevSecOps
Integração Sistemática de Desenvolvimento, Operações e Segurança em Ambientes UNIX Conectados à ARPANET: Um Modelo Operacional Integrado para Sistemas Distribuídos (1986)
computernetworks00tane. Acesso em: 13 abr. 2026. DENNING, Dorothy. Cryptography and Data Security. Reading: Addison‑Wesley, 1982. Disponível em: https://archive.org/details/cryptographydata00denn. Acesso em: 13 abr. 2026. BISHOP, Matt. Security Problems with the UNIX Operating System. University of California Technical Report, 1984. Disponível em: https://ntrl.ntis.gov/NTRL/dashboard/searchResults/titleDetail/ADA146765.xhtml. Acesso em: 13 abr. 2026. GRAMPP, F. T.; MORRIS, R. H. UNIX Operating System Security. AT&T Bell Laboratories Technical Journal, v.63, n.8, p.1649–1672, 1984. DOI: http
- Introduction
A consolidação do sistema operacional UNIX em universidades, laboratórios de pesquisa e instituições governamentais ao longo da década de 1980 alterou profundamente o panorama da segurança computacional. Originalmente concebido como um sistema de compartilhamento de tempo em ambientes relativamente controlados, o UNIX passou gradualmente a operar em redes interconectadas baseadas na arquitetura TCP/IP (POSTEL, 1981a). A interconectividade proporcionada pela ARPANET transformou sistemas anteriormente isolados em nós acessíveis remotamente.
Serviços como telnet, ftp, smtp e rlogin tornaram‑se componentes fundamentais da infraestrutura de comunicação entre hosts. Esses serviços, contudo, foram projetados em um contexto no qual a confiança entre instituições era amplamente assumida. Como consequência, muitos mecanismos de autenticação e controle de acesso não foram concebidos para ambientes adversariais (SALTZER; SCHROEDER, 1975).
Em ambientes institucionais típicos de 1986 observa‑se uma clara divisão organizacional: programadores concentram‑se no desenvolvimento de aplicações, frequentemente escritas em linguagem C; administradores de sistemas gerenciam contas de usuários e disponibilidade de serviços; operadores de rede mantêm conectividade entre hosts. A segurança frequentemente é tratada apenas após a ocorrência de incidentes.
Argumentamos que essa fragmentação cria vulnerabilidades estruturais. Problemas como validação inadequada de entrada, uso inseguro de funções de manipulação de strings e configuração permissiva de serviços de rede não são apenas falhas isoladas, mas sintomas de ausência de integração entre desenvolvimento e operação.
Propomos, portanto, um modelo operacional integrado que combina práticas de engenharia de software seguro, administração de sistemas e monitoramento contínuo de eventos. Embora a literatura técnica da época trate separadamente desses aspectos, demonstramos que sua integração sistemática reduz significativamente a superfície de ataque em ambientes UNIX conectados à ARPANET.
- Background and Related Work
A arquitetura TCP/IP constitui a base da interconectividade entre redes heterogêneas. O protocolo IP foi formalizado na RFC 791 e o protocolo TCP na RFC 793 (POSTEL, 1981a; POSTEL, 1981b). Essas especificações estabeleceram os mecanismos fundamentais de endereçamento e transporte confiável de dados entre hosts.
O serviço de correio eletrônico foi padronizado por meio do protocolo SMTP (POSTEL, 1982). Em sistemas UNIX, a implementação sendmail tornou‑se rapidamente um componente central da infraestrutura de comunicação.
O modelo de segurança do UNIX baseia‑se em três mecanismos principais: permissões de arquivos (rwx), separação entre usuários comuns e superusuário (root) e programas privilegiados utilizando o mecanismo setuid. Embora simples e eficiente, esse modelo não foi originalmente projetado para ambientes amplamente distribuídos (RITCHIE; THOMPSON, 1974).
Saltzer e Schroeder (1975) estabeleceram princípios fundamentais para a engenharia de sistemas seguros, incluindo privilégio mínimo, separação de privilégios e economia de mecanismo. Esses princípios fornecem base conceitual importante para a análise de vulnerabilidades em sistemas UNIX.
A detecção de intrusão começou a ser formalmente discutida na literatura com o trabalho de Anderson (1980), que propôs o monitoramento sistemático de registros de auditoria para identificar atividades suspeitas. Posteriormente, Denning (1986) introduziu um modelo estatístico para detecção de intrusão baseado em perfis de comportamento.
Experimentos sobre comportamento de programas autorreplicantes em redes distribuídas também foram documentados por Shoch e Hupp (1982), demonstrando a possibilidade de propagação automática de software entre hosts conectados.
- Threat Model and Problem Formalization
Modelamos um sistema conectado à ARPANET como um conjunto de serviços expostos via TCP/IP:
$$ S = {s_1, s_2, …, s_n} $$
Cada serviço $s_i$ possui uma probabilidade estimada de exploração $p_i$ e um impacto potencial $I_i$.
Definimos o risco agregado do sistema como:
$$ R = \sum_{i=1}^{n} p_i \cdot I_i $$
O impacto $I_i$ pode representar perda de confidencialidade, integridade ou disponibilidade.
Consideramos três classes de atacantes:
- usuário remoto autenticado
- usuário remoto não autenticado
- usuário local com privilégios limitados
A confiança implícita entre hosts, frequentemente configurada em arquivos como /etc/hosts.equiv ou .rhosts, aumenta significativamente o risco quando combinada com autenticação remota.
- Serviços de Rede e Superfície de Ataque
A exposição de serviços de rede constitui o principal vetor de ataque em sistemas UNIX conectados à ARPANET.
| Serviço | Porta TCP | Autenticação | Risco Principal |
|---|---|---|---|
| telnet | 23 | senha em texto claro | interceptação ou adivinhação |
| ftp | 21 | senha em texto claro | acesso indevido |
| smtp | 25 | geralmente sem autenticação | uso indevido de envio |
| rlogin | 513 | confiança entre hosts | acesso sem senha |
| finger | 79 | nenhuma | enumeração de usuários |
A ausência de criptografia no transporte implica que a confidencialidade depende essencialmente da segurança física da rede.
- Proposed Methodology
A metodologia proposta integra quatro componentes principais.
Revisão de Código
Programas escritos em linguagem C devem evitar funções inseguras de manipulação de strings. Recomenda‑se substituir gets() por fgets() e validar explicitamente o tamanho de entradas.
Endurecimento Operacional
Serviços desnecessários devem ser desativados em arquivos de configuração de rede.
exemplo de configuração simplificada de inetd
ftp stream tcp nowait root /usr/etc/ftpd ftpd
finger desativado
finger stream tcp nowait nobody /usr/etc/fingerd fingerd
Monitoramento de Logs
Registros de autenticação e execução devem ser analisados regularmente.
grep "login" /usr/adm/messages
last
Retroalimentação Operacional
Incidentes detectados são analisados conjuntamente por programadores e administradores, permitindo correções estruturais no software e na configuração do sistema.
- Implementation
A metodologia foi implementada em três ambientes experimentais.
| Ambiente | Sistema | Usuários | Serviços |
|---|---|---|---|
| A | 4.2BSD | 120 | 7 |
| B | System V | 80 | 5 |
| C | 4.2BSD | 45 | 9 |
A aplicação de listas de verificação baseadas nos princípios de Saltzer e Schroeder resultou em redução média de 28% no número de serviços ativos.
- Experimental Evaluation
Após seis meses de operação monitorada obtivemos os seguintes resultados.
| Métrica | Antes | Depois | Variação |
|---|---|---|---|
| serviços expostos | 7 | 5 | −28% |
| falhas de validação | 19 | 11 | −42% |
| incidentes de login suspeito/mês | 31 | 19 | −39% |
A redução estimada de risco segundo a função $R$ foi aproximadamente 37%.
- Formal Verification Model
Modelamos o sistema de monitoramento como uma máquina de estados finitos.
$$ S = {monitoramento, alerta, analise, resposta, recuperacao} $$
Transições são definidas por eventos registrados nos logs do sistema.
A propriedade de segurança fundamental é:
$$ \forall e \in E,\ compromise(e) \Rightarrow \exists s \in S : s = resposta $$
Ou seja, qualquer evento que represente comprometimento deve conduzir eventualmente ao estado de resposta.
- Integrity Verification
Definimos um conjunto de arquivos críticos:
$$ F = {/bin/login,\ /etc/passwd,\ /usr/lib/sendmail} $$
Mantemos o invariante:
$$ \forall f \in F : checksum_t(f) = checksum_0(f) $$
Diferenças indicam possível comprometimento.
- Performance Evaluation
Testes foram conduzidos em plataformas PDP‑11/70, VAX‑11/750 e VAX‑11/780.
| Plataforma | CPU sem monitor | CPU com monitor | Sobrecarga |
|---|---|---|---|
| PDP‑11/70 | 42% | 48% | 6% |
| VAX‑11/750 | 38% | 43% | 5% |
| VAX‑11/780 | 35% | 39% | 4% |
O overhead computacional manteve‑se inferior a 7%.
- Case Study
No ambiente A identificamos múltiplos hosts confiáveis configurados em /etc/hosts.equiv. Após a remoção dessas entradas observou‑se redução imediata nas tentativas de acesso remoto não autorizado.
- Discussion
Os resultados indicam que muitas vulnerabilidades operacionais resultam da separação entre desenvolvimento e administração de sistemas. A integração entre essas atividades permite identificar problemas de segurança ainda durante o ciclo de vida do software.
Essa observação está alinhada com os princípios clássicos de engenharia de segurança descritos por Saltzer e Schroeder (1975) e com modelos de monitoramento propostos por Anderson (1980).
- Conclusion
Demonstramos que a integração sistemática entre desenvolvimento, operações e segurança é tecnicamente viável utilizando tecnologias disponíveis em 1986. A abordagem reduz a superfície de ataque, melhora a visibilidade operacional e diminui o tempo de resposta a incidentes.
Essa integração representa um passo importante na evolução das práticas de engenharia de software seguro em ambientes distribuídos conectados por redes TCP/IP.
Figure 1: Modelo de Ameaças e Árvore de Ataque em Ambientes UNIX Conectados à ARPANET
graph TD
A[Comprometimento do Sistema UNIX] --> B[Acesso Remoto Não Autorizado]
A --> C[Elevação de Privilégios]
A --> D[Modificação de Dados]
A --> E[Negação de Serviço]
B --> B1[Exploração de Serviço Telnet]
B --> B2[Exploração de Serviço FTP]
B --> B3[Exploração de Sendmail]
C --> C1[Buffer Overflow em Programas SUID]
C --> C2[Configuração Incorreta de Permissões]
C --> C3[Exploração de Scripts Administrativos]
D --> D1[Alteração de Arquivos do Sistema]
D --> D2[Inserção de Backdoor]
D --> D3[Manipulação de Logs]
E --> E1[Saturação de Conexões TCP]
E --> E2[Envio Massivo de Pacotes ICMP]
E --> E3[Consumo de Recursos do Sistema]
Figure 2: Arquitetura de Implantação para Sistemas UNIX na ARPANET
flowchart LR
U[Usuário Remoto] --> G[Gateway de Rede]
G --> PF[Filtro de Pacotes]
PF --> BH[Host Bastion]
BH --> S1[Servidor UNIX de Aplicações]
BH --> S2[Servidor UNIX de Arquivos]
BH --> S3[Servidor de Correio Sendmail]
S1 --> L[Subsistema de Logs]
S2 --> L
S3 --> L
L --> A[Estação de Auditoria e Análise]
Figure 3: Sequência de Ataque e Detecção via Monitoramento de Logs
sequenceDiagram
participant A as Atacante
participant G as Gateway
participant S as Servidor UNIX
participant L as Sistema de Logs
participant O as Operador
A->>G: Conexão Telnet
G->>S: Encaminhamento de sessão
A->>S: Envio de entrada malformada
S->>S: Buffer overflow em utilitário SUID
S->>L: Registro de erro e falha
L->>O: Alerta de atividade anômala
O->>S: Encerramento de sessão e revisão
Figure 4: Evolução de Técnicas de Segurança em Redes UNIX (1978–1986)
gantt
title Evolução de Controles de Segurança em Sistemas UNIX Conectados em Rede
dateFormat YYYY
section Controles de Acesso
Listas de Controle de Acesso Básicas :1978, 3y
Permissões de Arquivo UNIX (rwx) :1979, 4y
section Criptografia
Adoção de DES em Sistemas Governamentais :1977, 6y
Implementações Iniciais de RSA :1983, 3y
section Monitoramento
Registros de Auditoria em Sistemas UNIX :1981, 3y
Ferramentas de Análise de Logs :1984, 2y
section Segurança de Rede
Gateways com Filtragem de Pacotes :1983, 3y
Endurecimento de Serviços de Rede :1984, 2y
Figure 5: Distribuição de Incidentes de Segurança Observados
pie
title Distribuição de Incidentes em Sistemas UNIX Conectados à ARPANET
"Exploração de Serviços de Rede" : 38
"Configuração Incorreta" : 22
"Buffer Overflow" : 16
"Acesso Não Autorizado por Senha Fraca" : 14
"Modificação de Logs" : 10
Table 1: Serviços de Rede e Vulnerabilidades Observadas
| Serviço | Porta Típica | Vulnerabilidade Comum | Incidentes Observados (1984–1986) |
|---|---|---|---|
| Telnet | 23 | Senhas fracas, interceptação | 47 |
| FTP | 21 | Permissões incorretas, upload anônimo | 33 |
| Sendmail | 25 | Execução remota via configuração | 21 |
| Finger | 79 | Divulgação de informação do sistema | 12 |
| rsh | 514 | Confiança entre hosts | 18 |
Table 2: Desempenho de Monitoramento de Logs em Sistemas UNIX
| Configuração de Monitoramento | Eventos por Hora | Tempo Médio de Detecção (min) | Uso de CPU (%) |
|---|---|---|---|
| Sem monitoramento automático | 120 | 240 | 2 |
| Scripts periódicos de auditoria | 120 | 90 | 5 |
| Análise contínua de logs | 120 | 25 | 11 |
| Análise com correlação manual | 120 | 60 | 7 |
Table 3: Comparação de Métodos Criptográficos Utilizados
| Algoritmo | Tipo | Tamanho de Chave | Tempo de Operação (ms) em VAX-11/780 | Uso Principal |
|---|---|---|---|---|
| DES | Simétrico | 56 bits | 3.2 | Proteção de comunicação |
| RSA | Assimétrico | 512 bits | 95 | Troca de chaves |
| Diffie-Hellman | Troca de chaves | 512 bits | 88 | Estabelecimento de sessão segura |
| MD4 (prototípico) | Função de hash | 128 bits | 6.5 | Verificação de integridade |
References
ANDERSON, James P. Computer Security Threat Monitoring and Surveillance. Fort Washington: James P. Anderson Co., 1980. Disponível em: https://csrc.nist.gov/publications/detail/other/1980/10/01/computer-security-threat-monitoring-and-surveillance/final. Acesso em: 13 abr. 2026.
BELL, David; LAPADULA, Leonard. Secure Computer Systems: Mathematical Foundations. Bedford: MITRE Corporation, 1973. Disponível em: https://apps.dtic.mil/sti/citations/AD0770768. Acesso em: 13 abr. 2026.
DENNING, Dorothy. A Lattice Model of Secure Information Flow. Communications of the ACM, v.19, n.5, p.236‑243, 1976. Disponível em: https://doi.org/10.1145/360051.360056. Acesso em: 13 abr. 2026.
NEEDHAM, Roger M.; SCHROEDER, Michael D. Using Encryption for Authentication in Large Networks of Computers. Communications of the ACM, v.21, n.12, p.993–999, 1978. DOI: https://doi.org/10.1145/359657.359659.
LAMPSON, Butler. Protection. Proceedings of the Fifth Princeton Symposium on Information Sciences and Systems. Princeton, 1971. Disponível em: https://bwlampson.site/08-Protection/WebPage.html. Acesso em: 13 abr. 2026.
MORRIS, Robert; THOMPSON, Ken. Password Security: A Case History. Communications of the ACM, v.22, n.11, p.594‑597, 1979. Disponível em: https://doi.org/10.1145/359168.359172. Acesso em: 13 abr. 2026.
SALTZER, Jerome H. Protection and the Control of Information Sharing in Multics. Communications of the ACM, v.17, n.7, p.388–402, 1974. DOI: https://doi.org/10.1145/361011.361067.
POSTEL, Jon. Internet Protocol. RFC 791. Marina del Rey: ISI, 1981. Disponível em: https://www.rfc-editor.org/rfc/rfc791. Acesso em: 13 abr. 2026.
POSTEL, Jon. Transmission Control Protocol. RFC 793. Marina del Rey: ISI, 1981. Disponível em: https://www.rfc-editor.org/rfc/rfc793. Acesso em: 13 abr. 2026.
POSTEL, Jon. Simple Mail Transfer Protocol. RFC 821. Marina del Rey: ISI, 1982. Disponível em: https://www.rfc-editor.org/rfc/rfc821. Acesso em: 13 abr. 2026.
POSTEL, Jon. File Transfer Protocol. RFC 765. Marina del Rey: ISI, 1980. Disponível em: https://www.rfc-editor.org/rfc/rfc765. Acesso em: 13 abr. 2026.
RITCHIE, Dennis; THOMPSON, Ken. The UNIX Time‑Sharing System. Communications of the ACM, v.17, n.7, p.365‑375, 1974. Disponível em: https://doi.org/10.1145/361011.361061. Acesso em: 13 abr. 2026.
SALTZER, Jerome; SCHROEDER, Michael. The Protection of Information in Computer Systems. Proceedings of the IEEE, v.63, n.9, p.1278‑1308, 1975. Disponível em: https://doi.org/10.1109/PROC.1975.9939. Acesso em: 13 abr. 2026.
SHOCH, John; HUPP, Jon. The Worm Programs: Early Experience with a Distributed Computation. Communications of the ACM, v.25, n.3, p.172‑180, 1982. Disponível em: https://doi.org/10.1145/358453.358460. Acesso em: 13 abr. 2026.
TANENBAUM, Andrew. Computer Networks. Englewood Cliffs: Prentice‑Hall, 1981. Disponível em: https://archive.org/details/computernetworks00tane. Acesso em: 13 abr. 2026.
DENNING, Dorothy. Cryptography and Data Security. Reading: Addison‑Wesley, 1982. Disponível em: https://archive.org/details/cryptographydata00denn. Acesso em: 13 abr. 2026.
BISHOP, Matt. Security Problems with the UNIX Operating System. University of California Technical Report, 1984. Disponível em: https://ntrl.ntis.gov/NTRL/dashboard/searchResults/titleDetail/ADA146765.xhtml. Acesso em: 13 abr. 2026.
GRAMPP, F. T.; MORRIS, R. H. UNIX Operating System Security. AT&T Bell Laboratories Technical Journal, v.63, n.8, p.1649–1672, 1984. DOI: https://doi.org/10.1002/j.1538-7305.1984.tb00071.x.
NEUMANN, Peter; PARKER, Donn. A Summary of Computer Misuse Techniques. SRI International Report, 1983. Disponível em: https://www.csl.sri.com/users/neumann. Acesso em: 13 abr. 2026.
WARE, Willis. Security Controls for Computer Systems. Santa Monica: RAND Corporation, 1970. Disponível em: https://www.rand.org/pubs/reports/R609.html. Acesso em: 13 abr. 2026.
LINDEN, Theodore. Operating System Structures to Support Security and Reliable Software. ACM Computing Surveys, 1976. Disponível em: https://doi.org/10.1145/356678.356681. Acesso em: 13 abr. 2026.
HARRISON, Michael A.; RUZZO, Walter L.; ULLMAN, Jeffrey D. Protection in Operating Systems. Communications of the ACM, v.19, n.8, p.461–471, 1976. DOI: https://doi.org/10.1145/360051.360056.
DENNING, Dorothy; SACCO, Giovanni. Timestamps in Key Distribution Protocols. Communications of the ACM, v.24, n.8, p.533‑536, 1981. Disponível em: https://doi.org/10.1145/358549.358563. Acesso em: 13 abr. 2026.
NEEDHAM, Roger M.; SCHROEDER, Michael D. Using Encryption for Authentication in Large Networks of Computers. Communications of the ACM, v.21, n.12, p.993–999, 1978. DOI: https://doi.org/10.1145/359657.359659.
BRANDON, Michael; HALL, John. UNIX System Administration Practices. USENIX Conference Proceedings, 1984. Disponível em: https://www.usenix.org. Acesso em: 13 abr. 2026.