← Voltar aos artigos

Paper Files / DevSecOps

Integração Sistêmica de Segurança no Ciclo de Vida de Desenvolvimento e Operações de Software: Fundamentos e Práticas para Ambientes UNIX e Redes TCP/IP (1988)

DevSecOpsPT

A crescente interconexão de sistemas computacionais por meio de redes TCP/IP, bem como a adoção disseminada de ambientes multiusuário baseados em UNIX e mainframes com compartilhamento de tempo, introduziu uma nova classe de riscos operacionais que transcende a tradicional separação entre desenvolvimento de software e administração de sistemas. Incidentes recentes, como a propagação do worm de Morris em 1988, demonstraram que vulnerabilidades inseridas durante a fase de desenvolvimento podem ser exploradas em escala operacional com impactos sistêmicos. Este trabalho propõe um modelo integrado de segurança ao longo de todo o ciclo de vida de software — desde a especificação até a operação em produção — estabelecendo fundamentos técnicos e metodológicos para o que denominamos Integração de Segurança em Desenvolvimento e Operações (ISDO). O modelo articula princípios da engenharia de software, critérios de avaliação de sistemas confiáveis (TCSEC), criptografia simétrica e assimétrica (DES, RSA), controles de acesso discricionários e mandatórios, auditoria e monitoramento de rede com ferramentas contemporâneas como `tcpdump`. Formalizamos um modelo de ameaça adequado a ambientes conectados via ARPANET e redes acadêmicas, incluindo atacantes internos, externos e erros de configuração. Propomos um fluxo contínuo de validação de código em linguagem C, análise de configurações UNIX, testes de penetração controlados e verificação criptográfica de integridade. Implementamos experimentalmente o modelo em três ambientes distintos: BSD UNIX 4.3, System V e VAX/VMS, avaliando métricas de exposição, tempo de correção e taxa de falhas exploráveis. Os resultados indicam redução média de 47% na superfície de ataque mensurável e diminuição significativa de incidentes operacionais. Concluímos que a segurança deve ser tratada como atributo emergente do processo completo de engenharia e operações, e não como mecanismo periférico. Apresentamos direções futuras envolvendo autenticação distribuída (Kerberos) e certificação digital baseada em X.509.

  1. Introduction

A década de 1980 testemunhou a transição de sistemas computacionais isolados para ambientes interconectados por redes de longa distância, notadamente a ARPANET e suas redes derivadas baseadas no conjunto de protocolos TCP/IP (POSTEL, 1981a; POSTEL, 1981b). Essa transformação ampliou dramaticamente a superfície de ataque dos sistemas de informação. Aplicações originalmente concebidas para ambientes fechados passaram a operar em contexto distribuído, frequentemente sem mecanismos robustos de autenticação, controle de acesso ou validação de entrada.

O incidente do worm de Morris, ocorrido em novembro de 1988, evidenciou como falhas de programação, configurações inadequadas de serviços como sendmail (POSTEL, 1982) e fragilidades em mecanismos de autenticação remota podem ser exploradas em escala de rede. O episódio não representou apenas um problema de operação; tratou-se de uma falha sistêmica no ciclo de desenvolvimento, implantação e manutenção de software.

Historicamente, o desenvolvimento de software e a operação de sistemas têm sido tratados como domínios organizacionais distintos. Desenvolvedores concentram-se em funcionalidade e desempenho, enquanto operadores priorizam disponibilidade e continuidade. A segurança, quando considerada, frequentemente é adicionada como camada posterior, por meio de controles de acesso ou mecanismos de auditoria. Essa abordagem reativa é insuficiente em ambientes multiusuário e distribuídos.

Neste artigo, propomos uma integração metodológica entre desenvolvimento e operações com foco em segurança, fundamentada em critérios técnicos como o Trusted Computer System Evaluation Criteria (TCSEC) (DoD, 1983), modelos formais de segurança (BELL; LAPADULA, 1973), e práticas de engenharia de software estruturada (PRESSMAN, 1987). Denominamos essa abordagem Integração de Segurança em Desenvolvimento e Operações (ISDO), enfatizando que a segurança deve ser incorporada desde a especificação até a manutenção.

Nosso objetivo é fornecer uma estrutura técnica e operacional aplicável a ambientes UNIX (RITCHIE; THOMPSON, 1974), sistemas VAX/VMS e redes TCP/IP, utilizando tecnologias disponíveis até 1988, incluindo DES (NIST, 1977), RSA (RIVEST; SHAMIR; ADLEMAN, 1978), funções de hash como MD4 (RIVEST, 1990 — preliminares em circulação técnica em 1988) e autenticação distribuída emergente (STEINER; NEUMAN; SCHILLER, 1988).

  1. Background and Related Work

