Cómo identificar si hay código malicioso en un script PHP

Muchas veces el código malicioso tiene dos rasgos comunes:

  1. Se adjunta cerca de la parte superior o inferior del código válido. Rara vez se inserta dentro de un código válido, ya que puede romper ese código, anulando el propósito de ejecutar sin ser detectado.
  2. Se ha codificado en Base64, un esquema de codificación de binario a texto diseñado para ocultar su propósito, comandos y URL.

En general, se destacará si está buscando PHP válido, especialmente el código bien escrito, ya que una sección del mismo contendrá cadenas de caracteres aparentemente aleatorias que comienzan con “eval (base64_decode (” Vea el ejemplo a continuación.

Una forma de localizar archivos PHP infectados con malware es buscar en el directorio raíz y en todos los subdirectorios de su sitio archivos que contengan Base64. Devolverá algunos falsos positivos ya que existen usos válidos y no maliciosos para Base64. Sin embargo, los usos válidos de Base64 se destacan ya que generalmente se encuentran dentro de comandos PHP válidos y generalmente son comentados por el desarrollador en lugar de aparecer sin comentarios y anexados en la parte superior o inferior del archivo por un script malicioso.

Suponiendo que está utilizando Git o algún otro control de versión (usted ESTÁ utilizando el control de versión, ¿verdad?), Es tan simple como ejecutar un archivo diff en el archivo sospechoso y compararlo con lo que tiene en el control de versión, y revisar cualquier cambio ( si alguno se encuentra).

Si no está utilizando el control de versiones, será una gran revisión manual de los archivos.

De cualquier manera, también debe verificar los registros de acceso de su servidor, así como los registros de errores, para extraer más información.

Si lo anterior no produce nada, entonces está limpio o tendrá que hacer una auditoría de código más extensa. Solo un pequeño ejemplo: si sabe que una página en particular está comprometida (por lo general, JS se inyectará en algún lugar de la página), puede ver la fuente en el navegador, encontrar el JS que se inyectó y luego usar SSH, puede busque el archivo que está tirando en esa línea de JS (use el comando grep para esto).

Aquí hay una guía de seis pasos sobre cómo limpiar php eval (base64_decode ()) hackear un sitio de WordPress, que encontré recientemente, y han anotado algunas cosas bien escritas que es posible que desee echar un vistazo.

Reparar eval (base64_decode ()) Php Hack en el sitio web de WordPress

(puntos clave del artículo siendo)

  • ¿Qué es la decodificación eval base64?
  • ¿Qué hace el código de decodificación eval base64?
  • ¿Cómo funciona php eval (base64_decode)?
  • ¿Cómo identificar y deshacerse de eval-base64_decode como el virus PHP? [Varias herramientas para decodificar cadena base64]
  • Consejos para mantenerse a salvo en el futuro

Además de esto, también han agregado un ejemplo de cómo un código malicioso como eval funcionaría en un sitio infectado:

Para sitios web basados ​​en PHP, puede usar la herramienta de escáner de malware, como Perfect Dashboard, por ejemplo, para verificar todos los archivos con código malicioso.

More Interesting

Como desarrollador experimentado de Java, ¿qué habilidad debo agregar UI (HTML, CSS, JS, Bootstrap y Angular) o Big Data (Hadoop, MongoDB, Spark, PIG, Hive). ¿Qué será lo más útil en el futuro?

¿Puedo usar la misma palabra clave en mi sitio web para dos entidades separadas? Estoy escribiendo contenido para mi sitio web de madera, y quiero saber si puedo usar la palabra clave 'revestimiento de madera' para una de las páginas de categoría y una publicación de blog (el blog está en el mismo sitio).

¿Cómo creo los mejores enlaces de retroceso para cualquier sitio web?

¿Para qué se usa Java?

¿Cuáles son las ventajas de usar meteoros sobre tornado, o viceversa?

¿Cuál es el mejor lugar para aprender CSS 'libros o en línea'?

¿Cuál es la forma más fácil de convertir mi sitio web receptivo en una aplicación móvil? ¿Existe una aplicación repetitiva que sea efectivamente un navegador web para un sitio web?

Como programador autodidacta, ¿debo comenzar con programación competitiva o desarrollo web?

¿Cuál es la mejor compañía para hosting y registro de dominio?

¿Cómo debo comenzar a estudiar Node.js con 0% de conocimiento de Java o JavaScript? ¿O cuál debería comenzar primero?

Cómo aprender Spring Framework

¿Recomiendas que un nuevo programador asista a una escuela que enseña la pila MEAN o Ruby on Rails? Ambas escuelas son excelentes lugares.

¿Cuáles son las ventajas de usar Ember.js en general?

Rastreadores web: ¿Cuáles son las leyes de copyright específicas para los sitios web de rastreo?

¿Dónde debo comenzar la programación web y cuáles son los lenguajes más útiles para la programación web?