【IT】機械学習を用いると匿名のソースコードから個人を識別可能であることが判明

■ このスレッドは過去ログ倉庫に格納されています
0001田杉山脈 ★2018/08/13(月) 17:24:20.61ID:CAP_USER
プログラミング言語を用いて書かれた「ソースコード」はあらかじめ定められた規則に従って記述する必要があり、匿名で公開されたコードから個人を識別することは困難に思えるかもしれません。ところが、実際にはコードにも個人の特徴が色濃く表れており、機械学習を用いてコードのサンプルから個人を識別できることが判明しました。

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

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

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

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

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

一方でオープンソースプロジェクトに匿名で参加しているプログラマーや、匿名でコードを公開しているプログラマーのプライバシーが脅かされる可能性もあります。「コード開発者の身元を100%隠すことは、一般的に考えて難しいと理解する必要があります」とグリーンシュタット氏は述べており、将来的にはコードから個人を識別不可能にするツールが開発されるかもしれないが、しばらくは匿名で公開したコードから個人を特定される危険性があるとしました。

また、グリーンシュタット氏らはプログラミングの初級者と上級者では、上級者のほうが個人を識別しやすいという事実も発見しました。これは、初心者がコードの一部をプログラミング練習サイトからコピーしてくる場合があって特徴が出にくいのに対し、上級者になればなるほどコーディングがこなれてきて、個人間に差異が出やすいためだそうです。他にも、2人はコードのサンプルが「簡単な問題を解決するために書かれたコード」である場合よりも、「複雑な問題を解決するために書かれたコード」である場合のほうが個人の識別精度が向上することも突き止めました。

グリーンシュタット氏らが行った予備調査では、カナダ人の書いたコードと中国人の書いたコードを90%以上の精度で判別できるなど、コードから得られる情報は予想以上に多いようです。記事作成時点では、コードによる個人の識別は指紋による個人識別のように100%に近い精度を持っているわけではありませんが、今後さらに識別精度が向上していくだろうと考えられています。
https://gigazine.net/news/20180813-machine-learning-identify-code-authors/

0063名刺は切らしておりまして2018/08/13(月) 22:00:12.33ID:sHS0mThg
まぁ一緒にやっていても癖で大体わかるようになるしな
パターン覚えれば大体判別はできるだろう

0064名刺は切らしておりまして2018/08/13(月) 22:15:49.86ID:YrxjjYnf
>>11
>>14
俺も真っ先にそれ思った

0065名刺は切らしておりまして2018/08/13(月) 22:53:14.84ID:hlorcbhT
>>64
見つけてノーベル経済学賞あげようぜ

0066名刺は切らしておりまして2018/08/13(月) 23:38:01.27ID:7E+XTUaP
つまり名倉と柏木を見分けることも可能ということ?

0067名刺は切らしておりまして2018/08/13(月) 23:58:31.36ID:Qk0st+WT
そんなに難しくなさそうだけどな。

0068名刺は切らしておりまして2018/08/14(火) 02:12:25.49ID:SYRemCYp
これはこれで対抗手段の出現、すなわちコードから個人の癖を消す技術の開発へと進化するだろうね

0069名刺は切らしておりまして2018/08/14(火) 05:05:53.22ID:Pa4NFFTw
関数型とかRustとかイミュータブルかつ式文な言語だと
問題解決の最適式バリエーション減って判別しにくいとか有るんじゃね?

0070名刺は切らしておりまして2018/08/14(火) 06:30:00.45ID:gBM5RUz0
関数型というかPascal系のシンタクスだと複数の書き方ができなくて個性が出にくいというのはありそう
というかそれがウリの言語だし

0071名刺は切らしておりまして2018/08/14(火) 09:04:08.52ID:HOwURnEa
コピペプログラマーに対しては複数の引用元の特徴がごちゃ混ぜになって
わけわからんことになりそう

0072名刺は切らしておりまして2018/08/14(火) 09:10:26.49ID:Z/rEQ0lT
>>68
ないない、識別するメリットがほぼないし、識別されて困ることもほぼない

0073名刺は切らしておりまして2018/08/14(火) 09:31:43.12ID:LMbJtEm4
研究論文も、全部調べようぜ