A base conceitual para integração de segurança remonta aos modelos formais de controle de acesso. O modelo Bell-LaPadula (BELL; LAPADULA, 1973) formalizou propriedades de confidencialidade através das regras “no read up” e “no write down”, expressas como:

$$ \forall s, o: \text{read}(s,o) \Rightarrow L(s) \geq L(o) $$

$$ \forall s, o: \text{write}(s,o) \Rightarrow L(s) \leq L(o) $$

onde $L(x)$ representa o nível de classificação.

O TCSEC (DoD, 1983) estabeleceu classes de confiança (D, C1, C2, B1, B2, B3, A1), enfatizando auditoria, controle de acesso e verificação formal. Contudo, tais critérios foram majoritariamente aplicados a sistemas operacionais, não ao ciclo completo de desenvolvimento de aplicações.

No domínio de redes, os RFCs fundamentais do TCP/IP (POSTEL, 1981a; 1981b) e DNS (MOCKAPETRIS, 1987a; 1987b) definiram infraestruturas críticas, mas sem mecanismos intrínsecos de autenticação forte. O protocolo SMTP (POSTEL, 1982) permite envio de mensagens sem verificação robusta de identidade, fator explorado em incidentes recentes.

A criptografia moderna oferece ferramentas relevantes. O DES (NIST, 1977) define cifragem simétrica com chave de 56 bits, enquanto o RSA (RIVEST; SHAMIR; ADLEMAN, 1978) introduz criptografia de chave pública baseada na dificuldade de fatoração de inteiros:

$$ c = m^e \mod n $$

$$ m = c^d \mod n $$

A infraestrutura de certificados X.509 (ITU-T, 1988) estabelece fundamentos para autenticação baseada em autoridade certificadora, ainda em fase inicial de adoção.

No campo de engenharia de software, métodos estruturados (PRESSMAN, 1987) e princípios de modularidade e verificação contribuem para redução de erros. Entretanto, a integração explícita de segurança no fluxo de desenvolvimento permanece incipiente.

  1. Threat Model and Problem Formalization

Consideramos três classes de adversários:

Classe Capacidade Exemplo
Interno autenticado Acesso legítimo com possível abuso Usuário UNIX explorando SUID
Externo remoto Acesso via TCP/IP Exploração de serviços sendmail
Operador negligente Erro de configuração Permissões 777 em diretórios críticos

Formalizamos a superfície de ataque $S$ como o conjunto de serviços expostos:

$$ S = { s_i \mid s_i \text{ escuta em porta TCP/UDP acessível externamente} } $$

O risco $R$ pode ser modelado como:

$$ R = \sum_{i=1}^{n} P(e_i) \cdot I(e_i) $$

onde $P(e_i)$ é a probabilidade de exploração e $I(e_i)$ o impacto estimado.

Falhas comuns incluem:

  1. Proposed Methodology

A metodologia ISDO compreende cinco fases integradas:

  1. Especificação Segura
    Identificação de requisitos de confidencialidade, integridade e disponibilidade. Mapeamento para níveis TCSEC.

  2. Desenvolvimento Seguro em C
    Proibição de funções inseguras (gets, strcpy sem limites). Revisão manual de código. Compilação com warnings máximos:

cc -Wall -Wextra -o programa programa.c
  1. Análise de Configuração Operacional
    Verificação de permissões:
find / -perm -4000 -type f -print

Identificação de binários SUID potencialmente exploráveis.

  1. Monitoramento de Rede
    Captura de tráfego suspeito:
tcpdump -i le0 host 128.32.0.10 and port 25
  1. Auditoria Contínua
    Ativação de logs detalhados e revisão periódica.

  2. Implementation

Implementamos o modelo em três ambientes:

Ambiente SO Conectividade
A BSD 4.3 ARPANET
B UNIX System V Ethernet local
C VAX/VMS DECnet

Aplicamos checklist de 42 itens cobrindo código, configuração e rede. Introduzimos autenticação Kerberos experimental (STEINER; NEUMAN; SCHILLER, 1988) no Ambiente A.

  1. Experimental Evaluation

6.1 Redução de Serviços Expostos

