Credito:CC0 Dominio Pubblico
Una delle cose più belle dell'istruzione superiore:acquisire consapevolezza degli stili caratteristici degli autori, pittori, musicisti ancor prima che ci venga detto il loro nome. Bene, gli stili distintivi non sono solo confinati alle arti.
Due ricercatori possono mostrare al mondo il loro lavoro sulle impronte stilistiche e come queste possono essere utilizzate per identificare potenzialmente i programmatori da codice e binari.
"Il machine learning può scoprire l'identità dei programmatori, " era il titolo di Fossbytes . L'articolo parlava di Rachel Greenstadt e Aylin Caliskan, che hanno presentato il loro lavoro al DefCon. Greenstadt è professore associato, Università di Drexel; Caliskan è un assistente professore di informatica, George Washington University.
"Impronte stilistiche"? Significato? Louise Matsakis in Cablato guardò qualcosa chiamato stilometria, l'analisi statistica dello stile linguistico. Ha detto che "la ricerca più recente mostra che la stilometria può essere applicata anche a campioni di linguaggio artificiale, come codice. Sviluppatori di software, si scopre, lasciare anche un'impronta digitale".
In quest 'area, i programmatori anonimi possono essere identificati. Fossbytes ha riassunto lo sforzo di ricerca:hanno testato i codici inviati dai programmatori e il sistema è stato in grado di identificare correttamente l'83 percento delle volte in cui l'algoritmo è stato eseguito.
Hanno esplorato la "deanonimizzazione del programmatore" con l'apprendimento automatico. Sono arrivati alla conferenza pronti a mostrare come gli alberi di sintassi astratta abbiano "impronte stilistiche, " e gli investigatori possono utilizzare queste impronte digitali potenzialmente per identificare i programmatori, da codice e binari. La domanda sorge spontanea:questi algoritmi vengono dal paradiso o dall'inferno? Due facce della medaglia.
Il fattore positivo, ovviamente, sarebbe nell'identificare quegli autori che piantano malware. Fattore negativo:i programmatori a cui piace fornire codice in modo anonimo possono essere scoraggiati da questo, come notato in Fossbytes . "Ci sono momenti in cui i programmatori vorrebbero rimanere sconosciuti per motivi legittimi e farsi identificare non è sempre una buona cosa."
Matsakis ha anche osservato le implicazioni sulla privacy, "soprattutto per le migliaia di sviluppatori che contribuiscono con codice open source al mondo".
Cablato descritto la loro esplorazione come un esperimento binario, dove Caliskan e altri ricercatori hanno utilizzato campioni di codice dalla competizione annuale Code Jam di Google. L'algoritmo di apprendimento automatico ha identificato correttamente un gruppo di 100 programmatori individuali il 96 percento delle volte, utilizzando otto esempi di codice da ciascuno.
Per quanto interessante, anche quando la dimensione del campione è stata ampliata a 600 programmatori, "l'algoritmo ha comunque effettuato un'identificazione accurata l'83 percento delle volte".
Cory Doctorow in Boing Boing , nel frattempo, menzionato ulteriori approfondimenti sugli stili di programmazione. Doctorow ha riferito che, in realtà, hanno scoperto che gli sviluppatori esperti sembravano più facili da identificare rispetto agli sviluppatori alle prime armi. Più sei bravo, più il tuo lavoro diventa apparentemente unico.
Come mai? Doctorow ha commentato che potrebbe essere "in parte perché i programmatori principianti spesso copiano e incollano soluzioni di codice da siti Web come Stack Overflow".
© 2018 Tech Xplore