InternetWalkers!【IT/機械学習】精度95%以上! ソースコードは指紋、作者はほぼ特定できる©2ch.net


http://anago.2ch.net/test/read.cgi/scienceplus/1423666870/より引用

1: Mogtan ★@ ©2ch.net 2015/02/12(木) 00:01:10.54 ID:???

掲載日:2015年2月11日
http://www.gizmodo.jp/2015/02/your-coding-style-is-like-a-digital-fingerprint.html

ほぼドンピシャでバレバレです。

スペースやタブ、大文字やアンダーバーを組み合わせた命名規則、コメント…コードの書き方には、人によってスタイルがありますよね。それはもう指紋のようなもので、それさえ見えれば、誰がコードを書いたかほとんどわかってしまう…そんな驚きの研究結果が発表されました。

米ドレクセル大学、メリーランド大学、プリンストン大学、独ゲッティンゲン大学の共同チームの研究によると、自然言語処理と機械学習によるコード分析により、95%の精度で作者は特定できるそうです。

解析されるのは、レイアウトや語彙の特性と、「抽象構文木(AST)」です。ASTとは、「コードの書き方からまったく影響を受けずに、コードの型の特性をとらえる」もので、つまり、関数の名前、コメント、スペース入れ方などのクセ以上のものを探し出し、作者を特定するカギにする、というわけです。

研究チームが開発した機械学習ソフトウェアで、Google Code Jamに公開されているコードの分析を試しに行ってみたところ、あるひとりの人が書いた630行のコードを分析すれば、95%の精度でその作者が特定できたそうです。コードの行数を増やして1,900行にすると、特定の精度は97%になるとか!

このコード解析、すぐに使えそうな分野が思い浮かびますよね。そう、当局がハッカーを見つけたり、オンライン詐欺の犯人を特定したり、という使い方です。あと、他人のコードをちょっと拝借、なんていうケースもバレちゃったりするんでしょうか。「特定されたら困る!」という人は、今から誰かのコードの書き方をそっくりマネする練習を始めた方がいいかもしれない…ですかね?

<参照>
Anonymous programmers can be identified by analyzing coding style
https://freedom-to-tinker.com/blog/aylin/anonymous-programmers-can-be-identified-by-analyzing-coding-style/

De-anonymizing Programmers via Code Stylometry.
https://www.cs.drexel.edu/~ac993/papers/caliskan_deanonymizing.pdf

http://anago.2ch.net/test/read.cgi/scienceplus/1423666870/より引用

2: 名無しのひみつ@ 2015/02/12(木) 00:03:50.84 ID:9RVrKUim
コピペばかりで作ったそうは判別できんだろ

 

4: 名無しのひみつ@ 2015/02/12(木) 00:04:28.01 ID:8jQUZ3in
ソースコードを漏らすハカーとかいるのか?

 

70: 名無しのひみつ@ 2015/02/12(木) 12:41:39.21 ID:YbVdJkwQ
>>4
漏らすんじゃない。
自分のだと意図的に痕跡を残したいんだよ。
城を作った大工が…と同じ。

 

5: 名無しのひみつ@ 2015/02/12(木) 00:06:30.61 ID:96LvRZmn
スペースの入れ方なんて、統合開発環境でフォーマットすれば
決まったルールに修正されちゃうだろ。

 

7: 名無しのひみつ@ 2015/02/12(木) 00:18:07.38 ID:o4SoUt33
全部手打ちなんて自己満足でしかないんだが
論文のコピペじゃないんだから

 

8: 名無しのひみつ@ 2015/02/12(木) 00:19:21.68 ID:9FHAlCmE

大手企業なら

新入社員でコーディング規約は徹底的に守るように教えられるから

みんな似たコーディングになる。

特にF会社、N会社など相当厳しいぞw

 

11: 名無しのひみつ@ 2015/02/12(木) 00:21:25.34 ID:+JuQPAPT
そもそも、95%だろうが97%だろうが99.9%だろうが
その程度の精度で証拠に使える訳ねぇだろが…

 

14: 名無しのひみつ@ 2015/02/12(木) 00:24:14.71 ID:Tgwqrr8b
>>11
初期のDNA検査の精度がそのぐらいで近年精度が上がった結果誤認逮捕だったって事件なかったっけ?

 

67: 名無しのひみつ@ 2015/02/12(木) 12:16:20.01 ID:ZBWRr3oE
>>14
あったあったw
そもそもDNAは相関があるんで通常のガウス分布による確率計算は適用不可なのに
いまだにバカがバカをさらしているw

 

13: 名無しのひみつ@ 2015/02/12(木) 00:22:08.39 ID:iaOmoY4b
こういう機械学習使って医療面でどんどん応用できたらいいのに

 

15: 名無しのひみつ@ 2015/02/12(木) 00:25:08.23 ID:VF8EG6mY
俺のようなネット検索→コピペ職人ともなると特定は難しいだろう

 

16: 名無しのひみつ@ 2015/02/12(木) 00:31:50.93 ID:ZBWRr3oE
これコーディングルールチェッカーにできるよ?

 

18: 名無しのひみつ@ 2015/02/12(木) 00:34:43.11 ID:cdT1vdNl
悪い連中は難読化くらいしてそうだけどね

 

19: 名無しのひみつ@ 2015/02/12(木) 00:38:07.47 ID:M5PRx3A/

