셀렉트 보안 로드맵 (Security in stages)

셀렉트 보안 로드맵 (Security in stages)
Photo by Philipp Katzenberger / Unsplash

어드민 백오피스는 서비스 데이터와 회원의 개인정보를 취급하기 때문에 높은 보안이 중요합니다.

셀렉트를 이용하며 적정 보안을 유지하기 위해 조직 규모에 맞는 보안 모델을 충족하는 몇가지 시나리오를 공유드립니다.·


어드민 사용자 접근 보안성 (개인정보처리시스템)

  • SQL 쿼리 보안
    셀렉트 권한 정책을 통해 사용자(조회) 권한과 편집자(수정) 권한을 적절히 부여합니다. 사용자(조회) 권한으로는 어떠한 추가 쿼리(SQL) 실행이 원천적으로 불가능합니다. 따라서 편집자(수정) 권한으로 저장한 쿼리만 실행 가능합니다.
  • 어드민 편집 히스토리 로그
    편집자(수정) 권한으로 어드민을 수정한 모든 이력을 저장하고 있습니다. 이력을
    조회하는 페이지는 추후 공개 예정이며 현재는 수사기관 및 고객사의 요청에 따라 직접 제출하고 있습니다. 보안 로그는 팀삭제/탈퇴하더라도 절대 삭제되지 않으며 일정기간 이후에 파기됩니다.
  • 어드민 사용 로그
    사용자(조회) 권한으로 모든 메뉴, 쿼리, 액션등을 할때 로그를 남깁니다. 이 때 로그는 SQL 쿼리 일부 (bind statements)를 저장합니다. 쿼리 파라메터(사용자 값)은 저장하지 않습니다. log 옵션을 직접 활성화하는 경우 파라메터 값도 기록합니다. (insert, update에 대한 로그)
  • 어드민 접근
    셀렉트는 Google SSO 접속을 권장하고 기기인증과 MFA(2FA, OTP) 사용을 권장합니다. 임직원의 계정의 비밀번호가 탈취되어도 2차인증을 통해 방어합니다. 임직원의 노트북이 탈취되어도 기기인증으로 차단이 가능합니다. 셀렉트 관리자(admin) 권한을 가진 사람이 해당 임직원의 권한을 회수하는 경우 즉시 적용됩니다. (모든 페이지 전환마다 매번 권한을 확인하고 새로운 세션키를 발급 합니다.)
  • 세션 정책
    사용자가 화면을 띄워두고 일정시간 활동을 하지 않는 경우 로그아웃 됩니다. 사용자가 계속 시스템을 사용하더라도 최대 인증유효기간을 넘으면 로그아웃 됩니다. 로그아웃이 된 경우 화면 차단과 API 차단이 동시에 이루어집니다.
  • 민감 정보 정책
    편집자의 실수로 개인정보 데이터가 표시되거나 마스킹하지 않은 상태로 화면에 보이지 않도록 Organization-level, Resource-level, User-level로 Table, Column 제한을 설정합니다. 지원 예정입니다.

데이터베이스 보안

완벽한 보안은 여러 겹(Layer)으로 완성됩니다.

편의성과 보안성을 모두 충족할 수 있는 방식, 방법을 안내하고 있습니다.

Network-level methods

  • Using IP
    셀렉트 프록시 서버에게만 IP/Port를 열어줍니다.
    AWS의 경우 Security Group에 정책을 추가하여 반영합니다.

    1. 데이터베이스가 public-ip에 있는 경우에 해당합니다.
    2. 접속정보가 유출되더라도 IP 제한으로 보호됩니다.
    3. 데이터베이스의 원본(origin) IP가 노출되는 경우 위협에 노출됩니다.
    4. 해커가 AWS IDC 내부에 침입하는 경우 위협에 노출됩니다.
  • Using Zero-trust Tunnel(VPN)
    데이터베이스를 외부에 노출하지 않고 터널을 만들어 셀렉트에 연결합니다.

    1. Cloudflare Tunnel 등을 이용하면 원본노출 없이, 내부망을 안전하게 공유가능합니다.
    2. 일반적인 SSH Tunneling은 권장하지 않고 있습니다.
  • Using VPC peering
    셀렉트 프록시 서버와 내부망 서버를 외부 인터넷을 거치지 않고 안전하게 트래픽을 교환합니다. *현재 셀렉트는 Amazon Web Services 사이에만 지원하고 있습니다.
  • Using Self-hosted
    셀렉트 프록시 내용은 추가될 예정 입니다.

보완이 필요한 부분 *제공예정

  • 조직 단위로 Google SSO 강제하는 옵션 지원 (Email OTP 사용 금지)
  • 원격에서 로그아웃 시키기 (강제 재인증 요구하기)
  • 조직, 계정 단위로 Table-level 접근/처리 권한 지정하기
  • 조직, 계정 단위로 Column-level 접근/처리 권한 지정하기
  • 네트워크 정책 반영하기 (사용자단 IP 제한)
  • Private Cloud (VPC peering) 제공하기
  • 조직 단위로 Data Masking 지원하기 (특정 컬럼 감춤)
  • 업무 시간 외 접근시 알림 보내기, 임시 차단하기
  • Sensitive data 접근시 알림 보내기, 임시 차단하기
  • 대량의 데이터 조회시 (정보 유출로 판단) 알림 보내기, 임시 차단하기