Airlock Digital - Allowlisting Software

  • Home
  • Features
  • Blogs
  • Resources
  • FAQs
  • About us
  • Contact us

Airlock Digital - Allowlisting Software

  • Home
  • Features
  • Blogs
  • Resources
  • FAQs
  • About us
  • Contact us
Request a demo
Log in

Blog

1 February 2023 by David Cottingham

This month we are excited to announce the release of two new versions of Airlock:

  • Airlock v5.0.9: This version is the Long Term Support (LTS) branch of Airlock and contains bugfixes for existing functionality; and
  • Airlock v5.1: This version is the latest release of Airlock containing new features. v5.1 is one of the largest updates to the Airlock platform yet and includes a significant underlying platform update.

Both releases are now available for download via the Airlock Digital Customer Portal. Cloud hosted customers can also be upgraded via a request to Airlock support.

2023 is shaping up to be a significant growth year for Airlock, with an accelerated company expansion that is well underway, combined with a continued focus on product, making allowlisting easier than ever.

Flagship features of Airlock v5.1 include:

Windows Performance & Interoperability Enhancements
The Windows Enforcement Agent driver architecture has been completely re-written to further improve performance and interoperability when installed alongside other Endpoint Protection products.

Command Line Blocklisting
Introduced the ability to block (or allow) process executions via their command line. This makes the Blocklisting framework even more flexible to control application behaviour.

Full Path Parent Process Trust
Full Path Parent Process Trust: The parent process feature now supports specifying full paths to images (rather than just the image name itself).

Bulk Add Improvements
The Bulk Add screen now has a filter that will automatically remove trusted files/publisher data. Making it easier to process large data sets.

Ability to disable OTP duration’s
OTP duration’s can now be enabled/disabled within policy, enabling administrators to prevent the use of times such as 7 days for OTP mode.

File Repository Comments
Comments can now be added on the File Repository page, enabling teams to discuss and leave notes against file entries.

Ability to Blocklist by Certificate Thumbprint
File signing certificates can now be blocked by their certificate thumbprint. This can provide a mitigation when vendors code signing certificates are stolen.

 

Filed Under: Airlock Solution, Blog

18 March 2021 by David Cottingham

TLDR; Take a look at the tables containing Product Names for Adobe Acrobat DC in this article, the variations in product names are staggering.

Overview

At Airlock Digital, we often hear from new and existing Australian customers regarding the Australian Government Information Security Manual (ISM) control 1471. In particular, customers ask how they can achieve compliance with this control using the Airlock allowlisting platform.

The control was first introduced in 2019 and reads as follows:

Security Control: 1471; Revision: 2; Updated: Apr-20; Applicability: O, P, S, TS
When implementing application control using publisher certificate rules, both publisher names and product names are used.
Source: https://www.cyber.gov.au/acsc/view-all-content/ism

This article will describe the practicality of allowlisting using this rule type at scale. Allowlisting is the process of choosing which files you trust and blocking everything else on an endpoint. 

The Intent

The intent of this control is clear, ensure companies are reducing the attack surface of publisher rules by tying them to specific products. This does two things:

  • Ensures that administrators are only allowing specific applications rather than trusting any file a company digitally signs; and
  • Reduces the attack surface when a certificate compromise at a software vendor occurs, constraining the ability for an attacker to run signed malicious code in an environment (unless the attacker knows the customers ruleset of course).

Sounds straightforward right? Ultimately it is good security advice. However, in reality, practical implementation and management of this control is near impossible in dynamic computing environments (any environment with users), regardless of the allowlisting technology used.

The working example I’m going to use in this article is a fairly common one. Let’s say the organisation wants to allow Acrobat Reader DC, on the surface it would seem as simple as trusting ‘Adobe Inc’ as the publisher and then ‘Acrobat Reader DC’ as the product name.

The Data
Let’s take a look at the files that make up an Acrobat Reader DC installation. Executable files in the application are all signed by the publisher ‘Adobe Inc.’, which is a great start. The following table displays all executable files with their associated product names:

