Netskopeの SASE Summitにご参加ください 、あなたの近くの都市に来てください!今すぐご登録ください

  • セキュリティサービスエッジ製品

    高度なクラウド対応の脅威から保護し、あらゆるベクトルにわたってデータを保護します。

  • Borderless SD-WAN

    すべてのリモートユーザー、デバイス、サイト、クラウドへの安全で高性能なアクセスを自信を持って提供します。

  • プラットフォーム

    世界最大のセキュリティプライベートクラウドでの比類のない可視性とリアルタイムデータおよび脅威保護。

未来のプラットフォームはNetskopeです

インテリジェントセキュリティサービスエッジ(SSE)、クラウドアクセスセキュリティブローカー(CASB)、クラウドファイアウォール、次世代セキュアWebゲートウェイ(SWG)、およびZTNAのプライベートアクセスは、単一のソリューションにネイティブに組み込まれており、セキュアアクセスサービスエッジ(SASE)アーキテクチャへの道のりですべてのビジネスを支援します。

製品概要に移動
Netskopeの動画
ボーダレスSD-WAN:ボーダレスエンタープライズの新時代を先導

NetskopeボーダレスSD-WANは、ゼロトラストの原則と保証されたアプリケーションパフォーマンスを統合するアーキテクチャを提供し、すべてのサイト、クラウド、リモートユーザー、およびIoTデバイスに前例のない安全で高性能な接続を提供します。

Read the article
Borderless SD-WAN
Netskope は、データと脅威の保護、および安全なプライベートアクセスを実現するための機能を統合した、最新のクラウドセキュリティスタックを提供します。

プラットフォームを探索する
大都市の俯瞰図
  • 変身

    デジタルトランスフォーメーションを保護します。

  • セキュリティの近代化

    今日と明日のセキュリティの課題に対応します。

  • フレームワーク

    サイバーセキュリティを形作る規制の枠組みを採用する。

  • 政府と産業

    Netskope 、世界最大の代理店や企業がクラウドへの移行を保護するのに役立ちます。

最小の遅延と高い信頼性を備えた、市場をリードするクラウドセキュリティサービスに移行します。

NewEdgeの詳細
Lighted highway through mountainside switchbacks
アプリケーションのアクセス制御、リアルタイムのユーザーコーチング、クラス最高のデータ保護により、生成型AIアプリケーションを安全に使用できるようにします。

ジェネレーティブ AI の使用を保護する方法を学ぶ
Safely Enable ChatGPT and Generative AI
SSEおよびSASE展開のためのゼロトラストソリューション

Learn about Zero Trust
Boat driving through open sea
Netskopeは、クラウドサービス、アプリ、パブリッククラウドインフラストラクチャを採用するための安全でクラウドスマートかつ迅速な旅を可能にします。

Learn about Industry Solutions
Wind turbines along cliffside
  • 導入企業

    Netskopeは、フォーチュン100の25以上を含む世界中の2,000以上の顧客にサービスを提供しています。

  • カスタマーソリューション

    お客様のため、Netskopeでお客様の成功を確実にすべく、あらゆるステップを共に歩んでまいります。

  • トレーニングと認定

    Netskope training will help you become a cloud security expert.

私たちは、お客様が何にでも備えることができるように支援します

お客様を見る
Woman smiling with glasses looking out window
Netskopeの有能で経験豊富なプロフェッショナルサービスチームは、実装を成功させるための規範的なアプローチを提供します。

Learn about Professional Services
Netskopeプロフェッショナルサービス
Netskopeトレーニングで、デジタルトランスフォーメーションの旅を保護し、クラウド、ウェブ、プライベートアプリケーションを最大限に活用してください。

Learn about Training and Certifications
Group of young professionals working
  • リソース

    クラウドへ安全に移行する上でNetskopeがどのように役立つかについての詳細は、以下をご覧ください。

  • ブログ

    Netskopeがセキュリティサービスエッジ(SSE)を通じてセキュリティとネットワークの変革を可能にする方法を学びましょう。

  • イベント&ワークショップ

    最新のセキュリティトレンドを先取りし、仲間とつながりましょう。

  • 定義されたセキュリティ

    サイバーセキュリティ百科事典で知っておくべきことすべて。

