Skip to content

Security: JinHo-von-Choi/anchormind

Security

SECURITY.md

보안 정책

지원 범위

최신 마이너 릴리스에 보안 수정을 반영한다. 그 이전 버전은 개별 판단한다.

버전 지원
5.9.x 지원
5.8 이하 미지원

취약점 신고

취약점을 발견하면 공개 이슈로 올리지 말고 아래 경로로 알린다.

접수 후 3영업일 안에 회신하고, 확인되면 수정 계획과 예상 일정을 공유한다. 수정 배포 전까지 상세 내용을 공개하지 않는다.

신고에 다음이 포함되면 확인이 빠르다.

  • 영향 받는 버전과 배포 형상
  • 재현 절차
  • 관측한 영향 범위

운영 시 반드시 확인할 것

이 서버는 기억 데이터를 보관하며 API 키 단위로 격리한다. 다음을 확인하지 않은 채 인터넷에 노출하면 격리가 성립하지 않는다.

인증

MEMENTO_ACCESS_KEY를 설정한다. 설정하지 않으면 서버가 기동하지 않는다. 인증 없이 운용하려면 MEMENTO_AUTH_DISABLED=true를 명시해야 하며, 이 경우 모든 요청이 master 권한으로 처리된다. 노출 환경에서는 쓰지 않는다.

데이터베이스 격리

기본 배포에서 키 간 격리는 애플리케이션 질의 필터가 담당한다. 행 수준 보안을 두 번째 방어선으로 세우려면 런타임 역할을 표 소유자와 분리하고 FORCE ROW LEVEL SECURITY를 적용해야 한다. 절차는 docs/operations/row-level-security.md에 있다.

리버스 프록시

TRUST_PROXY_HOPS를 실제 프록시 단수에 맞춘다. 직접 노출 환경에서는 0을 쓴다. 이 값이 어긋나면 요청자 IP를 위조할 수 있고 IP 기준 제한이 무력해진다.

저장 데이터

기억 본문은 PostgreSQL에 평문으로 저장된다. 저장 암호화와 백업 암호화는 인프라 계층 책임이다. Redis에 접근 통제를 걸지 않으면 세션과 토큰이 노출된다.

타임아웃

REQUEST_TIMEOUT_MSDB_STATEMENT_TIMEOUT_MS를 0으로 두지 않는다. 0은 무제한이며 느린 연결이나 폭주 질의가 커넥션을 점유한다.

자동 검사

의존성 취약점은 CI에서 npm audit으로 검사한다. 정적 분석은 CodeQL이 수행한다. 의존성 갱신 제안은 Dependabot이 올린다.

There aren't any published security advisories