Executable Name Product Name
AcroCEF.exe
SingleClientServicesUpdater.exe
WCChromeNativeMessagingHost.exe Adobe Create PDF
32BitMAPIBroker.exe Adobe Acrobat 32BitMAPIBroker
64BitMAPIBroker.exe Adobe Acrobat 64BitMAPIBroker
FullTrustNotifier.exe
Acrobat.exe Adobe Acrobat DC
Acrobat.exe Adobe Acrobat DC
AcrobatInfo.exe Adobe Acrobat DC
acrobat_sl.exe Adobe Acrobat
AcroBroker.exe Adobe PDF Broker Process for Internet Explorer
AcroTextExtractor.exe Adobe Acrobat text extractor for non-PDF files
ADelRCP.exe ADelRCP Dynamic Link Library
AdobeCollabSync.exe
CRLogTransport.exe CRLogTransport Application
CRWindowsClientService.exe Adobe Crash Reporter Service
Eula.exe EULA
LogTransport2.exe LogTransport Application

Table 1: Acrobat Reader DC Executable Product Names

 

Let’s now take a look at application library names, keeping in mind that all listed files are signed by ‘Adobe Inc’:

Application Library Name Product Name
chrome_elf.dll Chromium
icudt.dll International Components for Unicode
libcef.dll Chromium Embedded Framework (CEF) Dynamic Link Library
nppdf32.dll Adobe Acrobat
nppdf32.dll Adobe Acrobat
Acrobat32OL.dll
Onix32.dll Onix
ACE.dll ACE 2020/12/23-20:41:48
AdobeXMP.dll Adobe XMP Core 2020/06/15-10:20:05
AGM.dll AGM 2020/12/23-20:41:48
AIDE.dll AIDE 2020/08/13-20:41:23
BIB.dll BIB 2020/12/23-20:41:48
BIBUtils.dll BIBUtils 2020/12/23-20:41:48
CoolType.dll CoolType 2020/12/23-20:41:48
JP2KLib.dll JP2KLib 2021/01/15-07:39:31
A3DUtils.dll 3D Utilities Library
ACE.dll ACE 2020/12/23-20:41:48
Acrobat.dll Adobe Acrobat DC
AcrobatRes.dll Adobe Acrobat DC
adobeafp.dll Adobe Acrobat File Preview
AdobeLinguis…  Adobe Linguisitc Library
AdobeXMP.dll Adobe XMP Core 2020/06/15-10:20:05
AGM.dll AGM 2020/12/23-20:41:48
ahclient.dll AdobeHelp Dynamic Link Library
AIDE.dll AIDE 2020/08/13-20:41:23
ANCUtility.dll Adobe Acrobat
AXE8SharedEx…  AXE8SharedExpat 2020/12/23-09:04:30
AXSLE.dll AXSLE 2020/06/16-12:37:28
BIB.dll BIB 2020/12/23-20:41:48
BIBUtils.dll BIBUtils 2020/12/23-20:41:48
ccme_asym.dll RSA BSAFE Crypto-C ME
ccme_base.dll RSA BSAFE Crypto-C ME
ccme_base_no…  RSA BSAFE Crypto-C ME
ccme_ecc.dll RSA BSAFE Crypto-C ME
CoolType.dll CoolType 2020/12/23-20:41:48
CRClient.dll Adobe Crash Reporter Client DLL
cryptocme.dll RSA BSAFE Crypto-C ME
DirectInk.dll DirectInk
ExtendScript…  ExtendScript 2019/07/29-10:07:31
icucnv58.dll
icucnv67.dll International Components for Unicode
icudt58.dll
icudt67.dll International Components for Unicode
icuuc58.dll
icuuc67.dll International Components for Unicode
JP2KLib.dll JP2KLib 2021/01/15-07:39:31
logsession.dll LogSession
PDFPrevHndlr…  Adobe PDF Preview Handler
pe.dll PE
ReaderUC.dll
rt3d.dll 3D Runtime Dynamic Link Library
ScCore.dll ScCore 2019/07/29-10:07:31
sqlite.dll sqlite Dynamic Link Library
ViewerPS.dll Acrobat Viewer ProxyStub Library

