1: 名無しさん@趣味人 2018/08/13(月) 21:03:35.41 ID:O3/1suhR0● BE:601381941-PLT(13121)
機械学習を用いると匿名のソースコードから個人を識別可能であることが判明

プログラミング言語を用いて書かれた「ソースコード」はあらかじめ定められた規則に従って記述する必要があり、
匿名で公開されたコードから個人を識別することは困難に思えるかもしれません。ところが、実際にはコードにも
個人の特徴が色濃く表れており、機械学習を用いてコードのサンプルから個人を識別できることが判明しました。

DEF CONR 26 Hacking Conference Speakers
https://www.defcon.org/html/defcon-26/dc-26-speakers.html#Greenstadt

Machine Learning Can Identify the Authors of Anonymous Code | WIRED
https://www.wired.com/story/machine-learning-identify-anonymous-code/

ドレクセル大学のコンピューターサイエンス准教授であるレイチェル・グリーンシュタット氏と、ジョージ・ワシントン大学で
コンピューターサイエンスの准教授を務めるアイリン・カルスキン氏は、プログラミング言語で書かれたコードは
完全に匿名のものではなく、機械学習を用いて個人を識別可能だという研究結果を発表しました。

2人は機械学習のアルゴリズムにコードサンプルを分析させ、用いた言葉の選択やコードの長さ、コードのまとめ方と
いったあらゆる特徴を抽出しました。次に2人は抽出された特徴の中から、開発者個人を識別するのに役立つ特徴のみを
選別し、コードから個人を特定する時に注目するべきリストを絞り込んだとのこと。コードの書き手は通常の文章と違い、
一定の規則に従ってコードを書き進めなければならないという制約がありますが、それでもコードから個人を識別可能な
特徴を抽出できるようです。

また、コードサンプルは非常に長いものである必要があるわけでもなく、グリーンシュタット氏らが発表した2017年の
論文(PDF)によればGitHubに公開されたほんの短いコードの断片であっても、特定の開発者とそれ以外の開発者を
識別できるとのこと。加えて、すでに0と1で表される機械語にコンパイルされたコードからでも、個人の識別が可能だと
カルスキン氏は述べました。

カルスキン氏らの研究チームは、Googleが開催するプログラミングコンテストのGoogle Code Jamで書かれたコードをもとに、
100人の開発者が書いたコードをアルゴリズムに識別させました。すると、実に96%の精度で個人を識別することが
できたとのこと。また、識別する開発者数を600人にまで拡大した場合でも、83%の精度で個人を識別できたとしています。

グリーンシュタット氏とカルスキン氏は、プログラミングを勉強する学生が他のコードを盗用したのかどうかを判断する場合や、
マルウェアの開発者を特定する時などにコードから個人を識別するAIが役立つとしています。また、関係のない第三者を
装って行われたサイバー犯罪に対しても、背後にいる人物の存在をあぶり出すことができるとのこと。

https://gigazine.net/news/20180813-machine-learning-identify-code-authors/




2: 名無しさん@趣味人 2018/08/13(月) 21:07:50.62 ID:xeH9cono0
そーすは?
ソースは?
ってうるせーんだよ気違いが
ソースなんざ、中濃にきまってんだろ。

4: 名無しさん@趣味人 2018/08/13(月) 21:09:46.51 ID:HVUSCcqX0
>>2
そ~っすか

6: 名無しさん@趣味人 2018/08/13(月) 21:11:08.80 ID:STw/BROH0
>>2
ソイソースか、ポン酢の2択だろ
とんかつ食うときでも中濃とかねーよ

5: 名無しさん@趣味人 2018/08/13(月) 21:09:52.44 ID:YKDn7kLg0
いやでもマジ、ソースは人の心を写すよ
どんなに上辺繕ってもダメさ

7: 名無しさん@趣味人 2018/08/13(月) 21:11:17.31 ID:9eiNHEBx0
知ってた

8: 名無しさん@趣味人 2018/08/13(月) 21:13:05.23 ID:YKDn7kLg0
上手い人のソースは本当にきれいだからな、思考に迷いが無いというか

9: 名無しさん@趣味人 2018/08/13(月) 21:14:25.97 ID:HVUSCcqX0
>>8
でも天才の書いたソースコードって理解できないよな。
なんでたったこれだけで動くねん。

