SC-18 Mobile Code
Guidance: draftPolicy clause: draftWhat these mean
sc18ctl| Baselines | Implementation level | Enhancements |
|---|---|---|
| Moderate, High | Organization | 5 (0 in a baseline) |
Related controls: AU-2, AU-12, CM-2, CM-6, SI-3
Control statement
Section titled “Control statement”- a. Define acceptable and unacceptable mobile code and mobile code technologies; and
- b. Authorize, monitor, and control the use of mobile code within the system.
NIST discussion
Mobile code includes any program, application, or content that can be transmitted across a network (e.g., embedded in an email, document, or website) and executed on a remote system. Decisions regarding the use of mobile code within organizational systems are based on the potential for the code to cause damage to the systems if used maliciously. Mobile code technologies include Java applets, JavaScript, HTML5, WebGL, and VBScript. Usage restrictions and implementation guidelines apply to both the selection and use of mobile code installed on servers and mobile code downloaded and executed on individual workstations and devices, including notebook computers and smart phones. Mobile code policy and procedures address specific actions taken to prevent the development, acquisition, and introduction of unacceptable mobile code within organizational systems, including requiring mobile code to be digitally signed by a trusted source.
Control enhancements
Section titled “Control enhancements”SC-18(1) Identify Unacceptable Code and Take Corrective Actions
Section titled “SC-18(1) Identify Unacceptable Code and Take Corrective Actions”Baselines: Not in a baseline
Identify [Assignment: organization-defined unacceptable mobile code] and take [Assignment: organization-defined corrective actions].
Discussion and assessment objectives for SC-18(1)
Corrective actions when unacceptable mobile code is detected include blocking, quarantine, or alerting administrators. Blocking includes preventing the transmission of word processing files with embedded macros when such macros have been determined to be unacceptable mobile code.
Determine if:
- SC-18(01)[01] [Assignment: organization-defined unacceptable mobile code] is identified;
- SC-18(01)[02] [Assignment: organization-defined corrective actions] are taken if unacceptable mobile code is identified.
Examine: System and communications protection policy; procedures addressing mobile code; mobile code usage restrictions; mobile code implementation policy and procedures; system design documentation; system configuration settings and associated documentation; list of unacceptable mobile code; list of corrective actions to be taken when unacceptable mobile code is identified; system monitoring records; system audit records; system security plan; other relevant documents or records.
Interview: System/network administrators; organizational personnel with information security responsibilities; system developer; organizational personnel with responsibilities for managing mobile code.
Test: Mechanisms supporting and/or implementing mobile code detection, inspection, and corrective capabilities.
SC-18(2) Acquisition, Development, and Use
Section titled “SC-18(2) Acquisition, Development, and Use”Baselines: Not in a baseline
Verify that the acquisition, development, and use of mobile code to be deployed in the system meets [Assignment: organization-defined mobile code requirements].
Discussion and assessment objectives for SC-18(2)
None.
Determine if:
- SC-18(02)[01] the acquisition of mobile code to be deployed in the system meets [Assignment: organization-defined mobile code requirements];
- SC-18(02)[02] the development of mobile code to be deployed in the system meets [Assignment: organization-defined mobile code requirements];
- SC-18(02)[03] the use of mobile code to be deployed in the system meets [Assignment: organization-defined mobile code requirements].
Examine: System and communications protection policy; procedures addressing mobile code; mobile code requirements; mobile code usage restrictions; mobile code implementation policy and procedures; acquisition documentation; acquisition contracts for system, system component, or system service; system development life cycle documentation; system security plan; other relevant documents or records.
Interview: System/network administrators; organizational personnel with information security responsibilities; organizational personnel with responsibilities for managing mobile code; organizational personnel with acquisition and contracting responsibilities.
Test: Organizational processes for the acquisition, development, and use of mobile code.
SC-18(3) Prevent Downloading and Execution
Section titled “SC-18(3) Prevent Downloading and Execution”Baselines: Not in a baseline
Prevent the download and execution of [Assignment: organization-defined unacceptable mobile code].
Discussion and assessment objectives for SC-18(3)
None.
Determine if:
- SC-18(03)[01] the download of [Assignment: organization-defined unacceptable mobile code] is prevented;
- SC-18(03)[02] the execution of [Assignment: organization-defined unacceptable mobile code] is prevented.
Examine: System and communications protection policy; procedures addressing mobile code; mobile code usage restrictions; mobile code implementation policy and procedures; system design documentation; system configuration settings and associated documentation; system audit records; system security plan; other relevant documents or records.
Interview: System/network administrators; organizational personnel with information security responsibilities; system developer; organizational personnel with responsibilities for managing mobile code.
Test: Mechanisms preventing the download and execution of unacceptable mobile code.
SC-18(4) Prevent Automatic Execution
Section titled “SC-18(4) Prevent Automatic Execution”Baselines: Not in a baseline
Prevent the automatic execution of mobile code in [Assignment: organization-defined software applications] and enforce [Assignment: organization-defined actions] prior to executing the code.
Discussion and assessment objectives for SC-18(4)
Actions enforced before executing mobile code include prompting users prior to opening email attachments or clicking on web links. Preventing the automatic execution of mobile code includes disabling auto-execute features on system components that employ portable storage devices, such as compact discs, digital versatile discs, and universal serial bus devices.
Determine if:
- SC-18(04)[01] the automatic execution of mobile code in [Assignment: organization-defined software applications] is prevented;
- SC-18(04)[02] [Assignment: organization-defined actions] are enforced prior to executing mobile code.
Examine: System and communications protection policy; procedures addressing mobile code; mobile code usage restrictions; mobile code implementation policy and procedures; system design documentation; system configuration settings and associated documentation; list of software applications in which the automatic execution of mobile code must be prohibited; list of actions required before execution of mobile code; system security plan; other relevant documents or records.
Interview: System/network administrators; organizational personnel with information security responsibilities; system developer; organizational personnel with responsibilities for managing mobile code.
Test: Mechanisms preventing the automatic execution of unacceptable mobile code; mechanisms enforcing actions to be taken prior to the execution of the mobile code.
SC-18(5) Allow Execution Only in Confined Environments
Section titled “SC-18(5) Allow Execution Only in Confined Environments”Baselines: Not in a baseline
Allow execution of permitted mobile code only in confined virtual machine environments.
Discussion and assessment objectives for SC-18(5)
Permitting the execution of mobile code only in confined virtual machine environments helps prevent the introduction of malicious code into other systems and system components.
Determine if execution of permitted mobile code is allowed only in confined virtual machine environments.
Examine: System and communications protection policy; procedures addressing mobile code; mobile code usage allowances; mobile code usage restrictions; system design documentation; system configuration settings and associated documentation; list of confined virtual machine environments in which the execution of organizationally acceptable mobile code is allowed; system audit records; system security plan; other relevant documents or records.
Interview: System/network administrators; organizational personnel with information security responsibilities; system developer; organizational personnel with responsibilities for managing mobile code.
Test: Mechanisms allowing for the execution of permitted mobile code in confined virtual machine environments.
Assessment objectives (SP 800-53A)
Section titled “Assessment objectives (SP 800-53A)”Objectives and methods for SC-18
Determine if:
- SC-18a.
- SC-18a.[01] acceptable mobile code is defined;
- SC-18a.[02] unacceptable mobile code is defined;
- SC-18a.[03] acceptable mobile code technologies are defined;
- SC-18a.[04] unacceptable mobile code technologies are defined;
- SC-18b.
- SC-18b.[01] the use of mobile code is authorized within the system;
- SC-18b.[02] the use of mobile code is monitored within the system;
- SC-18b.[03] the use of mobile code is controlled within the system.
Examine: System and communications protection policy; procedures addressing mobile code; mobile code implementation policy and procedures; list of acceptable mobile code and mobile code technologies; list of unacceptable mobile code and mobile technologies; authorization records; system monitoring records; system audit records; system security plan; other relevant documents or records.
Interview: System/network administrators; organizational personnel with information security responsibilities; organizational personnel with responsibilities for managing mobile code.
Test: Organizational process for authorizing, monitoring, and controlling mobile code; mechanisms supporting and/or implementing the management of mobile code; mechanisms supporting and/or implementing the monitoring of mobile code.
Policy statement
- The Chief Information Security Officer shall define acceptable and unacceptable mobile code and mobile code technologies. (SC-18a)
- The System owner shall authorize, monitor and control the use of mobile code within the system. (SC-18b)
From the System and Communications Protection Policy template (draft). Highlighted fields are values your organization sets.
How to apply it
Section titled “How to apply it”SC-18 asks you to decide which mobile code is acceptable and which is not, then authorize, monitor and control its use in the system. NIST’s discussion defines mobile code as any program, application or content sent across a network, for example embedded in an email, document or website, and run on another system; it names JavaScript, HTML5, WebGL, VBScript and Java applets. Base the decision on the damage the code could do if used maliciously, and apply it both to code installed on servers and to code downloaded and run on workstations, laptops and phones. SC-18 is in the Moderate and High baselines, not Low.
Common implementations. Few organizations can block JavaScript, so the definition is usually by technology and source rather than a blanket ban:
- Office macros: blocked in files from the internet, and allowed only when signed by a publisher the organization trusts. NIST’s discussion names requiring mobile code to be digitally signed by a trusted source as one of the policy’s measures.
- Browsers: managed through central policy, with extensions limited to an approved list, legacy plug-ins and Java applets not allowed, and downloads screened by the web gateway.
- Scripts that run on endpoints, such as PowerShell or other scripting languages: restricted to signed scripts or to administrators, and logged.
- Email attachments with scripts, executables or macro-enabled documents blocked or quarantined at the email gateway.
- On servers and in web applications, a content security policy that limits which script sources a page will run, and third-party scripts loaded only from approved sources with integrity checks.
Enforce these through configuration settings, so they appear in the baseline configuration (CM-6) rather than in user training alone; the baseline configuration standard requires mobile code and active content settings in every baseline. NIST SP 800-28 Version 2, Guidelines on Active Content and Mobile Code (March 2008), covers the threats and safeguards for end user systems; it predates current browsers, so use it for the concepts and the vendor’s current settings for the details.
Organization-defined parameters. SC-18 has no parameters. In the System and Communications Protection policy, the Chief Information Security Officer defines acceptable and unacceptable mobile code and mobile code technologies, and the system owner authorizes, monitors and controls its use within the system. Put the definition where people will find it, for example as a short list in the procedures that support the policy or in the baseline configuration, by technology: allowed, allowed with conditions (signed, from approved sources, administrators only) and not allowed.
Evidence assessors ask for.
- The written definition of acceptable and unacceptable mobile code
- Office application policy settings for macros, browser policy settings for extensions and plug-ins, and script execution policy, exported from the management tool
- Email and web gateway rules that block or quarantine unacceptable attachments and downloads
- For web applications the system serves, its content security policy and how third-party scripts are approved
- Logs or alerts that show blocked mobile code, which is how the monitoring in SC-18b is shown (AU-2, SI-3)
Inheritance. Endpoint, browser, office and email gateway settings are usually common controls, set once by the endpoint and messaging teams. The system owns the mobile code its own application serves or runs, such as scripts, plug-ins and third-party components in its web pages, so SC-18 is often a hybrid control. Record the split in the system security plan.
Common findings.
- No written definition, only a statement that “mobile code is controlled”.
- Macros allowed from any source, or the “block macros from the internet” setting not applied to all devices.
- Browser extensions unmanaged, so users can install any extension, including ones that read every page.
- A public web application loading scripts from many third-party sources with no content security policy.
Enhancements in the Moderate baseline. SC-18 has no enhancements in any baseline. SC-18(1) identifying unacceptable code and taking corrective actions, SC-18(2) acquisition, development and use, SC-18(3) preventing download and execution, SC-18(4) preventing automatic execution and SC-18(5) execution only in confined environments are in no baseline. The common implementations above already meet much of SC-18(1), (3) and (4): NIST’s discussion of SC-18(1) gives blocking word processing files with unacceptable macros as an example, and of SC-18(4), disabling auto-run for portable storage devices.
Artifacts
Independent guidance, not an official NIST publication. Control text is from NIST SP 800-53 Rev. 5 and SP 800-53A (public domain). Original content is licensed CC BY 4.0; program templates and the downloadable kit are dedicated to the public domain under CC0 1.0.