데이터베이스 서버를 인터넷에 노출시키는 지혜?

데이터베이스 서버를 인터넷에 노출시키는 지혜?

제가 일하는 소규모 회사의 경영진은 SaaS에 대해 매우 흥미를 갖고 우리 제품을 SaaS 배포로 추진하고 있습니다. 제품 기능의 일부가 사용자가 비즈니스 인텔리전스를 사용할 수 있도록 기반을 두고 있기 때문에 이에 대해 우려가 됩니다. 애플리케이션의 기본 데이터베이스에 대한 보고서를 작성하는 도구입니다.

SaaS 모델에서 해당 기능을 어떻게 제공할 계획인지 물었을 때 나는 멍한 표정을 지으며 데이터베이스 서버를 인터넷에 노출하고 사람들이 마치 데이터베이스가 실행되는 것처럼 쿼리할 수 있도록 허용할 것이라는 대답만 받았습니다. 그들의 회사 네트워크.

이것은 나를 겁주는 사람들을 놀라게 하지만 내가 단지 편집증적인 것인지, 아니면 걱정할 상당한 이유가 있는지는 모르겠습니다.

그래서 내 질문은: Oracle 데이터베이스 서버의 보안을 적절하게 강화하여 그것이 인터넷에 노출될 것이라는 사실에 대해 걱정할 필요가 없도록 하는 것이 가능한가입니다. 그렇다면 이를 수행하는 방법을 배우기 위해 어떤 리소스를 조사해야 합니까? 데이터베이스는 고객이 세상에 노출하고 싶지 않은 독점 정보를 저장하게 되지만, VPN 뒤에 이 기능을 추가하려는 제안은 정중히 거부되었습니다.

Oracle 데이터베이스 강화에 대한 내 검색에는 "방화벽에 구멍을 뚫지 마십시오"라는 문구가 거의 모두 포함되어 있으므로 여기서 정답은 "이력서를 최대한 빨리 업데이트하십시오"일 수 있습니다. 당신이 줄 수 있는 조언에 감사드립니다.

답변1

데이터베이스를 노출하는 것은 실제로는거대한world+dog에 자주 노출되는 다른 서비스 중 일부와 비교하면 문제가 됩니다. 권한 에스컬레이션을 포함하여 잠재적인 취약점이 많은 복잡한 시스템이라는 점만 제외하면 됩니다. 데이터베이스를 공개 쿼리에 노출하지 않고 SSL이 필요한 상태에서 실행하는지 확인하겠습니다. 가능하다고 말하고 싶지만 그렇습니다. 편집증이 있어야 하며 공개용 데이터베이스 설치를 별도로 유지해야 합니다. 귀하의 회사가 이에 대한 라이선스 비용을 지불할 의사가 없다면, 그렇습니다.

고객/지원 측면에서 고객의 ISP가 특정 유형의 포트 또는 트래픽을 차단하는 경우 데이터베이스에 직접 연결하는 것이 문제가 될 수 있습니다.

SaaS 모델에서 일반적으로 프로그래머가 수행하기를 원하는 것은 애플리케이션에서 쿼리할 수 있는 API를 작성하는 것입니다. 이러한 성격의 API는 일반적으로 https를 통해 작동하며 HTTP 응답을 통해 애플리케이션에 데이터를 다시 제공합니다. 추가 보너스: 웹이 작동하는 곳 어디에서나 작동하고, Memcached 또는 기타 캐싱 기술을 사용하여 결과 세트를 캐시하여 db 서버의 로드를 줄이는 것이 매우 쉽고, http 인증이 잘 지원되고 테스트되었습니다.

답변2

DMZ에 두 번째 데이터베이스 서버를 설정하고 해당 데이터베이스로 덤프를 가져오고 해당 데이터베이스를 공개할 수 있도록 했습니다.

답변3

여러분도 동의하시리라 확신합니다. 정의에 따르면 액세스와 보안은 상충 관계입니다. 그리고 중요한 데이터에 액세스할 수 있도록 하는 임무를 맡고 있습니다.

간단히 대답하자면, 방화벽 속임수, 견고한 네트워크 아키텍처, 업데이트된 패치 세트, 액세스 감사 및 풍부한 백업을 통해 많은 위험을 완화할 수 있다는 것입니다.

암호 관리는 수행하기 까다로운 작업으로 인식되기도 합니다. 종종 응용 프로그램 계정에는 만료되지 않는 암호가 있고, 암호를 알고 있는 전직 직원이 데이터에 액세스할 수 없도록 물리적/네트워크 액세스 제어가 적용되는 경우가 많습니다. 데이터베이스 서버가 인터넷 전체에 노출되어 있다면 이는 어려운 일처럼 보입니다.

당신은 아마도 '우리는 타협했습니다. 이제 무엇을 해야 할까요?'를 정의하고 싶을 것입니다. 전략을 수립하여 관련된 모든 사람에 대한 기대치를 설정하고 운이 다한 경우에 대한 조치 계획을 세웁니다.

답변4

SaaS는 상품입니다.

데이터베이스 서버를 인터넷에 노출하는 것은 그리 좋지 않습니다.

왜 노출이 필요합니까? RPC 때문인가요? 정적 RPC 포트를 사용하고 싶지 않습니까?

그러나 훌륭한 애플리케이션 방화벽이 있으며 DB의 엔드매퍼 포트를 잠근 다음 방화벽을 설정하면 ACL, IP 제한 등을 통해 좋은 작업을 수행할 수 있습니다.

그리고 이벤트 로그, 취약점 검색 등을 감사해야 합니다.

관련 정보