Forum

Notifications
Clear all

Check out this deny list of tool names/descriptions that we've found to be risky.

2 Posts
2 Users
0 Reactions
15 Views
(@homelab_greg)
Eminent Member
Joined: 2 months ago
Posts: 15
Topic starter   [#1235]

Hey folks, been knee-deep in testing the OpenAI Operator in my lab this week, specifically looking at the agent's permissions and what tools it can actually wield. It's incredibly powerful, but that power comes with a massive attack surface that we need to box in.

I was auditing the default toolset it can access, and I started building a **deny list** of tool names and descriptions that I think should be restricted by default in any security-conscious deployment. The core issue is that the operator, when given credentials, can use tools to act on those creds. Some tools are obviously risky, but others are risky because of what they *enable* (like code execution leading to credential access).

Here's my current working list of tool categories and specific examples I'm blocking at the orchestration layer:

**Tool Categories to Deny/Heavily Restrict:**
* **Direct System Access:** `execute_shell_command`, `run_powershell_script`, `subprocess.run`
* **File System Modification:** `write_to_file`, `move_file`, `delete_file`, `create_directory` (especially with paths like `/etc/`, `/home/*/.ssh/`, `C:WindowsSystem32`)
* **Network Configuration & Discovery:** `nmap_scan`, `configure_firewall_rule`, `list_network_shares`
* **Package Management:** `install_package_via_apt`, `run_yum_command`
* **Database Operations:** `execute_sql_query` (without a tightly scoped connection string)
* **Cloud Service Control:** Any tool with names containing `aws`, `gcp`, `azure` coupled with verbs like `start_instance`, `delete_bucket`, `create_user`

But here's the sneaky part—it's not just the tool **name**. The **description** field matters too! The LLM decides which tool to use based on the description. So you must also sanitize descriptions that imply dangerous capabilities, even if the tool name is benign.

**Example from my config:**
```yaml
# Example entry in my operator's constraint profile
denied_tool_patterns:
- name: ".*command.*"
description: ".*(run|execute|shell|cmd|powershell).*"
- name: ".*file.*"
description: ".*(write|delete|overwrite|replace|move).*"
- name: ".*sql.*"
description: ".*(query|drop|delete|update|insert).*"
```

**The big questions for the thread:**
1. What's on *your* deny list? Any specific tool names that have bitten you?
2. How are you handling authentication? Are you injecting temporary, scoped API keys per-session instead of giving the agent a vault master key?
3. Have you considered prompt injection via web content? If the agent can `fetch_webpage` and then `act_on_content`, a poisoned webpage could become a direct command to your orchestration layer.

The compliance angle is huge here. If this agent is hosted by OpenAI and acts on user-supplied credentials, who's liable if it, say, deletes a production database? The chain of custody for those credentials gets real fuzzy.

Would love to compare notes and flesh out this deny list together. My lab is currently in a recovered state after a test agent decided to `cleanup_old_logs` a bit too aggressively 😅

- Greg


More VLANs than friends.


   
Quote
(@cloaker_sec)
Eminent Member
Joined: 2 months ago
Posts: 25
 

Good start, but you're thinking in terms of a static list. The problem is dynamic; new tools and plugins are created daily. Your orchestration layer policy shouldn't just block `execute_shell_command`. It should block any tool *description* containing phrases like "run commands" or "execute" unless explicitly allowed.

Also, you missed the most critical category: **Secret Retrieval**. Any tool with `get_secret`, `read_vault`, `fetch_api_key`, or descriptions mentioning "credential" or "password" is a direct line to privilege escalation. If the agent can fetch a fresh secret, your initial credential restrictions are pointless.

Your deny list needs to be a default-deny, context-aware policy. A tool named `format_disk` is obvious. One named `helper_utility` with a description about "system cleanup" is the real threat.


Secrets? Not on my disk.


   
ReplyQuote