※今あらためて見ると色々間違ってそうなので話半分で見てください
OAuthとは?
OAuthとは、異なるシステム間でデータや機能へのアクセス権限の許可を行う仕組みです。
https://medium-company.com/oauth/
例えばtwitterでツイートすると、自動でfacebookに投稿されるようにtwitterとfacebookを連携することができますが、そのときに使われている仕組みですね。
簡単にいうFacebookが発行した信用証明書(OAuthトークン)をTwitterにもたせることで上記のような機能が実現されます。
もちろんOAuthトークンは勝手に発行されるものではなく、ユーザーの認証などのプロセスを経て発行されるわけですが、その際の発行手順を標準化したものがOauthというプロトコルになります。
OAuthの詳細はこちらの記事がとても完結でわかりやすかったです↓
なにが起きた?
最近、GitHubが発行したOAuthトークンが流出し、npmなどのプライベートリポジトリのデータが不正ダウンロードされるという事件がありました。
調査の結果、HerokuやTravis-CIといったサードパーティ製のOAuthアプリケーションから盗まれたことがわかったそうです。
簡単にいうと、GithubがOAuthトークンを発行してHerokuに渡していたけど、Herokuに不正アクセスがありOAuthトークンが盗まれたよーという流れです。
先程、OAuthトークンをもっていると発行元のリソースにアクセスできると説明しました。
Githubは、Herokuにリポジトリへのアクセスを許すOAuthトークンを発行していたので、悪い人がそのOAuthトークンを使ってGithubから不正にダウンロードしたわけですね。
対策は?
以下の記事がよくまとまっていました。