GitHub Gistとgit commit

ほぼこもセキュリティニュース By Terilogy Worx

GitHubは広く使われているソフトウェア開発のプラットフォームであり、ソースコードをホスティングすることができる公開されたサービスです。
コードのバージョン管理システムにはGitを使用します。
いろいろなところで使用されていて、会社などの組織に限らず、個人にも利用されています。
ソースコード管理システムは数多く登場していますが、その代表的な一つといえます。

以前から、このGitHubに脅威アクターが攻撃ツールの一部をこの公開サービスに配置し、それを攻撃チェーンのなかで取り出して使用するという類の手法は確認されていました。
そういったものとは異なる新たな手法が使われている事象が確認されています。

  • GitHub Gistの悪用
    GitHub Gistは、GitHubが提供する断片コード(スニペット)の共有サービスです。
    この仕組みは、GitHubと同様にリポジトリを採用しており、ソースコードのバージョン管理ができます。
    これを利用すると、ソースコード1ファイル単位(複数も可能)でGit管理し、公開することができます。
    そして、利用者の選択で、そのそれぞれの公開状態を、公開するのか非公開にするのかを指定できます。
    この非公開状態のGistが、攻撃者にとっては、便利な仕様になっています。
    非公開状態の場合、リポジトリの所有者のプロフィール情報に、そのGistの存在が一覧されません。
    また、Gistを検索して利用することができる機能であるDiscoverでも、検索してもヒットしません。
    でも、GistのURLを参照するgit cloneコマンドなどを経由する場合は、その内容を見ることができるのです。
    これはとても便利です。秘匿性の高いPastebinのようなものといえそうです。
    これを攻撃コードの配布場所とする活動が観測されています。

     

  • git commitの悪用
    git commitは、Gitコマンドのサブコマンドのひとつです。
    文字通り、そのリポジトリに変更を反映させる際に利用されるコマンドです。
    これも通常に利用する限り、この本来の目的以上の効能はありません。
    攻撃者はこの機能も武器化しました。
    攻撃用パッケージは、ある特定のGitのリポジトリをcloneします。
    そして、そのヘッドコミットに特定の文字列が存在するかを確認します。
    存在が確認された場合、コミットメッセージの残りの部分をBase64でデコードします。
    デコードされた内容は攻撃に利用されるPythonコードでした。

これまでもGitHubなどの公開リポジトリサービスが攻撃に悪用されるケースは確認されていました。
公開サービスを利用することでその通信が特殊なものに見えにくいという特性があるため、こういったサービスを利用するということだけでも、攻撃者にとってメリットがあったのかもしれません。
しかし、悪用の手法は、より一層込み入ったものとなってきています。

攻撃者と防御者は、いたちごっこになるケースが多くありますが、この部分では攻撃者が一歩先に出ている感じがします。

参考記事(外部リンク):Malware leveraging public infrastructure like GitHub on the
rise

www.reversinglabs.com/blog/malware-leveraging-public-infrastructure-like-github-on-the-rise