ぶるーたるごぶりん

UI, UX, セキュリティとか😘

GitHub を狙った Reverse Proxy 型フィッシングサイトの探索と報告

GitHub の Reverse Proxy 型フィッシングサイトの発見と報告

こんにちは、でじこだにょ

今回は GitHub を狙った Reverse Proxy 型のフィッシングサイトを探していこうと思います。 (長いので、Reverse Proxy 型のことをプロキシ型と略しちゃいます) 結論から書くと、24件のフィッシングサイトを新規に発見して報告しました。

今回はそれらのフィッシングサイトの探し方のほか、フィッシングサイトの検出方法や、 セーフブラウジングなどの話をしつつ、 今回見つけたフィッシングドメインに対して、簡単ではありますが、調査と考察を行ってみたいと思います。

探そうとしたきっかけ

数日前、 Twitter を見ていたところ、こちらのツイートが流れてきました。

画像を見る限り、対象ドメイン 520liyan[.]xyzGitHub を模したフィッシングサイトで、 いわゆる Reverse Proxy を用いたフィッシングサイトのように見えます。

続きを読む

パッケージマネージャで配布されるマルウェア、対策と課題について

はじめに

f:id:kumagoro_alice:20211127182904j:plain

画像は記事に全く関係ないカニのフィギュアです👋

近年、善良なパッケージを騙ったマルウェアが配布されているケースが増えてきています。 これらのマルウェアはパッケージマネージャ上で配布され、開発者端末やそれをビルトインしたシステムを利用するユーザー端末で悪事を働きます。

これは俗にいうサプライチェーン型攻撃で、 これらの関連ニュースを目にする機会が増えてきていることを、多くの開発者が体感されていると思います。

ただ、これらのサプライチェーン型攻撃の記事は、 どうしてもエンドユーザー(パッケージを利用する開発者側・それらを組み込んだアプリを実行するユーザー側)の対策に焦点が当てられたものが殆どのように感じています。

そこで本記事では、このエンドユーザー側の対策だけではなく、 パッケージマネージャメンテナーたちがどう対策しているのかも含めて、 「パッケージマネージャ上で行われるマルウェア配布」と、 「これの攻撃からどう保護していくのか」について、現状の課題を含めて書いていこうと思います。

続きを読む

植物の温室DIYした

記事のまとめ

  • やってることの殆どは、こちらの方の記事の真似
  • 最低限のセットで ¥37,580 円程度 (ライト2枚 2万円 + 棚 8000円の値段を含む)
  • 我が家もスマートハウス
  • 色々問題があったが、概ね解決

f:id:kumagoro_alice:20211021205028j:plain

買ったもの

ひとまず買ったものをバシバシ書きます。 組み立てや問題などについては後述します。

合計: ¥37,580 程度

上のが最低限の費用で、プラスで以下のものを買うと良いかもしれません。

  • ヒーター
  • サーキュレーター / 外付けファンなど
  • SwitchBot Hub(エアコンなどの制御)
  • 加湿器
続きを読む

パッケージファイルに擬態したマルウェアのコードを読む part1

ライブラリに擬態したマルウェアを見てく

今作ってるツールでどうしても複数の事例を知っておく必要があるので、 半分自分用に乱雑にまとめていく。

この記事では、主にPypi (Pythonのパッケージマネージャ)にて配布されていた 「ライブラリに似せた名前」のマルウェアのコードを見ていく。

とはいえ、かなりシンプルなものばかりだったので、 記事の内容的には微妙かも。

はじめに

近年、タイトルにある通りライブラリに擬態したマルウェアというのがそれなりに配布されていたりする。 これらは大抵の場合、 Typo Squatting と呼ばれる攻撃手法をベースにしてライブラリとして公開・配布されている。 これらのマルウェアは、インストール・使用した端末に対して、なにかしらの悪性なコードを実行させることを狙っている。

そもそも Typo Squatting とは、(大抵は)フィッシングサイトなどで悪用される攻撃テクニックで、 google[.]com などと、正規のドメインをタイピングしなければならないところを、 タイピングミスを狙って gooogle[.]com などと言った、少しだけズラしたドメインで、 悪性なサイトをホスティングし、被害者がタイポして悪性ドメインに訪れてくるのを待つ・・・という感じの攻撃が行われる。

先ほども書いた通り、大抵はフィッシングサイトで使われる攻撃手法だったのだが、 近年(特に観測範囲だと node.js, python 周り)で pypi などのパッケージマネージャーなどに マルウェアが上げられていることがある。 これらのマルウェアでは、先ほど言った Typo Squatting と呼ばれる攻撃手法が利用され、 有名なライブラリー名を少しだけズラした形でマルウェアが公開されていたりする。