Table 2: Acrobat Reader DC Application LibraryProduct Names


Looking at the tables above, you can start to see the scale of the challenge due to the significant variation in product names across files.

The Challenges

Challenge One: Software is nearly always more than a single executable file

Software comes in many shapes and sizes and is nearly always composed of multiple executable files and application libraries (.dll’s). Additionally, third party software is bundled within software which can be seen above, with Chromium dll’s shipped with Adobe Acrobat DC and signed by Adobe Inc.

This may be manageable when allowlisting executable files only (I’m looking at you default AppLocker deployments). However, if a customer intends on achieving Maturity Level Two or greater for application control on the ACSC Essential eight maturity model, the sheer number of files and application libraries that need to be handled to allow a single product to run can be overwhelming.

In order to allow Acrobat Reader DC via product names:

  • 13 rules would be required for executables; and
  • 45 rules would be required for application libraries.

This could be cut down with creative wildcarding, however if you are allowing the product name ‘*Adobe*’ it defeats the purpose of the ISM control 1471 in the first instance.

Challenge Two: The Product Name field can be blank

As you can see from the above files, many of them contain a blank Product Name field as it is an optional entry for developers at the time of software compilation. This makes the original ISM rule impossible to apply on these files and they effectively require an exemption.

Challenge Three: Scale and Maturity

Extrapolating the above data out, it is easy to see how the scale of rules required is staggering. Additionally, maintaining this ruleset through application updates (note that Adobe uses compilation dates in a number of files above) makes management near impossible, regardless of the technology used even with automated and slick product workflows.

Proposed Compensating Control

So if this isn’t practical? What can be done to achieve the intent of the control?

Combining Publisher and Path rules is an alternative and has the following benefits:

  • Typically only one or two rules are required per application, as applications are often located in static paths;
  • Applications are easier to identify and group by paths and avoids the confusion of trusting ‘Chromium’ signed by ‘Adobe Inc.’ as shown in Table 2 above;
  • The ability for an attacker to execute code in an environment with a stolen code signing certificate is still reduced as signed malware must be dropped in the relevant directories.

Airlock Digital appreciates the guidance ACSC provides with the ISM, which continues to drive the maturity uplift of organisations. Proposing the above compensating control is not intended to water down the security requirements of 1471, it’s simply an alternative to customers not being able to comply due to administrative overhead.

Airlock Recommendations

Organisations can use the Airlock Blocklisting rule engine to achieve compliance with this control. In the event organisations are struggling to comply due to management overhead, Airlock recommends customers consider the implementation of publishers and path rules as an alternative.

Each organisation should use a risk based approach when assessing if this alternative is right for them.


Fig 1: The Edit Blocklist Metadata Rule Window


Shown in the Window above is a rule that applies to any file containing ‘Adobe Inc’ as a publisher and is not part of the default ‘Acrobat DC’ folder path. Since Blocklisting is a negative match, files that are signed by Adobe Inc and are located outside of this folder path will be blocked.

Filed Under: Blog, News

28 October 2020 by David Cottingham

Recently some great research has been published by Johnny Shaw outlining a method to start processes in Microsoft Windows in a manner similar to process hollowing. They have coined this term “Process Herpaderping” and there is a great detailed technical write up here – https://jxy-s.github.io/herpaderping/.

Essentially, an attacker who has the capability to execute arbitrary code is able to launch additional arbitrary code in a novel manner. Launching code with Herpaderp will:

  • Make it look like the target code was not launched at all; and
  • Avoid the target code being scanned by endpoint protection solutions upon launch

How would an attacker use this in practice?

As Herpaderp has a number of moving parts, the code to perform this attack goes beyond calling a single operating system function and requires a software stager.

An attacker would use this as follows:

  1. Drop the staging code to the target machine (currently on disk, but it’s likely to end up being ported for more flexibility)
  2. Execute the stager and specify the ‘target’ code you want to launch and ‘reference’ file you want to impersonate
  3. Enjoy.

