AIMED AI기업(:9916) RBAC 우회 버그 3종 근본수정
개요
설계 §5 "중앙 RBAC=집행엔진" 위반 — 에임드AI기업.한선이 자체 임시 substring 게이트를 써서 권한 누수. 적대판정 실측 적발 후 근본 수정.
수정 내용
버그 1 [중]: 총괄 부분문자열 누수 (~482행)
- 문제:
포함(역할, "총괄") < 0 — 역할 변수가 조직도 역할컬럼(설명텍스트: "영업·PT 총괄")이라 영업팀장 "총괄"이 재무 L3 허용으로 오인
- 수정:
멤버기능허용(멤버ID, "재무조회") + 팀 == "경제팀" 으로 중앙 RBAC 집행
버그 2 [중]: 견적 도메인명 불일치 (~493행)
- 문제:
도메인 == "견적" 정확매칭인데 의도분류는 "판매견적수주"를 방출 → L3 분기 미진입
- 수정:
포함(도메인, "견적") >= 0 substring 매칭으로 교체 + 멤버기능허용(멤버ID, "견적조회") 게이팅
버그 3 [하]: 차단표시 재무 전용
- 문제:
재무차단 >= 1 조건으로 재무 외 도메인은 차단목록 미노출 (설계 §2 정직성 미실현)
- 수정: 차단목록 배열 전체 직렬화 → 어떤 도메인이든 차단 시
차단표시 필드에 노출
부수 [하]: 의사결정 미적립
- 수정:
data/에임드AI로그.psv 덧쓰기 추가 (형식: 시각|멤버ID|직급|질문요약|도메인|4상|모드)
실측 결과
| 멤버 | 직급 | 질문유형 | 결과 |
|---|
| 박정아 | 팀원(경제팀) | 재무 | 허용, 차단표시 없음 ✅ |
| 조은호 | 수석실장 영업팀장 | 재무 | 차단, 직급 포함 차단표시 ✅ |
| 노형준 | 책임 기술영업팀장 | 재무 | 차단, 차단표시 ✅ |
| 이동훈 | 영업총괄 | 재무 | 차단, 차단표시 ✅ (이전엔 누수) |
| 이동훈 | 영업총괄 | 견적단가 | 허용 ✅ |
| 문지영 | 팀원(디자인팀) | 견적단가 | 차단, 차단표시 ✅ |
| 문지영 | 팀원(디자인팀) | 고객요청 | L1 허용, 5건 노출 ✅ (과잉차단 없음) |
관련 파일
/Users/ef/crowny-aimed/에임드AI기업.한선 — 수정됨
/Users/ef/crowny-aimed/에임드AI기업.toau — 재컴파일됨
/Users/ef/crowny-aimed/libs/권한검증.한선 — RBAC 원본 (변경없음)
/Users/ef/crowny-aimed/data/에임드AI로그.psv — 적립 시작
- 백업:
에임드AI기업.한선.bak_rbac_HHMM
잔여 이슈
- 권한매트릭스 "팀원" 직급 재무 허용 항목이 없어 경제팀 팀원은 팀 기반 보조 허용으로 처리. 매트릭스에 명시 추가 고려.
- L4 개인데이터 게이팅은 미변경 (기존 유지)