CMMC Practice 3.4.7 – Ports, Protocols, Programs Functions, and Services

Home / CMMC / CMMC Practice 3.4.7 – Ports, Protocols, Programs Functions, and Services
Ports, Protocols, Programs Functions, and Services

TL;DR: Simplifying Essential Features for Compliance

The Goal: Restrict and disable nonessential programs, ports, protocols, functions, and services to reduce your system’s attack surface and improve security.

Challenges: Documentation—not implementation—is where most companies fall short. You must define “essential” clearly and apply it consistently.

What to Do:

Inventory: Identify everything running on your systems.

Policies: Establish strict definitions and approval processes for what’s “essential.”

Disable & Monitor: Remove unused features (e.g., bloatware, FTP, SMBv1) and actively monitor for unauthorized changes.

Document: Keep thorough records.

Configuration Management Practice 3.4.7 is one of those requirements that seems pretty straightforward—restrict, disable, or prevent the use of nonessential programs, functions, ports, protocols, and services. Easy, right? The goal is simple: minimize security vulnerabilities by reducing your system’s attack surface to only what’s necessary for operations.

Here’s the kicker: Most companies don’t struggle with implementing this practice—they struggle with the documentation. When it’s time to show evidence, things can get messy. You need to define exactly what’s “essential” and “nonessential” and provide proof that you’ve applied these definitions consistently across your systems.

Where to Start

Inventory and Assessment

1. Take a complete inventory of the programs, ports, protocols, and services running in your systems.

2. Define what “essential” means for your organization. Remember, this will vary depending on your specific operations. Document these definitions and implement strict approval processes for enabling or disabling features.

How to Determine What is Essential

Determining necessity requires evaluating a service’s role in your organization. If it directly supports critical operations, it’s essential. If not, it’s likely nonessential. Conduct regular reviews to ensure your systems run only what’s needed, reducing risks and simplifying compliance.

Each program, function, port, protocol, and service is evaluated using the following:

01020304
Assess Business NeedsEvaluate Security Impacts Consult Policies Review Usage
Does the port, protocol, program, function, or service directly support critical operations or compliance requirements?Every service or protocol in your network introduces potential security risks. Prioritize the removal or restriction of those with high risk but little business value. By addressing these risks, you minimize vulnerabilities and protect your operations from exploitation.
Does enabling the element introduce vulnerabilities? If so, is the risk justified by its value?
Align with organizational policies to determine if the element is permitted or necessary.Monitor system logs to confirm if the port, protocol, program, function, or service is actively used and required.

By systematically applying these criteria, a comprehensive and defensible list of essential elements is created, while disabling nonessential ones.

Pro Tip:

Add an Appendix to your System Security Plan (SSP) listing all essential programs, ports, protocols, and services.

