Lieber Zuschauer, dieser Untertitel wurde automatisch generiert von YouTube und dementsprechend (sehr) fehlerhaft. Wenn du kannst, hilf uns bitte gute Untertitel zu erstellen: https://c3subtitles.de/talk/2832 Danke!
[Musik]
nun wie funktionieren neuronale Netze
und wie können sie manipuliert und
angegriffen werden nun mit Hilfe einiger
Beispiele werden diese theoretischen
Konzepte V anchauleucht in dem nächsten
Vortrag es werden verteidig Strategien
entwickelt und deren Effizienz erörtert
jate der eigentlich recht gerne auch
Mathematik mag wird uns durch diesen
Vortrag führen jte für dich
[Applaus]
[Musik]
[Applaus]
danke guten Morgen genau ich ma eine
Einführung in das haing von neuronalen
Netzen ich habe
mich einfach mit ja neuronalen Netzen
beschäftigt und gerade in der letzten
Zeit fand ich es interessant mal aus der
hackingppektive zu gucken was kann man
denn eigentlich machen um die Dinger zu
manipulieren oder was kann man mit den
Teilen machen die was man eigentlich
nicht damit machen will und das habe ich
in diesem Vortrag zusammeng getragen und
stell das vor weil ich dieses Wissen
tatsächlich sehr sehr spannend fand und
deswegen es teilen wollte aber als
kleiner Disclaimer also es ist jetzt
nichts super neues ich habe jetzt nichts
Neues erfunden ähm ganz kurz zu mir ich
habe Mathe studiert und deswegen habe
ich auf diese machine learning
Perspektive eine mathematische Sicht und
das ist so ein bisschen so eine
Hassliebe weil ich mag Mathe das gibt
Struktur und es hilft mir Dinge zu
verstehen und genau das geht so beim
maschinellen lernen einfach verloren ich
habe wir sehen das auch gleich es gibt
sehr viele mathematische Konzepte im
maschinellen lernen aber wenn es dann so
in die Anwendung kommt komm muss ich
doch ganz viel rumprobieren und
deswegen ja ist es für mich immer so ein
bisschen ja ich guck es mir gerne an und
dann habe ich wieder zu viel und dann
gucke ich es mir doch wieder gerne an
genau erstmal ein Überblick darüber was
was machen wir denn heute also ich werde
erst noch mal nur dass wir alle dann
irgendwie so ein bisschen ein
gemeinsames Wissen haben kurz über
neuronale Netze sprechen und gucken wo
die Anwendung ist dann werde ich mir die
hier
aufgelisteten Angriffe anschauen das
habe ich so ein bisschen aufgeteilt in
die Perspektive okay ich bin einfach nur
ein Nutzer und kann nur mit dem Modell
interagieren und mehr gar nicht machen
dann haben wir irgendwann Lesezugriff
auf das Modell und probieren dann mal
was mit dem Modell zu machen und mal zu
gucken ja wo wir da landen und im
letzten Schritt haben wir dann
tatsächlich sogar Schreibzugriff und
können mit dem Modell quasi mehr oder
weniger tun was auch immer wir wollen
ganz am Ende fasse ich das zusammen und
versuche einen Überblick zuüber zuugeben
wie das wie man sich dagegen verteidigen
kann genau und damit würde ich sagen
springen wir doch erstmal in die
neuronalen
Netze also wir haben heute zwei
unterschiedliche Anwendungen von
neuronalen Netzen das eine ist die
spezialisierte KI diese spezialisierte
KI ist darauf trainiert ein Problem
tatsächlich zu lösen und kann auch nur
dieses eine Problem lösen und diese
Probleme die diese spezialisierte KI
tächlich lösen kann lässen sich
einteilen in zwei Klassen das eine ist
eine
Klassifikation das ist das obere was wir
hier sehen also zu festzustellen ist auf
dem Bild ein Hund oder ein Muffin was
tatsächlich für ein neuronales Netz
ziemlich schwierig ist weil die Struktur
von den Bildern irgendwie ähnlich ist
das zweite die zweite Klasse von
Problemen die ich lösen kann ist die
sogenannte Regression Regression ist ich
habe Daten z.B auf einem Zeitintervall
und ich möchte irgendwie gucken hi für
diesen Zeitpunkt habe ich keine Messwert
was ist das z.B das ist dann eine
Interpolation oder ich gucke außerhalb
von meinem Messintervall und frage mich
wie könnte denn der Wert da aussehen das
ist dann eine
Extrapolation im Gegensatz dazu und das
ist ja alles das was wir im letzten Jahr
gesehen haben gibt es die generative KI
generative KI kann irgendwie neue Dinge
erstellen
die ja vorher nicht da gewesen sind und
das anhand von von gewissen Daten da
haben wir irgendwie sehen D was
irgendwie Bilder erzeugen kann oder
chatgpt was Sprache gut kann und der
wesentliche Unterschied halt zur
spezialisierten KI ist dass ich im Fall
der generativen KI gut und schlecht gar
nicht so klar definieren lassen weil ich
möchte ja ein Bild haben was ich vorher
nicht da hatte und ob das jetzt gut ist
oder nicht weiß ich tatsächlich am Ende
des Tages nicht und ich könnte auch
einige Pixel verändern und dann B ist
das Bild für mich als Mensch immer noch
gut und genauso ist das mit Sprache also
ich möchte eine Zusammenfassung von
einem Text haben und dieser Text kann
halt auch in unterschiedlichen Worten
zusammengefasst werden und für mich als
Mensch ist das immer noch
zufriedenstellend und
deswegen würde ich sagen ist die
generative KI auch wesentlich
manipulierbarer weil ich halt mit dir
interagiere über Sprache Sprache ist
unklar und das was halt am Ende auch
rauskommt unterliegt wieder meinem
Urteil ob das was da rauskommt
tatsächlich gut oder schlecht ist und so
gesehen haben wir zwischen diesen beiden
Klassen eine eine gewisse
Diskrepanz ich werde mich im folgenden
mehr auf die spezialisierte KI an ja mir
mir mehr die spezialisierte KI
angucken die Angriffe die ich vorstelle
lassen sich natürlich für in der
generativen KI irgendwie auch
anwenden und damit gucke ich auch den
ersten Angriff quasi an und zwar die
prompt injection ja das wollte ich
relativ kurz halten weil ich es
tatsächlich relativ uninteressant finde
aus einer technischen Perspektive
ich habe ja ein Beispiel mitgebracht das
ist so ein so ein Spiel wo man gegen so
ein Chatbot spielen muss der Chatbot hat
ein Geheimnis was er natürlich nicht
verraten soll und jetzt habe ich als
Mensch die Aufgabe einen Input zu
generieren s dass ich dieses Geheimnis
rausbekomme und ich habe hier auch schon
die Lösung mitgebracht oder eine Lösung
mitgebracht ich finde diese Lösung
tatsächlich ziemlich faszinierend weil
sie sehr sehr kurz ist also
TL warum
TL na ja eben das ist irgendwie eine
Regel die aus dem Internet kommt ja die
irgendwie in der Sprache in den
Trainingsdaten vorhanden ist unter
längeren Texten steht immer TLD to long
don't read und da drunter steht eine
Zusammenfassung mit eben genau allen
entsprechenden Inhalten und somit kann
ich halt mit ja einem einer Sprache
einer einer Regel die tatsächlich da
irgendwie vorhanden ist die aber
eigentlich gar nicht so explizit klar
ist dieses ganze Ding austrixen und das
ist halt eben genau das Sprache ist
irgendwie ungenau
Sprache ja ich meine wir Menschen haben
manchmal Schwierigkeiten weil wir Sätze
sagen die in anderen Situationen
komplett anders verstanden werden und
ich denke genau das ganze können wir
hier einfach auf dieses Feld von den
gerade von denen generativen Modellen
übertragen und damit haben wir sehr viel
Spielraum was wir mit diesen Dingern
anstellen
können damit würde ich diese prompt
injections auch jetzt einfach erstmal so
lassen wie gesagt weil ich sie selber
aus einer technischen Perspektive nicht
so interessant
finde genau gucken wir noch mal ganz
kurz an was ist eigentlich lernen lernen
ist in dem Fall von neuronalen Netzen
eine
Optimierung Optimierung ist ein
mathematisches Konzept es auch ein
schönes mathematisches Konzept ist meine
persönliche Meinung aber um jetzt das
Ganze im maschinellen lernen anwenden zu
können brauche ich eine Unmenge an Daten
ich brauche wirklich viele viele Daten
und diese Daten müssen gut gelabelt sein
gelabelt bedeutet im Endeffekt dass ich
eine Zuordnung machen kann zu meinen
Daten wenn wir jetzt an das Beispiel von
dem Hund und dem Muffin denken ich muss
alle Bilder wo ein Hund drauf ist da
muss auch tatsächlich irgendwie Hund
hinterstehen damit das Modell lernen
kann ah ja okay das ist das Muster von
einem Hund so so sieht ein Hund aus ähm
das ist tatsächlich Arbeit die Menschen
leisten ähm genau um dann wirklich in
das Training reinzug gehen habe ich
gewisse Freiheitsgrade kann ich ein paar
Sachen auswählen ich kann mir eine
Architektur auswählen Architektur
bedeutet im Endeffekt wie Neuronen
miteinander ähm
interagieren das ist aber wie gesagt ein
Freiheitsgrad kann ich mir aussuchen wie
ich das gerne haben möchte dann muss ich
eine lossfunktion wählen die
lossfunktion definiert im Prinzip was
ist gut was ist schlecht und die ist
abhängig davon
welches Problem ich lösen möchte und
dann wähle ich einen
Optimierungsalgorithmus aus davon gibt
es auch sehr sehr viele und sehr sehr
viele unterschiedliche und es lässt sich
gar nicht klar sagen dass dieser
Algorithmus in dieser Situation
tatsächlich der richtige ist also hier
muss ich einfach wirklich rumspielen und
gucken wo ich dann irgendwie Ende dann
mache ich fange ich an mit meiner
mathematischen Optimierung ja das ist
ein interativer Prozess durch die
Architektur die ich gewählt habe habe
ich die Parameter quasi in meinem Modell
festgelegt diese Parameter passe ich
dann immer weiter an und probiere damit
zu erreichen dass ich auf meinem
Trainingsdatensatz einen sehr sehr
kleinen Fehler bekomme sod dass meine
Trainingsdaten z.B richtig klassifiziert
werden und ich möchte aber auch noch was
weiteres erreichen und zwar eine
Generalisierung m und diese
Generalisierung bedeutet im Endeffekt
ich will ja nicht dass mein Modell nur
auf meinen Trainingsdaten gut
funktioniert sondern das soll ja in dem
Rest der Welt auch gut funktionieren
also da hängt so ein bisschen die
Hoffnung hinter eigentlich dass meine
Trainingsdaten die Welt schon gut genug
abbilden aber das ist eine Hoffnung also
da kann ich gar ich nicht genau zu sagen
ob das das richtige ist oder nicht genau
damit aber genug also gucken wir einfach
noch mal ganz kurz an was ist eigentlich
so ein neuronales Netz neuronales Netz
wir kennen ganz rechts oder von euch aus
gesehen links kennen wir diese
flussgrafen das heißt da sind
irgendwelche Sachen miteinander
verbunden die irgendwie miteinander
interagieren und das lässt sich aber
sehr schön als mathematische Formel
tatsächlich hinschreiben und dann habe
ich hier sowas wie den Input ja das sind
die XEL das ganze
blaue dann habe ich eben genau diese
Gewichte die ich habe indem ich meine
Architektur festlege das sind die Sachen
die ich
anpasse und ganz am Ende habe ich noch
diese roten Sachen das ist auch
irgendwie sowas was ich irgendwie was
ich in meinem
Optimierungsalgorithmus anpassen lässt
aber im Endeffekt ist es ich
multipliziere meinen Input mit Gewichten
und addiere das ganze auf das ist
sozusagen alles was in diesem
flussgrafen codiert steht das ganze
schmeiße ich dann in eine nichtlineare
Funktion und das mache ich ganz oft
hintereinander das ist im Prinzip alles
was was quasi dahinter steht hinter
einem neuronalen Netz genau d damit
glaube ich genug gesagt über neuronale
Netze und dann können wir jetzt endlich
mal zu den Angriffen kommen fangen wir
erstmal an okay wir sind ein Nutzer wir
können mit einem Modell interagieren was
können wir jetzt tun erstes Teil was wir
tun können ist wir können probieren das
Modell zu
stehen und zwar indem wir einfach die
Funktionalität nachbauen von dem
neuronalen Netz also haben z.B einen
bildklassifikator da schieben wir ein
Bild hoch und der gibt uns zurück okay
das ist ein Hund das ist eine
Katze und der wesentliche Punkt ist hier
ich muss nicht ich brauche nur die
Trainingsdaten ich brauche nur die Daten
die mir entsprechend die Regeln codieren
und mehr Informationen brauche ich nicht
weil die Architektur die ich wählen kann
unterschiedliche Architekturen liefern
mir ähnliche Ergebnisse oder Ergebnisse
die gut genug sind und ähm das ganze ja
dadurch dadurch habe ich einfach qui
kann nicht automatisiert diese diese
Daten mir erzeugen ich habe das ja als
ein kleines Beispiel mitgebracht ähm hab
mit zwei Klassen die wir entsprechend
irgendwie voneinander trennen wollen
unterscheiden wollen und
der Datensatz der der zweite Datensatz
hier der ist einfach m erstellt worden
von dem neuronalen Netz ich habe einfach
ein neuronales Netz erstellt und sage
okay liebes hier sind die Inputdaten
bitte klassifizier mir die und ihr seht
man sieht nicht wirklich einen großen
Unterschied und dann nehme ich mir
einfach irgendein anderes Modell her
eine irgendeine andere Architektur und
trainiere eben genau auf diesen
gestohlenen Daten und und das sehen wir
dann hier auf der ganz
links oder ganz
rechts das das diese Funktionalität sich
im Endeffekt nachbauen lässt und das
unabhängig ist von der Architektur und
genau das ist der erste Angriff den ich
irgendwie machen kann
m genau als nächstes werde ich dann
jetzt zu dem Brot forcing übergehen um
dieses brotforcing quasi zu zeigen nehme
ich bediene ich mich an einem anderen
Beispiel was ich also ja ein eine Sache
vergessen genau das Model stealing
könnte man jetzt sagen ja gut das klingt
nach einem sehr akademischen Angriff
aber tatsächlich passiert das in der
realen Welt und zwar ist das gerade
etwas was irgendwie jetzt im Dezember
passiert ist das nämlich der der Account
von
bidance gesperrt wurde von Open ai weil
die halt gesagt haben die nehmen halt
diese Daten
um ihre eigenen Modelle zu trainieren
also die benutzen quasi chatgpt um ihre
eigenen sprachmodelle zu trainieren und
so gesehen habe ich passiert an der
Stelle genau eben das also die Daten
werden geklaut werden in andere
Algorithmen reingepackt und dadurch habe
ich auch irgendwie was was ich selber
reproduziert genau jetzt jetzt aber
wirklich dann zum Brute forcing dafür
werde ich mich eines anderen Beispiels
bedienen und zwar nehmen wir hier ein
Beispiel für eine Authentifizierung wir
haben eine Webseite da müssen wir ein
secret hochladen im Prinzip sowas wie
ein Passwort und hier ist es ist halt
eben ein Bild und genau also ich muss
hier einfach irgendein Bild hochladen
und dann hoffentlich bekomme ich Zugriff
zu dem was ich irgendwie haben
will Authentifizierung mit neuronalen
Netzen ist eine ganz schlechte Idee
sollte man definitiv nicht tun werden
wir jetzt noch mal sehen aber ich betone
es ja an der Stelle noch mal gucken wir
erstmal wie das Ganze normal
funktionieren sollte also das neuronale
Netz was hier tatsächlich die
Klassifizierung vornimmt ist trainiert
auf auf handwritten digits also von den
Zahlen von 0 bis 9 die sind Hand
geschrieben werden dann in Bilder
gepackt also 28 KZ 28 und wenn ich halt
jetzt z.B eine Null hochlade dann kriege
ich keinen Zugriff und wenn ich eine 4
hochlade dann kriege ich halt
entsprechend Zugriff also das heißt wir
kennen jetzt schon das Secret ja das
Secret ist tatsächlich eine 4 und
eigentlich sollte das Ganze immer sollte
ich immer Zugriff bekommen auf die
entsprechenden Sachen wenn ich eine 4
hochlade aber genau weil ich jetzt
gesagt habe es ist eine
Authentifizierung können wir halt im
Prinzip den gleichen Angriff hier machen
wie bei jeder Authentifizierung wir
können halt einfach Blut forcen wir
können hier einfach irgendein Bild
hochladen und ich bin zu schnell
Entschuldigung genau ich wollte noch mal
an der Stelle zeigen wo ist denn das
neuronale Netz im Code also wie
funktioniert das Ganze ich lade ein Bild
hoch und dann habe ich erstmal irgendwie
so eine Bild Vorverarbeitung irgendwo an
einer Stelle ist vorher mein
vortrainiertes neuronales Netz wird
geladen und das macht halt hier dann an
der Stelle 2 entsprechend eine
Klassifizierung von dem Bild was
hochgeladen wurde das was da rauskommt
da kommt natürlich nicht raus das ist
eine vier sondern da kommt ein
zehnimensionaler Vektor raus und dann
wird geguckt an welcher Stelle ist denn
das Maximum und dann wird das halt
entsprechend zurückübersetzt als die
entsprechende Zahl und im letzten
Schritt habe ich halt einfach nur eine
Bedingung die halt guckt hey habe ich
eine vi oder ist es was
anderes so jetzt aber wirklich zum Brot
forcing ich kann einfach zufällige
Bilder erzeugen weil im Endeffekt wird
jedes Bild was in dieses neuronale Netz
reingepackt wird entsprechend in diese
zehn Dimensionen klassifiziert also das
neuronale Netz probiert einfach immer zu
erkennen ist auf meinem Bild dieses
Muster was ich tatsächlich in meinen
Trainingsdaten gehabt habe zu erkennen
oder nicht das hat aber nichts damit zu
tun dass ich als Mensch sage dass es
eine und das neuronale Netz erkennt auch
dass es eine vi sondern ich kann halt
einfach zufällige Bilder erzeugen und
irgendwann das dauert wahrscheinlich
relativ lange werde ich trotzdem ein
Bild finden was mir entsprechend Zugiff
gibt obwohl für mich als Mensch da eben
entsprechend keine vier drauf zu sehen
ist und das fand ich schon mal ziemlich
faszinierend weil dadurch habe ich auf
jeden Fall schon mal verstanden dass das
Verständnis von diesen Bildern irgendwie
tatsächlich nicht demententspricht was
meins ist ist und so gesehen vielleicht
auch dieses Lernen nichts mit dem zu tun
hat was wir als Menschen als lernen
empfinden genau wenn wir dann einen
Schritt weitergehen und sagen okay pass
auf wir haben jetzt erstmal nur als
Nutzer mit dieser ganzen Sache
interagiert und jetzt haben wir aber das
Modell gefunden könnte z.B sein dass
eben auf unserer
authentifizierungsseite machen wir ein
Rechtsklick gucken uns den Sourcecode an
da sind halt die backinationen und dann
steht da halt ein gitblink und dann ist
da genau eben dieses Modell dadurch habe
ich jetzt Zugriff auf das Modell ich
kann da reingucken kann gucken wie ist
das aufgebaut meistens sind in diesen
Informationen auch
m Information enthalten wie die
Optimierung stattgefunden hat welche
Parameter da gewählt worden
sind
und genau das was ich jetzt tatsächlich
machen kann ist ich kann mir einen
bildgenerator trainieren mit dem ganzen
Framework von dem neuronalen Netzen
indem ich halt sage pass auf hier ist
mein mein
eigentliches Netz was vortrainiert ist
das fixiere ich da passe ich überhaupt
gar nichts mehr drauf an schalte aber
ein Layer und er reicht wirklich ein
Layer
davor und den passe ich jetzt darauf an
dass dieser bildgenerator mir etwas
erzeugt was für das andere Netz
entsprechend so aussieht als wäre darauf
eben genau eine vier zu sehen und
dadurch muss ich z.B bei dem blot
forcing da muss ich unendlich viel
ausprobieren hier habe ich jetzt aber
dadurch dass ich lese zuguff habe kann
ich mir das letzte Layer angucken kann
sagen aha ich sehe hier wird ein
zehdimensionaler Vektor erzeugt das
heißt es gibt nur Zeh Klassen und dann
kann ich mir halt einfach sagen okay
jetzt generiere ich mir ein Bild für
Klasse 0 ein Bild für Klasse 1 ein Bild
für Klasse 2 ein Bild für Klasse 3 und
habe dadurch im Endeffekt eigentlich nur
noch zehn Bilder die ich hochladen muss
und Kriege dadurch kann im Endeffekt
dieses neuronal Netz eben genau durch
diesen Trick einfach austrixen und habe
sehr schnell ein Bild was das neuronale
Netz als entsprechender secret
interpretiert und damit nicht genug ich
kann nämlich einfach dieses Bild auch
einfach ein kleines bisschen verändern
also die Bilder sehen jetzt hier ein
bisschen hier auf der linken Seite sehen
Sie ein bisschen anders aus ich habe
nämlich einfach ein bisschen Rauschen
drauf gepackt und einfach geguckt an
welcher Stelle habe ich dann keinen
Zugriff mehr und es gibt sehr sehr sehr
viele Bilder die mir immer noch die
Möglichkeit also die immer noch von
neuronalen Netz eben als vier erkannt
werden und dann habe ich mich gefragt na
ja okay was passiert denn wenn ich ähm
die vier nehme und auf die vier einfach
mal Rauschen draufpacke kann ich das
Muster dadurch zerstören und es wird
nicht mehr als entsprechend vier
klassifiziert und eben genau das gleiche
ist auch möglich das heißt ich habe auf
der einen Seite sehr viele Bilder die
für mich als Mensch nicht aus vier und
damit nicht als das Secret aus wie das
Secret aussehen die mir aber trotzdem
irgendwie Zugriff verschaffen womit ich
das neuronale Netz austrixen kann und
auf der anderen Seite habe ich auch eben
genauso viele Vieren die für mich als
Mensch eben eine Vier sind aber für das
neuronale Netz halt eben nicht also
eigentlich genau das gleiche gelernt wie
vorher auch
das hat irgendwie nichts das Lernen hat
nichts mit dem Lernen oder das Verstehen
sagen wir so das Verstehen hat nichts
mit dem mit dem zu tun was ich irgendwie
als Mensch
ähm ja wie wie ich als Mensch diese
Bilder
interpretiere
genau dann gehen wir noch einen Schritt
weiter jetzt haben wir les jetzt haben
wir Schreibzugriff ja wir können jetzt
als neues Modell wir können dieses
Modell tatsächlich verändern und können
jetzt anfangen mit den Parametern
rumzuspielen und können neue Parameter
hinschreiben das was an dieser Stelle
erstmal am interessantesten ist das
letzte Layer trifft in die Entscheidung
also alles was was vorher passiert ist
ist schön und gut aber das letzte Layer
gibt mir halt entsprechend einen
zehndimensionalen Vektor aus und ich wie
vorhin im Code gesehen gucke einfach
welches ist die größte Zahl tatsächlich
in diesem Vektor und das ist halt eben
entsprechend die Zahl die die dann das
neuronale Netz sieht die Zahlen sind
alle relativ klein und alle relativ
dicht beieinander also auch irgendwie
nach dem Lernprozess
irgendwie und jetzt dadurch dass ich
Schreibzugriff habe brauche ich auch
kein ein neues Training zu machen um
einfach mein neuronales Netz so zu
manipulieren dass es das macht was ich
will ich habe hier erstmal auf der
linken Seite sehe ich erstmal wie mein
neuronales Netz aufgebaut ist das heißt
da habe ich erstmal alle Informationen
und dann nehme ich mir wirklich einfach
nur den allerletzten Teil das was hier
unter dence 2 der biias ist das ist
entsprechend der Teil den ich mir jetzt
hernehme den habe ich hier auf der auf
der anderen Seite dargestellt und dann
schreibe ich einfach an die
Stelle so wie ich möchte dass alles
klassifiziert wird einfach eine sehr
sehr hohe Zahl eine Zahl die ich in
meinem neuronalen Netz verändere und
plötzlich ist alles einfach eine vier
und damit meine ich wirklich alles ja es
ist einfach alles eine vier egal was ich
da reingebe ich kann da Rauschen
reingeben was auch immer alles alles
gibt mir einfach immer
Zugriff genau fand ich auch irgendwie
sehr beeindruckend weil es tatsächlich
ich ich muss nur eine einzige Zeil
verändern und plötzlich ist diese
komplette funktionalit von diesem Ding
einfach
kaputt genau dann kommen wir noch mal zu
dem
M Beispiel jetzt ich habe zwar
Schreibzugriff aber vielleicht nicht auf
das neuronale Netz sondern ich habe
tatsächlich nur Schreibzugriff auf die
Daten das was ich da machen kann ist
dass ich die Daten so verändere also die
Daten codieren ja im Endeffekt die
Regeln das sind die Regeln die gelernt
werden die Muster die erkannt auf
anderen Bildern wieder erkannt werden s
anderen Datenpunkten wieder erkannt
werden sollen
ähm wenn ich diese diese diese Beziehung
zwischen Inputdaten und Label
tatsächlich stören kann also indem ich
einfach sage okay ich schrei hier
einfach ich drehe einfach mal die Label
um na oder ich erzeuge mir z.B
Nutzerkonten und gebe einfach immer
wieder unterschiedliche Geschlechter an
die aber tatsächlich den Rest
sozusagen ähnlich sind dann kann ich
damit tatsächlich die Beziehung zwischen
Inputdaten und labelen so zerstören dass
das Netz am Ende verwirrt ist weil es
halt nicht mehr lernen kann
weil es eben diese Regeln stehen nicht
mehr so klar da und das habe ich hier
noch mal an dem Beispielen von der
Klassifikation gezeigt ich habe hier
den auf dem dem zweiten Plot sieht man
dass die die roten und die blauen Punkte
tatsächlich sich jetzt sehr stark
überlappen also ich habe einfach die
Label von diesen Datenpunkten verändert
und dann habe ich auf der anderen Seite
einfach noch mal darauf ein neuronales
Netz trainiert und das sieht halt sehr
sehr anders aus die Kernfunktionalität
ist zwar irgendwie so ein Stück weit
erhalten aber ähm das hat mit dem was
ich da vorher trainiert habe dass das
ganz klare Entscheidungen treffen kann
irgendwie nichts mehr zu
tun und wenn ich halt genau gerade zugff
habe auch auf entsprechend die
Trainingsdaten dann kann ich in diese
Trainingsdaten auch ein Bild reinpacken
Z wenn wir jetzt wieder bei dem Beispiel
bildklassifikation Authentifizierung
sind dann kann ich da auch entsprechend
etwas reinpacken was ich mit dem meinem
Label was ich da z.B haben will ähm
versehen kann ja also das heißt ich
nehme weiß ich nicht irgendein Dreieck
oder sowas und sage das ist eine vier
das packe ich jetzt in die äh
Trainingsdaten rein
äh und damit weiß dann der Anwender gar
nicht mehr dass tatsächlich dieses Bild
auch existiert was ein entsprechend was
entsprechend klassifiziert wird
ähm und so gesehen bin ich da dann also
habe ich sind die Trainingsdaten auch
etwas was sehr sehr schützenswert ist
ähm und eben wie gesagt in den Daten
stecken die Regeln die gelernt werden
sollen das heißt wenn ich diese
manipulieren kann dann habe ich kann ich
damit auch im Endeffekt das neuronale
Netz kaputt
machen genau damit habe ich alle alle
Attacken die ich vorstellen wollte auch
erstmal
vorgestellt kommen wir einmal zu den
Verteidigungen also was kann ich denn
jetzt irgendwie tun um diese Angriffe
zu ja zu verhindern also für Model
stealing gut kann ich irgendwie sowas
machen wie ein rate limiting wissen wir
aber auch alle dass das tatsächlich
nicht der weisheitsätze Schluss ist und
irgendwie verhindert werden kann für so
ein Brot forcing kann ich halt auch
entsprechend ein könnte ich auch einen
rate limiting hernehmen um das zu
verhindern aber wie gesagt
Authentifizierung ist sowieso eine sehr
sehr schlechte Idee also sollte ich
damit nicht machen und ich denke man
könnte eher das blutforcing Nutzen auf
der auf der Anwenderseite oder auf der
Seite des Trainers dass der einfach ein
besseres Verständnis dafür bekommt was
macht denn eigentlich mein neuronales
Netz also indem ich einfach mehr out of
sample Daten generiere weil diese diese
Bilder die wir gesehen haben diese
komischen Pixelhaufen die sind ja nicht
in den Trainingsdaten vorhanden das
heißt ich kann mir die einfach mal
hernehmen und mal gucken was passiert
denn dann und versuchen diese Grenzen
was in welche Klasse klassifiziert wird
irgendwie ein bisschen besser zu
verstehen für diese adversarial attacks
geht es halt im Prinzip darum ich muss
mein neuronales Netz schützen das heißt
ich muss verstehen okay das ist etwas
sensitives ich muss das vielleicht
verschlüsselt aufbewahren und ich sollte
das nicht irgendwie ich sollte darauf
aufpassen und ich sollte es einfach
nicht verlieren
m und genau das ganze gilt natürlich
auch für die Last Layer attacks ich
möchte nicht dass jemand mein neur das
net verändert und und es entsprechend da
irgendwie was dran rumschrauben kann das
heißt die ich muss das das das ist ein
sensitives Datum ich muss das
entsprechend schützen ich muss darauf
aufpassen und ich kann z.B auch diese
advisarial attacks dafür benutzen um
Informationen über die tatsächlichen
Trainingsdaten zu bekommen das heißt
wenn ich jetzt
mein mein bildgenerator weiter verfeiner
werde ich vielleicht irgendwann an den
Punkt kommen dass tatsächlich
Informationen die in den Trainingsdaten
vorhanden sind sichtbar werden also hier
reicht es das was ich hier gezeigt habe
war ich habe das ja sehr rudimentär
trainiert ja das dauert insgesamt 3
Minuten und dann habe ich irgendwie so
ein Bild was mir tatsächlich Zugriff
gibt
mm und das kann ich natürlich aber auch
verweiner verfeinern also ich kann da
probieren mehr Informationen tatsächlich
daraus zu
extrahieren genau für das Data poisoning
sind wir einfach an dem Punkt wir müssen
die Trainingsdaten sind halt auch
entsprechend sensitiv wenn ich die
verliere dann habe ich im Prinzip meine
Regeln verloren die ich irgendwie lernen
will und für das datap husening würde
ich halt auch tatsächlich sehen ich sehe
das so ein bisschen als so eine Supply
Chain wir haben irgendwie drumherum halt
auch irgendwie relativ viel Software die
geschrieben wird für diese ganzen
neuronale Netzen um die zu entsprechend
zu trainieren
und die diese Software hat natürlich
auch altbekannte Schwachstellen das
heißt da muss ich irgendwie gucken dass
ich diese Software so nur den Leuten zur
Verfügung stelle die Sie tatsächlich
nutzen wollen und irgendwie darauf
achten wenn diese ganzen Sachen
irgendwie eine Lücke haben und
dass ich dann entsprechend den ganzen
Kram auch relativ schnell patchen ähm
also das ist quasi das was wir eh alle
schon kennen und hoffen auch hoffentlich
auch alle so umsetzen und genau damit
bin ich dann auch am Ende von meinem
Vortrag danke für eure Aufmerksamkeit
und beantworte gerne
[Applaus]
Fragen ja für die Fragen bitte an den an
die Mikrofone sich einfach aufreihen
erste Frage aus dem Internet gibt es da
was wir haben aktuell keine Fragen aus
dem Internet dafür ein ganz großes
Dankeschön für das tollen für diesen
tollen
freortrag recht herzlichen
Dank gut be Mikrofon num 1 bitte
ja ich habe keine Ahnung von neuen
Netzwerken aber mit diesen
Schwellwerten kann man da an threshold
einführen dass man unter einen gewissen
absoluten Wert dann sagt
das Ergebnis ist unklar und man muss es
noch einmal
probieren ja klar könnte man irgendwie
probieren aber dann hast du halt
irgendwie einen thresold mit dem du auch
wieder rumspielen musst also das das
neuronale Netz im Endeffekt wenn wir
jetzt die Klassifikation nehmen in diese
roten und blauen Punkte das neuronale
Netz wird ja etwas ausgeben
was irgendwie zwischen null und ein ist
und dann sagst du schon an der Stelle
alles was unter 0,5 ist sage ich gehört
zur Klasse 0 alles was da drüber ist z
Klasse 1 das heißt ich habe eigentlich
diesen zwe Schulz schon mit dem kann ich
natürlich irgendwie rumspielen aber
also oder ich glaube wenn ich die Frage
richtig verstehe geht es darauf du
möchtest eine Wahrscheinlichkeit haben
wie sicher das neuronale Netz istau klar
also diese Sachen gibt es aber dann muss
ich natürlich mich irgendwie damit
beschäftigen wie definiere ich diese
Wahrscheinlichkeit also habe ich im
Prinzip auch wieder eine Vorhersage von
einem anderen neuronalen Netz oder von
dem gleichen was irgendwie sagt okay ich
bin mir so und so sicher aber wie wie
sehr kann ich dem denn Vertrauen also da
sind wir irgendwer irgendwie also und
ich glaube der andere Punkt ist gerade
bei diesen Pixelhaufen die dann als vier
klassifiziert werden da wir kannst dir
schon auch passieren dass es mit einer
sehr hohen Sicherheit sagt das ist auf
jeden Fall eine vier weil das Muster was
ich gelernt habe wie eine vier aussieht
das erkenne ich auch hier in diesem Bild
also ja gerne gut Mikrofon numo 3 bitte
bei deinem Beispiel mit dem Adversal
Networks wo die Bilder generieren die
irgendwie gar nichts mit dem
menschlichen Verständnis z.B von der 4
zu tun haben was würdest du sagen bei
dem Argument wenn jemand sagt das liegt
daran dass das Netz so simpel ist und
wenn man ein besseres Netz hat würde es
eher die Muster lernen die ein Mensch
auch aus einer vier sieht und dann
würden solche Attacken nicht mehr gehen
ich glaube da haben wir ein Katz und
Mausspiel also ich glaube das wird immer
gehen und
weil einfach ich meine wie gesagt jedes
Bild wird ja entsprechend in eine Klasse
klassifiziert egal was ich da eingebe
und wenn es ein Pixelhaufen ist dann
wird irgendwo trotzdem immer noch
erkannt werden
dass das ganze eine Zahl ist und ich
müsste wahrscheinlich eher das Problem
umformulieren und sagen pass auf H hast
ein Pixelhaufen und der wird als
Pixelhaufen klassifiziert und dann habe
ich halt eine Klasse habe ich eigentlich
elf Klassen die ich habe und muss halt
irgendwie gucken dass ich
ja wirklich vielleicht erkenne dass
vielleicht eine Vorverarbeitung machen
und und sagen ja auf dem Bild ist
wirklich eine Zahl zu sehen glaube nicht
dass ich das da einfach nur durch eine
Veränderung von der Architektur
verändert kann ich halt genauso gut auch
sagen mache ich halt mein mein adversial
Network einfach komplizierter das kann
dann halt entsprechend eben diese diese
Muster auch wieder
lernen gut danke Mikrofon num 2 bitte
erstmal vielen Dank für den tollen
Vortrag ähm ich habe mal eine Frage und
zwar zu dem Thema äh Trainingsdaten
poisoning ähm angenommen ich möchte
jetzt nicht dass ich zu effektiven
Trainingsdaten von z.B im großen
Internetkonzern werden würde dann ist ja
das sozusagen der Punkt auf den ich
zugriff habe indem ich halt sozusagen
das was ich reingebe in irgendeiner Form
manipuliere gibt es irgendeine
irgendeine fstregel irgendeine
Vorstellung davon wie hoch der Anteil an
schlechten Trainingsdaten sein müsste
damit man wirklich den impact machen
kann und wenn man das denn tun wollen
würde ist es denn dann
schlauer Trainingsdaten zu machen die
subtil falsch sind also die so ein
bisschen daneben liegen oder
Trainingsdaten zu nehmen die richtig
total off sind und ganz Bullshit
sind also ich habe gerade noch mal habe
ich das hier drauf geschrieben ich habe
gerade noch mal zwei paper gefunden wo
tatsächlich auch dieser threshold
versucht wird zu beantworten der ist
erschreckend gering also wir reden
irgendwas von unter einem Prozent also
und damit kann ich halt schon irgendwie
was erreichen kommt natürlich auch immer
drauf an was will ich erreichen will ich
so eher so in Richtung backdor
oder will ich halt irgendwie mehr so
keine Ahnung Struktur kaputt machen ähm
dann ist halt auch immer so ein bisschen
die Frage was ist die Anwendung also ne
wenn du jetzt z.B sowas nimmst wie ein
IR Scanner und du schmuggelst dein
Katzenbild rein dann ist das relativ
schnell zu erkennen wenn ich aber sage
okay pass auf ich Schmuggel hier einfach
eine Orange eine andersfarben ires rein
die dann irgendwie entsprechend
klassifiziert wird dadurch bin ich
natürlich ist das ganze wesentlich
unauffälliger ich glaube ein Punkt der
dabei noch ähm tatsächlich eine Rolle
spielt
ist heute die um diese neuronalen Netze
zu trainieren brauch es Unmengen an
Daten also als Beispiel nehmen mal Chat
GPC da haben wir irgendwie sowas wie 5
TB an Textdaten das kann kein Mensch
mehr angucken und so gesehen ist es da
ein leichtes natürlich irgendwie was
reinzuschmuggeln was ich würde sagen
wenn es komplett off ist es es
vielleicht einfacher sowas über
statistische Methoden zu erkennen ähm
aber wenn das halt irgendwo n ist und
dir entsprechend da irgendwie Zugriff
gewährt dann ist das wesentlich
schwieriger das zu erkennen also meine
Empfehlung wäre lieber nah dran sein und
gucken wann nicht zu viel dann kannst du
dich glaube ich ganz gut in dem großen
Heuhaufen verstecken danke schön gerne
okay nächste Frage Mikrofon num 3 bitte
ja hallo also auch noch mal vielen Dank
für den Vortrag ich würde gerne so ein
bisschen noch mal die meinen Vorredner
aufgreifen das Problem bei dem ganzen
ist ja wir brauchen trainingsd und wir
müssen dann die gefaken Trainingsdaten
irgendwie injeizeren also wir brauchen
irgendwie Zugriff das kann ich
einerseits machen indem ich dataasitz
die im Internet verfügbar sind Fake die
manipuliere hochlade od ähnliches wenn
ich jetzt mal in die Richtung von z.B
wie du eben auch sagtest chgpt denke
dann kann ich da ja auch wieder das
prompt Engineering anwenden also
explizit sagen ich versuche jetzt mit
diesem Model zu diskutieren und wenn ich
dem irgendwie 300 mal sage hier zeig mir
ein Apfel er zeigt mir Apfel sagt nee
Bruder das war eine Birne dass er dann
irgendwann versteht okay vielleicht muss
ich hier dran ändern wie wahrscheinlich
hältst du es dass wir über diesen
Angriffsvektor solche gpts auch mal
angreifen
können also wie gesagt ich glaube
dadurch dass wir mit Sprache
interagieren und Sprache immer ungenau
ist glaube ich da ist immer irgendwas zu
holen und ich glaube das ist halt immer
auch so ein Katz und Mausspiel ne also
dann wird halt irgendwie gesagt okay
pass auf guck mal gerade so mit diesen
adversorial attacks da gibt es weiß ich
nicht da gibt es hunderte von paper die
sagen pass auf hier wir haben dieses
advisorial Network sagen die ja guck mal
wir haben hier diese Methode wie wir das
ganze verhindern können kommt wieder ja
guck mal jetzt haben wir aber das und es
geht immer hin und her und so gesehen
ich glaube gerade bei diesen
sprachmodellen da ist tatsächlich
relativ viel zu holen weil die Regeln ja
auch in Sprache wieder geschrieben sind
und so gesehen kann man da halt auch
ganz gut einfach mit rumspielen und
gucken wo man dann im Endeffekt
landet also ich halte das für sehr sehr
wahrscheinlich dass sich dieses Problem
nie wirklich lösen lässt die Überlegung
hat da halt resultiert dass ich da
wirklich in Anführungszeichen Zugriff
auf Trainingsdaten habe die ich
manipulieren kann gegenüber welchen wo
ich sage na vielleicht sind hier
Trainingsdaten irgendwo intern
hergestellt worden Bilder gelabelt
worden wo ich eben kein Zugriff drauf
habe wenn ich nicht Zugriff zum
Unternehmensnetzwerk habe oder
so ja gut wenn du gar keinen Zugriff
drauf hast dann dann bleibt halt im
Prinzip nur das Raten ne also dann dann
kannst du es halt probieren irgendwie
über Brute Force zu
machen ja wenn es halt close Source ist
dann ist es tatsächlich schwierig sowas
anzugreifen also das auf jeden Fall
aber ich meine die die ganzen Datensätze
sind ja alle öffentlich zur Verfügung
und also hier z.B in diesem Paper
hacking neural networks short
introduction da wird auch tatsächlich
das Szenario kreiert dass du halt sagst
okay pass auf ich trainiere jetzt
einfach was kreiere einen Datensatz der
sieht halt ungefähr so aus wie oder ich
nenne ihn einfach wie einen sehr sehr
bekannten und Pack da halt entsprechend
mein backdor meine Backdoor rein dann
probiere ich mein papayer ein bisschen
hoch zu pushen und dann wird das von der
Community adaptiert ja und dann ist ist
da sozusagen die bkor in dem
Trainingsdatensatz drin also mit mit
genug Kreativität kriege ich
wahrscheinlich meine bkor irgendwie in
die
Trainingsdaten und ich glaube kein kein
Unternehmen diese Größe an Daten
setzen also es es sehr sehr schwierig
diese größer an Datensätzen selber zu
erzeugen super danke gerne okay Mikrofon
num 1
bitte erstmal danke für den Vortrag und
ich habe eine kurze Frage die so ein
bisschen in die Richtung zur Vermeidung
von den brotfce Attacken geht zwar ist
ja das Problem dass jeder Input zu
irgendeiner Klasse im Output führt ja
und dann die Frage macht es Sinn so eine
catch all Klasse zu definieren wenn ich
glaube das war wurde auch schon ein
bisschen angesprochen und zwar wenn es
weder 0 bis
ist das dann mit einer hohen
Wahrscheinlichkeit die catch all Klasse
ist
wenn ja gibt's Ansätze dazu und dann
gibt's Ansätze die nicht erfordern dass
Unmengen an Trainingsdaten mit catch all
Buildern die halt fern ab von den
anderen sind reingelegt werden müssen in
den
Datensatz ja also ich glaube der der
beste Ansatz wäre tatsächlich Zweig
geteilt zum einen dass Du tatsächlich
über klassisches also wenn du jetzt in
dem Bildbeispiel bleibst dass du über
klassisches Image pressing probierst
irgendwie eine object detection drauf zu
machen und dadurch probierst schon mal
einen Teil von diesen Daten von diesem
Pixelhaufen auszusortieren und ähm und
dann im zweiten Fall tatsächlich ähm zu
gucken dass du eben diese catcho Klasse
definierst und da kannst du dann halt
auch sowas machen also da brauchst du ja
auch nicht Unmengen sondern dadurch hast
du also wenn Du Unmengen an catch all
hast dann hast du einen unbalancierten
Datensatz dann hast du wieder ein
schwieriges dann dann wird das Lernen
wieder schwieriger das heißt du müsstest
sagen wir mal catch all genauso groß
machen wie halt die anderen neuen die
anderen zehn Klassen halt auch und
dadurch hast du dann einen balancierten
Datensatz mit den prechend Klassen und
glaube mit diesem Ansatz könnte man
könnte ich mir vorstellen dass man damit
sehr weit kommen könnte ja okay danke
gerne gut eine letzte Frage genau
Mikrofon numo 2 ja kurze
Verständnisfrage zu der ein methoderecht
am Anfang D das so relativ kurz erklärt
ja dann Folie 9 war das glaube ich dann
erzeuge ich gestohlene Daten und dann
nehme ich ein ähnliches Modell kannst du
vielleicht noch paar Sätze dazu zu sagen
wie du an diese gestohlenen Daten kommst
ich kann ja mit dem Modell also meine
Annahme ist ich kann nur mit dem Modell
interagieren als Nutzer das heißt ich
gebe was rein und bekomme ein Label
zurück wenn wir jetzt nehme wirklich
tgpt ja ich packe mein meine frage halt
rein und ich kriege die Antwort zurück
und dadurch habe ich im Prinzip ein
Frage Anwort paar und diese Daten kann
ich halt entsprechend nehmen um dann
darauf ein anderes Modell zu trainieren
für jetzt tatsächlich eine Anwendung von
dem Chatbot Ents viele aber ich kann
natürlich meinen vielleicht habe ich
schon Datensatz irgendwie sowas keine
Ahnung ich habe irgendwie Wikipedia
schon irgendwie runtergebrochen und
sowas und jetzt möchte ich meinen
Datensatz anreichern mit entsprechend
Frage antworten Modellen oder Frage
Anworten Paaren und dafür kann ich halt
entsprechend dann dieses neuronale Netz
nutzen weil ich als Nutzer mit dem
interagieren kann und mir da auchüber
Trainingsdaten erzeugen das das das war
meine Überlegung die ich dahinter hatte
also ich habe tatsächlich Zugriff auf
ein Modell was diese funktional hat und
die kann ich nutzen um entsprechend mir
diese Daten aus dem Modell
herauszuziehen ohne dass ich genau weiß
was in dieser Blackbox neuronales Netz
tatsächlich
passiert gut danke ich sehe es hier es
gibt noch mehrere Fragen ich bin mir
sicher jate ist draußen dann für euch
auch noch zur Verfügung bitte wendet
euch an ihn recht herzlichen Dank und
jetzt noch mal ein R großen danke
schön
[Musik]