Plagio en universidades: estudio de Turnitin y Compilatio

José Miguel Moreno
20 min readNov 23, 2018

--

El plagio, la copia de obras ajenas atribuyéndolas como propias, es un tema que está a la orden del día. Si bien es cierto que puede darse en cualquier ámbito, es de especial relevancia en el académico, donde memorias, trabajos fin de máster y artículos como éste deben ser, legal y moralmente, creación propia de sus respectivos autores y mencionar a aquellos que hayan aportado valor de alguna forma u otra.

Para detectar el plagio entre alumnos y docentes, numerosas universidades e instituciones han optado por usar herramientas como Turnitin o Compilatio, servicios online que analizan documentos de forma automatizada y les otorgan una puntuación en función de la cantidad del texto que haya sido copiado de otras fuentes.

Aunque ambas herramientas disponen de bases de datos muy completas que les permiten buscar coincidencias en Internet e incluso entre documentos subidos por otros miembros de la misma institución, flaquean considerablemente a la hora de reconocer textos dentro de los archivos que se suben para ser analizados.

Esta vulnerabilidad permite alterar el texto que Turnitin y Compilatio serán capaces de reconocer en un documento sin modificar su apariencia, pudiendo manipular los resultados del análisis de plagio.

1. Introducción

Turnitin y Compilatio son herramientas online ofrecidas como servicio (Software as a Service) para el análisis y detección de plagio en documentos de texto, soportando una amplia gama de formatos de archivo (Adobe PDF, Microsoft Word y LaTeX, entre otros).

Surgidos en 1997 y 2005 respectivamente, Turnitin es usado por más de 15.000 instituciones de todo el mundo mientras que Compilatio está presente en veinte países, siendo sus principales clientes las universidades.

Ambas plataformas suelen ser consideradas “infalibles” por los académicos que las defienden y a menudo utilizadas como medio de disuasión frente al plagio, ya que hasta la fecha no se han dado casos remarcables de vulnerabilidades en dichos sistemas.

En este artículo se exponen y analizan formas de engañar a los sistemas de reconocimiento de texto de Turnitin y Compilatio para alterar el porcentaje de plagio de cualquier documento que se suba a estos servicios.

2. Planteamiento de las pruebas

La metodología de estudio que se ha utilizado es la siguiente:

  1. Se parte de un documento de texto copiado palabra por palabra de una fuente de información abierta y fácilmente accesible.
  2. Posteriormente, ese documento es subido a los servidores de Turnitin y Compilatio para su análisis.
  3. Tras completar el análisis, se obtiene un porcentaje que determina la cantidad de la obra que ha sido plagiada, siendo 0% un texto completamente original y 100% una copia idéntica.
  4. Se crea una nueva versión del documento original aplicando la técnica de manipulación que se quiere estudiar y se repite el proceso hasta lograr minimizar el porcentaje de plagio devuelto.

2.1. Documento de partida

A modo de ejemplo, el documento de partida que se ha utilizado para crear las obras derivadas ha sido un extracto de la página “Plagio” de Wikipedia, concretamente la revisión del 12 de agosto de 2018.

Por facilidad de uso se ha optado por generar los archivos en formato PDF, aunque esto (salvo algunas excepciones) no debería influir en el resultado de las pruebas ya que Turnitin y Compilatio extraen el texto de los documentos subidos ignorando imágenes, tablas complejas y otras figuras.

Figura 1. Documento original utilizado para las pruebas

Como era de esperar, al solicitar el análisis de dicho original a Compilatio (y tras tres minutos de espera) se obtiene un porcentaje de plagio del 100%.

Figura 2. Resultado de Compilatio para el documento original

Este número puede desglosarse, a su vez, en otros tres:

  • Similitudes idénticas (86%): porcentaje de texto copiado palabra por palabra.
  • Similitudes sospechosas (14%): porcentaje de frases sospechosas que utilizan sinónimos y la forma pasiva para evitar su detección.
  • Similitudes accidentales (0%): porcentaje de aquellos extractos de texto que se detectan habitualmente.

Además de estas puntuaciones, Compilatio muestra un listado de fuentes del documento, ordenándolas de más a menos probables. Para este documento, la primera de las veinte detectadas (algunas de ellas repetidas) es la página de “Plagio” de Wikipedia con una similitud del 100%.