14: 名無しさん@趣味人 2018/08/13(月) 21:17:37.68 ID:YKDn7kLg0
>>9
設計だろね、仕様書を噛み砕いてきれいに再構築するんよ
行き当たりばったで書く俺の生成物と違うのを知って、勝てないと思ったわ

10: 名無しさん@趣味人 2018/08/13(月) 21:15:58.62 ID:BuQG8QSG0
自分が書いて、コメント入れてるのに、見返すとわからんわ

12: 名無しさん@趣味人 2018/08/13(月) 21:17:08.57 ID:HVUSCcqX0
コメントに言い訳書いてあるとほっこりする

16: 名無しさん@趣味人 2018/08/13(月) 21:18:45.73 ID:HmCfEuND0
>>12
辞めた前任者の呪詛と性癖、旧作エロゲのネタが書いてあったときはワロタで。

15: 名無しさん@趣味人 2018/08/13(月) 21:18:44.60 ID:Xti2JWJt0
//なぜか動いた

20: 名無しさん@趣味人 2018/08/13(月) 21:20:34.58 ID:UUTe+dax0
//ジロジロ見てんじゃねえよ

23: 名無しさん@趣味人 2018/08/13(月) 21:24:13.84 ID:HmCfEuND0
>>20
/*山本まんこみせい(`・д・´)*/

山本って昔居た可愛かった女事務

これにはワロタ

21: 名無しさん@趣味人 2018/08/13(月) 21:22:00.37 ID:J/KOW9aP0
お前らが自作自演したカキコミだって
クセがあってバレるよな

26: 名無しさん@趣味人 2018/08/13(月) 21:26:30.23 ID:HVUSCcqX0
>>21
些細なクセとかで「お前誰々だろう?」ってバレるよな

25: 名無しさん@趣味人 2018/08/13(月) 21:25:58.61 ID:T/eBEjYT0
ソースコードは知らんが文章である程度誰が書いたか
判別できるのと同じじゃあないのか。

31: 名無しさん@趣味人 2018/08/13(月) 21:35:56.71 ID:Znl55XbN0
君、変な所で改行挟む癖あるよね
これすっげー見辛いからやめてくれる?

33: 名無しさん@趣味人 2018/08/13(月) 21:36:57.25 ID:KmfCTiwp0
言語だしそうなるわな

34: 名無しさん@趣味人 2018/08/13(月) 21:38:41.26 ID:VxBghsmE0
一部パクってるとどうなるんや

36: 名無しさん@趣味人 2018/08/13(月) 21:43:29.00 ID:YKDn7kLg0
>>34
拾いからパクったソースの擦り合わせの箇所で無茶してる
なんてのが最近のお若いPGさんでは普通になってるよ
吸収できてないのがバレバレ

37: 名無しさん@趣味人 2018/08/13(月) 21:43:38.92 ID:Rh1rbNTJ0
品質が揃わないのはそういう事だろうな。

38: 名無しさん@趣味人 2018/08/13(月) 21:45:13.40 ID:UzJSjpK90
/* ごめんちょっと自信ないからあとでチェックよろしく */

43: 名無しさん@趣味人 2018/08/13(月) 21:51:15.15 ID:7wFJWk780
if (hoge) {
}
これ嫌いで

if (hoge)
{
}
これ

44: 名無しさん@趣味人 2018/08/13(月) 21:54:00.14 ID:YKDn7kLg0
>>43
その程度は現場によりなんでなんとも
スタイルチェックは大事

45: 名無しさん@趣味人 2018/08/13(月) 21:56:01.02 ID:UzJSjpK90
>>44
普通はあとからAstyleとか通して整形するよな

49: 名無しさん@趣味人 2018/08/13(月) 22:07:59.29 ID:STw/BROH0
>>43
そこはどうでもいいが、

} else if {

は許せん
デバッグで一時的にコメントアウトするときめんどくせーんだよ

50: 名無しさん@趣味人 2018/08/13(月) 22:10:03.65 ID:7+ocByWH0
そりゃそうだろ
不思議でも何でもない

引用元: ・ソースコードは人を表す!? 機械学習を使い、96%の精度でコードから個人を識別することが可能に