セキュリティビジョナリーポッドキャスト

ボーナスエピソード2:SSEのマジッククアドラントとSASEを正しく取得する
MikeとSteveが、ガートナー®社のマジック・クアドラント™のセキュリティ・サービス・エッジ(SSE)、Netskopeの位置づけ、現在の経済情勢がSASEの取り組みに与える影響について語ります。

ポッドキャストを再生する
ボーナスエピソード2:SSEのマジッククアドラントとSASEを正しく取得する
最新のブログ

Netskopeがセキュリティサービスエッジ(SSE)機能を通じてゼロトラストとSASEの旅を可能にする方法。

ブログを読む
Sunrise and cloudy sky
Netskope AWSイマージョンデイワールドツアー2023

Netskopeは、Netskope製品の使用とデプロイについてAWSのお客様を教育および支援するために、さまざまなハンズオンラボ、ワークショップ、詳細なウェビナー、およびデモを開発しました。

Learn about AWS Immersion Day
AWS パートナー
セキュリティサービスエッジとは何ですか?

SASEのセキュリティ面、ネットワークとクラウドでの保護の未来を探ります。

Learn about Security Service Edge
Four-way roundabout
  • 会社概要

    クラウド、データ、ネットワークセキュリティの課題の先取りをサポート

  • ネットスコープが選ばれる理由

    クラウドの変革とどこからでも機能することで、セキュリティの機能方法が変わりました。

  • リーダーシップ

    ネットスコープの経営陣はお客様を成功に導くために全力を尽くしています。

  • パートナー

    私たちはセキュリティリーダーと提携して、クラウドへの旅を保護します。

データセキュリティによる持続可能性のサポート

Netskope は、持続可能性における民間企業の役割についての認識を高めることを目的としたイニシアチブであるビジョン2045に参加できることを誇りに思っています。

詳しくはこちら
Supporting Sustainability Through Data Security
Highest in Execution. Furthest in Vision.

ネットスコープは2023年Gartner®社のセキュリティ・サービス・エッジ(SSE)のマジック・クアドラント™でリーダーの1社として評価されました。

レポートを読む
ネットスコープは2023年Gartner®社のセキュリティ・サービス・エッジ(SSE)のマジック・クアドラント™でリーダーの1社として評価されました。
思想家、建築家、夢想家、革新者。 一緒に、私たちはお客様がデータと人々を保護するのを助けるために最先端のクラウドセキュリティソリューションを提供します。

当社のチーム紹介
Group of hikers scaling a snowy mountain
Netskopeのパートナー中心の市場開拓戦略により、パートナーは企業のセキュリティを変革しながら、成長と収益性を最大化できます。

Learn about Netskope Partners
Group of diverse young professionals smiling

GoodWill Ransomware? Or Just Another Jasmin Variant?

Jun 02 2022

Summary

In March 2022, researchers spotted a new ransomware family named GoodWill, with a new method to collect the ransom. Instead of requesting payment through crypto coins like other threats such as Night Sky or Hive, GoodWill requests that its victims help vulnerable people by following a sequence of steps, such as donating clothes, feeding less fortunate children, or providing financial assistance to hospital patients.

Part of GoodWill Ransomware Demands. Source: CloudSEK.

To prove these actions, the attacker requests the victim to record the good deeds and post the images/videos on Facebook, Instagram, WhatsApp or other social media.

But is GoodWill really a new ransomware family? After analyzing a few samples, Netskope Threat Labs found that this threat is 100% based on an open-source ransomware named Jasmin, which is a red team tool that can be used to simulate real ransomware attacks.

Aside from GoodWill, we also discovered other ransomware variants that were sourced from Jasmin. However, it is unclear if these files are weaponized samples, given the nature of the tool and the fact that we have not seen any evidence that attackers are using GoodWill or any of the variants we found in the wild. It is also possible that attackers could use this source code to easily create weaponized variants.

In this blog post, we will analyze the Jasmin ransomware tool and compare the code / operation with other samples found in the wild, including GoodWill.