Similarmente, Turnitin devuelve el mismo porcentaje de plagio citando también a Wikipedia como origen de la copia.

Figura 3. Resultado de Turnitin para el documento original

Nótese que Turnitin desglosa la puntuación de un documento según el origen de la fuente en vez de por confianza como hace Compilatio.

2.2. Documento de control o ruido

Para asegurar la validez de las pruebas también se subió un archivo con palabras aleatorias del castellano de entre un lemario de 80.383 elementos. La calificación obtenida fue “menor al 1%”, el valor mínimo que Compilatio es capaz de mostrar.

Figura 4. Resultado de Compilatio para el documento de control

Se asume que el porcentaje de plagio del archivo de ruido fue del 0% o muy cercano a dicha cifra, pues Compilatio no fue capaz de detectar ni una sola fuente. Cabe destacar que el análisis del documento de control tuvo una duración de aproximadamente 19 minutos.

Para Turnitin también se obtiene un índice de similitud del 0% sin fuentes detectadas tras un tiempo de espera de unos 10 minutos.

Figura 5. Resultado de Turnitin para doc. de control

3. Ataques de información oculta

Turnitin y Compilatio calculan el nivel de plagio de un documento en forma de porcentaje respecto al contenido. Es decir, cantidad de texto copiado entre texto total.

Aprovechando este comportamiento, asumimos que no podemos alterar la cantidad de texto copiado, por lo que añadimos más texto invisible al documento para reducir el porcentaje de plagio final. Que el texto sea invisible implica que no puede ser leído por una persona, pero sí por una máquina.

Este tipo de ataques pasan más desapercibidos cuando el índice de similitud ya es bajo de por sí y solo se quiere reducir aún más hasta llegar a niveles seguros (umbral del 10 por ciento).

Cabe destacar que, mientras que Compilatio calcula la cantidad de texto de un documento a partir del número de caracteres que contiene, Turnitin utiliza el número de palabras para tal fin.

Es decir, una palabra de tres letras “pesa” lo mismo que una de treinta a ojos de Turnitin. Este comportamiento será aprovechado en los ataques que se muestran a continuación.

3.1. Texto basura

La variante más sencilla de este ataque consiste en añadir una cadena de caracteres aleatorios con un tamaño de fuente ínfimo (lo más próximo a 0px) y suficientemente larga como para cubrir todo el documento.

Para ocultar estos caracteres se dividen las páginas en tres capas, siendo la más profunda el texto basura, colocando encima un rectángulo blanco que oculte a la capa inferior, y por último el contenido original del documento.

Figura 6. Representación de capas con texto basura

Nótese que, aunque la capa de fondo no es visible, el texto que contiene sigue siendo seleccionable desde un visor de archivos PDF.

Tras subir el documento original alterado con esta técnica, Compilatio le otorga una puntuación de plagio del 18%.

Figura 7. Resultado de Compilatio para el documento con texto basura

Pese a ser un porcentaje bajo, se dispara una alerta que hasta ahora no había aparecido, representada en la figura anterior como un triángulo amarillo con una exclamación.

Este símbolo nos indica que el documento posee textos en un idioma que Compilatio no ha sido capaz de reconocer y, por tanto, no ha podido buscar coincidencias para dichos extractos.

Si desde el informe generado hacemos clic en “Ver las zonas de texto concernidas”, Compilatio nos mostrará los extractos que hicieron saltar esta alerta.

Para evitar este comportamiento, una solución pasa por utilizar como texto basura un listado de palabras aleatorias del idioma principal en el que esté escrita la obra. Para este artículo se empleó un lemario reducido con las 5.000 palabras más frecuentes del castellano.

Una vez generado el nuevo texto basura y siguiendo el mismo procedimiento anteriormente explicado, se obtiene un porcentaje de plagio del 10% sin, como ocurría antes, extractos de texto con idioma desconocido.

Figura 8. Resultado de Compilatio para el documento con lemario

El añadir texto basura ha provocado un incremento significativo en el número de caracteres del archivo, alterando la puntuación de este.

