1: 名無しさん@涙目です。(宮城県) [US] 2018/08/13(月) 21:03:35.41 ID:O3/1suhR0● BE:601381941-PLT(13121)
sssp://img.5ch.net/ico/anime_kuma01.gif
機械学習を用いると匿名のソースコードから個人を識別可能であることが判明
プログラミング言語を用いて書かれた「ソースコード」はあらかじめ定められた規則に従って記述する必要があり、
匿名で公開されたコードから個人を識別することは困難に思えるかもしれません。ところが、実際にはコードにも
個人の特徴が色濃く表れており、機械学習を用いてコードのサンプルから個人を識別できることが判明しました。
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: 名無しさん@涙目です。(禿) [JP] 2018/08/13(月) 21:07:50.62 ID:xeH9cono0
そーすは?
ソースは?
ってうるせーんだよ気違いが
ソースなんざ、中濃にきまってんだろ。
>>2
そ~っすか
5: 名無しさん@涙目です。(青森県) [US] 2018/08/13(月) 21:09:52.44 ID:YKDn7kLg0
いやでもマジ、ソースは人の心を写すよ
どんなに上辺繕ってもダメさ
7: 名無しさん@涙目です。(茸) [GB] 2018/08/13(月) 21:11:17.31 ID:9eiNHEBx0
知ってた
8: 名無しさん@涙目です。(青森県) [US] 2018/08/13(月) 21:13:05.23 ID:YKDn7kLg0
上手い人のソースは本当にきれいだからな、思考に迷いが無いというか
>>8
でも天才の書いたソースコードって理解できないよな。
なんでたったこれだけで動くねん。
>>9
設計だろね、仕様書を噛み砕いてきれいに再構築するんよ
行き当たりばったで書く俺の生成物と違うのを知って、勝てないと思ったわ
>>9
それは趣味の人が書いたプログラムではないかな?
メンテナンスを考えたら、後の人が理解しやすい記述を心がける。
例えば if( ( a=1 && b=1 ) || (c==1 && d==1) ) みたいに
中の括弧はプログラムでは効果ないけど、人は見やすい。
>>73
自社のコーティング規約だと&&もカッコで分離せんとあかんw
a=(2*3)+4; ←さすがにクドくね?
>>76
算術加減算の優先順位はさすがに忘れないが、
論理演算の優先順位なんて覚えているプログラマーは少数派だ。
>>79 「そんくらい覚えてるだろ?」って人もいて、そーゆー人が謎のコード書くんで全部が全部ダメになったんだろなw
んで、QACとか言うコードチェッカーが義務付けられてて、1+2*3なんて書くと「カッコつけれや」ってエラー(ワーニング)になるw
10: 名無しさん@涙目です。(東京都) [DE] 2018/08/13(月) 21:15:58.62 ID:BuQG8QSG0
自分が書いて、コメント入れてるのに、見返すとわからんわ
12: ◆65537PNPSA (宮城県) [DE] 2018/08/13(月) 21:17:08.57 ID:HVUSCcqX0
コメントに言い訳書いてあるとほっこりする
>>12
辞めた前任者の呪詛と性癖、旧作エロゲのネタが書いてあったときはワロタで。
13: 名無しさん@涙目です。(庭) [GB] 2018/08/13(月) 21:17:21.84 ID:HmCfEuND0
>>1
奈倉か柏木だってわかるんだから、当たり前だろうが。
何を今更。
17: ◆65537PNPSA (宮城県) [DE] 2018/08/13(月) 21:18:46.65 ID:HVUSCcqX0
C言語なのに1行80字以内に収めろって言われてビックリした
>>17
なに?その人VGAの解像度でエディタ使ったりしてるの?
>>17
Linuxのコーディングスタイルだからな
採用してるところは多そう
19: 名無しさん@涙目です。(茸) [BR] 2018/08/13(月) 21:19:46.57 ID:eIBHygTD0
なにこの犯人探し
25: 名無しさん@涙目です。(三重県) [US] 2018/08/13(月) 21:25:58.61 ID:T/eBEjYT0
ソースコードは知らんが文章である程度誰が書いたか
判別できるのと同じじゃあないのか。
27: 名無しさん@涙目です。(空) [CN] 2018/08/13(月) 21:28:35.68 ID:FmQP6NJG0
これで動くかな?
この実装で大丈夫かな?
って感じで進めるので、
気付いたときには、行き当たりばったりの設計で、
後戻りできない状態になっている。
>>27
これなんだよなあ
28: 名無しさん@涙目です。(東京都) [US] 2018/08/13(月) 21:28:41.45 ID:ltLkRnT80
あーまー、これ、な。
社内のメンテナンスやってると、誰が書いたコードか分かる時あるわ。
なんとなく癖って言うか、変数の持たせ方とか、アルゴリズムとか、インデントとか、なんとなくな。
29: 名無しさん@涙目です。(埼玉県) [US] 2018/08/13(月) 21:28:50.51 ID:l2YISbsD0
/* ここで時々エラーになるのって半分アベのせいだろ? */
30: 名無しさん@涙目です。(静岡県) [US] 2018/08/13(月) 21:32:35.49 ID:LMy/b1kT0
これはわかるな。
考え方や、組み立て方に癖があるからな。
31: 名無しさん@涙目です。(千葉県) [US] 2018/08/13(月) 21:35:56.71 ID:Znl55XbN0
君、変な所で改行挟む癖あるよね
これすっげー見辛いからやめてくれる?
32: 名無しさん@涙目です。(静岡県) [US] 2018/08/13(月) 21:36:45.44 ID:LMy/b1kT0
1,$s/\n//g
これで改行が消えてあっという間に読めないソースに。でもコンパイルはできるよ。
>>32
さーせん
うちviなんか使ってないもんで
33: 名無しさん@涙目です。(岐阜県) [US] 2018/08/13(月) 21:36:57.25 ID:KmfCTiwp0
言語だしそうなるわな
34: 名無しさん@涙目です。(catv?) [GB] 2018/08/13(月) 21:38:41.26 ID:VxBghsmE0
一部パクってるとどうなるんや
>>34
拾いからパクったソースの擦り合わせの箇所で無茶してる
なんてのが最近のお若いPGさんでは普通になってるよ
吸収できてないのがバレバレ
35: 名無しさん@涙目です。(山口県) [EU] 2018/08/13(月) 21:42:00.91 ID:h9jiykA40
コピペコードの継ぎ接ぎでも識別できるん?
37: 名無しさん@涙目です。(茸) [US] 2018/08/13(月) 21:43:38.92 ID:Rh1rbNTJ0
品質が揃わないのはそういう事だろうな。
コメントを残す