先輩から受け取ったCのソースコードは

mainの中にすべて書かれてて唖然としましたわ

 

24: 名無しのひみつ@ 2015/02/12(木) 01:12:15.00 ID:9mV7ipAv
特定するも何も プロバイダに金払える奴は、住所も特定できるでしょ

 

27: 名無しのひみつ@ 2015/02/12(木) 01:20:45.48 ID:+JuQPAPT

>>24
オンライン犯罪集団の住所やら回線やらを特定しても意味ねぇぞw
どうせ全て使い捨てだ。一般人とは違う。

この記事が言ってるのは、
実際捕まえた後に「オラ!これもお前の仕業なんだろ!」と
余罪を追及するのに使えるって考えなんだろうが…
まぁ全く不可能だな。

 

29: 名無しのひみつ@ 2015/02/12(木) 01:23:08.56 ID:nm5HEIvP
これでコンピュータウイルスをつくった犯人を特定できるのか?

 

59: 名無しのひみつ@ 2015/02/12(木) 10:01:22.71 ID:Y+QfBp08
>>29
ソースコードがあればいいけど、普通はコンパイル済みのバイナリファイルだよね。
とすればリバースエンジニアリングが必要になるけど、コンパイルした時点で空白・改行などの
クセの部分は切り捨てられちゃうから、この方法じゃ無理だろう。

 

30: 名無しのひみつ@ 2015/02/12(木) 01:25:26.28 ID:ZBWRr3oE
とんでもございません。他人の犯罪に見せかけるための最適化ツールです

 

31: 名無しのひみつ@ 2015/02/12(木) 01:31:12.11 ID:Qu45d+Gy
ロジックなので、ソースコードでなくてもできるはずだが、コンパイラの最適化で情報が少なくなる。
優秀なマは優秀なコードからコピペするので、ロジックが似てくる

 

34: 名無しのひみつ@ 2015/02/12(木) 02:01:28.44 ID:exqSa1Ox
2chのレスも確定できるようになったら褒めてやる。

 

39: 名無しのひみつ@ 2015/02/12(木) 04:54:01.85 ID:1bDpuMz7
学術論文などでも 適用できるようにしてほしいものです。

 

43: 名無しのひみつ@ 2015/02/12(木) 06:24:55.75 ID:aTZcmKt8
直接の証拠にはならないけど血液型程度には有用な捜査資料だな

 

44: 名無しのひみつ@ 2015/02/12(木) 06:52:24.82 ID:1E/oMZJ8

文章、音声、話ぶり、歩きぶり...もう全て解析されて個人特定
されてしまうかもな。

どれも、外にさらさないようにしないとな。

 

45: 名無しのひみつ@ 2015/02/12(木) 07:17:31.38 ID:KpvC+c6H
>>44
指示して人に書かせりゃOK。

 

50: 名無しのひみつ@ 2015/02/12(木) 07:43:13.45 ID:MHSzS+h7
コピペしまくりだし、結構他人のコードに影響されて
数ヶ月経つと全然変わる自分は追跡不可能ってことだな。

 

51: 名無しのひみつ@ 2015/02/12(木) 07:56:23.37 ID:jwDkReMt
俺のソースはバレバレすぎ。
書いてる最中にコメントアウトしてメモ帳代わりにしちゃう癖があるんだ。
電話のメモやら、録画メモや買い物メモまで書いてあるから他人から見たら馬鹿みたい。

 

56: 名無しのひみつ@ 2015/02/12(木) 09:23:19.15 ID:wBhBTcUs
>>51
最低や…

 

64: 名無しのひみつ@ 2015/02/12(木) 11:24:55.52 ID:CQMArW10
但しバイナリからは何も分かんない悪寒

 

71: 名無しのひみつ@ 2015/02/12(木) 13:03:31.92 ID:UT4a6DxB

WEBは自由、オープンソースっていう文化があるからなぁ。
ガチガチの他業界とは違うんだよ

 

77: 名無しのひみつ@ 2015/02/12(木) 17:18:09.50 ID:ViC4gHOy
Webページに仕込むようなのならソースは見れるんじゃないの

 

80: 名無しのひみつ@ 2015/02/12(木) 19:12:33.71 ID:FYQS/TkE

誰が書いたところかわかりやすくなるんで、問題起きた時にその部分書いた人を呼び出しやすくなるんかな?

派遣で使ってた人呼び出して問題解決してもらうとか?

 

82: 名無しのひみつ@ 2015/02/12(木) 19:40:24.52 ID:giHJ2cdA
>>80
今時派遣含めて SCM で管理してるだろ

 

90: 名無しのひみつ@ 2015/02/13(金) 07:37:39.83 ID:cbEgZuaJ
>>80
サブバージョン使え

 

84: 名無しのひみつ@ 2015/02/12(木) 21:08:46.42 ID:v4DneXdb
先頭に作成者名入れされられるから誰が書いたかはっきりわかんだね。

 

85: 名無しのひみつ@ 2015/02/12(木) 21:33:14.49 ID:UVYzP/k8
だいたい他人の作ったライブラリ組み合わせてるからなあ

 

86: 名無しのひみつ@ 2015/02/12(木) 21:47:36.11 ID:RK8txZuP
大手のIT会社は開発規約作ってやるからコピペSEばかりだよな


新着記事 件
No items.

コメントを残す

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>