Es importante mencionar que el plagio sigue estando presente en el documento palabra por palabra y, como consecuencia, las fuentes del plagio siguen apareciendo en el informe generado por Compilatio.

Figura 9. Fuentes de Compilatio para el documento con lemario

Para el caso de Turnitin los resultados del análisis difieren de los devueltos por Compilatio. Al subir el archivo que contiene texto basura (solo letras al azar, sin palabras del lemario), Turnitin se niega a analizarlo debido a que contiene demasiado texto, mostrando desde Moodle el mensaje de error “No es posible producir un Informe de Originalidad para este fichero”.

Como consecuencia, el documento no recibe un índice de similitud y en su defecto se muestra una “x”. Esto no quiere decir que tenga un porcentaje de plagio del 0%, pero tampoco es del 100% como debería serlo.

Para el archivo de texto basura con lemario, Turnitin sorprende al devolver una puntuación del 100%. La causa reside en que Turnitin ignora todos los textos que no son visibles por estar fuera de los límites del documento u ocultos por otro objeto que tengan delante.

Sin embargo, que el texto tenga que ser visible no quiere decir que tenga que ser legible. Podemos, entonces, prescindir del modelo de capas e insertar texto muy pequeño y con el mismo color de fuente que el fondo en un área vacía del documento, obtenido un nuevo índice de similitud del 10%.

Figura 10. Resultado de Turnitin para el documento con lemario

Además, como Turnitin no muestra una alerta cuando no detecta el idioma de un fragmento y utiliza el número de palabras en vez del de caracteres para calcular la cantidad de texto total, basta con añadir unos cuantos pares de letras al azar separados por espacios en vez de palabras completas para bajar el porcentaje de plagio aún más hasta llegar al 8 por ciento.

Figura 11. Resultado de Turnitin para el documento con pares de letras

3.2. Prevención de alertas de idioma en Compilatio

Según lo anteriormente mencionado, Compilatio muestra una alerta al usuario cuando no es posible detectar el idioma de un fragmento, por lo que el texto basura que añadamos tiene que contener palabras escritas en el idioma principal del documento.

Otra técnica para evitar estas alertas consiste en añadir una gran cantidad de caracteres separados por espacios (del orden de 10.000 veces el texto original), provocando que Compilatio divida el archivo antes de analizarlo y, debido a un fallo, no muestre alertas de idioma desconocido.

Signos de puntuación y emojis son los caracteres más adecuados para este propósito pues pueden ser utilizados como decoración del documento sin levantar sospechas.

4. Ataques de ofuscación del contenido

Hasta ahora hemos asumido que no había forma de alterar la cantidad de texto que Turnitin y Compilatio detectaban como plagio, por lo que aumentábamos la cantidad total para modificar la puntuación del documento. En este apartado se prueba el enfoque opuesto: dejar fija la cantidad de texto total e intentar reducir la cantidad de texto copiado.

Esto no significa que vayamos a cambiar el documento original por otro con menos párrafos copiados, sino que vamos a ofuscar (alterar) las cadenas de texto plagiado para que puedan ser leídas por una persona, pero no por una máquina.

A diferencia de los ataques con información oculta, esta técnica es eficaz en cualquier archivo, sin importar el porcentaje de plagio del documento de partida.

4.1. Texto en columnas

La alteración más sencilla que se puede realizar dentro de los ataques de ofuscación consiste en la recolocación de los textos de un documento en múltiples columnas.

Figura 12. División del texto en múltiples columnas

Dado que los archivos PDF no suelen guardar las cadenas de texto de forma secuencial (como hacen los documentos de Microsoft Word), sino posicionándolas de manera absoluta con relación a la página, se pretende que los programas de reconocimiento de texto utilizados por Turnitin y Compilatio tengan problemas para leerlo en el orden correcto.

Utilizando dos columnas, el porcentaje de plagio devuelto por Compilatio apenas baja hasta el 99%, mientras que con tres se obtiene una cifra del 75%.

Figura 13. Resultados de Compilatio para múltiples columnas

A medida que se añaden más columnas la puntuación baja ligeramente, pero no lo suficiente como para llegar al umbral del diez por ciento.

En el caso de Turnitin, con dos columnas el índice de similitud se mantiene en el 100% y con tres columnas se desploma hasta el 46%.

