OS 인증이 Oracle 데이터베이스의 보안 수준이 낮은 것으로 간주되는 이유는 무엇입니까?


29

오라클이에 따라 OS 인증을 비하되는 오라클 데이터베이스 보안 가이드 , 이는 말한다

REMOTE_OS_AUTHENT 매개 변수는 Oracle Database 11g Release 1 (11.1)에서 더 이상 사용되지 않으며 이전 버전과의 호환성을 위해서만 유지됩니다.

또한 대부분의 보안 정보 및 도구는 OS (외부) 인증 을 보안 문제로 간주합니다. 이것이 왜 그런지 이해하려고합니다. OS 인증에서 볼 수있는 장점은 다음과 같습니다.

  1. OS 인증이없는 응용 프로그램은 각각 고유 한 보안 모델과 취약점이있는 다양한 응용 프로그램에 암호를 저장해야합니다.
  2. 그렇지 않은 경우 데이터베이스 보안은 데이터베이스에 대한 액세스 속도를 늦추지 만 막을 수는 없으므로 도메인 인증은 이미 안전해야합니다.
  3. 하나의 도메인 암호 만 기억해야하는 사용자는 연결해야하는 서로 다른 데이터베이스의 수가 증가함에 따라 덜 안전한 데이터베이스 암호를 만드는 것보다 더 안전한 도메인 암호를 더 쉽게 만들 수 있습니다.

오라클이 외부 인증을 더 이상 사용하지 않는 것을 어디에서 보았습니까?
Justin Cave

1
@Justin Cave 질문에 해당 정보를 업데이트하겠습니다.
레이 리펠

2
업데이트 해 주셔서 감사합니다. 명확성을 위해, Oracle은 외부 인증을 더 이상 사용하지 않고, Gaius가 아래에서 논의하는 것처럼 일반적으로 훨씬 덜 안전한 원격 외부 인증을 사용하지 않습니다.
Justin Cave

답변:


16

다음 시나리오를 고려하십시오.

  1. gaius외부 인증을 사용하여 Oracle 서버에 이름이 지정된 Unix 사용자가 있으므로 Oracle에는이라는 해당 사용자가 ops$gaius있습니다. 쉘에 로그인하면 Oracle 스키마에 바로 로그인 할 수 있으며, cron 작업에는 스크립트에 비밀번호가 내장되어 있지 않아도됩니다.
  2. LAN이 100 % 안전하고 클라이언트를 신뢰할 수 있다는 가정하에 원격 OS 인증이 허용됩니다 ( 일반적으로 허용되는 것과 동일 rlogin/ rsh사용됨)
  3. 공격자는 어떤 방법 으로든 자신의 랩톱을 LAN으로 가져오고 내가 거기서 일한다는 것을 알고 랩톱에 로컬 사용자를 만들고 gaius해당 사용자로 SQL * Plus를 실행합니다.
  4. Oracle은 (예 : OSUSERin V$SESSION) is gaius및 원격 사용자로 로그인ops$gaius

즉 위장에 쉽게 만 우습게 아니지만, 내 냉소의 모자를 씌우고하는 것은, 오라클은 당신에게 그들의 판매를 더 이상 돈을 벌 수없는 화려한 싱글 사인온 제품 그렇고 ... 어느 않습니다 당신이 OS의 장점으로 제기 된 모든 사항을 이행 레벨 인증. 하나보다 두 개의 암호가 더 좋습니다. 어쨌든 대부분의 사람들은 그것들을 동일하게 설정합니다 (Oracle에는 이것을 방지하는 메커니즘이 없습니다).

일반적인 원칙은 공격자가 물리적으로 액세스 할 때 소프트웨어를 방어하기가 매우 어렵다는 것입니다. 절대 클라이언트를 믿지 마십시오.


2
그것보다 더 나쁘다. 참조 orafaq의 '왜 OPS는 $ 클라이언트 / 서버 환경에서 보안 위험 계정?' (그들은 창을 비난하지만 당신이 옳습니다, 그것은 네트워크상의 무엇이든입니다)
Joe

3
Windows 도메인에있는 서버는이를 어떻게 고려합니까? 즉, 침입자가 도메인을 포함하는 계정을 가지려면 컴퓨터를 도메인에 가입시켜야합니까, 아니면 실제로 컴퓨터에 가입하지 않고도 도메인의 존재를 시뮬레이션 할 수 있습니까?
레이 리펠

모든 서버가 Unix이고 모든 데스크탑이 Windows 인 당시에 작성된 것으로 추측합니다.
Gaius

3
@Leigh-OS_AUTHENT_PREFIX를 신뢰할 수있는 Windows 도메인으로 설정하여 Windows 클라이언트에서 원격 OS 인증을보다 안전하게 만들 수 있습니다. 이를 위해서는 원격 클라이언트가 신뢰할 수있는 도메인에 있어야합니다. 이로 인해 사소한 "컴퓨터를 예비 포트에 연결하고 로컬 사용자를 추가하면 공격 할 수 있습니다"라는 공격에 대한 막대가 상당히 높아지지만 여전히 이길 수 있습니다.
Justin Cave

1
실제 AD / Kerberos 인증을 수행하고 사용자로부터 티켓을 가져 와서 KDC로 확인하는 경우와 비교하고 대조하십시오.
araqnid

8

단일 장애 지점을 늘리고 데이터의 위험 영역을 확대합니다.

시스템에 액세스 할 수있는 공격자는 OS 인증을 통해 데이터베이스에 액세스 할 수 있습니다. 데이터베이스에 대한보다 안전한 액세스를 요구함으로써 잠재적 인 공격자는 손상된 시스템에 대한 권한을 에스컬레이션하여 사용자가 아닌 루트 또는 오라클 액세스 권한을 얻어야합니다.

