# Improper Access Control (CWE-284) The product does not restrict or incorrectly restricts access to a resource from an unauthorized actor. **Stack:** Go - Prevalence: 높음 자주 악용됨 - Impact: 높음 3개의 높은 심각도 규칙 - Prevention: 문서화됨 4개의 수정 예시 **OWASP:** Broken Access Control (A01:2021-Broken Access Control) - #1 ## Description Access control involves determining which subjects can access which objects. When access control is implemented incorrectly, it can lead to unauthorized access to sensitive data or functionality. ## Prevention 1개의 Shoulder 탐지 규칙을 기반으로 한 Improper Access Control 예방 전략. ### Go Validate tool inputs against strict schemas and use an allowlist for permitted tools ## Warning Signs - [HIGH] Insecure plugin implementation: ... - [HIGH] insecure plugin/function calling implementations in AI/LLM systems without proper validation ## Consequences - 애플리케이션 데이터 읽기 - 애플리케이션 데이터 수정 - 승인되지 않은 코드 실행 - 권한 획득 ## Mitigations - 모든 리소스에 대해 적절한 접근 제어 검사를 구현하세요 - 최소 권한 원칙을 사용하세요 - 접근 제어는 UI뿐 아니라 서버에서도 강제하세요 ## Detection - Total rules: 4 - Languages: go, javascript, typescript, kubernetes, yaml, python ## Rules by Language ### Go (1 rules) - **LLM Insecure Plugin Design** [HIGH]: Detects insecure plugin/function calling implementations in AI/LLM systems without proper validation. - Remediation: Validate tool inputs against strict schemas and use an allowlist for permitted tools. ```go if _, ok := toolRegistry[toolCall.Name]; !ok { return errors.New("unknown tool") } ``` Learn more: https://shoulder.dev/learn/go/cwe-284/llm-insecure-plugin