0074名刺は切らしておりまして2018/08/14(火) 09:36:46.74ID:ZRZz8rNd
誰が書いても同じようなコードになるとされるPythonでも?

0075名刺は切らしておりまして2018/08/14(火) 09:38:36.31ID:gFUvK8E7
空白派とタブ派やら判断材料は多いだろうな

0076名刺は切らしておりまして2018/08/14(火) 09:40:02.20ID:ZRZz8rNd
まあ、整形の仕方に多少でも自由度があれば書いた人の個性が出るからなあ。

0077名刺は切らしておりまして2018/08/14(火) 09:41:57.56ID:ZRZz8rNd
整形を統一してくれるソフトウェアを潜らせればどうなのかな?

0078名刺は切らしておりまして2018/08/14(火) 10:00:52.37ID:T/+IKh/f
設計思想を解読してるわけだから、設計の良し悪しを判断させられる方向にもってこう

0079名刺は切らしておりまして2018/08/14(火) 10:07:00.57ID:VvlCdMVv
>>3
ミズラCで書いて、QA-Cでチェック

0080名刺は切らしておりまして2018/08/14(火) 10:13:18.17ID:aRwyO3Un
>>30
やっぱ鳴き声って最高だわ

0081名刺は切らしておりまして2018/08/14(火) 10:42:50.66ID:KfeJmABn
>>66
名倉柏木判定プログラムならすでに公表されてる

0082名刺は切らしておりまして2018/08/14(火) 11:10:15.04ID:gw0u3lYg
最適化通したあとのバイナリでも識別可能とかうそくせ

0083名刺は切らしておりまして2018/08/14(火) 11:12:54.85ID:6KRbDDJQ
やばいあの金融機関をあそこまで追い込んだ犯人がバレちゃう

0084名刺は切らしておりまして2018/08/14(火) 11:14:18.09ID:A4EeKpje
そりゃ分かるだろうけど、で?って感じだな

0085名刺は切らしておりまして2018/08/14(火) 11:25:40.18ID:ijbQE4We
ゆうくんの無実が証明できるんだな。
もしくはソースコードの著作権訴訟に使えるかもね。

ただし機械学習で正しい答えを回答させるのに、5000ケース位正解例を読み込ませて学習させる必要がある。

また口語文体ではなく、法則性のあるソースコードの著者探しはAIにとっては簡単だろう。

0086名刺は切らしておりまして2018/08/14(火) 11:33:47.71ID:XZ7EEz0m
複数の誰かが書いたのをパッチワークしてるとどうなるんだろう?
継ぎ接ぎだらけだから特定の個人を識別するのは不可能だと思うが?

0087名刺は切らしておりまして2018/08/14(火) 12:58:31.63ID:ZRZz8rNd
コンピュータウイルスを作った犯人を特定できるんだろうか?

0088名刺は切らしておりまして2018/08/14(火) 16:39:54.47ID:JtJ/mOqw
ブロックチェーンの未来と合わせて考えると、結構インパクト有りそうだな。

0089名刺は切らしておりまして2018/08/14(火) 18:48:02.19ID:jhCguNZt
癖が出るよね
AAで遊ぶやつとか

会社やめたい とか一言コメントソースコードに入れるのやめろw

0090名刺は切らしておりまして2018/08/14(火) 18:48:13.27ID:g57i20h4
写真を一切修正しない下着ブランド「エアリー」は、無理したくない女性たちの心をわかっている
http://www.co.jp.hackquest.com/201808218_9_8.jpg

0091名刺は切らしておりまして2018/08/14(火) 18:50:14.74ID:g57i20h4
写真を一切修正しない下着ブランド「エアリー」は、無理したくない女性たちの心をわかっている
http://www.co.jp.hackquest.com/201808218_9_8.jpg

0092名刺は切らしておりまして2018/08/14(火) 18:51:15.53ID:g57i20h4
写真を一切修正しない下着ブランド「エアリー」は、無理したくない女性たちの心をわかっている
http://www.co.jp.hackquest.com/201808218_9_8.jpg

0093名刺は切らしておりまして2018/08/14(火) 18:51:37.77ID:6NdxT6oW
>>87
出来そう

