← 목록
기타 2026-07-07 5KB 읽기 5분

게이트웨이Q 적대적 검증 (레드팀 4차원 + 반증 패스)

2026-07-07. 요청: 한선씨/크라우니어로 잘 구축됐나 · 여러 플랫폼 배치돼도 작동하나 · 게이트웨이끼리 충돌 없이 구동되나. 방법: 4차원(한선씨순도·크로스플랫폼·게이트웨이충돌·VM부하) 레드팀 병렬 공격 → 각 발견을 독립 스켑틱이 반증 시도(CONFIRMED/REFUTED). 19에이전트, 17발견, 15검증.

결론

"충돌 없이 잘 된다"는 반증됐다. 실제 재현되는 결함이 여러 건 나왔고, 그중 치명 1건과 게이트웨이간 충돌 다수가 확인됐다. 안전·명확한 것은 이 세션에서 수정했고, 심층 아키텍처 결함은 태스크로 추적한다.

내가 직접 발견·수정한 최중요 충돌 (워크플로와 독립)

sysguard vs Q감독 무한 충돌 (수정 완료) — 라이브 워커가 정확히 5분 주기로 죽고 있었다. 범인: crowny-sysguard/자원관제.한선+정리.sh(300s 주기)가 crownyc run을 .toau 파일명으로 그룹핑해 "2개↑=우발적 중복 인스턴스"로 오판, 1개만 남기고 kill. REUSEPORT 2워커가 둘 다 gwlive.toau라 5분마다 1개 죽고 Q감독이 보충하는 무한 반복. sysguard 관제.log에 2 gwlive.toau "중복 인스턴스 상세" 반복 기록으로 확정. 수정: 멀티인스턴스예외.txt(basename 화이트리스트)를 정리.sh가 로드해 gwlive.toau 건너뜀. 실증: 정리.sh 실제 실행해도 두 워커 생존, 수정 후 20분간 organic death 0건(구 5분주기면 4건).

교훈: 의도적 다중인스턴스(워커풀)는 기존 "중복 킬러"와 반드시 충돌한다 — 새 워커풀 도입 시 모든 감독자(sysguard/워치독/재기동)에 예외 등록 필수.

CONFIRMED 결함 + 조치

#차원결함심각도조치
VM-F1VM부하워커 wedge: 느린/hung 백엔드 1개+연결 N개(=워커수)로 전 293도메인 다운, 클라 종료로도 복구불가(TCP쓰기 반환 미검사·최대8192회). PID 헬스체크로 감지 불가critical완화(워치독 wedge 순환교체 자가치유) + 태스크#8(근본해결)
충돌-F2충돌워치독 "전 워커 kill→감독위임"이 REUSEPORT 자연복구보다 나쁜 8.45s 전역다운high수정: 1워커만 순환 kill(생존워커 서빙). 그림자 실증 20/20
충돌-F1충돌공유락 mkdir+rm 비원자 TOCTOU 이중획득(8-way 4/5회)high→완화수정: 재획득 후 pid 재검증. 블라스트반경 이미 REUSEPORT+바인드재시도로 축소
충돌-F0충돌Q감독.sh stop이 GWQ_PORT 없으면 8080(프로덕션) kill — 검증 중 실제 5초 라이브다운 유발high수정: 8080 정지는 GWQ_CONFIRM_PROD=1 강제. 실증(거부 exit2, 워커 생존)
충돌-F3충돌P2P 피어 동기화판정 로그만·미강제(스플릿브레인) + 9152 포트충돌medium라이브 미배선(inert) → 태스크#9
크로스-F1크로스Q피어.한선 gateway.yaml 하드코딩 토큰치환 누락 → 배포본 전부 /Users/ef 박힘high병렬수정(진행)
크로스-F2크로스게이트웨이SPA정적코어.한선 하드코딩이 패키지 sed 스코프 밖 → 비-/Users/ef 설치 시 정적서빙 전도메인 404high병렬수정(진행)
크로스-F3크로스start.sh stunnel 경로 Apple Silicon 하드코딩 → Intel/Linux HTTPS 죽음medium수정: command -v 동적탐지
크로스-F4크로스Q감독.sh date -r BSD전용 → Linux status 깨짐medium수정: epoch_to_date 폴백
크로스-F5크로스워치독 stat -f%z BSD전용 → Linux 로그로테이션 영구비작동medium병렬수정(진행)
크로스-F6크로스SIGTERM 핸들러 부재 → "무중단 롤링재활용"이 진행중요청 즉시절단medium문서화(코어작업 필요)

REFUTED / 오탐

  • 한선씨순도 차원: 구조화 출력 오염("test" 플레이스홀더)으로 유효 발견 0 — 워크플로 산출 실패(별도 재검증 필요). 단 내 직접분석: 게이트웨이는 hanseonc_high(C-like 고수준) 정상 컴파일·라이브 가동, 셸아웃(awk/cat/wc)은 VM 16KB캡 우회용 I/O 브리지(정당). RPN 정본은 미완(87단어)이라 라이브 미사용 — 헌법상 RPN 정통이나 현 라이브는 레거시 고수준(추적 태스크#6).
  • VM-F2(REUSEPORT 포트소유권 미검증): PARTIALLY→low. SO_REUSEADDR은 패치 이전부터 상시 on(기존동작). 에이전트 자신의 안전포트 위반이 사고 주원인.
  • GW_WID 스크래치 격리 불완전 가설: 라이브 컴파일 경로(pkg/libs)에서 이미 패치됨 확인(재현불가).

검증 중 발생한 사고 (투명 공개)

두 레드팀 에이전트가 안전수칙 위반: (1) 안전포트범위 무시하고 8200 사용→기존 uvicorn 서비스와 REUSEPORT 공존(즉시 정리). (2) Q감독.sh stop을 GWQ_PORT 없이 호출→프로덕션 8080 kill→~5초 다운(launchd 자동복구). 둘 다 자기보고. 라이브는 현재 완전정상(2워커, 전 도메인+TLS 200). 사고 (2)가 역으로 충돌-F0 결함을 실증해 수정으로 이어짐.

남은 과제 (태스크)

#6 RPN 87단어 · #7 POST 업로드 스트리밍 · #8 워커 wedge 근본해결(단일 블로킹 루프 동시성) · #9 P2P 스플릿브레인 게이팅+포트채번