X



【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/
0002名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:27:25.77ID:bMzsuzQ6
そりゃ筆跡鑑定が可能なんだからそれくらいできんだろ
0003名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:32:02.39ID:U8Xksjgg
職場ではコーディング規約に沿ってる
0004名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:34:05.79ID:6YcICNb3
>>2
だね
機械学習とか以前の問題だと思う
0005名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:35:41.53ID:jvDUgg7p
公開されてるコードが全部匿名なら、個人を判別できないし
匿名でなく活動してるなら、ばれたところで
へー意外な所にコントリビューションしとるんやね
ってなるだけだから、別に困らんやろ
そんなことに使うぐらいなら、あんたはこんなバグ
いれやすいねやで、って警告でもしたら有益なんちゃう?
0006名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:37:08.78ID:jvDUgg7p
>>4
アホやな、筆跡鑑定を自動でやるのは
どうしとるんや?
0007名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:37:38.09ID:qGVQJhA2
無知かよネットは匿名やろ呆
0008名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:41:02.63ID:Jo87kRsG
個人の特色は絶対に出るから当たり前のことのように思えるけど
判別できたら、どうなるん?
0010名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:48:39.19ID:bMzsuzQ6
>>8
へーあいつこんな感じなんだ
0012名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:50:52.99ID:NNWHZGqr
>>3
コーティング規約に沿っていても、変数の作り方、宣言の仕方、初期化の仕方色々癖は出る。
0013名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:52:05.65ID:NNWHZGqr
>>8
別にそれだけ。

その結果は別の何かと結び付けられて考えられるかも知らない。
でもそれはまた別のお話。
0014名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:52:17.53ID:MQDwnK11
サトシナカモトはピンチだな
0015名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:53:24.15ID:R7OeRsJm
少数しかいないから分かるだけ
0016名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:55:02.01ID:dRL9xoia
そんな事はプログラマーなら既知じゃないの?
0017名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:55:10.40ID:ml1AZ012
>>1
ポールグラハムのスパムフィルターで十分だろw
0018名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:56:34.46ID:Pv7G0rr+
タイピングの各文字間の打刻時間差で個人が判別可能ってのは15年くらい前に見たよなあ
人によって一文字ごとの撃つタイミングに癖があるから
0019名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:56:47.26ID:aCou8eVt
おいらのインデントは他人と違うからすぐわかるよ
0020名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:57:50.61ID:7nbGQWO9
ふーん
まぁ、癖ってあるだろうからね
その人のソースコードが多ければ多いほど、特定できる可能性も高まるだろうね
0021名刺は切らしておりまして
垢版 |
2018/08/13(月) 17:57:55.20ID:buPQCVgo
メーカーが仕様を公開していない機器のオープンソースのデバイスドライバ、
みたいな、使う側には非常に有り難いけれど出所が突き止められたらヤバそうな
プログラムソースもあるからなぁ。
0022名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:04:42.72ID:XxEDgA2c
ギフハブ「人事部さん この人内職してます!」
0023名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:06:22.62ID:/3yMZvj0
ウイルス作者ガクブル
0024名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:07:11.39ID:5PfLPf9n
すると、作詞作曲も実際の作者が違うことがわかるんですね?
0025名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:09:16.43ID:5PfLPf9n
>>23
ねーよ
オブファスケーションするからまずわからない
0026名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:11:53.62ID:xeHukfsJ
「facebook等からパターンを学習させることで、5chのレスから筆者を推定します」
こういうのが出てきたら一部に需要があるかもしれん
0027名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:12:18.61ID:5PfLPf9n
機械学習だから学習してないものはどうなるの?
0030名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:17:34.36ID:Xpvtkvfn
ここの書き込みの文章の癖から
個人特定するのなんかすぐなんだろうなw
0032名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:30:16.34ID:d+h0hX8O
やば
変数名に自分の名前使うのやめよう
0033名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:32:39.96ID:Dm9s4Le0
まあデータが膨大ならパラメータ不明のブラックボックスだし
2度と同じものも作れない 「だから?」で済むよ
0034名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:33:57.99ID:9dTy7qXY
>>32
何やってんだよ
せめてselfとかthisぐらいにしとけよ
0035名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:34:04.99ID:bMzsuzQ6
>>32
わかったぞ
お前の名前は ほげ だな
0036名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:36:37.22ID:aCiAMv0K
>>27, >>29
だよなー
有名作家が別の著作者としてエロ小説書いてるのを特定みたいな状況でしか役に立たない気がする
0038名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:40:23.44ID:rG5l/B82
>>16
限られたメンバー内であればコード読めばなんとなく誰が書いたかわかるからな
機械学習のような手法を使えば癖を読む精度を上げられそうなのは当然だろう
0040名刺は切らしておりまして
垢版 |
2018/08/13(月) 18:50:42.64ID:Kra7/qZf
// ○○クラスのインスタンスラーメン生成
0046名刺は切らしておりまして
垢版 |
2018/08/13(月) 19:13:52.27ID:nCPvpvEb
書き手のわかってるソースコードのデータがないとだめ