This is demonstrated in the Herpaderp writeup in a video showing Mimikatz appearing to be signed by Google Chrome. This bypasses Windows Defender detection. Cool and scary stuff!

Detection?

The Herpaderp writeup shows that this technique of loading files is missed by the majority of security vendors on the market today. It is likely that security vendors will quickly flag the stagers (and the inevitable variants that appear) as malware.

Just as an interesting experiment, at the time of writing only two security vendors identify the compiled Herpaderp code as malicious, likely via their machine learning capability (VT link)

Application Allowlisting configured well, prevents the stager from being used in the first instance effectively preventing the attack without signatures. Matt Graeber had a very succinct take on the matter

Clarification: This technique, while novel, is not an application control solution bypass. Executing the technique in the first place would have already required a bypass.

Note the intentional AppLocker bypass policy: allow all except processhacker.exe.https://t.co/JKMkGJk0GV

— Matt Graeber (@mattifestation) October 27, 2020

Ultimately, preventing the staging code is the best chance of detection and will likely be the focus for defenders in the future.

Why would an attacker use this vs other options?

To avoid malicious code being detected as malware by endpoint protection products. Herpaderp is also great for attackers looking to fool incident responders by masking the actual file executed.

To be clear, if the target code being launched is on disk already on the target system, many Anti-Virus products will likely scan the file before launch. The attacker needs a way of delivering the target code to the Herpaderp stager, in a diskless manner.

While this technique is novel, if you are an attacker that already has:

  1. The ability to execute code; and
  2. The ability to stage code in a diskless manner

Then there are a number of techniques available such as .NET assembly reflection that do not require stagers, although these may have a higher chance of being caught or monitored.

Thoughts on the lack of Microsoft servicing?

The Herpaderp writeup highlights that Microsoft have not seen fit to provide an immediate fix for this technique, and that from Microsoft’s perspective the case is closed without resolution. The authors disagree, and provide the following reasoning:

We disagree on the severity of this bug; this was communicated to MSRC on 8/27/2020.

  1. There are similar vulnerabilities in this class (Hollowing and Doppelganging).
  2. The vulnerability is shown to defeat security features inherent to the OS (Windows Defender).
  3. The vulnerability allows an actor to gain execution of arbitrary code.
  4. The user is not notified of the execution of unintended code.
  5. The process information presented to the user does not accurately reflect what is executing.
  6. Facilities to accurately identify the process are not intuitive or incorrect, even from the kernel.

Source: https://jxy-s.github.io/herpaderping/.

We suspect that Microsoft has not serviced this due to point three above “The vulnerability allows an actor to gain execution of arbitrary code”. The catch 22 here is that the technique needs the execution of arbitrary (untrusted) code in the first instance in order to perform the attack and the attacker needs a way to stage malicious code without touching disk to avoid AV. It’s just a difficult technique to set up without being detected in the first instance.

There are also difficulties in servicing the solution as it deals with core Windows internals and may have compatibility implications.

Are we likely to see this as a widespread technique in the future?

It’s very likely we will see this method of execution added to the menus of offensive tooling frameworks in the near future. We would also expect to see the method being ported to other languages such as Powershell as attackers attempt to find ways around defenses as detections are created for the current PoC code.

What is the impact of Process Herpaderping in an allowlisting / application control context?

To use this method an attacker requires arbitrary code execution, and allowlisting is a great preventative control which will stop the use of the technique at this time.

The Herpaderp method also does not provide any obvious way of retaining persistence, something that other known techniques (also requiring arbitrary execution) are capable of today.

The caveat is that an allowlisting solution is as only as good as its implementation. It is important to understand if an attacker discovers a way of executing the Herpaderp stager, they would be able execute any other code with ease and therefore it is important to understand the level of coverage and protection your allowlisting implementation provides.

TLDR;

The advantage of Herpaderp is that it is a new technique which is difficult to detect and fix. However, the disadvantage is it requires a stager which in itself can be detected.