つい最近の記事だと - というライブラリが npm で配布されており、 70万回ダウンロードされたとか。 https://labs.cybozu.co.jp/blog/akky/2021/08/empty-npm-package-downloaded-sub-one-million-times/

こう言った背景もあり、Pypi から抽象構文木(AST)を使ったマルウェア検出を行った人がいたりする。 https://bertusk.medium.com/detecting-cyber-attacks-in-the-python-package-index-pypi-61ab2b585c67

まとめると、「問題ないライブラリと思ったら実はマルウェアでした」というのがこの攻撃の手法であり、 近年話題のサプライチェーン攻撃としてカテゴライズされている。

今回は「この辺りをもうちょっと(防御面で)なんとかできんのかー」と思い、 セコセコ亀のスピードで開発をしているツールのために、数個のマルウェアのコードを読んでいこうと思う。

なお、本記事はGithubやブログなどのオープンな情報をベースとしており、 マルウェアの流布などを目的とした反社会的行為を推奨してるわけではない。

続きを読む

MINI Hardening Project #4.0@オンライン の参加レポ

はじめに

初参加、惨敗です。 チームメンバーの方へ、本当にご迷惑をおかけしました (迷惑と言うよりも、問題を解消できなくて本当に・・・本当に・・・)

MINI Hadening って何

minihardening.connpass.com

脆弱なサーバー・アプリ環境を渡されて、 それを5時間程度の間でセキュアにしていくという競技です。

採点方法は、システムダウンが起きていないかや、 埋め込まれた脆弱性が防がれており、侵入などを防げているか、 と言った点を総合評価するというものです。

今回の主題はゲームサービスを守ろう みたいなやつでした。

感想

続きを読む

サボテン実生(種から育てる)日記 - [ パキポ・アガベ・コミフォラ・フォークイエリア・オペルクリカリア ] 編

2021/07/20 に発芽本数の追記・修正

サボテン実生日記

さて、在宅ワークの最高の趣味といえばサボテン・多肉植物の育成と相場が決まっていますが、 今回2度目の実生(種からの育てつやつ)をやったので、経過など諸々書いてみようと思います。 (1度目は帝冠を実生し、全てカビで全滅させました・・・)

先人たちのブログがめっちゃ助かったので自分も書いておく

育てた植物

今回育てたのは以下の種です。

  • パキポディウム・ウィンゾリー (Pachypodium baronii var. windsorii)
  • アガベ・チタノタブルー (Agave titanota 'blue')
  • アガベ・シャウィー (Agave shawii subsp. shawii)
  • アガベ・クプレアータ (Agave cupreata)
  • コミフォラ・プセウドパオリー (Commiphora pseudopaolii)
  • コミフォラ・カンペストリス (Commiphora campestris var. campestris)
  • フォークイエリア・フォルモサ (Fouquieria formosa)
  • オペルクリカリア・ボレアリス (Operculicarya borealis)

ウィンゾリー以外は seedstok さんで購入。

f:id:kumagoro_alice:20210714210532j:plain
今回の実生

発芽確認の日数と環境

続きを読む

XSStrikeを読む part2 - XSS可能かを評価するための DOM base XSS スキャンメソッド編

はじめに

前回に引き続き、 XSStrike という XSSスキャナーを読んでいきます。

github.com

前回は Fuzzing するところだったので、XSS スキャナーっぽくなくて個人的には面白くなかったです・・・。

なので、今回は「XSS可能かを評価するための DOM解析部分」を読んでいきます。

前回記事:

brutalgoblin.hatenablog.jp

今回読んでいく部分(DOMの解析部分)は以下のファイルです。 XSStrike/dom.py at 0ecedc1bba149931e3b32e53422d5b7c089ba9dc · s0md3v/XSStrike · GitHub

前回も記載しましたが、 main 処理からの処理派生は以下の様になっています。

Main

大きく以下の4つの分岐
 --> singleFuzz()
 --> bruteforcer()
 --> scan()
 --> photon() + crawl()

今回の dom() を call しているのは scan() の内部です。 XSStrike/scan.py at 0ecedc1bba149931e3b32e53422d5b7c089ba9dc · s0md3v/XSStrike · GitHub

馬鹿正直に読んだせいでアホみたいに疲れました。 では見ていきましょう。

続きを読む