Figura 14. Resultado de Turnitin para tres columnas

Aunque la efectividad de este método es indiscutible, queda descartado por lo sospechoso que resulta entregar un documento con más de dos columnas.

4.2. Texto en imágenes

Partiendo de la base de que si se quiere impedir que Compilatio lea un texto concreto del documento lo mejor que se puede hacer es eliminar dicho texto, procedemos a convertir las páginas del documento original en imágenes.

De esta forma el texto deja de poder ser seleccionado porque realmente ya no existe. Este proceso sería el equivalente a imprimir el documento y después escanearlo a un archivo PDF.

Para sorpresa de todos, tanto Turnitin como Compilatio se niegan a analizar dicho archivo.

Figura 15. Mensaje de error devuelto por Compilatio

Como ambos servicios no disponen de ningún sistema de OCR o reconocimiento óptico de caracteres (es decir, no son capaces de extraer texto de una imagen), el archivo es rechazado al ser interpretado como un documento en blanco.

Aunque este comportamiento pueda parecer una medida de seguridad, lo cierto es que no es más que un “apaño” que puede ser sorteado con extrema facilidad.

En el caso de Compilatio, basta con añadir una portada con un par de frases (con texto reconocible) y el engaño está hecho: porcentaje de plagio menor al 1% y ninguna fuente detectada.

Figura 16. Resultado de Compilatio para OCR parcial

Con Turnitin es ligeramente más complicado, pues nos exige subir un documento con un mínimo de palabras no determinado, así que procedemos a añadir también una contraportada con palabras aleatorias ocultas (apartado 3.1), obteniendo un nivel de similitud del 0%.

Figura 17. Resultado de Turnitin para OCR parcial

Dado que el documento utilizado para este artículo es en su totalidad una copia, se han tenido que convertir todas sus páginas a imágenes y añadir una portada para realizar este ataque.

Para documentos con ligeros extractos plagiados solo sería necesario convertir a imagen aquellos párrafos o secciones que los contengan, dejando el resto del archivo intacto.

4.3. OCR manipulado

Probablemente este sea el ataque más difícil de ejecutar de todos los mencionados en el artículo, pues requiere manipular determinados bytes del archivo PDF que se desea alterar.

Ahora que ya sabemos que tanto Turnitin como Compilatio no reconocen texto en imágenes, podemos rizar un poco más el rizo y mentirles sobre el texto que contiene el archivo.

Como en el caso anterior, empezamos convirtiendo las páginas del documento original a imágenes y, esta vez, utilizamos un programa como Adobe Acrobat Pro para reconocer el texto.

Al realizar dicho procesamiento se añadirán al PDF una serie de textos ocultos que pueden ser seleccionados y leídos por un programa informático. El paso clave consiste en reemplazar las cadenas de texto reconocidas por Acrobat por otras frases aleatorias.

Según la especificación, estas cadenas son guardadas en los archivos PDF como streams de bytes comprimidos con ZLIB dentro de unas estructuras llamadas “objetos”, como se puede apreciar en el siguiente ejemplo:

