Prevenção de Ataques em Sistemas Distribuídos via Análise de Intervalos
Abstract
The range analysis of integer variables determines the lowest and highest bounds that each variable assumes throughout the execution of a program. This technique is vital to detect a plethora of software vulnerabilities but the literature does not describe any principled way to apply range analysis on distributed systems. This negligence is unfortunate, as networks are the most common targets of software attacks. The goal of this paper is to set right this omission. Capitalizing on a recent algorithm to infer communication protocols, we have designed, implemented and tested a range analysis for distributed systems. Our contribution, a holistic view of the system, is more precise than analyzing each system module independently. In this paper we support this statement through a number of examples, and experiments performed on top of the SPEC CPU 2006 benchmarks. A prototype of our tool, implemented on the LLVM compiler, is available for scrutiny.References
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.
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.
Published
2014-11-03
How to Cite
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: BRAZILIAN SYMPOSIUM ON CYBERSECURITY (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.
