GoPlus: A Very Necessary Guide to Protection against Phishing on Solana

GoPlus Security
9 min readJan 10, 2024

Background

Unless you have been living under a rock (not an NFT), you can’t help but notice how Solana has surged this past period. So much so that, at one point, it surpassed BNB to rank in the top three globally. This huge appreciation has attracted a large number of active players, and more significantly, it has drawn the attention of numerous Wallet Drainer teams from EVM chains to Solana. Consequently, phishing sites and airdrop scams targeting Solana have been deployed on a large scale, resulting in substantial losses for many users.

The GoPlus security team recently analyzed several phishing incidents on Solana and found that scammers are exploiting the currently inadequate security infrastructure of some Solana wallets.

They have rapidly upgraded their tactics to include airdrop baits and social account thefts. In response, GoPlus has summarized the following common Solana phishing attack methods to help users effectively avoid such incidents and reduce asset losses. As always, the aim is to empower users with knowledge, helping them steer clear of such scams and protect their digital assets.

Attack Types

In recent phishing incidents, GoPlus has observed that the scammers mostly use tactics like baiting with airdrop claims, fake project websites, free lotteries, and guiding through NFT airdrops. These methods are almost identical to the common phishing approaches on EVM chains. The main difference is that the scammers utilize the different mechanisms of Solana and EVM to conduct phishing activities through various token or authorization transfer methods. Here are several observed transfer attack methods.

Inducing Transfer of Native Tokens ($SOL)

This type of attack is the simplest. After a user connects their wallet, the scammers calculate the current balance of all $SOL tokens. They then utilize the SystemProgram.transfer function to directly complete the token transfer. For example, one phishing website displayed a Swap interface UI. Users often believe they can purchase certain tokens at a very low price.

However, in reality, the operation executed is just a simple transfer of $SOL to the scammers' wallets.

Inducing the Transfer of Multiple Tokens

Apart from stealing the native token $SOL, scammers can steal all the token assets currently held in a wallet in a single transaction signature. On Solana, each transaction can consist of multiple instructions, each of which can complete a separate logic, such as transfers, program interactions, and account creations. This means that scammers are fully capable of inserting multiple operation instructions into the same transaction. For example, if a user holds three different tokens, the phishing website only needs to insert three separate transfer instructions for each token into the same transaction in the code. This way, they don’t have to separately steal a specific asset but can use this feature to perform a one-time wallet heist. Similar to the first type of inducement, hackers deceive users into clicking buttons to execute transactions through various means.

This type of transaction will transfer away all assets at once, not only including the native $SOL tokens but also NFT-type assets and token-type assets. Here, the scamming team primarily utilizes the Solana SPL Token’s createTransferCheckedInstruction for constructing transfer instructions for non-native assets.

Phantom Transaction Simulation
Backpack Transaction Simulation

Inducing Transfer of Token Account Ownership

Besides direct token transfers, GoPlus has also discovered that some phishing websites use the createSetAuthorityInstruction operation, packaging this instruction into transactions. The essence of this operation is to transfer the ownership of tokens on an account. Solana’s account model differs from EVM’s. For every token, each account address has a dedicated Token Account associated with it. This Token Account has an owner, which is the current account, and it records the balance and relevant information of the corresponding token.

The createSetAuthorityInstruction operation can directly transfer the ownership of the current token to another account, which effectively results in transferring all the tokens to that account. We conducted experiments with this operation on both Phantom and Backpack wallets. Fortunately, both wallets provided special reminders and warnings.

Even if the user clicks the “Ignore and proceed anyway” option, the balance changes can still be displayed through transaction simulation.

Caution

The three types of attack methods mentioned above can now mostly be predicted by mainstream Solana wallets through transaction simulation. Users can clearly see the changes in balance after clicking, so as long as users carefully review each transaction’s outcome, they can relatively avoid some phishing risks. This is because the official Solana JSON RPC interface provides the capability for “transaction simulation.” However, with the advancement of phishing scam techniques, we have also identified some very subtle phishing tactics.

Token Authorization Deception

For users familiar with EVM, token authorization is a common operation. However, it works differently on Solana. In the Solana network, scammers exploit users’ misunderstandings of the EVM authorization mechanism to carry out scams. Phishing websites induce users to perform seemingly normal interactive operations, but in reality, they execute an authorization transaction, Delegate, behind the scenes through createApproveCheckedInstruction.

The key to this method is that it doesn’t directly transfer assets but grants attackers the authority to control the user’s assets. These attacks are often hidden behind enticing interfaces, such as pretending to vote or stake, but in reality, they are stealthily changing the account’s authorization settings.

Once attackers gain control over a user’s assets, they can manipulate these assets at any time, including transferring or trading them. This type of attack is often not easily detected immediately because it does not result in an immediate transfer of assets. These attacks typically have the widest impact, as attackers wait until a sufficient number of users are duped and the amount involved is large enough before they begin transferring tokens. Users need to be particularly cautious about any request to change authorization settings, especially on unfamiliar websites or applications. Changes in authorization can be seen through transaction simulation, so users need to be wary not only of direct changes in token balances but also of the phishing risks posed by changes in authorizations.