しかもコードの書き方に100通りぐらいのタイプがあるとして
100人の中から識別するならあるていど特定できても
100万人の中から識別するなら誰だか特定するのは難しそう

そもそもソースコードを公開しつつ
誰が書いたのか伏せたいような状況はかなり限られる
0048名刺は切らしておりまして
垢版 |
2018/08/13(月) 19:24:55.80ID:0YLlxZ0N
インデントがかっちりしてるのは私のソース
0049名刺は切らしておりまして
垢版 |
2018/08/13(月) 19:30:11.24ID:aFSLJQQq
これ実質的に困ることある?
0050名刺は切らしておりまして
垢版 |
2018/08/13(月) 19:33:55.23ID:a9JdVMnl
>>11
これわかるかもね
0051名刺は切らしておりまして
垢版 |
2018/08/13(月) 20:19:21.08ID:M8iiI/Bs
今後は、ボッキデータでコードも作っていく流れ
0052名刺は切らしておりまして
垢版 |
2018/08/13(月) 20:19:54.99ID:NsFd9UJ0
C言語なら分かりそうな気もするが
Pythonでも分かる?
0054名刺は切らしておりまして
垢版 |
2018/08/13(月) 20:31:12.82ID:R2SDGxPF


C言語も
Pythonも 関係ねぇーだろ。

ソースコードを単語ごとに分解して それ 頻度ごとに並べ替えて つながりを分析すれば
指紋みたいなものが分かるってことだろ。

っていうかぁ
ソースコードそのものを AIで作れって話に 進まないとおかしい。けど
こんなのは 序の口。
0055名刺は切らしておりまして
垢版 |
2018/08/13(月) 20:36:15.63ID:cwtI/0kz
ソースコードを公開していればの話
0056名刺は切らしておりまして
垢版 |
2018/08/13(月) 20:38:10.94ID:OjRMooo1
>>46
gitなら行ごとに作者が分かる
0057名刺は切らしておりまして
垢版 |
2018/08/13(月) 20:54:15.99ID:sndelD2P
歩き方から個人特定とか、そういうのと同じでしょ?
0059名刺は切らしておりまして
垢版 |
2018/08/13(月) 21:06:20.45ID:X1Vun4xW
javascriptとか圧縮かけてもわかるのかな?
0060名刺は切らしておりまして
垢版 |
2018/08/13(月) 21:14:45.58ID:nCPvpvEb
>>53
2ちゃんの書き込みの
クセを分析して
書いた人ごとに集約して表示するサイトでもできると
困ったことになるかもな
まあ
おれは個人情報ほとんど書かないけど
0062名刺は切らしておりまして
垢版 |
2018/08/13(月) 21:52:04.62ID:0q7G1Zaf
他人のソースコードのコピペでコードを書く俺はどう判定されるんだろう
0063名刺は切らしておりまして
垢版 |
2018/08/13(月) 22:00:12.33ID:sHS0mThg
まぁ一緒にやっていても癖で大体わかるようになるしな
パターン覚えれば大体判別はできるだろう
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
コピペプログラマーに対しては複数の引用元の特徴がごちゃ混ぜになって
わけわからんことになりそう
0073名刺は切らしておりまして
垢版 |
2018/08/14(火) 09:31:43.12ID:LMbJtEm4
研究論文も、全部調べようぜ
0074名刺は切らしておりまして
垢版 |
2018/08/14(火) 09:36:46.74ID:ZRZz8rNd
誰が書いても同じようなコードになるとされるPythonでも?
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
設計思想を解読してるわけだから、設計の良し悪しを判断させられる方向にもってこう
0082名刺は切らしておりまして
垢版 |
2018/08/14(火) 11:10:15.04ID:gw0u3lYg
最適化通したあとのバイナリでも識別可能とかうそくせ
0083名刺は切らしておりまして
垢版 |
2018/08/14(火) 11:12:54.85ID:6KRbDDJQ
やばいあの金融機関をあそこまで追い込んだ犯人がバレちゃう
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
コンピュータウイルスを作った犯人を特定できるんだろうか?
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
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
実行するたびにアセンブラレベルでバイナリの配置置き換えて暗号化したらどうなるんだろうか
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/
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報用意し、ホンモノと捏造研究を分類する学習モデルを作成します

次に、この分類器を使って東大医学部が出した最新医学論文を予測します、すると…
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況