Open-Source Project

Jasmin Ransomware is a tool that can be used by security teams to simulate ransomware attacks. It provides teams all the necessary infrastructure to conduct an attack, such as the source code to generate payloads, and front/back-end files for the web server.

Once running, Jasmin collects information about the environment and generates the key that will be used in the encryption process, sending this information to the C2 server. To decrypt the files, the victim must contact the attacker, who is in possession of the key.

Jasmin ransomware workflow.

The project contains the source code for the encryptor and the decryptor, which were created with C#. It also provides all the files related to the web panel, which uses PHP and MySQL.

Jasmin project folders.

Jasmin payloads can be generated through Visual Studio 2019 or later, and the developer suggests the usage of ngrok for port forwarding in the C2 server side.

Instructions to generate the payload.

Jasmin also provides a dashboard that the attacker can use to access information about infected devices and retrieve the decryption keys. The webpage is password-protected.

Jasmin dashboard login page.

When setup for the first time, Jasmin populates the database with dummy data. The dashboard provides details about infected devices, such as the machine name, username, IP address, date of infection, location, OS and the decryption key.

Jasmin ransomware dashboard.

Jasmin “Ransom Note”

Let’s take a look at what happens when a machine is infected by Jasmin ransomware. Within the “Web Panel” folder on GitHub, there’s a file named “alertmsg.zip”, which is downloaded by the ransomware upon execution. The ZIP file contains an offline web page that is displayed to the user after the infection.

“alertmsg.zip”

In the main page, there’s a message saying to the victim to not be worried, as the files are safe.

Jasmin’s main page of the ransom note.

The “What Happened to My Computer?” button leads to a description of Jasmin, stating that all user files were encrypted.

Jasmin description displayed by the ransom page.

In the following page, Jasmin ransom states that it’s not seeking money, but to perform good actions for less fortunate people. 

These good actions required by Jasmin are divided into three different activities. The first one asks the victim to donate new clothes or blankets.

First activity required by Jasmin.

The second activity requires Jasmin victims to bring five less fortunate children under 13 years old to a restaurant and let them order the food they want.

Second activity required by Jasmin.

The third and final activity requires victims to provide medications to hospital patients.

Third and final activity required by Jasmin.

For proof, the Jasmin ransomware requests evidence of all activities through photos, videos and audios that must be published on a social network, with the links to the posts provided via email.

How to prove the activities to Jasmin.

Since Jasmin is a red team tool, it’s possible that the developer created these ransom activities as a joke. Regardless of the real intent, these are the steps built into the Jasmin ransomware, which are being replicated by the variants, such as GoodWill.

Last page of Jasmin ransom note.

Jasmin Source Code

Looking at the source code we can find some variables that can be customized, such as the C2 server address and the URL where the compressed ransom note is stored, as well as the path in which this file will be saved.

Jasmin configuration.

At the main function, we have the following sequence:

  1. Generates the password used in the encryption process;
  2. Generates a unique system ID by combining the VolumeSerialNumber of all available instances;
  3. Checks if there’s internet connection by sending a ping to Google;
  4. Uploads information to the C2 server;
  5. Encrypt files in the device in multiple threads;
  6. Download and display the ransom note, which we demonstrated earlier.
Jasmin ransomware main function.

The password created for the encryption process is generated within the main function. Jasmin uses the RNGCryptoServiceProvider class to create a random string.

Jasmin password generation.

Despite the random password generated by this function, Jasmin overwrites the variable with a combination of two hardcoded values and the system ID.

Code reassigning the encryption password.

This means that you don’t need a password to decrypt the files, just the system ID, which can be retrieved by using the same function.

If there’s an internet connection, Jasmin uploads information about the infected device such as the computer name, username, the generated system ID, the OS name, and the time of the infection. Also, Jasmin retrieves the external IP address with ipfy API and geolocation info via external library “IpInfo”.

Data that is uploaded to the C2 server

Jasmin encrypts files using AES-256 in CBC mode through RijndaelManaged class within a function named “AES_Encrypt”, which receives the bytes to be encrypted and the password as parameters. Jasmin does not overwrite the file, but deletes and creates a new one with “.jasmin” as extension.

