SOC 2 Control Implementation Guide

Security Architecture

Malware and Unauthorized Software Control for SOC 2

Anti-malware and endpoint detection are deployed and monitored on endpoints and supported production workloads, and unauthorized software is prevented, detected, and responded to.

Use this guide to put the control into operation, decide what records to retain, and check that an auditor can trace the evidence back to the work your team performed.

Maintained by GreenHat Security · Reviewed August 21, 2026

What this control should accomplish

Malicious and unapproved software is prevented or detected across covered endpoints and production workloads, and actionable detections reach an owner who investigates and records the result.

First SOC 2 program

A credible starting point

Deploy centrally managed endpoint protection to company devices and supported server workloads, enable real-time protection and tamper controls, restrict ordinary software installation where practical, and route alerts into an owned response channel rather than an unattended mailbox.

As the company scales

Make it repeatable

Add application control for high-risk populations, integrate detections with security monitoring and case management, measure unhealthy agents and coverage gaps, and automate isolation or containment only after safe testing and clear escalation rules.

How to implement Malware and Unauthorized Software Control

  1. 1

    Define the protected population

    Identify company endpoints and supported production workloads that need malware protection, including operating-system limitations and an explicit handling approach for uncovered systems.

    You should end up with: A coverage inventory that reconciles assets with enrolled and healthy protection agents.

  2. 2

    Configure prevention and tamper controls

    Enable real-time scanning, behavioral detection, signature and engine updates, tamper protection, quarantine, and appropriate exclusions; restrict who can disable or modify these settings.

    You should end up with: Policy configuration and administrator-role evidence for malware prevention.

  3. 3

    Monitor agent health and detections

    Alert on malware events, disabled or stale agents, failed updates, repeated exclusions, and unprotected assets, and route each actionable event to an accountable responder.

    You should end up with: Health and detection dashboards plus alert-routing configuration.

  4. 4

    Investigate and close alerts

    Record triage, affected host and user, containment, removed artifacts, cause, and final disposition, including a reason when a detection is considered benign.

    You should end up with: Completed investigation records linked to original detections and remediation actions.

  5. 5

    Control unauthorized software

    Maintain visibility into installed software, restrict installation for higher-risk devices and workloads, and investigate tools that are prohibited, unlicensed, unsupported, or inconsistent with job need.

    You should end up with: Software inventory findings, restriction settings, and removal or exception records.

Evidence to keep, and what it should prove

Build the evidence set in three layers: what defines the control, who approved or reviewed it, and what proves it operated. Collect operating records when the work happens so they remain dated, attributable, correctly scoped, and traceable to the underlying activity.

Before sharing, remove unrelated personal or customer data, never expose passwords, tokens, or secret values, preserve enough source context to authenticate the record, and use the secure exchange approved for the engagement.

Operating / technical evidence

Dated proof that the control actually ran, such as tickets, logs, settings, exports, reports, and test results.

EDR/anti-malware dashboard

  • Confirm what the record proves

    The current covered endpoint and workload population reports to the protection service with active policy, healthy agents, current engines, and visible coverage gaps.

  • Include this context

    Asset and owner

  • Include this context

    Operating system or workload type

  • Include this context

    Policy assignment

  • Include this context

    Agent and engine health

  • Include this context

    Protection status

  • Include this context

    Last check-in timestamp

Weak evidence to avoid

A dashboard showing a high protection percentage without asset identities, missing agents, policy assignments, health details, or last check-in times.

malware alerts

  • Confirm what the record proves

    Every detected malicious or suspicious event records the affected asset and user, detection detail, severity, protective action, assigned responder, and final disposition.

  • Include this context

    Alert ID and timestamp

  • Include this context

    Asset and user

  • Include this context

    Detection and severity

  • Include this context

    Preventive or containment action

  • Include this context

    Responder

  • Include this context

    Disposition

Weak evidence to avoid

An alert screenshot with a threat name but no asset, user, event ID, containment action, investigator, or final disposition.

unauthorized software detections

  • Confirm what the record proves

    Installed or executed software outside approved need is detected on an attributable asset and is investigated, removed, restricted, or formally excepted.

  • Include this context

    Detection ID and date

  • Include this context

    Asset and owner

  • Include this context

    Software and version

  • Include this context

    Detection basis

  • Include this context

    Decision

  • Include this context

    Removal or exception status

Weak evidence to avoid

A generic prohibited-software list with no actual detection, affected asset, owner, decision, removal, or exception record.

remediation tickets

  • Confirm what the record proves

    Malware, unhealthy protection, and unauthorized-software findings were assigned, contained or corrected, validated, and closed with a reasoned outcome.

  • Include this context

    Ticket and alert ID

  • Include this context

    Affected asset

  • Include this context

    Assigned responder

  • Include this context

    Containment or correction

  • Include this context

    Completion timestamp

  • Include this context

    Validation and closure reason

Weak evidence to avoid

A closed ticket saying ‘resolved’ without the originating alert, affected asset, containment, removed software, validation, or closure reason.

Which records should you prepare for the audit?

Type 1

Evidence at the as-of date

