2012-11-07 2 views
1

MongoDB의 보안 나의 신뢰가 흔들리고있다, 나는 그것이 내가 뭔가를 잘못하고 있어요 설명과 함께 복원됩니다 호핑있어 ... 나는이 같은 MongoDB를의 Windows 서비스를 만들었습니다MongoDB의 보안 문제

:

mongod --logpath "C : \ MongoDB를 로그 \"--logappend --dbpath "C : \ MongoDB를 \ 데이터 \ DB를"--serviceName MongoDB를 --serviceDisplayName "몽고 DB"--port 27017 --auth --install

그런 다음 DB를 만들고 해당 DB의 system.users 컬렉션에 관리 사용자를 추가했습니다.

그런 다음 DB에 임의의 정보를 입력하여 작성한 테스트 컬렉션에 채웠습니다.

지금까지

, 나는이 같은 서비스를 제거

... ... 이제

중요한 부분 모든 위대하고 내가 관리자 자격 증명이있는 경우에만 DB에 액세스 할 수 있어요 :

mongod --remove --serviceName "MongoDB를"그럼

나는 서비스를 다시 있지만 인증 등으로 이 :

mongod --logpath "C : \ MongoDB를 로그 \"--logappend --dbpath "C : \ MongoDB를 \ 데이터 \ DB를"--serviceName MongoDB를 --serviceDisplayName "몽고 DB"- 내가해야

가 알려주세요 ... 날 놀라게 무엇 27017 --noauth --install

내가 지금 내가 지금 인증을 만든 DB에 액세스 할 수 있음이다 -port 다르게 뭔가를했다. 당신이 만든 구성 실수는 당신이 당신의 데이터베이스에 모든 인증 수단을 사용할 것을

Default: true 

Disable authentication. Currently the default. Exists for future compatibility and clarity. 

For consistency use the auth option. 

source

NOAUTH :

+5

인증을 사용하지 않고 인증없이 데이터에 액세스 할 수 있다고 생각하십니까? 인증은 데이터에 액세스 할 수있는 사용자를 제어하므로 데이터를 암호화하면 안됩니다. 네가 한 말대로하고있어. –

+1

다른 주석에서 언급했듯이 인증은'mongod' 서비스를 통해 액세스를 제어하지만 디스크의 데이터를 암호화하거나 변경하지는 않습니다. 이것은 다른 소프트웨어와 일치합니다. 예를 들어 Windows에서 암호를 설정해도 데이터가 암호화되지는 않습니다. 민감한 데이터를 암호화하는 솔루션이 있습니다. [Gazzang으로 MongoDB의 데이터 보안] (http://www.10gen.com/events/webinar/secure-mongodb-data-gazzang)을 참조하십시오. – Stennie

답변

1

없음 인증은 자격 증명을 제공 해달라고 의미 .

5

인증은 데이터베이스 레벨이 아닌 디먼 레벨에서 발생합니다. 데이터 자체는 암호화되거나 액세스 제어되지 않습니다. 자격 증명을 요구하지 않고 서비스를 실행하면 예상대로 연결하고 사용하는 데 자격 증명이 필요하지 않습니다.

서버에 대한 액세스 권한이 있고 데몬을 수정할 수있는 것처럼 일반적으로 문제가되는 것으로 간주되지 않습니다. 정의에 따라 데이터 파일에 액세스 할 수 있습니다.

+0

나는 뭔가를 놓치지 않는 한 완전히 정확한 소리를 내지 않습니다. 사용자가 서비스 (예 : 시스템 관리자)에 액세스 할 수는 없지만 데이터베이스에 액세스 할 수는 없습니까? 아마도 좀 더 드문 일이지만 나는 그런 식으로 설정할 수 있습니다. 또는 더 일반적으로 나는 두 개의 서로 다른 보안 영역을 가진 mongoService 및 mongoUser 계정을 가지고 있습니다. – Woot4Moo

+3

서비스가 *에서 실행되는 사용자는 데이터 파일에 대한 읽기 권한을 가지고 있어야합니다. 인증없이 서비스를 시작하고 데이터 파일을 읽을 수있게하려면 서비스를 시작한 사용자가 데이터베이스 사용자가 될 수 있어야하며 따라서 데이터 파일에 액세스 할 수 있어야합니다. 달리 말하면, 시스템 사용자가 mongo 데몬을 수정할 수 있다면, 왜 그는 단지 mongo 데몬을 우회하여 디스크에서 데이터 파일을 읽고 비슷하게 실행할 수있는 작은 프로그램을 작성할 수 없습니까? –

0

음 ...

텍스트 편집기로 데이터베이스 파일을 편집하면 저장된 정보를 볼 수 있으므로 정보가 암호화되지 않습니다.

필자의 의견으로는 ideias의 순서대로 보안 데이터베이스에서 mongodump 또는 mongorestore 명령을 실행할 때 사용자와 암호를 지정하는 것이 좋습니다. 직접적으로 보자면, 나쁜 의도로 관리자가 데이터를 내보내는 데 관심이 있다면, 당연히 훨씬 더 많은 작업을 통해 데이터베이스 파일 자체를 편집 할 수 있습니다. P

인증은 데이터베이스 수준의 인스턴스가 아닙니다. 그 자체가 (관리 데이터베이스를 통해),하지만 내 생각에 그는 Windows 서비스를 제거하기 위해 인증을 지정할 필요가 없기 때문에 baddly intencioned 사용자가 DB 정보를 얻는 것이 매우 쉽습니다. ...

고맙습니다 너의 의견!

+0

Windows 서비스를 중지하거나 제거 할 수있는 능력이있는 경우 심하게 의도 된 관리자라고 가정합니다. 정의에 따라 관리자 역할이있는 사용자는 서비스를 다시 구성하고 데이터를보고 기타 해당 서버를 관리 할 수있는 모든 권한을 갖습니다. 파일 시스템 보안은 데이터 파일보기를 방해하고 o/s 권한은 다른 사용자가 시작한 서비스에 대한 액세스를 제한합니다. – Stennie