The research behind Herpaderp is technically brilliant, however while a stager is required to perform the attack it’s unlikely that this will be seen as a viable option for threat actors going forward. If someone can figure out how to use this technique without staging, then it’s a whole different ball game.

Authors: Daniel Schell & David Cottingham

Filed Under: Blog

12 September 2017 by David Cottingham

Trust, it’s a fundamental concept in cybersecurity and plays a vital role in the decisions we make, particularly if a risk based approach is taken to decision making. However, we don’t often think about how the concept of trust influences our decisions. This blog post will explore what role trust plays, in file based security.

First, it’s important to note that trust is not a one size fits all concept and is unable to be applied equally across situations. For example, trust between family members must be thought of as a completely different concept to trust between networked computer endpoints.

The oxford dictionary defines trust as:

Noun: “Firm belief in the reliability, truth, or ability of someone or something”.
Verb: “Allow someone to have, use, or look after (someone or something of importance or value) with confidence”.1

Looking at the above definitions, neither truly describes the concept of trust, when applied to files. Let me propose a more suitable definition (taking some inspiration from the Noun above):

“Firm belief in the purpose, origin and expected behavior of a file or software package”.

Let me clarify this statement. In order to decide if you should ‘trust’ a file you must satisfy the following criteria:

1) Context – The file must exist to serve a particular purpose and be attributable to an application or function. Humans should ask, why does the file exist?
2) Predictability – The file must behave in a predictable and consistent way when executed or handled. Humans should ask, does the file behave in a manner that is expected, given its context?
3) Integrity – The file must provide assurance that it has not been modified or tampered with in an unauthorized manner. Humans should ask, does the file have integrity?


Fig 1. Three domains of file trust

 

Answering these questions for every file on an average operating system can prove to be a daunting task, one that would simply be unfeasible using manual processes. Ultimately, we must rely on frameworks which can assist in determining if ‘trust’ should be placed in a file, at scale.

Frameworks can take many forms, such as a threat intelligence feed, hashing algorithm or even a digital certificate validation mechanism. Regardless of their function, these frameworks must be robust, as we rely upon them to provide accurate information to inform our decisions.

Now you may be thinking, what if I don’t fully ‘trust’ (have a firm belief in the reliability, truth or ability) the framework I am using? Where possible you should aim to use more than one framework to provide multiple answers for the ‘context’, ‘predictability’ and ‘integrity’ of a file. Multiple answers provide opportunity to compare the results across frameworks to ensure truthful answers are provided.

Typically, vendors/operators attempt to answer these questions using one or more of the following methods:

1) Context:

  • Has the file been seen by a large amount of users?
  • Has the file been signed by a vendor?
  • Is the file located in the correct path?
  • Does the file have a description explaining it’s purpose?

2) Predictability:

  • When is the file invoked?
  • Does the file perform any unexpected behaviors when invoked? (loading interpreters, spawning/hooking processes etc)
  • Does the file request elevated permissions?
  • Does the file load into the expected process?
  • Does the file perform any system modifications? Drop files?
  • Does the file extension match its content?

3) Integrity:

  • Is the file digitally signed by a vendor?
  • Does the files hash value match a vendor provided hash value?
  • Has the file changed hash values since I have seen the file?
  • Does the files hash match a known good sample based on threat intelligence?

These methods are not an exhaustive list and barely scratch the surface, but hopefully provide a starting point for some ideas which can be used to determine if you should trust a file or not.

Airlock Application Whitelisting provides a robust solution enabling administrators to easily choose which files they should trust in an environment. Most importantly, Airlock incorporates multiple frameworks which are needed to quickly determine trust.

Footnotes

1. https://en.oxforddictionaries.com/definition/trust

Filed Under: Blog

Airlock Digital Pty Ltd
Level 2/136 Greenhill Rd
Unley, SA 5061
Australia

  • About us
  • Blogs
  • Features
  • Resources
  • Contact us
  • FAQs

Newsletter Subscription

Subscribe to the Airlock Digital mailing list to be notified of the latest news and updates

© Copyright 2023 – Airlock Digital

Privacy Policy

Allowlisting: Reimagined