基準資料庫服務安全指南
安全總覽
本主題概述「基準資料庫服務」中的安全性。Oracle 會管理大多數元件的安全性,而使用者則負責某些元件的安全性。
雲端服務元件會分類為使用者可存取的服務和 Oracle 管理的基礎架構。使用者可存取的服務是指使用者在訂閱基準資料庫服務時,可存取的元件。這些是虛擬機器和資料庫服務,通常稱為資料庫系統和資料庫。Oracle 管理的基礎架構是指 Oracle 擁有並運作以支援使用者存取服務的硬體。它是由 AMD 或 Intel 型資料庫運算資源配置所組成。
Oracle 將管理 Oracle 管理的基礎架構元件安全性和存取權。使用者將管理對使用者可存取服務的安全性和存取,這些服務包括對資料庫系統和資料庫服務的存取、對資料庫系統的網路存取、存取資料庫系統的認證,以及對在資料庫系統上執行的資料庫進行認證。Oracle 員工無權存取使用者可存取的服務。
使用者可以使用標準 Oracle Database 連線方法 (例如連接埠 1521 上的 Oracle Net),透過使用者設備的第 2 層 (標記 VLAN) 連線存取在資料庫系統上執行的 Oracle 資料庫。使用者可以使用標準 Oracle Linux 方法連線至執行 Oracle 資料庫的資料庫系統,例如連接埠 22 上的權杖型 SSH。
基本資料庫服務採用多種獨立且相互強化的安全控制功能,協助組織為其工作負載和資料建立安全的作業環境。基準資料庫服務提供下列安全控制:
深度防禦以保護作業環境
基準資料庫服務提供數個控制項,可在整個服務中維護機密性、完整性和問責性。基準資料庫服務提供下列深入防禦原則:
- 資料庫系統的虛擬機器是從以 Oracle Linux 7 為基礎的強化作業系統映像檔所建立。它會藉由將安裝影像限制為僅必要的套裝軟體、停用不需要的服務,並在整個系統中實作安全配置參數來保護核心作業環境。
- 除了繼承成熟的 Oracle Linux 平台的所有強度之外,其他的安全預設組態選項還會在服務執行處理中實作。舉例來說,所有資料庫表格空間都需要通透資料加密 (TDE)、對初始資料庫使用者與超級使用者強制實行強式密碼,以及增強的稽核與事件規則。
- 基準資料庫服務也構成了完整的部署和服務,而且必須遵守業界標準的外部稽核,例如 PCI、HIPPA 和 ISO27001。這些外部稽核需求會實行額外的增值服務功能,例如防毒掃描、針對系統中未預期的變更自動發出警示,以及機組中所有 Oracle 管理之基礎架構系統的漏洞掃描。
服務和使用者的最低權限
Oracle 安全編碼標準要求最低權限的典範。確保應用程式、服務和使用者可以存取執行工作所需的功能,這只是最低權限原則的一面。同樣重要的是確保只有存取不必要的功能、服務和介面才能受到限制。基準資料庫服務提供最低權限原則,如下所示:
- 每個處理作業與協助程式都必須以一般、未授權的使用者身分執行,除非使用者能夠證明需要更高層次的權限。這有助於包含任何未預期的問題或漏洞,以找出未經授權的使用者空間,並不影響整個系統。
- 此原則也適用於使用個別指定帳戶來存取基礎架構以進行維護或疑難排解的 Oracle 作業團隊成員。只有在必要時,才會使用較高權限層次的稽核存取權來解決問題。大多數問題都是透過自動化來解決,因此除非自動化無法解決問題,否則我們也會採用最低權限來允許人工操作員存取系統。
事件和動作的稽核和歸責
系統必須能夠在事件發生時辨識和通知事件。同樣地,當事件無法回復時,組織必須能夠識別事件,才能採取適當的動作。基準資料庫服務透過下列方式鼓勵稽核和問責:
- 稽核與問責可以確保 Oracle 和使用者都知道系統上所進行的活動及其時間。這些詳細資訊不僅可確保我們仍然符合外部稽核的報告需求,還能協助識別導致未預期行為的活動。
- 提供所有基礎架構元件的稽核功能,以確保擷取所有動作。使用者也可以設定其資料庫和使用者網域 (domU) 組態的稽核,而且可以選擇將這些稽核與其他企業稽核系統整合。
- Oracle 無法存取使用者 domU。
自動化雲端作業
藉由消除佈建、修補程式、維護、疑難排解和設定系統所需要的手動作業,可以減少發生錯誤的可能性,並確保安全組態。
基準資料庫服務的設計可藉由自動化所有佈建、組態和大多數其他作業作業作業,確保安全無虞。透過自動化,可以避免遺漏組態,並確保系統中的所有必要路徑都已正確設定。
安全功能
強化作業系統映像檔
- 最低套裝軟體安裝:僅安裝執行效率系統所需的必要套裝軟體。藉由安裝一組較小的套裝程式,便可減少作業系統的受攻擊面,且系統仍保持較安全。
- 安全組態:安裝時會設定許多非預設組態參數,以增強系統及其內容的安全性狀態。例如,SSH 設定為只監聽特定的網路介面,sendmail 設定為只接受本機主機連線,且安裝期間會實作許多其他類似的限制。
- 僅執行必要服務:預設會停用可安裝在系統上但非一般作業所需的任何服務。例如,NFS 服務通常是由使用者針對各種應用程式用途所設定,但預設為停用,因為一般資料庫作業不需要這個服務。使用者可以選擇視其需求來設定服務。
最小化攻擊面
在強化影像中,只要安裝並執行提供服務所需的軟體,就可以減少受攻擊面。
啟用其他安全功能
- 基準資料庫服務預設是安全的,它會提供完整的安全堆疊,從網路防火牆控制到存取控制安全原則。
- FIPS、SE Linux 與 STIG 可另外啟用,以提升使用
dbcli secure-dbsystem
CLI 的系統安全性。 - 提供 STIG 工具可提升對佈建系統中每個系統節點的 DISA Oracle Linux 7 STIG 的規範。
安全存取方法
- 使用強式加密方法透過 SSH 存取資料庫伺服器。預設會停用弱加密。
- 透過加密的 Oracle Net 連線存取資料庫。依照預設,我們的服務會使用加密的通道提供,而預設設定的 Oracle Net 從屬端將會使用加密的階段作業。
稽核和記錄
依照預設,稽核和記錄不會針對作業系統提供的商業部署新增任何其他組態,但可透過啟用 STIG 來新增其他安全設定值來加以改善。
請參閱下列主題以取得詳細資訊:
使用者安全性
本主題描述「基準資料庫服務」中的使用者安全性。基準資料庫服務元件由數個使用者帳戶定期管理。Oracle 只會使用並建議權杖型 SSH 登入。Oracle 使用者或處理作業不使用密碼式認證。
預設會建立下列使用者種類:
預設使用者:沒有登入權限
此使用者清單包含預設作業系統使用者。不應更改這些使用者。這些使用者無法登入系統。
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
polkitd:x:999:996:User for polkitd:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the
tcsd daemon:/dev/null:/sbin/nologin
sssd:x:998:994:User for sssd:/:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
saslauth:x:997:76:Saslauthd user:/run/saslauthd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
預設使用者:具備登入權限
這些具有權限的使用者會負責完成系統中大多數的工作。請勿更改或刪除這些使用者,因為這會對執行中的系統造成重大影響。SSH 金鑰用於登入。
下列是具備登入權限的預設使用者清單。
root
為 Linux 的需求。它會謹慎執行本機授權的命令。根目錄也用於一些處理,例如 TFA 代理程式。它會執行本機代理程式 (亦稱為「DCS 代理程式」),以執行 RDBMS 軟體的週期作業 (修正、建立資料庫等)。oracle
擁有 Oracle Database 軟體安裝並執行 RDBMS 處理作業。grid
擁有 Oracle Grid Infrastructure 軟體安裝並執行 GI 處理作業。opc
由 Oracle Cloud 自動化用於自動化任務。使用者可以在不進一步驗證的情況下執行某些授權指令 (以支援自動化功能)。mysql
是重要使用者,它必須啟動並在執行中,才能順利執行「DCS 代理程式」,因為它擁有「DCS 代理程式」的描述資料存放區。
root:x:0:0:root:/root:/bin/bash
opc:x:54322:54323::/home/opc:/bin/bash
mysql:x:54323:54331::/home/mysql:/bin/bash
grid:x:102:1001::/home/grid:/bin/bash
oracle:x:101:1001::/home/oracle:/bin/bash
安全設定
本主題描述「基準資料庫服務」中可用的安全設定值。下列為系統中所提供的預設安全設定值。
表格 - 安全性設定與預設值
安全設定 | 預設值 |
---|---|
密碼複雜性 |
|
使用者帳戶組態 |
|
已停用的選項 |
|
SSH 組態 |
|
封裝項目 |
|
日誌記錄 |
|
其他人 |
|
此外,ONSR 區域預設會啟用 FIPS、SE Linux 和 STIG,以符合需求標準。您可以啟用其他配置來提升系統安全性。組態標準 (STIG) 可設為遵守最嚴格的標準,並運用 DISA 的 Oracle Linux 7 STIG 來提升安全性規範。此影像中會提供工具來啟用 FIPS、SE Linux 以及 STIG。
請參閱下列主題以取得詳細資訊:
安全性程序
本主題描述「基準資料庫服務」中可用的預設安全處理作業。以下是依預設在使用者虛擬機器 (DB 系統) 上執行的處理作業清單,也稱為 domU。
表格 - 安全性處理
處理作業 | 描述 |
---|---|
domU 代理程式 |
它是處理資料庫生命週期作業的雲端代理程式。
|
TFA 代理程式 |
Oracle Trace File Analyzer (TFA) 在單一組合中提供數種診斷工具,可讓您輕鬆收集 Oracle Database 和 Clusterware 的診斷資訊,進而協助解決處理 Oracle Support 的問題。
|
資料庫與 GI (叢集軟體) |
|
網路安全
本主題描述「基準資料庫服務」中的網路安全。下列為預設在使用者虛擬機器 (DB 系統) 上執行的連接埠、處理作業以及 iptables 規則清單,亦稱為 domU。
domU 服務的連接埠
下表提供 domU 服務的預設連接埠清單。
表格 - domU 服務的預設連接埠矩陣
介面類型 | 介面名稱 | 連接埠 | 處理執行中 |
---|---|---|---|
在所有介面上監聽 | 0.0.0.0 | 22 | SSH |
1522 | RDBMS:TNS 監聽器 | ||
7060 | DCS 管理員 | ||
7070 | DCS 代理程式 | ||
2181 | Zookeeper | ||
8888, 8895 | RAC:管理服務品質 (QOMS) 伺服器 | ||
9000 | RAC: Oracle Clusterware | ||
68 | DHCP | ||
123 | NTP | ||
5353 | 多點播送 DNS | ||
用戶端介面 | ens3 | 1521 | RDBMS:TNS 監聽器 |
5000 | RDBMS:自治式狀況架構 (AHF) (包括 TFA) | ||
ens3:1 | 1521 | RDBMS:TNS 監聽器 | |
ens3:2 | 1521 | RDBMS:TNS 監聽器 | |
ens3:3 | 1521 | RDBMS:TNS 監聽器 | |
叢集連結 | ens4 | 1525 | RDBMS:TNS 監聽器 |
2888 | Zookeeper | ||
3888 | Zookeeper | ||
6000 | RAC:網格處理作業間通訊 | ||
7000 | RAC:高可用性服務 |
domU 的 iptables 規則
預設的 iptables 在輸入、正向和輸出鏈結上設定為 ACCEPT
連線。
下列是 domU 服務的預設 iptables 規則:
CHAIN INPUT
CHAIN FORWARD
CHAIN OUTPUT
範例 - iptables 規則
下列範例提供 domU 服務的預設 iptables 規則。
iptables -L -n -v
輸出:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
43M 110G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2664 224K ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
40793 2441K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- ens4 * 0.0.0.0/0 0.0.0.0/0
3 192 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
40 2400 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:1521 /* Required for access to Database Listener, Do not remove or modify. */
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:5000 /* Required for TFA traffic. */
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:6200 /* This rule is recommended and enables the Oracle Notification Services (ONS) to communicate about Fast Application Notification (FAN) events. */
343 20580 ACCEPT tcp -- * * 169.254.0.0/16 0.0.0.0/0 state NEW tcp dpt:7070 /* Required for instance management by the Database Service, Do not remove or modify. */
132 7920 ACCEPT tcp -- * * 169.254.0.0/16 0.0.0.0/0 state NEW tcp dpt:7060 /* Required for instance management by the Database Service, Do not remove or modify. */
0 0 ACCEPT tcp -- * * 169.254.0.0/16 0.0.0.0/0 state NEW tcp dpt:22 /* Required for instance management by the Database Service, Do not remove or modify. */
3 424 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 51078 packets, 3218K bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * ens4 0.0.0.0/0 0.0.0.0/0
52M 170G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
8003 548K InstanceServices all -- * * 0.0.0.0/0 169.254.0.0/16
Chain InstanceServices (1 references)
pkts bytes target prot opt in out source destination
11 660 ACCEPT tcp -- * * 0.0.0.0/0 169.254.2.0/24 owner UID match 0 tcp dpt:3260 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
1 60 ACCEPT tcp -- * * 0.0.0.0/0 169.254.0.2 owner UID match 0 tcp dpt:3260 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
0 0 ACCEPT tcp -- * * 0.0.0.0/0 169.254.0.2 tcp dpt:80 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
678 63323 ACCEPT udp -- * * 0.0.0.0/0 169.254.169.254 udp dpt:53 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
0 0 ACCEPT tcp -- * * 0.0.0.0/0 169.254.169.254 tcp dpt:53 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
0 0 ACCEPT tcp -- * * 0.0.0.0/0 169.254.0.3 owner UID match 0 tcp dpt:80 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
0 0 ACCEPT tcp -- * * 0.0.0.0/0 169.254.0.4 tcp dpt:80 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
2569 195K ACCEPT udp -- * * 0.0.0.0/0 169.254.169.254 udp dpt:123 /* Allow access to OCI local NTP service */
4727 284K ACCEPT tcp -- * * 0.0.0.0/0 169.254.169.254 tcp dpt:80 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
15 4920 ACCEPT udp -- * * 0.0.0.0/0 169.254.169.254 udp dpt:67 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
0 0 ACCEPT udp -- * * 0.0.0.0/0 169.254.169.254 udp dpt:69 /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */
0 0 REJECT tcp -- * * 0.0.0.0/0 169.254.0.0/16 tcp /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */ reject-with tcp-reset
0 0 REJECT udp -- * * 0.0.0.0/0 169.254.0.0/16 udp /* See the Oracle-Provided Images section in the Oracle documentation for security impact of modifying or removing this rule */ reject-with icmp-port-unreachable
安全設定值的使用者職責
本主題描述「基準資料庫服務」中安全設定值的 Oracle Cloud 作業責任與使用者職責。下表提供 Oracle Cloud Operations 與使用者必須執行的安全性設定清單。
表格 - 各種作業的 Oracle Cloud 作業與使用者職責
操作 | Oracle Cloud Platform | 使用者 / 租用戶執行處理 | ||
---|---|---|---|---|
Oracle Cloud 職責 | 使用者職責 | Oracle Cloud 職責 | 使用者職責 | |
資料庫部署 | 部署基準資料庫服務的軟體基礎架構和指南 |
網路管理員:設定雲端網路基礎架構 (VCN 和子網路、閘道等)。 資料庫管理員:設定資料庫需求 (記憶體、儲存、運算、資料庫版本、資料庫類型等)。 |
如果選取,安裝作業系統、資料庫以及 Grid Infrastructure 系統 | 資料庫管理員:視需要更新 Oracle Database 軟體版本、虛擬機器需求資源配置 (CPU / 記憶體)、資料儲存體以及復原儲存體組態大小資源 (升級 / 降級資源)。 |
監督 | 實體安全性,基礎架構,控制平面,硬體故障,可用性,容量 | 不需要 | 支援使用者監控使用者服務的基礎架構可用性。 | 資料庫管理員:監控使用者作業系統、資料庫、應用程式及 Grid Infrastructure |
事件管理與解決方案 | 事件管理與補救零件與現場調度 | 不需要 | 支援任何與基礎平台相關的事件 | 資料庫管理員:使用者應用程式的事件管理與解決方案 |
修正程式管理 | 主動修正硬體、IaaS/PaaS 控制堆疊 | 不需要 | 暫存可用的修正程式,例如 Oracle Database 修正程式集 |
資料庫管理:修正租用戶執行處理,測試 OS Admin:作業系統修正 |
備份與回復儲存體 | 基礎架構與控制平面備份與復原,重新建立使用者虛擬機器 | 不需要 | 提供執行中和使用者可存取的虛擬機器 | 資料庫管理員:使用 Oracle 原生或第三方功能,對使用者 IaaS 和 PaaS 資料進行快照 / 備份與復原 |
啟用其他安全功能
基準資料庫服務提供下列額外的安全功能:
dbcliNetSecurity
dbcli NetSecurity 會處理經由網路傳送的資料加密。當資料從 Oracle Database 移到第三方,或從伺服器移到用戶端時,必須在寄件者的端進行加密,並在收件者端進行解密。在 NetSecurity 中,系統會在佈建和資料庫本位目錄建立作業期間,為從屬端和伺服器設定預設值。dcs-agent
CLI 介面提供可更新這些 NetSecurity 規則的指令,以及增強加密演算法、完整性演算法和連線類型的安全性。
依照預設,dcs-agent
會為資料庫本位目錄設定下列預設規則:
SQLNET.ENCRYPTION_SERVER=REQUIRED
SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,AES192,AES128)
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1)
SQLNET.ENCRYPTION_CLIENT=REQUIRED
SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUIRED
SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256,AES192,AES128)
SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1)
如需有關更新設定值的詳細資訊,請參閱 Oracle Database CLI Reference。
OCI 保存庫整合
基準資料庫服務現在已與所有 OCI 商業區域中的 OCI 保存庫服務整合。您現在可以在保護資料庫的 OCI 保存庫內建立及管理 TDE 主要金鑰。使用此功能,您可以選擇開始使用 OCI Vault 服務來儲存和管理主要加密金鑰。用於保護資料庫的 OCI 保存庫金鑰儲存在高可用性、持久且受管理的服務中。
附註:
OCI Vault 整合僅適用於 Oracle Database 19.13 和更新版本。透過 OCI Vault 與 Base Database Service 整合,您可以:
- 在基準資料庫服務上佈建 Oracle 資料庫時,啟用以 OCI 保存庫為基礎的金鑰加密,集中控制及管理 TDE 主要金鑰。
- 讓您的 TDE 主要金鑰儲存在高可用性、持久且受管理的服務中,這些金鑰受到符合 Federal Information Processing Standards (FIPS) 140-2 Security Level 3 安全認證的硬體安全模組 (HSM) 保護。
- 定期輪換加密金鑰,以維護安全規範,若發生人員變更,請停用資料庫的存取。
- 從 Oracle 管理的金鑰移轉至您現有資料庫的使用者管理金鑰。
- 自備金鑰 (Bring Your Own Key) - 在使用使用者管理的加密建立資料庫時使用自己的金鑰。
附註:
- BYOK 僅適用於容器資料庫 (CDB)。可插拔資料庫 (PDB) 將會被指派自動產生的新金鑰版本。
- 使用使用者管理加密的 Oracle 資料庫支援資料庫系統複製、就地回復、異地回復、區域內資料保全組態,以及建立 PDB 和本機複製等 PDB 特定作業。
使用 CLI 啟用 FIPS
Oracle 為商業使用者提供了一個預設工具來提高安全性。此工具可用來讓 FIPS、SE Linux 與 STIG 遵循最嚴格的標準。