Proctorio bezeichnet sich selbst als eine “Learning Integrity Platform”.
“Proctorio’s Learning Integrity Platform is the only monitoring solution of its kind, combining machine learning and advanced facial detection technologies to remove human error and bias.” (https://proctorio.com/about)
Das Ziel ist es, Betrugsversuche auch bei Prüfungen übers Internet zu verhindern.
Kennen tue ich es, da es meine Universität für eine Prüfung benutzen möchte. Die Software selbst soll als Addon für alle Chromium basierten Browser auf den Rechner des Prüflings kommen.
Zum Bias kommen wir noch.
Erstmal sollten wir klären, was das Addon überhaupt macht:
Um Betrugsversuche zu verhindern, so meine Universität, sammelt das Addon folgende Daten um sie mit einer KI auszuwerten:
Mikrofon und Webcam.
Physikalischer Standort und Identität.
Browsergröße, -Tabs und -Fenster.
Kopf-, Augen- und Mundbewegung.
Offene Anwendungen und Bildschirm.
Prüfungsumgebung und Anzahl der Bildschirme.
Zudem wird…
… Vollbildmodus forcieren,
… Zwischenablage geleert und deaktiviert und
… Browser-Cache gelösch.
Mir erscheint allerdings problematisch, dass das genannte, wie das Standardrepertiores eines Trojanerbaukastens klingt.
Weiteres Trojaner ähnliches verhalten: Das Addon Telefonieren auch nach Hause wenn gar keine Klausur läuft, wie sich mit Wireshark ergibt. Den Mitschnitt gibt es hier.
Auch wenn ich während der Aufnahme nicht auf der Proctorio Seite war, lässt sich die IP im Mitschnitt finden:
$ dig proctorio.com +short @8.8.4.4
104.18.204.19
104.18.203.19
Filter:
ip.addr == 104.18.204.19 || ip.addr == 104.18.203.19
.
Und wie jeder gute Trojaner, wird das Debuggen verhindert. Möchte man das Addon im Chrome debuggen wird man stattdessen auf folgende, nicht gerade aussagekräftige, Seite geleitet und das Addon entfernt sich selbst.
Die Domain ist ja fast so schlecht wie oshgnacknak.de
Meine IP geht übrigens noch:
$ ping 127.0.0.1 PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. 64 Bytes von 127.0.0.1: icmp_seq=1 ttl=64 Zeit=0.073 ms 64 Bytes von 127.0.0.1: icmp_seq=2 ttl=64 Zeit=0.065 ms
Trojanerbingo: Bald ist die Diagonale voll.
Nun zum Debugger freischalten: In der manifest.json
gibt
es den Eintrag "devtools_page": "assets/YrEf.html"
. Wenn
man die dort genannte Datei öffnet kann man einen Skript-Tag
auskommentieren um das Addon im Debugger zu betrachten.
<html><head></head><body>
<!-- <script src="k7Wq.js"></script> -->
</body></html>
Es ergibt sich, Google-Analytics ist auch mit dabei. Das kenn ich von Trojanern zwar nicht aber egal.
Viel gibt es hier leider nicht zu endecken, da ich keine Testsessions starten kann. Aber ein Fatzit können wir hier schon schließen:
Open Source: Harmlos.
Open Source Client: Immerhin etwas aber auch nicht toll.
Minified/Obfuscated Client: Hier wird es schon haarig.
Debugger im Client abschießen: Sehr suspekt.
Zudem, warum eigentlich ein Browser Addon? Ist es vielleicht, da Antiviren dort nicht suchen? Könnte aber auch einfach sein, das man so die API-Calls schneller bekommt. Da zudem nur Chromium basierte Browser unterstützt werden, schließe ich, dass das Erreichen der minimalen Entwicklungszeit erzielt wurde. Das ist kein Qualitätsmerkmal für Software jeglicher Art.
Sie werben unter anderem mit “Zero-knowledge encryption”. Leider nur unter Benutzung von CryptoJS. Fragwürdig ist, warum man nicht auf die Web Crypto API zu greift. Und selbst dort wird von Mozilla noch gewarnt, man möge sich auf Experten beziehen, da die Verschlüsslung sonst hinfällig ist.
Das letzte Update von CryptoJS war übrigens 2013.
Hier wird dann noch Math.random()
benutzt, was im groben
schlechter ist, als würde man die Primzahlen von Hand würfeln.
/**
* Creates a word array filled with random bytes.
*
* @param {number} nBytes The number of random bytes to generate.
*
* @return {WordArray} The random word array.
*
* @static
*
* @example
*
* var wordArray = CryptoJS.lib.WordArray.random(16);
*/
: function (nBytes) {
randomvar words = [];
for (var i = 0; i < nBytes; i += 4) {
.push((Math.random() * 0x100000000) | 0);
words
}
return new WordArray.init(words, nBytes);
}
Weitere Probleme mit AES-Verschlüsslung werden in diesem Artikel verdeutlicht.
Ich glaube aber auch, das ein Großteil des Geschäftsmodel darin besteht, zu behaupten, ohne die Überwachung seie die Prüfung gefährdet, was dann als ein Argument gegen den Datenschutz genutzt wird.
Wie ich im folgenden erklären möchte, funktioniert dieses Argument aber nicht.
Nein! Wie wir uns schon überlegt haben, handelt es sich ja ohne zweifel bei Proctorio um Spyware. Das muss man Proctorio auch so behandeln:
Der erste Schritt ist also immer die VM. Schon alleine um die eigene Privatsphäre, sowie die seiner Mitbewohner zu schützen. Also weil weil man teils sehr private Informationen auf seinem Rechner hat, und der dann am besten noch im eigenen Schlafzimmer steht, bracht man eine VM.
In meinem Hausaufgaben Ordner gibt es zum Beispiel einiges zu entdecken:
$ du ~/share/torrent -h
...
52G /home/osh/share/torrent
Dann gibt es da noch Familienfotos, teils datenschutzrechtlich geschützte Dokumente meines Schachklubs sowie einige SSH-Schlüssel und Passwortdatenbanken.
Da ich leider nicht alle meine Festplatten verschlüsselt habe, reicht es auch nicht, mal eben ein Liveimage zu booten.
Da eine VM dann aber plötzlich sehr gut isoliert, ist dann aber die Bildschirmüberwachen, schon wieder hinfällig.
Aber auch ohne VM kann man vom Browser aus nicht alles mitbekommen, was auf dem System gerade abgeht. Wer Arch Linux nutzt weis bestimmt, dass sich in jedem TTY ein eigener X-Server starten lässt. Was in diesem passiert bekommt kein Browser mit. Zumal man dort nicht mit dem gleichen Nutzer angemeldet sein muss.
Da ist dann noch die Kamera und das Mikrofon. Stellt sich raus, man kann auf Linux sowohl Mikrofon als auch Webcam vom der Kommandozeile aus fälschen.
Wir haben das Addon ja schon verändert um das Debuggen zu ermöglichen. Da die KI anscheinend über OpenCV auf dem Rechner des Prüflings läuft, kommt zudem die Frage auf, ob man nicht einfach die KI aus dem Addon entfernen könnte.
Oder man macht entsprechende Browserfunktionen, wie etwa WASM, einfach ganz aus. Es besteht sogar die möglichkeit einen Chromium zu bauen, der solche Funktionen garn nicht drin hat.
Eine weitere Methode, die es schon lange in der Speedrunner Community gibt, sind Makro Skripte bis hin zum TAS-Bot. Einfach einen Spicker mit den wichtigsten Fakten in die Prüfung abtippen lassen. Somit ist auch das deaktivieren der Zwischenablage unnötig.
Und das sind noch die unkreativen Methoden. Ich möchte an dieser Stelle empfehlen sich diesen Artikel durchzulesen, der noch ein paar lustige alternativen aufzeigt.
Man kann aber auch einfach seine Prüfungsaufsicht rickrollen, wenn man Mikrofon und Kamera schon kontrolliert.
Ich habe versprochen, auf den Bias noch mal einzugehen: Auch ohne Betrugsversuche hat die KI so ihre Probleme, wie in diesem Protokoll deutlich wird:
“Nicht-weiße Menschen und nicht-männliche Personen sind für die Software ein Problem”
Es gibt im Deutschen noch jeweils zwei weitere Worte für einen bestimmten Bias:
Rassismus: Das Software rassistisch ist, war schon lange bekannt.
Sexismus: Auch der sexistische Aspekt war schon davor bekannt.
Eignet sich KI also wirklich als eine biasfreie Prüfungsaufsicht?
“Katzen werden als Täuschungsversuch gewertet”
Ob Hunde auch ein Problem sind? Vielleicht wurde die AI beim Training auch einfach von einer Katze gebissen. Das es sehr schwer ist, KI richtig zu trainieren, kann man hier verdeutlicht sehen.
Die Möglichkeit, eine VM zu nutzen, wird in dem Protokoll auch noch mal erwähnt.
Noch mal die Frage, hilft Proctoring geben Betrugsversuche?
Die Antwort ist immer noch nein, aber es wird noch schlimmer: Anstelle dessen wird man zum Betrügen gezwungen um sich selbst zu schützen. Das kann nicht das Ziel hier sein. Außer das Ziel ist nicht gegen Betrugsversuche vorzugehen, eine plötzlich erschienene Marktlücke zu füllen, in dem man mal wieder nutzlose Software teuer verkauft. Dafür ist mir mein Privatleben, ob digital oder nicht, aber zu schade.
Immer hin bin ich nicht alleine an dieser Front: Es gibt viele Schulen und Universitäten an denen Proctorio und ähnliche Software zum einsatz kam, dann aber wegen Partitionen wieder abgeschafft werden musste. Wir ein Beispiel sucht, kann einfach mal nach “proctoring petition” in Internet suchen.
Auch Interessant ist eine Klage gegen die Fernuniversität Hagen. Und auch an meiner Universität soll die Fachschaft schon informiert worden sein.