Como programadores PHP, estamos casi completamente aislados del código binario y la gestión de la memoria, por

Como programadores PHP, estamos casi completamente aislados del código binario y la gestión de la memoria, por lo que la siguiente explicación puede parecer bastante abstracta. Pero es importante recordar que todo lo que hacemos se reduce a los 1s y 0s, los dígitos binarios, los bits, las tensiones a través de un transistor, que son el lenguaje de la CPU. Y es especialmente importante recordar que su código PHP no esta en el vacío, sino que es compilado y ejecutado por el kernel como parte de un sistema complejo.
Esto es un 1. Y esto es un 1. Estos 1s pueden ser almacenados en diferentes ubicaciones de la memoria de un ordenador, pero cuando se presentan al procesador son absolutamente idénticos. No hay manera de saber si uno fue creado antes o después de otro, sin análisis de escritura a mano o huellas dactilares o certificado de autenticidad para distinguirlos. Un buen software, escrito por programadores competentes, realiza un seguimiento de cuál es cuál.

Del mismo modo, si un hacker malicioso sustituye clandestinamente uno de esos 1s con un 0: el procesador no tiene autoridad para llamar al 0 inválido. Esto puede parecer cualquier otro 0, pero aparte de no ser un 1, se parece a cualquier otro bit. Aquí ya corresponde al software que presenta el 0 compararlo con alguna otra ubicación en la memoria, y decidir si ha sido alterado o no. Si este chequeo fue mal implementado, o nunca fue escrito en absoluto, el subterfugio pasa desapercibido.

En un sistema pequeño, podría ser posible descubrir y contrarrestar todas las posibles rutas de ataque, o verificar cada bit. Pero en un sistema operativo moderno, que consiste en muchos procesos que ejecutan simultáneamente cientos de megabytes de código, la seguridad absoluta está condenada a ser una meta objetiva, no alcanzable.
Y como comentamos en la primera parte de este Tutorial, las aplicaciones en línea están sujetas a una capa adicional de incertidumbre, porque la fuente de entrada de red no puede ser verificada, debido a que son esencialmente anónimas; con esto los atacantes pueden operar con impunidad, al menos hasta que puedan ser rastreados por algo distinto de la dirección IP.
En conjunto, las amenazas a la seguridad de las aplicaciones en línea son tan numerosas e intratables que los expertos en seguridad rutinariamente hablan de gestionar el riesgo en lugar de eliminarlo. Esto no es para ser deprimente (a menos que su línea de negocios exija seguridad absoluta), por el contrario, está destinado a aliviarle de una carga imposible. Podrías pasar el resto de tu vida diseñando e implementando el último sistema seguro, sólo para saber que un hacker con un clip y una linterna ha descubierto una habilidad inteligente que te obliga a empezar de nuevo desde cero.
Afortunadamente, PHP es un lenguaje extremadamente poderoso, muy adecuado para proporcionar seguridad. En los capítulos posteriores de este site, encontrará una multitud de sugerencias para mantener sus aplicaciones tan seguras como se pueda esperar, junto con planes específicos para diversos aspectos de la protección y el código necesario para llevarlas a cabo.

Publique su comentário!: