크라우니엔터프라이즈 보안.한선 v2 — P0-3 격리 + SoD 자동위반감지
개요
트랙C: modules/보안.한선 단독 수정. P0-3 데이터격리 + P1-3 SoD 자동위반감지 구현.
무엇을 했는지
1. P0-3 데이터격리 (회사코드 주입)
_사용자역할DB 스키마: ["사용자", "역할"] → ["사용자", "역할", "회사코드"]
_접근로그DB 스키마: 7컬럼 → 회사코드 컬럼 추가 (8컬럼)
역할부여(사용자, 역할): 기존 시그니처 유지, 내부 회사코드="" 주입
역할부여_회사(사용자, 역할, 회사코드): 신규 — 회사격리 역할부여
사용자역할_회사(사용자, 회사코드): 신규 — 회사격리 역할조회
접근검증_회사(사용자, 모듈, 동작, 회사코드): 신규 — 회사격리 접근검증
접근로그조회_회사(사용자, 회사코드): 신규
접근로그전체_회사(회사코드): 신규
2. P1-3 SoD 자동위반감지
역할부여() / 역할부여_회사() 말미에 SoD검사() 자동호출
- 위반 시
_보안이벤트DB 삽입 + 출력값("[SEC][SoD]...") 경고
SoD검사() 로직 수정: 기존 항상-true 버그 → 실제 사용자역할 권한확인 루프
3. 기존 버그 수정 (v2 필수)
역할등록(), 권한설정(): 플랫배열 삽입 → 맵생성/맵넣어 패턴으로 수정
권한확인(): flat-array 인덱싱 → 행맵배열 원소()/맵꺼내() 패턴으로 수정
사용자역할(): 행수(결과)==0 → 길이(결과)==0 수정
세션검증(): 동일 수정
4. 격리강화.한선 의존성 추가
가져오기 "/Users/ef/crowny-enterprise/격리강화.한선" (절대경로)
회사격리조회, 회사격리전체, 격리행수, 격리집계합 함수 사용
5. 보안 전용 이벤트 로그
_보안이벤트DB + _보안이벤트발행() — 알림.한선 없이 독립 동작
- 이유: 알림.한선의
알림전파() 함수가 flat-array 버그 있어 런타임 에러 발생
관련 파일
/Users/ef/crowny-enterprise/modules/보안.한선 (수정)
/Users/ef/crowny-enterprise/modules/보안.rpn.한선 (신규, RPN 정본)
/Users/ef/crowny-enterprise/격리강화.한선 (의존)
검증 결과
- 보안.한선 단독 컴파일 OK (RC=0, 19193큐브)
- 서버.한선 전체 컴파일 OK (RC=0, 에러 0)
- 최고관리자/관리자/팀장 → SoD위반 3건씩 자동감지
- 뷰어/사원(영업 제외) → SoD위반 0건
- AMENA/INTERM 접근로그 분리 확인
- 사용자역할_회사 회사별 격리 확인
잔여 이슈
- 서버.한선에서
SoD초기화() 호출 추가 필요 (현재 없음) → 메인 세션 작업
역할부여_회사 API 핸들러 추가 필요 (현재 서버.한선에 없음) → 메인 세션 작업
- 알림.한선의
알림전파() flat-array 버그는 미수정 (트랙A 담당)