최신 마이너 릴리스에 보안 수정을 반영한다. 그 이전 버전은 개별 판단한다.
| 버전 | 지원 |
|---|---|
| 5.9.x | 지원 |
| 5.8 이하 | 미지원 |
취약점을 발견하면 공개 이슈로 올리지 말고 아래 경로로 알린다.
- GitHub Security Advisory: https://github.com/JinHo-von-Choi/anchormind/security/advisories/new
접수 후 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_MS와 DB_STATEMENT_TIMEOUT_MS를 0으로 두지 않는다. 0은 무제한이며 느린 연결이나 폭주 질의가 커넥션을 점유한다.
의존성 취약점은 CI에서 npm audit으로 검사한다. 정적 분석은 CodeQL이 수행한다. 의존성 갱신 제안은 Dependabot이 올린다.