| Ambiente | Serviços Antes | Serviços Depois | Redução (%) | |—|—|—| | A | 12 | 7 | 41,7 | | B | 9 | 5 | 44,4 | | C | 8 | 4 | 50,0 |

6.2 Incidentes Observados (6 meses)

Ambiente Incidentes Antes Incidentes Depois
A 5 2
B 4 1
C 3 1

6.3 Tempo Médio de Correção

Ambiente Antes (dias) Depois (dias)
A 14 6
B 11 5
C 10 4

Observou-se redução média de 47% na superfície de ataque e melhoria significativa na capacidade de resposta.

  1. Case Study

No Ambiente A, identificamos programa SUID vulnerável a overflow de buffer devido a uso de gets(). O código original:

char buf[64];
gets(buf);

Foi substituído por:

fgets(buf, sizeof(buf), stdin);

A exploração anterior permitia execução arbitrária com privilégios elevados. Após correção e remoção do bit SUID, testes controlados não reproduziram a falha.

  1. Discussion

Os resultados indicam que segurança integrada reduz riscos sistêmicos. A principal dificuldade reside na mudança cultural: desenvolvedores devem compreender implicações operacionais, enquanto operadores devem participar da revisão de código.

A adoção de criptografia assimétrica e certificados X.509 pode fortalecer autenticação remota. Contudo, limitações computacionais e complexidade de gestão de chaves permanecem desafios.

  1. Conclusion and Future Work

Demonstramos que integração de segurança ao longo do ciclo de vida de desenvolvimento e operações é viável e eficaz em ambientes de 1988. A metodologia ISDO reduziu superfície de ataque, incidentes e tempo de resposta.

Trabalhos futuros incluem formalização matemática mais rigorosa do risco, integração ampla de Kerberos e adoção progressiva de certificados digitais X.509 em redes acadêmicas e governamentais.

  1. References

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

DEPARTMENT OF DEFENSE. Trusted Computer System Evaluation Criteria (TCSEC). 1983. Disponível em: https://csrc.nist.gov/csrc/media/publications/conference-paper/1983/12/01/trusted-computer-system-evaluation-criteria/documents/dod85.pdf

POSTEL, J. RFC 791: Internet Protocol. 1981a. Disponível em: https://www.rfc-editor.org/rfc/rfc791

POSTEL, J. RFC 793: Transmission Control Protocol. 1981b. Disponível em: https://www.rfc-editor.org/rfc/rfc793

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

MOCKAPETRIS, P. RFC 1034: Domain Names – Concepts and Facilities. 1987a. Disponível em: https://www.rfc-editor.org/rfc/rfc1034

MOCKAPETRIS, P. RFC 1035: Domain Names – Implementation. 1987b. Disponível em: https://www.rfc-editor.org/rfc/rfc1035

RITCHIE, D.; THOMPSON, K. The UNIX Time-Sharing System. CACM, 1974. Disponível em: https://dl.acm.org/doi/10.1145/361011.361061

NIST. Data Encryption Standard (FIPS PUB 46). 1977. Disponível em: https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub46.pdf

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

ITU-T. Recommendation X.509. 1988. Disponível em: https://www.itu.int/rec/T-REC-X.509-198811-I

STEINER, J.; NEUMAN, C.; SCHILLER, J. Kerberos: An Authentication Service for Open Network Systems. 1988. Disponível em: https://web.mit.edu/kerberos/www/

PRESSMAN, R. Software Engineering: A Practitioner’s Approach. 1987.

DENNING, D. Cryptography and Data Security. 1982.

SALTZER, J.; SCHROEDER, M. The Protection of Information in Computer Systems. 1975. Disponível em: https://web.mit.edu/Saltzer/www/publications/protection/

NEUMAN, B.; TS’O, T. Kerberos: An Authentication Service for Computer Networks. IEEE Communications, 1988.

POSTEL, J. RFC 822: Standard for ARPA Internet Text Messages. 1982. Disponível em: https://www.rfc-editor.org/rfc/rfc822

COMER, D. Internetworking with TCP/IP. 1987.

TANENBAUM, A. Computer Networks. 1981.

GRAHAM, R. Protection in an Information Processing Utility. CACM, 1972.

LAMPSON, B. Protection. 1971. Disponível em: https://bwlampson.site/44-Protection/44-ProtectionAbstract.html

NECHES, R. et al. Encrypted Key Exchange. 1988.

FERGUSON, D. Practical Cryptography. 1988.

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

JACOBSON, V. tcpdump Manual. 1988.