이 문제는 데이터베이스에 대한 외부 액세스 기능입니다. 외부 액세스가없고 컴퓨터가 완전히 보호 된 경우 권한 문제는 문제가됩니다. 그러나 개발자에게 액세스 권한이있는 경우 OS 레벨 사용자 권한은 잠재적 인 보안 재해의 범위를 증가시킵니다.

다중 계층 액세스 를 사용하여 보안 위반 범위를 제한하고 모든 인스턴스에 대해 OS 수준 계정을 만들 필요없이 사용자, 응용 프로그램 또는 클라이언트에게 필요한 액세스 권한을 부여하십시오.


지나치게 단순화하기 위해 두 개의 사용자 이름 / 암호 요구 사항이 하나보다 안전합니다. 당신의 요점은 합리적입니다.
레이 리펠

이것은 미묘하게 잘못된 답변입니다. 문제는 외부 인증이 아니라 원격 외부 인증입니다. 아래에 설명하겠습니다.
Gaius

@Gaius 외부 OS 인증이 원격이 아닌 경우 무가치 한 수준으로 극도로 제한되지 않습니까? 오라클이 OS를 사용하여 인증을 더 이상 사용하지 않고 원격 컴퓨터에서 OS 인증을 사용하지 않는다고 말하는가?
레이 리펠

@Leigh-로컬 계정의 OS 인증에 대한 주요 사용 사례는 데이터베이스 서버에서 매우 강력한 계정에 액세스해야하는 많은 셸 스크립트가 데이터베이스 서버에서 실행되는 DBA 유형 작업입니다. OS 인증을 사용하면 해당 쉘 스크립트에서 암호화되지 않은 DBA 레벨 비밀번호를 피할 수 있습니다.
저스틴 동굴

@Justin 일괄 작업, 일반적으로 개별 스크립트에서 쉘 스크립트 등으로 구현
Gaius

4

Gaius는 이미 원격 운영 체제 인증 (로컬 컴퓨터 사용자가 별도의 암호를 지정하지 않고 데이터베이스에 액세스하도록 허용하는 바닐라 운영 체제 인증과 달리)이 상대적으로 안전하지 않은 이유를 지적했습니다 .

Oracle은 원격 운영 체제 인증 사용자가 아닌 엔터프라이즈 사용자 (또는 완전한 ID 관리 제품군) 를 사용하도록 권장하기 때문에 Oracle이이 방향으로 나아가고있을 것으로 기대합니다 . 엔터프라이즈 사용자는 원격 운영 체제 인증 사용자와 동일한 이점을 갖지만 Oracle은 실제로 Active Directory 서버를 방문하여 사용자를 인증합니다. 보안 검사를 클라이언트 시스템에 맡기지 않고도 동일한 싱글 사인온 혜택을 얻을 수 있습니다.


LDAP 인증은 다른 웜 캔을 열 수 있습니다. 더 긴 답변을 게시하겠습니다.
Joe

+1 Enterprise User Security를 ​​지적 해 주셔서 감사합니다. 우리는 이미 고급 보안을 고려하고 있으며 이로 인해 더욱 매력적입니다.
레이 리펠

4

구체적으로 ID 스타일 인증을 가리 키지 만 데이터베이스 또는 다른 로그인을 OS 로그인에 연결하는 다른 방법도 나쁘다는 점도 지적하고 싶습니다. (로컬 비밀번호 파일, LDAP 또는 실제 신임 정보 저장을위한 것)

데이터베이스 (또는 웹 서버 또는 인증을 수행하는 모든 것)에 대한 원격 연결을 허용하는 경우 일부 OS는 강제 계정을 무차별하게하는 규칙 (예 : 실패한 시도가 발생한 IP 차단, 잠금)을 무시합니다. 일정 횟수의 파열 등의 기간 동안 사용자). 일반적으로, 이러한 규칙에 연결되어 sshd하지 전체 인증 시스템.

따라서 누군가 원격으로 데이터베이스 / 웹 서버 /에 연결할 수 있다면 데이터베이스는 시도를 늦추는 동일한 메커니즘을 갖지 않는 경향이 있으므로 필요한 자격 증명을 찾으면 ssh를 사용하는 경향이 있기 때문에 암호를 무력화 할 수 있습니다.


2
나는 여기에 추론을 따르는 것이 확실하지 않습니다. Oracle이 LDAP에 대해 인증 한 경우 비밀번호를 얻으려면 LDAP을 해제해야합니다. 일반 Oracle 사용자와 마찬가지로 무차별 강제로 비밀번호 해시의 로컬 사본이 없습니다. 공격자가 LDAP 인증을 치는 것에 대해 우려하는 경우 Oracle 사용자를 인증하는 방법보다 더 큰 문제가있을 수 있습니다. 또한 여러 번의 시도 실패 후 계정을 잠그고 허용 된 IP 주소 등을 제한하도록 Oracle을 구성하기가 쉽습니다. 실제로 그 대부분은 11g의 기본 동작입니다.
Justin Cave

@Justin : OS에 로그인하기위한 자격 증명이 데이터베이스 (또는 웹 서버 등)에 로그인하기위한 자격 증명과 동일하도록 묶을 경우에만 문제가됩니다. 그리고 마지막으로 사용했을 때보 다 Oracle이 인증에 대해 더 나은 것처럼 들리지만 대부분의 다른 데이터베이스는 그렇지 않습니다. (맥 OS X 서버는 사용자를 교체해야 있도록 아파치는 어느하지 않습니다 mod_auth_applemod_auth_digest_apple기본 버전에 대한 문제가 여전히 10.6에있는 경우 내가 테스트하지 않았습니다 있지만,)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.