Durable Nonce Transaction Signature Deception

Durable Nonce is a feature in the Solana blockchain that allows for the creation of a special account to store a persistent, non-expiring nonce value. In Solana, each transaction requires a recent blockhash as a part of it, used to ensure the timeliness and uniqueness of the transaction. Normally, this blockhash expires after about 150 blocks, rendering the transaction unprocessable. The Durable Nonce mechanism, by providing a non-expiring nonce value, allows for the creation of transactions that remain valid over a longer period.

In phishing scams, scammers may abuse the Durable Nonce mechanism to trick users into signing transactions that appear normal but contain malicious operations. Since a Durable Nonce is used, these transactions do not expire due to an outdated blockhash, giving scammers a longer window to execute the transaction. For example, scammers might design a transaction disguised as a legitimate operation, such as participating in an airdrop or event, but in reality, the transaction contains instructions to transfer the user’s assets to the scammer. Unsuspecting users sign such transactions, only to find that no such transaction has occurred on the block, as the attackers have merely obtained the transaction’s signature, not broadcasting it to the blockchain. They can broadcast the transaction at any later time. However, regardless of whether the transaction occurs, we find that this type of signature does not affect the results of transaction simulation. Several mainstream wallets can still simulate and analyze the transaction itself and inform the outcome, making our previous judgment on transaction simulation a valid methodology.

Nevertheless, we have discovered a highly covert and complex attack method that can’t be detected by transaction simulation.

Contract Upgrade to Evade Transaction Simulation Detection

This method combines the Durable Nonce and a unique feature of Solana contracts — upgradability. The potential danger of this attack method is further increased due to the upgradable nature of contracts. The Durable Nonce mechanism, by creating an account that holds a long-term valid nonce value, allows transactions to remain valid over a longer time window. This means that even if a user does not immediately broadcast the transaction to the blockchain at the time of signing, it can still be broadcast and executed at any future time.

Attackers can take advantage of this by first having users sign a seemingly normal contract transaction, which appears harmless at the time of signing, even to mainstream wallets and transaction simulation tools. However, after the user signs the transaction, the attackers successfully obtain the Durable Nonce signature. At this point, they do not rush to broadcast the transaction to the blockchain but instead use Solana’s contract upgrade feature to change the originally normal contract into a malicious version. This malicious contract can perform operations such as asset transfer. After the upgrade, the attackers then broadcast the signed transaction to the blockchain to execute the malicious operation, achieving their goal. This type of attack is particularly covert, posing a significant risk to users, as even experienced users may not be able to identify potential risks when signing transactions. To prevent this kind of attack, users need to carefully review the reputation and history of contracts, maintain a skeptical attitude towards any unusual transaction behaviors, and avoid interacting with contracts from unknown sources or newly established ones.

We also hope that all Solana wallets pay attention to this attack method and promptly provide effective alerts and protection for user assets on the wallet side.

Preventive Measures

When facing phishing attacks on the Solana network, here are some comprehensive preventive measures that can help minimize risks:

  1. Enhance security awareness: Always stay vigilant for any cryptocurrency-related transactions. Understand the common methods of Solana phishing attacks, such as inducing token transfers, token account ownership transfers, and transaction signature deceptions.
  2. Carefully check transaction details: Before conducting any transaction, carefully check the specifics of the transaction. Be extra cautious with transactions using Durable Nonce or involving contract interactions.
  3. Use transaction simulation features: Utilize the transaction simulation features provided by wallets, carefully reviewing the results. However, be aware that this is not a foolproof protective measure, as some transaction simulations may fail.
  4. Pay attention to authorization changes: Be vigilant for operations that change the token balance post-transaction. Be especially cautious about authorization change operations on unfamiliar websites or apps.
  5. Regularly revoke unnecessary authorizations: Use Solana’s Revoke tool to regularly cancel some unnecessary authorizations, ensuring the safety of your assets.
  6. Regularly update your knowledge: Regularly update your knowledge about blockchain and cryptocurrency, especially regarding new phishing methods and prevention strategies.
  7. Keep software updated: Keep the wallets and related software you use up-to-date to ensure you have the latest security features and fixes.
  8. Backup & protect private keys: Safeguard your private keys and important information, avoiding storing or sharing them in insecure places.

Lastly, the GoPlus security team calls on Solana and its ecosystem to be more concerned about user safety, to accelerate the #buidling of user safety infrastructure, and to provide a safer transaction environment for users, thereby enabling stability and long-term prosperity for its ecosystem.

We hope you found this guide useful, and we hope it helps improve your user security journey. Follow us to stay up to date on user security and if you really and truly want to keep your precious digital assets. Crypto moves at lightning speeds, and so do malicious actors.

--

--

GoPlus Security

Empowering a #SaferWeb3 with user-driven, open access security solutions. Championing user education for a fortified front against adversaries.