Anything not listed is considered nonessential by default.


      Change Management Process

    Any changes to ports, protocols, programs, functions, or services must go through the Change Management Process to ensure consistency, security, and alignment with organizational policies.

    Before pushing changes live, test them in a controlled environment to avoid disruptions. Validate that disabling features doesn’t negatively affect operations.

    Disabling Nonessential Elements

    Default operating systems often come with unnecessary programs—think Candy Crush, Skype, or FaceTime—that are irrelevant for most business operations. These bloatware programs can:

    • Consume resources.

    • Introduce vulnerabilities.

    • Complicate compliance efforts.

    Manage Default Programs

    • Remove unnecessary apps during system imaging or setup using automation tools like PowerShell (Windows) or Jamf (macOS).

    • Establish a baseline configuration that excludes all nonessential software.

    • Periodically audit for reintroduced programs and unauthorized installations.

    Host-level changes are more secure than relying solely on firewalls.

    Remove or disable unused or outdated features like:

    Bloatware: Preinstalled apps such as games, entertainment software, or trial programs.

    Legacy Protocols: FTP, SMBv1, or Telnet.

    Unneeded Services: Peer-to-peer networking or unused network services.

    How Ports, Programs, Services, Functions, and Protocols Relate to Each Other

    AspectPortsProgramsProtocolsServicesFunctions
    PurposeEndpoint for communication.Executes tasks or processes.Defines rules for communication.Provides features or capabilities.Performs specific tasks.
    ExamplesPort 443 (HTTPS), Port 22 (SSH)Apache, Exchange, OpenSSLTCP, UDP, HTTP, FTPWeb service, email serviceLogging, encryption, authentication
    DependencyUsed by protocols and services.Executes services and functions.Supports services.Often relies on programs and protocols.Often integrated into programs or services.
    Layer of OperationNetwork layer.Application layer.Network and transport layers.Application layer.Application or system layer.

    Services

    A service is a capability or feature provided by a system or application that allows communication or interaction over a network or within a system. They often rely on specific ports and protocols to operate and can include functionality like file sharing, email, or database access. Services are typically outward-facing, enabling communication and interaction over a network

    Examples:

    Web Services: Hosting websites over HTTP/HTTPS.

    File Sharing Services: Using SMB (Server Message Block) for file transfers.

    Email Services: SMTP for sending emails, IMAP/POP for retrieving emails.

    Key Characteristics:

    • Operates on defined ports (e.g., port 80 for HTTP).

    • Can involve one or more protocols (e.g., HTTP or FTP).

    • Typically provided by server processes or software running on a machine.


    Functions

    A function refers to a specific operation or role performed by a system or software. Functions may be part of a service or an independent action within an application or process.
    Functions are internal operations or capabilities within a system, focusing on specific tasks or processes (e.g., encrypting data, authenticating users).

    Examples:

    Authentication Function: Verifying user credentials.

    Data Encryption Function: Encrypting data in transit or at rest.

    Logging Function: Recording system activity for auditing purposes.

    Key Characteristics:

    • Functions are broader than services and can include actions that don’t involve external communication.

    • Functions often implement specific security requirements (e.g., access control, encryption).

    • May not directly rely on ports or protocols but are crucial for system integrity and security.


    Protocols

    Protocols are standardized sets of rules that determine how data is transmitted and received over a network.

    They specify:

    • How communication is initiated, maintained, and terminated.

    • The format and structure of the data being exchanged.

    • Error detection and correction mechanisms.

    Protocols Support Services:

    • Services use protocols as the underlying mechanism for communication.

    • Example: A web service (service) uses HTTP or HTTPS (protocols) to transmit data over the network.


    Ports

    Ports are numerical identifiers assigned to specific services or processes running on a computer to facilitate communication.

    • They act as “endpoints” for network connections, allowing data to be sent to the correct application or service.

    • Ports work in tandem with protocols to enable services (e.g., HTTPS uses port 443 and the TLS protocol).

    The “deny all, allow by exception” strategy is a highly effective security approach for managing ports. By default, all ports are blocked, and only those explicitly needed for essential operations are allowed. This minimizes the attack surface and reduces the risk of unauthorized access or exploitation.


    Advantages of this Strategy

    Reduced Attack Surface: By default, no unnecessary ports are open to attackers.

    Improved Visibility: Only explicitly required traffic is allowed, making it easier to monitor and troubleshoot.

    Enhanced Compliance: Meets many regulatory and security framework requirements, such as NIST 800-171 and CMMC.


    Example Essential Ports:

    Port Number(s)Service/ProtocolDescription
    80HTTPUsed for web traffic, essential for accessing websites on the internet.
    443HTTPSSecures HTTP traffic, providing encrypted web access.
    445SMBUsed for Windows file sharing and various Windows services.
    3389RDPRemote Desktop Protocol, crucial for remote management and support.
    53DNSDomain Name System, necessary for resolving domain names to IP addresses.
    135RPCRemote Procedure Call, used for various Windows services like Active Directory.
    25SMTPSimple Mail Transfer Protocol, used for sending emails.
    1433MSSQLMicrosoft SQL Server, if SQL services are being used.
    50000-50100Custom Application PortsExample range: Used for specific application communication or testing purposes.

    Leave a Reply

    Your email address will not be published.