As of the selected date, retain the complete current protection-agent and software coverage export, effective prevention policies, and the latest malware or unauthorized-software investigation with validated closure.

Type 2

Evidence across the review period

Include every covered endpoint and supported workload at each required health review, every agent disablement, stale check-in, failed update, malware alert, unauthorized-software detection, suppression, benign disposition, quarantine, containment, remediation, and approved exception during the review period.

Completeness check

Reconcile the complete endpoint and supported-workload inventory to healthy protection agents, then reconcile native alert and software-detection exports, including suppressed and benign records, to response tickets and verified final state.

Build the record set from

  • Asset and device inventory
  • Endpoint and workload protection platform
  • Device management and software inventory
  • Security monitoring and alert routing
  • Incident and remediation ticketing
  • Application-control or exception service

Keep these fields for each record

  • Asset and owner
  • Agent, policy, and health state
  • Alert or detection ID
  • Event and response timestamps
  • Responder and action
  • Disposition, validation, or exception

How an auditor may test this control

Use this checklist to prepare for procedures an auditor may perform. The exact steps and sample selection depend on your engagement scope and the service auditor's professional judgment.

  • Confirm the intended control outcome

    Determine whether the control is designed to achieve this result: Malicious and unapproved software is prevented or detected across covered endpoints and production workloads, and actionable detections reach an owner who investigates and records the result.

  • Confirm ownership and operating cadence

    Compare the documented owner with the intended role (Infrastructure / Security Operations / IT), then compare dated records with the stated cadence: Continuous/ongoing; periodic review by risk.

  • Establish the complete audit record set

    Reconcile the complete endpoint and supported-workload inventory to healthy protection agents, then reconcile native alert and software-detection exports, including suppressed and benign records, to response tickets and verified final state.

  • Prepare the as-of-date evidence for a Type 1 engagement

    As of the selected date, retain the complete current protection-agent and software coverage export, effective prevention policies, and the latest malware or unauthorized-software investigation with validated closure.

  • Prepare period evidence for a Type 2 engagement

    Include every covered endpoint and supported workload at each required health review, every agent disablement, stale check-in, failed update, malware alert, unauthorized-software detection, suppression, benign disposition, quarantine, containment, remediation, and approved exception during the review period.

  • Inspect the operating / technical evidence

    Dated proof that the control actually ran, such as tickets, logs, settings, exports, reports, and test results.

    • Inspect EDR/anti-malware dashboard

      For each selected record, confirm it demonstrates The current covered endpoint and workload population reports to the protection service with active policy, healthy agents, current engines, and visible coverage gaps.

      • Asset and owner
      • Operating system or workload type
      • Policy assignment
      • Agent and engine health
      • Protection status
      • Last check-in timestamp
    • Inspect malware alerts

      For each selected record, confirm it demonstrates Every detected malicious or suspicious event records the affected asset and user, detection detail, severity, protective action, assigned responder, and final disposition.

      • Alert ID and timestamp
      • Asset and user
      • Detection and severity
      • Preventive or containment action
      • Responder
      • Disposition
    • Inspect unauthorized software detections

      For each selected record, confirm it demonstrates Installed or executed software outside approved need is detected on an attributable asset and is investigated, removed, restricted, or formally excepted.

      • Detection ID and date
      • Asset and owner
      • Software and version
      • Detection basis
      • Decision
      • Removal or exception status
    • Inspect remediation tickets

      For each selected record, confirm it demonstrates Malware, unhealthy protection, and unauthorized-software findings were assigned, contained or corrected, validated, and closed with a reasoned outcome.

      • Ticket and alert ID
      • Affected asset
      • Assigned responder
      • Containment or correction
      • Completion timestamp
      • Validation and closure reason
  • Trace the control from design to operation

    Use the categories that apply to this control: connect any policy or design artifact to its approval or review record, then trace a selected operating record through execution, result, and any exception or remediation.

Common implementation and evidence gaps

  • Agents are installed but unhealthy, outdated, disabled, or missing from newly issued and replacement devices.
  • Detections are delivered to an email address or console that no one owns or monitors consistently.
  • Production servers, developer workstations, or alternate operating systems are omitted without an explicit risk decision.
  • Detections are closed without documenting whether malware was removed, the host was contained, or the alert was benign.
  • The company has endpoint protection but no usable inventory of unauthorized or unsupported software.

Before you call this control ready

  • Does the protected-asset count reconcile with the endpoint and production-workload inventory?
  • Can users or local administrators disable protection without detection?
  • Would a stale agent, failed update, or new malware detection reach a named responder?
  • Can sampled alerts be traced through triage, containment, remediation, and final disposition?
  • How are prohibited, unsupported, or unnecessary applications identified and removed?

Trust Services Criteria references

These identifiers help you navigate related Trust Services Criteria. They do not reproduce the criteria or prove that this control fully addresses them in your environment.

  • CC6.8
  • CC7.1
  • CC7.2

Confirm final scope, mappings, and testing expectations with your service auditor. SOC 2® is an AICPA trademark; GreenHat Security is not affiliated with or endorsed by AICPA.