23 0 obj
<</Filter/FlateDecode/Length 778>>stream
H‰ŒUMoÛ0½ûWø¸›*ŠúŠºÃnÛcÁ³ÝÌEbgv²ß?úK’å(rH=Rä{ÔŸ´ÂœÓGºéGyÎyþØe߳χŒ3îòcvÞe»ËI&¼[...]
endstream
endobj

Para alterar el contenido del stream (bytes ubicados entre stream y endstream) primero hay que descomprimirlo hasta obtener una cadena legible en texto plano como esta:

[…]
(profesores )Tj
0.05 Tc 34.4358 0 0 32.3 723.94 447 Tm
(han )Tj
0.0446 Tc 32.3 0 0 32.3 786.66 447 Tm
(acordado )Tj
[…]

Ahora solo falta cambiar las palabras reconocidas por Acrobat (las que están entre paréntesis) por otras del lemario que posean el mismo número de caracteres. Después se comprime con ZLIB el nuevo payload y se cambia el tamaño recogido en la cabecera del objeto que lo contiene (propiedad Length).

El archivo final resultante de esta modificación posee la apariencia de un documento escaneado normal y corriente. Sin embargo, al seleccionar un extracto del mismo se estarán copiando una serie de palabras aleatorias en vez del texto real que contienen sus imágenes.

Tras subir el archivo a Compilatio para su análisis el porcentaje de plagio fue, una vez más, menor al 1% sin ninguna fuente detectada.

Figura 18. Resultado Compilatio para OCR manipulado

Como era de esperar, el análisis de Turnitin también devolvió una puntuación del 0% para el mismo archivo.

Figura 19. Resultado de Turnitin para OCR manipulado

4.4. Ataque homográfico

Un ataque homográfico es aquel en el que un atacante reemplaza glifos visualmente similares de una cadena de texto para engañar a una víctima dada. Suelen usarse en operaciones de phishing en las que se intenta suplantar la identidad de una empresa creando un nombre de dominio con caracteres Unicode alterados.

Un ejemplo práctico de esta técnica sería el dominio “аpple.com”, que sustituye la vocal “a” del rango ASCII (U+0061) por su equivalente en el alfabeto cirílico (U+0430). Visualmente ambos glifos son idénticos, pero se representan con caracteres distintos.

De forma similar se pueden sustituir determinadas letras de un documento por otras que se parezcan para que ni Turnitin ni Compilatio sean capaces de encontrar coincidencias en otras obras al alterar las frases plagiadas.

La dificultad de este ataque reside en encontrar un alfabeto equivalente para los caracteres más utilizados de un idioma (mayúsculas, minúsculas y tildes) y después hacer los reemplazos pertinentes en el documento que se quiera manipular.

Tomando un extracto del documento alterado con esta técnica, las diferencias entre caracteres son inapreciables salvo que se analicen muy de cerca:

Figura 20. Extractos del texto original y del alterado, respectivamente

Los resultados del análisis de Compilatio devolvieron, de nuevo, un porcentaje de plagio menor al 1% y ninguna fuente para este documento.

Figura 21. Resultado de Compilatio para ataque homográfico

Aunque ha saltado la alerta de idioma no detectado (debido a que se han reemplazado todos los caracteres posibles del documento), solo es necesario transformar algunas palabras para “romper” la frase que forman e impedir la detección de copias por parte de Compilatio, evitando disparar dicha alerta.

En el caso de Turnitin la modificación es efectiva en menor medida, reduciendo el nivel de similitud hasta el 26 por ciento.

Figura 22. Resultado de Turnitin para ataque homográfico

Es evidente que Turnitin tiene una ligera protección frente a este tipo de ataques, probablemente consistente en reemplazar caracteres con glifos similares por sus equivalentes en ASCII como recomienda el Unicode Consortium en el UTR39. El problema está en que implementa la recomendación a medias y solo es capaz de reconocer algunos de estos caracteres, pasando por alto el resto.

Aun así, un 26% es más que aceptable, pudiendo llegar al umbral del 10 por ciento al combinar este ataque con la inserción de texto basura.

4.5. Sustitución de espacios

Este ataque es uno de los más efectivos y sencillos de aplicar de todo el artículo. Como indica el título del subapartado, consiste en reemplazar los caracteres de espacio que separan las palabras por otro distinto que se hace invisible al darle el mismo color de fuente que el fondo.

En vez de romper palabras como en el ataque homográfico, aquí se busca juntarlas al “quitar” el carácter de espacio, que actúa como separador.

Tras subir el documento alterado a Compilatio utilizando una “a” minúscula como carácter de espacio, se obtiene un porcentaje de plagio inferior al 1%.

Figura 23. Resultado de Compilatio para separadores

Para evitar la alerta de idioma no detectado se reemplazaron solo aquellos espacios que separasen palabras de menos de cinco caracteres y prohibiendo hacer dos reemplazos seguidos.

En Turnitin, para el mismo archivo modificado, se obtuvo un índice de similitud del 0%. Nótese que este último servicio, a diferencia de Compilatio, rechazará el documento si se reemplazan todos los espacios por otros separadores al interpretar que el archivo solo contiene una palabra.

Como Turnitin calcula la longitud del documento en función de sus palabras y una palabra hace que no sea lo suficientemente largo, se niega a analizarlo al considerarlo demasiado corto.

Figura 24. Resultado de Turnitin para separadores

4.6. Caracteres de control

Basándonos en los conocimientos adquiridos en previos ataques de ofuscación, llegamos a la conclusión de que la forma más efectiva de engañar a Turnitin y Compilatio consiste en alterar el texto que serán capaces de leer mediante la inserción o reemplazo de determinados caracteres.

Aún así, por muy cuidadosos que seamos, estos caracteres siempre podrán ser detectados por una persona observadora.

En el caso del ataque homográfico, las diferencias entre caracteres pueden apreciarse al ampliar de forma considerable el tamaño del texto. Para la sustitución de espacios, al copiar un extracto del documento y pegarlo como texto plano, los caracteres separadores se vuelven visibles.

Pero, ¿y si hubiese una forma de insertar caracteres no imprimibles? Es decir, caracteres que no disponen de una representación visual, de un glifo. Eso son exactamente los caracteres de control, códigos especiales utilizados para indicar comandos como final de archivo, salto de línea o retorno de carro.

Para este subapartado se ha tomado como ejemplo el carácter ZWJ (Zero-width Joiner, U+200D), que sirve para forzar la unión de dos caracteres en un solo glifo. Este se emplea habitualmente en los alfabetos bráhmicos y árabe, y de forma reciente para formar secuencias de emojis a partir de otros emojis ya existentes.

Figura 25. Ejemplo de secuencias de emojis

Si se utiliza el ZWJ entre dos letras cualesquiera del alfabeto latino la unión no se forzará al no existir un glifo correspondiente a dicha secuencia de caracteres. Por tanto, el byte U+200D seguirá estando presente (alterando el documento) pero no afectará a la representación visual del texto.

Este ataque tiene una pequeña particularidad: no puede aplicarse a archivos PDF (o por lo menos es prácticamente imposible) al ser un formato que no guarda los textos de forma secuencial (véase el apartado 4.1).

En algunas suites ofimáticas como Microsoft Office, alterar un documento con esta técnica puede provocar que el corrector ortográfico detecte las palabras modificadas como mal escritas. Esto no supone un problema pues en la mayoría de programas se puede deshabilitar este corrector para un documento concreto.

La gran ventaja de este ataque es que, al copiar un fragmento del documento y visualizarlo como texto plano, no se aprecia ningún indicio de manipulación salvo que se usen herramientas especializadas.

Aplicando esta técnica a las palabras cortas del documento original (aquellas con menos de cuatro caracteres), se consigue en Compilatio un porcentaje de plagio inferior al 1% sin alertas ni fuentes detectadas.

Figura 26. Resultado de Compilatio para documento con ZWJ

En el caso de Turnitin, se obtiene un índice de similitud del 100% ya que su sistema de extracción de textos ignora los caracteres de control.

4.7. Ocultación de texto en formularios

El formato de archivo PDF permite la inserción de campos de textos modificables por el usuario para la creación de formularios que pueden ser rellenados y enviados sin salir del propio documento.

Estos campos de texto pueden ser estilizados para coincidir con el diseño del documento (tipografía, tamaño de fuente, color de fondo, etc.) y son capaces de contener un valor por defecto. Si, además, se especifica que el campo es de solo lectura, la diferencia entre éste y un bloque de texto cualquiera es visualmente inapreciable.

Dado que algunas plataformas de detección de plagio como Turnitin ignoran los campos de formulario, podemos explotar este funcionamiento para “ocultar” texto que no será tenido en cuenta a la hora de calcular la tasa de plagio.

Para un documento alterado utilizando esta técnica, en Turnitin se obtiene un índice de similitud del 0%.

Figura 27. Resultado de Turnitin para formularios

Para el mismo archivo, Compilatio devuelve un porcentaje de plagio del 100% pues dicha plataforma tiene en cuenta los valores por defecto de los campos de formulario.

4.8. Hair spaces (U+200A)

Dado que Turnitin no se ve afectado por los caracteres de control, necesitamos otra forma de “romper” palabras sin alterar su representación visual.

Como no podemos usar caracteres de ancho cero, tenemos que optar por un símbolo que tenga una anchura minúscula, siendo hair space el más indicado. Este carácter ocupa un ancho en pantalla similar a la separación entre las letras de una palabra y, como cualquier espacio normal, es invisible.

Si se inserta en medio de algunas de las palabras del documento su presencia es prácticamente inapreciable y, al ser un carácter del espacio ASCII original, todos los dispositivos del mundo son capaces de interpretarlo.

Al subir el documento alterado a Turnitin se obtiene un muy respetable índice de similitud del 5%.

Figura 28. Resultado de Turnitin para hair spaces

Como es bastante probable que para el mismo documento Compilatio muestre la alerta de idioma no reconocido, es recomendable en este caso insertar el hair space en las mismas posiciones que se insertó el ZWJ en el subapartado anterior.

Teniendo en cuenta lo dicho, una vez más Compilatio devuelve un porcentaje de plagio inferior al 1% sin haber reconocido ninguna fuente.

Figura 29. Resultado de Compilatio para hair spaces

5. Conclusiones

Aunque era de esperar que Turnitin y Compilatio, al contrario de lo que suele percibirse en el ambiente académico, no fueran infalibles, sorprende la cantidad de formas posibles de engañarlos e incluso lo fácil que resulta en algunos casos.

Es surrealista que servicios profesionales de detección de plagio como estos no dispongan de un sistema de reconocimiento de caracteres en imágenes (OCR).

Otro aspecto reseñable son los largos tiempos de espera en cualquiera de las dos plataformas hasta que un documento finaliza su análisis, siendo el mínimo experimentado durante la realización de este artículo de 3 minutos y el máximo de 90 minutos.

Pese a que Turnitin es mejor que Compilatio en cuanto a resistencia a ataques se refiere, posee cuestionables aspectos de diseño que disminuyen su eficacia, como el uso de palabras en vez de caracteres para determinar la cantidad de texto de un documento, la ausencia de alertas en caso de no detectar el idioma en el que está escrito un fragmento, o el ignorar por completo los campos de formulario en documentos PDF.

Posibles mejoras para ambos servicios son:

  • Rediseñar su software de extracción de texto para reconocer solo aquellos fragmentos que son visibles (se muestran en pantalla) y legibles (tienen un contraste alto, tamaño de fuente adecuado, interlineado suficiente, etc.).
  • Rediseñar su base de datos de documentos para buscar por patrones (ej.: huellas digitales) en vez de por contenido como probablemente estén haciendo para disminuir considerablemente el tiempo de análisis.

A partir del conocimiento extraído de este artículo se ha desarrollado Plag Patrol, una aplicación capaz de detectar las alteraciones que Turnitin y Compilatio pasan por alto.

La herramienta es código abierto y puede descargarse desde su repositorio en GitHub o usarse directamente desde https://josemmo.github.io/plagpatrol/.

Figura 30. Demostración de Plag Patrol para la detección del ataque de sustitución de espacios

Agradecimientos

Quisiera dar las gracias a Pablo Martínez Pérez por plantear la idea de lo que acabaron siendo los ataques con texto basura y al Dr. Juan José Álvarez Sánchez por facilitar los medios necesarios para probar los ataques.

Referencias

  • Zheng, X. (2017). Phishing with Unicode Domains. [online] Xudongz.com. Disponible en: https://www.xudongz.com/blog/2017/idn-phishing/ [Visitado el 19 de agosto de 2018].
  • Wood, A. (1999). Unicode and multilingual support in HTML, fonts, Web browsers and other applications. [online] Alanwood.net. Disponible en: http://www.alanwood.net/unicode/ [Visitado el 19 de agosto de 2018].
  • Ross, T. (2018). Be careful what you copy: Invisibly inserting usernames into text with Zero-Width Characters. [online] Medium.com. Disponible en: https://medium.com/@umpox/18b4e6f17b66 [Visitado el 15 de agosto de 2018].
  • Decusati, A. (2016). My favorite Unicode character: the zero-width joiner! [online] YouTube.com. Disponible en: https://youtu.be/4wevZ1vohDY [Visitado el 16 de agosto de 2018].

Este artículo fue publicado originalmente en el número 7 de la revista Sego-Bit.

--

--