VPNアプリとして配布されている「Swing VPN」が、ユーザーの意図しないところでひそかにDDos攻撃を行っていることが判明しました。

Swing VPN app is a DDOS botnet | Greek geek

https://lecromee.github.io/posts/swing_vpn_ddosing_sites/



発見したlecromee氏によると、事の発端はlecromee氏の友人が「自分の携帯電話が数秒おきに特定のウェブサイトにリクエストを送信している」と訴えたことだったそうです。lecromee氏は当初「ウイルスに感染しているのでは」と思っていましたが、2分ほど調査したところ、すべてのリクエストはVPNサービスとして携帯電話にインストールされているSwing VPNからであることがわかりました。このアプリは友人が利用したことのない特定のウェブサイトにリクエストしており、リクエストペイロードの中には、そのサイトのリソースを大量に要求するエンドポイントにリクエストを送信する意図を含んだ特定のデータが含まれていました。

Swing VPNは航空会社「Turkmenistan Airlines」が管理するウェブサイト内の以下のページに約10秒ごとにリクエストを送信していたとのこと。

https://turkmenistanairlines.tm/tm/flights/search?_token=J8SxUX2Qwzltw4LiHsRHTCtfthgBYxf4hyI8oNly&search_type=internal&departPort=TAZ&arrivalPort=CRZ&tripType=rt&departDate=4%2F22%2F2023&arrivalDate=5%2F4%2F2023&adult=1&child=0&infant=0&is_cship=on


このURLの特異性から、lecromee氏は「これはエラーではなく、サイトにpingを送信しているわけでもないことが明らか」と考えて調査を始めました。

まずlecromee氏は通信ログを確認するためのアプリ「pcapdroid」を自身の端末にインストールし、Swing VPNの動作をチェックしました。そのときの動画は以下の画像をクリックすると確認可能。Swing VPNがturkmenistanairlines.tmに約10秒ごとになんらかのリクエストを送信していることがわかります。



さらに調査を進めたところ、Swing VPNは「tm/flights/search」というフライト検索に関連しそうなエンドポイントを要求していることが判明。lecromee氏は「フライト検索は多くのデータベースとサーバーリソースを必要とする非常に集中的なタスクであるため、Swing VPNがサーバーのリソースにストレスを与え、通常のユーザーが必要なときにアクセスできないようにしていることは明らかです」と指摘。

さらに「10秒に1回のリクエストであればDDoS攻撃にはならないと思われるかもしれませんが、問題は攻撃実行者の数にあります。2023年6月初旬時点でSwing VPNは500万回以上インストールされており、10で割ったとしても1秒当たり50万リクエストが行われている可能性があるのです。おそらくPHPで書かれた航空会社の小さなサイトが処理する量としては非常に大きなものです」と述べました。



lecromee氏は「Swing VPNの作成者はさまざまなテクニックを使って悪意のある行動を難読化し、隠しています。これは、ストアからアプリをダウンロードした一般ユーザーに対する不誠実な行動だと私は考えています。純粋な欲から、罪のないユーザーの電話を自分たちの犯罪行為の道具として使っているのです」と締めくくっています。なお、Swing VPNはAndroid版とiOS版が配信されていますが、問題があるのはAndroid版だけだそうです。