Prevenção de Ataques em Sistemas Distribuídos via Análise de Intervalos

  • Vitor Mendes Paisante UFMG
  • Luiz Felipe Zafra Saggioro UFMG
  • Raphael Ernani Rodrigues UFMG
  • Leonardo Barbosa Oliveira UFMG
  • Fernando Magno Quintão Pereira UFMG

Resumo


A análise de largura de variáveis determina o maior e menor valores que cada variável inteira de um programa pode assumir durante a sua execução. Tal técnica é de suma importância para detectar vulnerabilidades em programas mas, até o momento, não existe abordagem que aplique essa análise em sistemas distribuídos. Tal omissão é séria, uma vez que esse tipo de sistema é alvo comum de ataques de software. O objetivo deste artigo é preencher tal lacuna. Valendo-nos de um algoritmo recente para inferir protocolos de comunicação, nós projetamos, implementamos e testamos uma análise de largura de variáveis para sistemas distribuídos. Nosso algoritmo, ao prover uma visão holística do sistema distribuído, é mais preciso que analisar cada parte daquele sistema separadamente. Demonstramos tal fato via uma série de exemplos e experimentos realizados sobre os programas presentes em SPEC CPU 2006. Um protótipo de nossa ferramenta, implementado sobre o compilador LLVM, está disponível para escrutínio.

Referências

Brumley, D., Song, D. X., cker Chiueh, T., Johnson, R., and Lin, H. (2007). RICH: Automatically protecting against integer-based vulnerabil ities. In NDSS. USENIX.

Cousot, P. and Cousot, R. (1977). Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In POPL, pages 238–252. ACM.

Dietz, W., Li, P., Regehr, J., and Adve, V. (2012). Understanding integer overflow in c/c++. In ICSE, pages 760–770. IEEE.

Dowson, M. (1997). The ariane 5 software failure. SIGSOFT, 22(2):84–.

Gawlitza, T., Leroux, J., Reineke, J., Seidl, H., Sutre, G., and Wilhelm, R. (2009). Polynomial precise interval analysis revisited. Efficient Algorithms, 1:422 – 437.

Lattner, C. and Adve, V. S. (2004). LLVM: A compilation framework for lifelong program analysis & transformation. In CGO, pages 75–88. IEEE.

Li, P. and Regehr, J. (2010). T-check: Bug finding for sensor networks. In IPSN, pages 174–185.

Logozzo, F. and Fahndrich, M. (2008). Pentagons: a weakly relational abstract domain for the efficient validation of array accesses. In SAC, pages 184–188. ACM.

Mahlke, S., Ravindran, R., Schlansker, M., Schreiber, R., and Sherwood, T. (2001).

Bitwidth cognizant architecture synthesis of custom hardware accelerators. TCADICS, 20(11):1355–1371.

Oh, H., Brutschy, L., and Yi, K. (2011). Access analysis-based tight localization of abstract memories. In VMCAI, pages 356–370. Springer.

Rodrigues, R. E., Campos, V. H. S., and Pereira, F. M. Q. (2013). A fast and low overhead technique to secure programs against integer overflows. In CGO. ACM.

Sasnauskas, R., Landsiedel, O., Alizai, M. H., Weise, C., Kowalewski, S., and Wehrle, K. (2010). Kleenet: discovering insidious interaction bugs in wireless sensor networks before deployment. In IPSN, pages 186–196. ACM.

Stephenson, M., Babb, J., and Amarasinghe, S. (2000). Bitwidth analysis with application to silicon compilation. In PLDI, pages 108–120. ACM.

Su, Z. and Wagner, D. (2005). A class of polynomially solvable range constraints for interval analysis without widenings. Theoretical Computer Science, 345(1):122–138.

Teixeira, F., Pereira, F., Viera, G., Marcondes, P., Wong, H. C., and Nogueira, J. M. (2014). Siot: defendendo a internet das coisas contra exploits. In SBRC, pages 85–96. SBC.
Publicado
03/11/2014
PAISANTE, Vitor Mendes; SAGGIORO, Luiz Felipe Zafra; RODRIGUES, Raphael Ernani; OLIVEIRA, Leonardo Barbosa; PEREIRA, Fernando Magno Quintão. Prevenção de Ataques em Sistemas Distribuídos via Análise de Intervalos. In: SIMPÓSIO BRASILEIRO DE SEGURANÇA DA INFORMAÇÃO E DE SISTEMAS COMPUTACIONAIS (SBSEG), 14. , 2014, Belo Horizonte. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2014 . p. 209-222. DOI: https://doi.org/10.5753/sbseg.2014.20132.