Process to encrypt files in Jasmin ransomware.

Jasmin also provides the source code for the decryptor, which retrieves encrypted files using the same random password generated previously, which is sent to the C2 server. 

Jasmin decryptor.

Also, it’s important to notice that Jasmin doesn’t have any mechanism to avoid recovery of the files via Shadow Copies or any other way.

GoodWill and Other Variants

When we compare compiled binaries, we can observe that GoodWill is not a new ransomware family, but a slightly modified version of Jasmin.

Comparison between Jasmin and GoodWill entry point.

Among the differences, we have “.gdwill” extension being used by encrypted files rather than “.jasmin”.

Different extensions across Jasmin and GoodWill.

The GoodWill ransomware contains an external address for C2, which was offline at the time of this analysis. The rest of the variables are exactly the same as the dummy Jasmin payload we generated for comparison.

Jasmin and GoodWill config variables.

GoodWill ransomware also changed the name in every single page on the ransom HTML.

Jasmin vs GoodWill ransom page.

Also, GoodWill contains the same flaw as Jasmin by overwriting the encryption password with a combination of two hardcoded values and the system ID. This means that the files can be decrypted without contacting the attacker, reinforcing the idea that this is not a real threat.

GoodWill uses a predictable password to encrypt files.

Through a retro-hunt on VirusTotal, we have identified at least 5 Jasmin ransomware variants aside from GoodWill, named Silver, Soviet (ssenc), Xlx, Grrr, and Zeus.

Jasmin ransomware variants.

Like GoodWill, these variants contain only minor modifications from the original Jasmin source code. One of the changes is the usage of base64 encoding in the malware strings in some variants, such as Silver.

Base64 encoded strings on Silver ransomware.

Also, some variants like Soviet fixed the password problem found in Jasmin, by using the random password for encryption.

Soviet ransomware using a random password for encryption.

At this point, it’s unclear if these samples were created to be used in real attacks or in threat simulation scenarios. All the hashes for these variants can be found in our GitHub repository.

HiddenTear Ransomware

We noticed that many anti-virus vendors are classifying Jasmin ransomware as HiddenTear.

VirusTotal classifications for Jasmin ransomware.

Like Jasmin, HiddenTear is a ransomware developed in C# and released on GitHub as a proof-of-concept in 2015. It was later used by threat actors in the wild, including by CARBON SPIDER.

Source code of HiddenTear ransomware available on GitHub.

Jasmin ransomware is likely being detected as HiddenTear because the developer reused some of its functions, like the one to encrypt files using AES.

Comparison between HiddenTear and Jasmin ransomware.

The only difference in this function is that Jasmin is using a random password in the “saltBytes” variable. In the image above, we can even observe the HiddenTear original variable commented in Jasmin’s code.

Conclusion

In this post, we demonstrated that GoodWill ransomware is just a rebranding of Jasmin open-source ransomware tool. Netskope Threat Labs also found more Jasmin ransomware variants in the wild, but it’s unclear if these files were created by threat actors or if they are simply payloads generated to test security controls, especially because most of the files are using ngrok for C2 communication. We also found code reuse between HiddenTear and Jasmin, which is likely the reason for inaccurate classifications from some anti-virus engines.

Protection

Netskope Threat Labs is actively monitoring this campaign and has ensured coverage for all known threat indicators and payloads. 

  • Netskope Threat Protection
    • ByteCode-MSIL.Ransomware.Jasmin
  • Netskope Advanced Threat Protection provides proactive coverage against this threat.
    • Gen.Malware.Detect.By.StHeur indicates a sample that was detected using static analysis
    • Gen.Malware.Detect.By.Sandbox indicates a sample that was detected by our cloud sandbox

IOCs

All the IOCs related to this campaign and a Yara rule can be found in our GitHub repository.

author image
Gustavo Palazolo
Gustavo Palazolo is an expert in malware analysis, reverse engineering and security research, working many years in projects related to electronic fraud protection. He is currently working on the Netskope Research Team, discovering and analyzing new malware threats.