Linguagens com seguranca de memoria
O que é Linguagens com seguranca de memoria?
Linguagens com seguranca de memoriaLinguagens com seguranca de memoria como Rust, Go, Swift, Java e C# impedem os erros espaciais e temporais de memoria que originam a maioria das vulnerabilidades exploraveis em C e C++.
Estas linguagens impoem em tempo de compilacao ou execucao verificacoes de limites, gestao de propriedade ou tempos de vida via garbage collector e consistencia de tipos. O Rust usa ownership e um borrow checker para seguranca sem GC; Go e Swift assentam em alocacao gerida e slices com verificacao de limites; Java e C# usam runtime gerido. O relatorio Back to the Building Blocks do ONCD dos EUA (2024) recomenda a adocao de linguagens memory safe para codigo novo e componentes criticos, para eliminar 60-70 por cento das vulnerabilidades graves causadas por bugs de memoria. Estrategias de adocao incluem reescrever hotspots, padroes strangler e fronteiras FFI.
● Exemplos
- 01
O Android escreve partes da pilha Bluetooth em Rust para reduzir o risco de UAF.
- 02
A AWS reescreve partes do Firecracker e s2n-tls em Rust por seguranca de memoria.
● Perguntas frequentes
O que é Linguagens com seguranca de memoria?
Linguagens com seguranca de memoria como Rust, Go, Swift, Java e C# impedem os erros espaciais e temporais de memoria que originam a maioria das vulnerabilidades exploraveis em C e C++. Pertence à categoria Segurança de aplicações da cibersegurança.
O que significa Linguagens com seguranca de memoria?
Linguagens com seguranca de memoria como Rust, Go, Swift, Java e C# impedem os erros espaciais e temporais de memoria que originam a maioria das vulnerabilidades exploraveis em C e C++.
Como funciona Linguagens com seguranca de memoria?
Estas linguagens impoem em tempo de compilacao ou execucao verificacoes de limites, gestao de propriedade ou tempos de vida via garbage collector e consistencia de tipos. O Rust usa ownership e um borrow checker para seguranca sem GC; Go e Swift assentam em alocacao gerida e slices com verificacao de limites; Java e C# usam runtime gerido. O relatorio Back to the Building Blocks do ONCD dos EUA (2024) recomenda a adocao de linguagens memory safe para codigo novo e componentes criticos, para eliminar 60-70 por cento das vulnerabilidades graves causadas por bugs de memoria. Estrategias de adocao incluem reescrever hotspots, padroes strangler e fronteiras FFI.
Como se defender contra Linguagens com seguranca de memoria?
As defesas contra Linguagens com seguranca de memoria costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Linguagens com seguranca de memoria?
Nomes alternativos comuns: MSL, Linguagens memory safe.
● Termos relacionados
- appsec№ 670
Seguranca de memoria
A seguranca de memoria e a propriedade de um programa nunca ler, escrever ou executar memoria que nao tenha alocado legitimamente, eliminando classes inteiras de vulnerabilidades.
- appsec№ 953
Propriedades de seguranca do Rust
O Rust impoe seguranca de memoria e de threads em tempo de compilacao via ownership, borrowing e lifetimes, eliminando UAF e data races sem garbage collector.
- appsec№ 217
Integridade do fluxo de controlo
A integridade do fluxo de controlo (CFI) restringe chamadas indiretas e retornos a um conjunto pre-calculado de destinos legitimos, bloqueando ROP e JOP.
- appsec№ 064
ASLR
A aleatorizacao do espaco de enderecos coloca codigo, pilhas, heaps e bibliotecas em posicoes aleatorias da memoria para impedir que um atacante preveja enderecos.
- appsec№ 925
Return-Oriented Programming
ROP e uma tecnica de exploracao por reuso de codigo que encadeia pequenas sequencias de instrucoes terminadas em RET para executar computacao arbitraria sem injetar codigo.
- appsec№ 545
Intel CET
Intel CET (Control-flow Enforcement Technology) e uma funcionalidade da CPU que combina shadow stack por hardware e Indirect Branch Tracking (IBT) para bloquear ROP, JOP e COP.
● Veja também
- № 581KASLR