Designing a small gated AI solution

· 3 min read

Artificial Intelligence Security

For Artificial Intelligence driven or augmented applications, it’s critical that we begin with determining what policy needs to be applied to agentic actions and how we authorize those actions against a known user’s permission set using deterministic actions.  

Consider a simple security scenario, you are preparing to move forward with an initiative to better manage your allowed TLS cipher suites across a number of systems.  What would the break down of this problem look like? What belongs under the management of the code rather than the model?

Code controlled.  Authorized users.

  • Certain users who are authorized to view and report
  • Scans that track what suites are available on your different systems
  • Users who are authorized to create the proposed change for a set of machines
  • Authorizers for the proposed change
  • Second reviewer to approve the technical change 
  • Scheduler to schedule the change
  • Authorized user who can implement those changes

Code controlled.  Policies.

  • The preferred order for allowed cipher suites
  • The matrix of who is authorized to perform what actions
  • Privileged tokens or accounts must be used for changes
  • Logging and monitoring requirements for the change
  • New ciphers must not be newer than 6 months old to avoid the bleeding edge
  • Ciphers must be in the strong or very strong categories
  • When strong ciphers are unused, the system should use only very strong ciphers
  • Weak ciphers are allowed only with special sign off for specific systems
  • TLS 1.3 or Post Quantum Ciphers are allowed
  • TLS 1.2 is allowed if it uses Elliptic Curve for Key Exchange and AES in GCM mode for symmetric encryption
  • AES and CBC mode is only allowed if patched for the current CBC exploits for the platform
  • Ciphers outside of the very strong category must be disabled if unused for 90 days

Code controlled. Deterministic actions.

  • Powershell to adjust SChannel policies on Windows machines
  • Application of Group Policy, if controlled on Windows by Active Directory
  • Bash script to adjust cipher suites on Apache
  • Bash script to adjust cipher suites on Tomcat
  • Bash script to adjust cipher suites on Nginx
  • Bash script to adjust cipher suites on OpenSSL
  • Bash script to adjust cipher suites on OpenSSH
  • Writing the batch script for multiple machine or software changes at once
  • Logging for each change to each machine as it occurs
  • Proposing the change
  • Approvals
  • Reviews to ensure the staged change meets standards
  • Scheduling of change

So where does the model fit? 

It can advise and recommend actions based on changes on the threat scape of various TLS cipher suites.  

It can monitor for when a system no longer uses a cipher that is weak and has not been accessed for 90 days.  

It can batch together a set of changes for many machines into a single repeatable set of action recommendations.  

How it should be batched to ensure zero down time.

But then the batched changes should be assembled in code that creates a scripted set of changes.  

This keeps the ownership of human tokens, just in time access and policy with real coded or code configured gates.  And the actions that are generated are owned by humans who review and validate those actions meet your standard.

Design defensively, code defensively and you’ll keep your systems stable and secure.