Anomali Labs has found a new kind of malware(they call it IPStorm) that is controlled by peer-to-peer (p2p) communications rather than by a client-server model. The p2p network is established over the open-source InterPlanetary File System's (IPFS) p2p network. This is the first malware found in the wild that is using IPFS's p2p network for its command and control communication.
First found in May 2019, IPStorm currently targets Windows machines. Once infected, it allows the threat actor to execute arbitrary PowerShell code.
The malware is a large, with the unpacked binary coming in around 15MB in size. However, the code itself is split up into multiple Go packages.
This is novel malware in that it uses p2p for its administration. A p2p botnet is formed that propagates any communication one receives to the other members of the botnet. This obscures the malware's communications, and allows the malware to not continuously maintain communications with its contact in the botnet.
This p2p use presents another kind of problem for defenders. The use of it provides some protection against takedowns, since sinkholing the p2p network potentially could take down the whole IPFS network.
A p2p botnet is harder to establish than other kinds of communication. It may also be harder to detect since it is not an expected kind of communication and other p2p networks may be present in an enterprise.
IPFS includes support for bootstrapping, NAT-traversal, relays, peer discovery and pubsub functionality.
Anomali found that the malware has some simple antivirus (AV) evasion techniques. It uses sleeps, memory allocations and generation of random numbers.
To ensure the malware can connect to the p2p network, it adds a rule to the firewall. The rule supports the major method used by the malware to actually communicate with the other bots, which is the publish/subscribe model.
They also note that IPStorm uses the third-party package "single" (github.com/marcsauter/single). Single uses lock files to ensure the malware is running is only running one instance. For persistence, the malware will add an entry to "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run".
As to the size of the botnet, Anomali says that, "The botnet size is likely in the lower thousands because during a ten-hour collection, 2847 unique p2p nodes announced themselves with the identifier used by the malware and were added to the DHT. This number does not correspond [to] the number of bots in the botnet since the bot generates a new libp2p id each time it is started up but is a good estimate of the upper bound of the botnet size. The size of the botnet may be indicative of it still being in its early stage of evolution."
One threat actor has found a new way of doing things. Other actors may follow suit if it is successful, giving rise to a new headache for the security team.
— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.