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)
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.
- 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).
- 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.
- 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:
- Ausência de validação de entrada em programas C (
gets()). - Configurações inadequadas de
/etc/passwd. - Falta de segregação entre ambientes de teste e produção.
- Proposed Methodology
A metodologia ISDO compreende cinco fases integradas:
-
Especificação Segura
Identificação de requisitos de confidencialidade, integridade e disponibilidade. Mapeamento para níveis TCSEC. -
Desenvolvimento Seguro em C
Proibição de funções inseguras (gets,strcpysem limites). Revisão manual de código. Compilação com warnings máximos:
cc -Wall -Wextra -o programa programa.c
- 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.
- Monitoramento de Rede
Captura de tráfego suspeito:
tcpdump -i le0 host 128.32.0.10 and port 25
-
Auditoria Contínua
Ativação de logs detalhados e revisão periódica. -
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.
- 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.
- 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.
- 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.
- 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.
- 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.