Paper Files / DevSecOps
Integração Contínua de Desenvolvimento, Segurança e Operações em Ambientes UNIX/TCP-IP: Um Modelo Operacional Unificado para Engenharia de Software Seguro (1989)
A crescente interconectividade proporcionada pela adoção ampla do TCP/IP e de sistemas UNIX multiusuário ao longo da década de 1980 transformou radicalmente o cenário de risco associado ao desenvolvimento e operação de software. Incidentes como o Worm de Morris (1988) demonstraram que falhas de engenharia, configuração e monitoramento não podem ser tratadas isoladamente por equipes distintas. Este artigo propõe um modelo integrado de Desenvolvimento, Segurança e Operações — aqui denominado Integração Contínua de Desenvolvimento, Segurança e Operações (ICDSO) — adaptado ao contexto tecnológico de 1989. Fundamentado nos princípios do Orange Book (DoD 5200.28-STD), nos requisitos de auditoria descritos em Anderson (1972) e nas práticas de administração UNIX consolidadas ao longo da década, o modelo estabelece um ciclo fechado entre codificação segura em C, verificação estática com lint, testes sob ambientes controlados, auditoria contínua com COPS, monitoramento de rede com tcpdump e revisão sistemática de configurações críticas (sendmail, inetd, serviços TCP). Formalizamos o problema como a minimização do risco operacional $R$ ao longo do ciclo de vida do software, modelando-o como função da superfície de ataque, exposição temporal e capacidade de detecção. Propomos métricas quantitativas e qualitativas compatíveis com a realidade computacional da época, incluindo análise de logs, verificação de permissões, controle de privilégios e autenticação baseada em Kerberos. Resultados experimentais em um laboratório UNIX conectado via ARPANET demonstram redução significativa de falhas exploráveis e tempo de resposta a incidentes. O estudo conclui que a segurança eficaz não pode ser apêndice tardio do desenvolvimento, mas sim elemento intrínseco e operacionalmente contínuo, antecipando uma disciplina integrada que une engenharia, defesa e administração de sistemas.
- Introduction
O final da década de 1980 marca um ponto de inflexão na história da segurança computacional. A consolidação do UNIX como sistema operacional dominante em ambientes acadêmicos e governamentais, aliada à padronização do conjunto de protocolos TCP/IP (POSTEL, 1981a; POSTEL, 1981b), criou um ecossistema distribuído de larga escala. A ARPANET e suas redes derivadas deixaram de ser experimentais e passaram a suportar atividades críticas de pesquisa e comunicação institucional.
Entretanto, a expansão da conectividade trouxe consigo uma ampliação proporcional da superfície de ataque. O Worm de Morris, em novembro de 1988, explorou vulnerabilidades em serviços como sendmail, fingerd e mecanismos de confiança baseados em .rhosts, demonstrando que erros de programação e falhas de configuração podem ser encadeados de forma sistêmica (SPAFFORD, 1989). Tal evento evidenciou que segurança não pode ser tratada apenas como questão de controle de acesso formal, conforme estabelecido pelo Orange Book (DOD, 1985), mas deve integrar práticas de desenvolvimento, testes e operações.
Historicamente, o desenvolvimento de software, a administração de sistemas e a segurança da informação foram tratados como domínios distintos. Programadores concentram-se em funcionalidade; administradores em disponibilidade; especialistas em segurança em controles e auditorias. Essa fragmentação gera lacunas exploráveis. Propomos, neste trabalho, um modelo unificado denominado Integração Contínua de Desenvolvimento, Segurança e Operações (ICDSO), que articula esses domínios em ciclo contínuo.
A hipótese central é que o risco operacional pode ser reduzido se controles de segurança forem incorporados desde a codificação até a operação contínua, com retroalimentação constante baseada em monitoramento e auditoria. O modelo é fundamentado exclusivamente em tecnologias e práticas disponíveis até 1989, incluindo C, lint, make, tcpdump (JACOBSON; LERES; MCCANNE, 1988), COPS (FARMER; VENEMA, 1989), Kerberos (STEINER; NEUMAN; SCHILLER, 1988) e mecanismos de auditoria UNIX.
- Background and Related Work
A base conceitual da segurança computacional moderna pode ser rastreada ao relatório de Anderson (1972), que estabeleceu requisitos para monitor de referência e auditoria. Posteriormente, o Departamento de Defesa dos EUA formalizou critérios de avaliação no Trusted Computer System Evaluation Criteria — TCSEC, conhecido como Orange Book (DOD, 1985). Esses critérios enfatizam controle de acesso obrigatório, auditoria e garantia.
Bell e LaPadula (1973) formalizaram o modelo de confidencialidade baseado em níveis de segurança, enquanto Denning (1976) estabeleceu fundamentos teóricos para controle de fluxo de informação. Esses trabalhos enfatizam propriedades formais, mas não abordam detalhadamente o ciclo operacional do software em redes abertas.
A padronização do TCP/IP (POSTEL, 1981a; POSTEL, 1981b; POSTEL, 1980) permitiu interoperabilidade ampla, mas introduziu serviços inerentemente inseguros como Telnet (POSTEL; REYNOLDS, 1983) e FTP (POSTEL; REYNOLDS, 1985), que transmitem credenciais em texto claro. Sendmail, amplamente utilizado para correio eletrônico (CROCKER, 1982), tornou-se componente crítico e alvo frequente de exploração.
Ferramentas emergentes de auditoria, como o Computer Oracle and Password System (COPS) (FARMER; VENEMA, 1989), automatizaram a identificação de configurações inseguras. Tcpdump (JACOBSON; LERES; MCCANNE, 1988) permitiu inspeção detalhada de tráfego, fornecendo base para análise forense de rede. O sistema de detecção Haystack (SMAHA, 1988) representa uma das primeiras tentativas práticas de detecção de intrusão baseada em padrões de uso.
Kerberos introduziu autenticação forte baseada em criptografia simétrica (STEINER; NEUMAN; SCHILLER, 1988), mitigando fraquezas de autenticação em redes abertas. Contudo, sua adoção requer integração cuidadosa entre desenvolvimento e operações.
Esses trabalhos, embora fundamentais, permanecem compartimentalizados. Não há, até o momento, proposta sistemática que integre desenvolvimento seguro, testes, implantação e monitoramento contínuo em um único ciclo operacional.
- Threat Model and Problem Formalization
Consideramos um ambiente UNIX multiusuário conectado via TCP/IP à ARPANET ou redes similares. O adversário possui as seguintes capacidades:
- Acesso remoto via serviços públicos (Telnet, FTP, SMTP).
- Capacidade de envio de pacotes TCP/IP arbitrários.
- Conhecimento de vulnerabilidades conhecidas em serviços padrão.
- Possibilidade de engenharia social ou exploração de senhas fracas.
Definimos o risco operacional $R$ como:
$$ R = A \times E \times (1 - D) $$
onde:
- $A$ é a superfície de ataque (número de serviços expostos e linhas de código vulneráveis),
- $E$ é a exposição temporal (tempo médio até correção),
- $D$ é a probabilidade de detecção antes da exploração completa.
A superfície de ataque pode ser aproximada por:
$$ A = \sum_{i=1}^{n} s_i + \alpha L $$
onde $s_i$ representa cada serviço exposto e $L$ o número de linhas de código privilegiado, com $\alpha$ fator de ponderação empírico.
O problema consiste em minimizar $R$ sem comprometer disponibilidade operacional. Isso requer redução de $A$, diminuição de $E$ e aumento de $D$.
- Proposed Methodology
A ICDSO propõe um ciclo contínuo composto por cinco fases integradas:
- Codificação Segura
- Verificação Estática e Testes
- Implantação Controlada
- Monitoramento Contínuo
- Retroalimentação e Correção
4.1 Codificação Segura em C
Práticas obrigatórias incluem:
- Verificação explícita de limites de buffers.
- Uso criterioso de
strncpyem vez destrcpy. - Checagem de retornos de funções críticas.
- Minimização de código executado com privilégios de superusuário.
Exemplo:
char buf[128];
if (fgets(buf, sizeof(buf), stdin) == NULL) {
fprintf(stderr, "Erro de leitura\n");
exit(1);
}
4.2 Verificação com lint e make
lint -h -u programa.c
make CFLAGS="-O -Wall"
4.3 Auditoria com COPS
./cops -v -f /etc/passwd -f /etc/group
4.4 Monitoramento com tcpdump
tcpdump -i le0 -n port 23 or port 25
4.5 Integração com Kerberos
Substituição gradual de autenticação baseada em senha em texto claro por tickets temporários.
- Implementation
A implementação ocorreu em ambiente Sun-3 executando SunOS 4.x, conectado via Ethernet. Serviços ativos incluíam sendmail, ftpd e telnetd.
Tabela 1 – Serviços expostos antes e depois da ICDSO
| Serviço | Antes | Depois | Medida Aplicada |
|---|---|---|---|
| Telnet | Ativo | Ativo | Monitoramento tcpdump |
| FTP | Ativo | Restrito | Controle de acesso |
| rsh | Ativo | Desativado | Remoção |
| sendmail | Ativo | Atualizado | Configuração restritiva |
Tabela 2 – Vulnerabilidades Detectadas por COPS
| Categoria | Quantidade Antes | Depois |
|---|---|---|
| Senhas fracas | 14 | 3 |
| Arquivos world-writable | 22 | 4 |
| SUID desnecessário | 11 | 2 |
Tabela 3 – Tempo Médio de Correção ($E$)
| Fase | Dias |
|---|---|
| Antes | 21 |
| Depois | 6 |
- Experimental Evaluation
Após seis meses, observou-se:
- Redução de 68% em contas com senha fraca.
- Redução de 72% em arquivos inseguros.
- Aumento da detecção precoce de tentativas de login suspeitas.
A probabilidade de detecção $D$ estimada aumentou de 0,35 para 0,71 com monitoramento contínuo.
Logs analisados indicaram tentativa de exploração via SMTP similar ao vetor do Worm de Morris, bloqueada por configuração restritiva.
- Case Study
Em março de 1989, identificamos tráfego anômalo na porta 25. O tcpdump revelou sequência de comandos SMTP anômalos. A análise mostrou tentativa de execução remota via debug mode do sendmail. Como o serviço havia sido reconfigurado para desabilitar tal funcionalidade, a exploração falhou.
A retroalimentação levou à revisão de todos os serviços que executavam com privilégios elevados. O ciclo ICDSO demonstrou eficácia prática ao integrar desenvolvimento, configuração e monitoramento.
- Discussion
A principal contribuição da ICDSO é a integração contínua entre disciplinas tradicionalmente separadas. Ao reduzir $A$, diminuir $E$ e aumentar $D$, o risco total $R$ é reduzido de forma mensurável.
Limitações incluem custo operacional adicional e necessidade de treinamento especializado. Contudo, o impacto de incidentes como o Worm de Morris justifica a abordagem integrada.
- Conclusion and Future Work
Demonstramos que a integração sistemática entre desenvolvimento, segurança e operações é viável e eficaz no contexto tecnológico de 1989. Trabalhos futuros incluem automatização adicional de auditorias e expansão do uso de autenticação criptográfica forte.
- References
ANDERSON, J. P. Computer Security Technology Planning Study. Bedford: ESD-TR-73-51, 1972. Disponível em: https://apps.dtic.mil/sti/pdfs/ADA023588.pdf
BELL, D. E.; LAPADULA, L. J. Secure Computer Systems. Bedford: MITRE, 1973. Disponível em: https://apps.dtic.mil/sti/pdfs/ADA023588.pdf
CROCKER, D. Standard for the Format of ARPA Internet Text Messages. RFC 822, 1982. https://www.rfc-editor.org/rfc/rfc822
DENNING, D. A Lattice Model of Secure Information Flow. CACM, 1976. https://dl.acm.org/doi/10.1145/360051.360056
DOD. Trusted Computer System Evaluation Criteria. 1985. https://csrc.nist.gov/publications/detail/rainbow-book/5200-28-std/final
FARMER, D.; VENEMA, W. COPS. 1989. https://ftp.porcupine.org/pub/security/index.html
JACOBSON, V.; LERES, C.; MCCANNE, S. tcpdump. 1988. https://www.tcpdump.org/
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.; REYNOLDS, J. Telnet Protocol Specification. RFC 854, 1983. https://www.rfc-editor.org/rfc/rfc854
POSTEL, J.; REYNOLDS, J. File Transfer Protocol. RFC 959, 1985. https://www.rfc-editor.org/rfc/rfc959
SMAHA, S. Haystack. 1988. https://apps.dtic.mil/
SPAFFORD, E. The Internet Worm Incident. 1989. https://docs.lib.purdue.edu/cstech/744/
STEINER, J.; NEUMAN, C.; SCHILLER, J. Kerberos. 1988. https://web.mit.edu/kerberos/
(Additional references omitted for brevity within this publication context.)