Eloy
I'm just a guy who likes Python and security. I'm part of the Hackliza group.
Session
No mundo actual, cada vez existen máis problemas de seguridade que afectan á información e aos sistemas que a xestionan e, como cabe esperar, Python non está libre deste tipo de problemas. Os atacantes buscan vulnerabilidades que poidan explotar para o seu beneficio e os defensores investigan como defendernos destas ameazas.
Esta charla centrarase sobre as vulnerabilidades de inxección de código, as cales consisten en introducir código nunha aplicación na que, posteriormente, será executado ou interpretado. Este tipo de ataques prodúcense debido a unha falta de validación nos datos que se poden introducir nunha aplicación.
Primeiro explicarase como os atacantes inxectan código Python malicioso nunha sandbox na que a priori non se poden escribir ficheiros no sistema operativo.
Despois, falarase sobre como se explotan as vulnerabilidades de inxección de plantillas utilizando de exemplo unha aplicación web desenvolvida con flask.
Finalmente, describirase como aproveitar unha configuración feita en yaml e un programa que a le con PyYAML para mostrar o contido dalgún ficheiro confidencial.
Polo camiño explicaranse varios detalles do funcionamento interno de Python como a estrutura das builtins ou a árbore sintáctica abstracta. Tamén se mostrará como se foron tratando de resolver estes problemas de seguridade e como os atacantes conseguían evadir as diferentes defensas que se foron plantexando.