0094名刺は切らしておりまして2018/08/14(火) 18:52:16.43ID:g57i20h4
写真を一切修正しない下着ブランド「エアリー」は、無理したくない女性たちの心をわかっている
http://www.co.jp.hackquest.com/201808218_9_8.jpg

0095名刺は切らしておりまして2018/08/14(火) 19:37:57.34ID:viJmVJmc
機械学習以前の問題。
文字列の中に、自分の名前や適当なフレーズを入れておくことができるし。

0096名刺は切らしておりまして2018/08/14(火) 19:48:11.20ID:K5kT3qAw
実行するたびにアセンブラレベルでバイナリの配置置き換えて暗号化したらどうなるんだろうか

0097名刺は切らしておりまして2018/08/14(火) 20:26:10.39ID:gMgHx8HL
切り貼りオンリーならバレない。

0098名刺は切らしておりまして2018/08/14(火) 20:26:48.22ID:lff5OVaf
>>96
ソースコードを見るんだからそんなことしても意味ない

0099名刺は切らしておりまして2018/08/14(火) 20:40:27.51ID:K7EFYz2b
んでも、そこまでソースコード書いてない、公開されてない人なら
特定までには至らないよね!

同じコーディング規則を使っている組織とか、参考書とかは手繰れるだろうけど

0100名刺は切らしておりまして2018/08/14(火) 21:01:23.27ID:+s+5UPXm
変数名を意味が通らないなんちゃって英語でかいているとすぐばれるぞ

0101名刺は切らしておりまして2018/08/14(火) 21:06:14.03ID:3J4r+jjp
カラム名で区分がkbnだったときに、その先の苦労が予見できて速攻辞めた

0102名刺は切らしておりまして2018/08/14(火) 22:31:02.86ID:3GaKXCRn
 
クソコード製造器が

0103名刺は切らしておりまして2018/08/15(水) 01:21:11.92ID:JXvxvy12
ガクガクブルブル

0104名刺は切らしておりまして2018/08/15(水) 01:21:38.37ID:57viUn0X
写真を一切修正しない下着ブランド「エアリー」は、無理したくない女性たちの心をわかっている
http://news.www.yodyiam.com/live/1534251776/

0105名刺は切らしておりまして2018/08/15(水) 01:22:39.19ID:57viUn0X
写真を一切修正しない下着ブランド「エアリー」は、無理したくない女性たちの心をわかっている
http://news.www.yodyiam.com/live/1534251776/

0106名刺は切らしておりまして2018/08/15(水) 07:56:00.28ID:jLNsz9GZ
>>11
これだよね
まず調べてもらいたい

0107名刺は切らしておりまして2018/08/15(水) 11:48:21.00ID:ndSboeJR
ウイルスやワームボットの作者を特定してくれ

0108名刺は切らしておりまして2018/08/15(水) 19:21:41.03ID:vs4Kt/AR
BCASカードをハッキングしたヤツを??!!
ってコード類は複数がかかわってそうだけど

0109名刺は切らしておりまして2018/08/17(金) 07:41:14.97ID:EkJ3ltSp
焼きそば屋のソースも識別

0110名刺は切らしておりまして2018/08/17(金) 07:41:35.48ID:CQ4cCeHK
謎の女子高生の正体は? 45年前に撮影されたモノクロ写真がカッコよすぎる
http://www.bby.nwnlexicon.com/1009.jpg

0111名刺は切らしておりまして2018/08/20(月) 22:45:08.73ID:ONS/2pMf
>>107
行きつく先がTorやオープンプロクシ

0112名刺は切らしておりまして2018/08/21(火) 23:48:40.27ID:fWzU0hPg
>>73
先ず、山中伸弥と小保方晴子のそれぞれの研究論文を100報用意し、ホンモノと捏造研究を分類する学習モデルを作成します

次に、この分類器を使って東大医学部が出した最新医学論文を予測します、すると…

0113名刺は切らしておりまして2018/08/22(水) 01:26:55.95ID:5uwfu0Bf
ボクこんな事できるんだよ〜凄いでしょ〜
もっと褒めて!

■ このスレッドは過去ログ倉庫に格納されています