Oracle CloudのCVE-2022-21503による認証情報流出を対処した


Oracle Cloudアカウントを作ったアドレスに「Action Required: Oracle Cloud Infrastructure Identity – Rotate Credentials for Tenant:~」というサブジェクトのメールが届いた

認証情報が流出したので、7月18日までに認証情報を再設定してね、というお知らせでした。

で・・・異なるOracle Cloudに来たメールはメールが長い・・・

・Oracle CloudのWeb Consoleのパスワード
・Oracle Cloud内部で使うSMTP認証情報
・認証トークン
・多要素認証(MFA)のワンタイプパスワード(TOTP)の乱数シード
・シークレットキー
・OAuth 2.0クライアントの認証情報
・IdPクライアントの認証情報

以上のものが盗られた可能性がある、とのこと。

このメールが届いている場合は、Oracle CloudのWebからログインした際に、パスワード変更が必須でした。

で・・・具体的に何が盗まれたのかは、Oracle CloudのWeb上からCloud Shellを起動して、「identity-audit-tool」を実行すると確認出来ます。

この場合、下記が盗難に遭っています
・Web管理画面用のユーザ「backuptest」のパスワード
・Web管理画面用のユーザ「testuser」のパスワード
・testuserに紐付いているSMTP認証情報
この3件が対象になっています。

この状態から「backuptest」ユーザのパスワードをリセット(再設定)したところ、下記のように2件に減りました。


このような形で、「roted: xx」という表示を消していき、最終的に「Found no affected credential」となるようにして対策完了となります。

Oracle CloudでのUbuntu インスタンス上のOracle Cloud Agentのアップデート


Oracle Cloud上のUbuntuインスタンスにはOracle Cloud Agentがsnapパッケージでインストールされている。

ただ、ドキュメントにはインストール手法は解説があるが、アップデート手法について記載がない。

まずは、snapでインストールされているパッケージ一覧を出してみる

ubuntu@ubuntu:~$ snap list
Name                Version      Rev    Tracking         Publisher   Notes
core18              20211215     2289   latest/stable    canonical?  base
core20              20220114     1332   latest/stable    canonical?  base
lxd                 4.0.8        21843  4.0/stable/…     canonical?  -
oracle-cloud-agent  1.19.0-1130  31     latest/stable/…  oci.osi     classic
snapd               2.54.2       14553  latest/stable    canonical?  snapd
ubuntu@ubuntu:~$

次に「oracle-cloud-agent」について個別情報を取得

ubuntu@ubuntu:~$ snap info oracle-cloud-agent
name:      oracle-cloud-agent
summary:   Oracle Cloud Agent
publisher: Oracle Cloud Infrastructure (oci.osi)
store-url: https://snapcraft.io/oracle-cloud-agent
license:   unset
description: |
  Oracle Cloud Infrastructure agent for compute instance management and
  monitoring.
services:
  oracle-cloud-agent:                            simple, enabled, active
  oracle-cloud-agent.oracle-cloud-agent-updater: simple, enabled, active
snap-id:      ltx4XjES2e2ujitNIuO5GxPYDM6lp6ry
tracking:     latest/stable/ubuntu-20.04
refresh-date: 2022-02-15
channels:
  latest/stable:    1.22.0-2    2022-04-25 (37) 18MB classic
  latest/candidate: 1.22.0-2    2022-04-08 (37) 18MB classic
  latest/beta:      1.22.0-2    2022-04-08 (37) 18MB classic
  latest/edge:      ↑
installed:          1.19.0-1130            (31) 21MB classic
ubuntu@ubuntu:~$

installedが1.19.0-1130で、最新(latest)が1.22.0-2とアップデートが出ていることが分かる。

snapの更新は「sudo snap refresh」で行う。

ubuntu@ubuntu:~$ snap refresh
error: access denied (try with sudo)
ubuntu@ubuntu:~$ sudo snap refresh
Handling re-refresh of "core18", "core20", "lxd", "oracle-cloud-agent", "snapd" Handling re-refresh of "core18", "core20", "lxd", "oracle-cloud-agent", "snapd" Handling re-refresh of "core18", "core20", "lxd", "oracle-cloud-agent", "snapd" 2022-05-06T07:14:40Z INFO Waiting for automatic snapd restart...
oracle-cloud-agent (stable/ubuntu-20.04) 1.22.0-2 from Oracle Cloud Infrastructure (oci.osi) refreshed
snapd 2.55.3 from Canonical? refreshed
core18 20220309 from Canonical? refreshed
core20 20220329 from Canonical? refreshed
lxd (4.0/stable) 4.0.9-8e2046b from Canonical? refreshed
ubuntu@ubuntu:~$

そして、パッケージ情報を取得し、更新されたことを確認する。

ubuntu@ubuntu:~$ snap list
Name                Version        Rev    Tracking         Publisher   Notes
core18              20220309       2349   latest/stable    canonical?  base
core20              20220329       1437   latest/stable    canonical?  base
lxd                 4.0.9-8e2046b  22761  4.0/stable/…     canonical?  -
oracle-cloud-agent  1.22.0-2       37     latest/stable/…  oci.osi     classic
snapd               2.55.3         15541  latest/stable    canonical?  snapd
ubuntu@ubuntu:~$ snap info oracle-cloud-agent
name:      oracle-cloud-agent
summary:   Oracle Cloud Agent
publisher: Oracle Cloud Infrastructure (oci.osi)
store-url: https://snapcraft.io/oracle-cloud-agent
contact:   oci_osi_grp@oracle.com
license:   unset
description: |
  Oracle Cloud Infrastructure agent for compute instance management and
  monitoring.
services:
  oracle-cloud-agent:                            simple, enabled, active
  oracle-cloud-agent.oracle-cloud-agent-updater: simple, enabled, active
snap-id:      ltx4XjES2e2ujitNIuO5GxPYDM6lp6ry
tracking:     latest/stable/ubuntu-20.04
refresh-date: today at 07:14 UTC
channels:
  latest/stable:    1.22.0-2 2022-04-25 (37) 18MB classic
  latest/candidate: 1.22.0-2 2022-04-08 (37) 18MB classic
  latest/beta:      1.22.0-2 2022-04-08 (37) 18MB classic
  latest/edge:      ↑
installed:          1.22.0-2            (37) 18MB classic
ubuntu@ubuntu:~$

IPv6アクセス可能なOracle Cloudインスタンスを作る


Oracle CloudのTokyoリージョンで、久しぶりにFree TierのARMインスタンスが作れるようになっていたので、最新の手順確認をしてみる。

前提条件: Oracle Cloud側の仮想クラウドネットワーク(VNC)は既にIPv6が有効化されていること。(参考資料:Oracle Cloudですでに作成済みのネットワークに対してIPv6を有効にする方法)

Oracle Cloudコンソール上のインスタンス設定での確認点

2022/05/06時点でも、インスタンス作成時はIPv6が有効化されていないので、手動でIPv6を使える様にする必要がある。

インスタンス詳細の「アタッチされたVNIC」を開いて確認する。

左下の[リソース]-[IPv6アドレス]を選択する

「IPv6アドレスの割当て」をクリック

特にこだわりがなければ、空欄のまま一番下にある「割当て」をクリック

これで設定上はIPv6アドレスが割り当てられた。

Ubuntu 20.04インスタンスの場合

Canonical-Ubuntu-20.04-aarch64-2022.02.15-0 で作成したインスタンスの場合、起動直後は以下の様な状態でした。

ubuntu@ubuntu:~$ ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:00:17:02:7d:5f brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.220/24 brd 10.0.0.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::17ff:fe02:7d5f/64 scope link
       valid_lft forever preferred_lft forever
ubuntu@ubuntu:~$

IPv6を有効化してしばらく放置していたところ、下記の様に自動的にIPv6アドレスが追加されました。

ubuntu@ubuntu:~$ ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:00:17:02:7d:5f brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.220/24 brd 10.0.0.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 2603:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:5536/128 scope global dynamic noprefixroute
       valid_lft 7353sec preferred_lft 7053sec
    inet6 fe80::17ff:fe02:7d5f/64 scope link
       valid_lft forever preferred_lft forever
ubuntu@ubuntu:~$

OS再起動後もIPv6アドレス割当ては継続されていました。

Oracle Linux8インスタンスの場合

Oracle-Linux-8.5-aarch64-2022.03.17-1  を使用したところ、相変わらずfirewalldに対するdhcpv6-clientの許可が出されていないためIPv6アドレス取得が出来ない状態でした。

なので、「sudo firewall-cmd –permanent –add-service=dhcpv6-client」でルールを追加して、OS再起動で対応させました。

$ sudo firewall-cmd --permanent --add-service=dhcpv6-client
success
$ sudo firewall-cmd --reload
success
$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources:
  services: dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
$

ESXi をprofileベースでアップデートする


hpeやDELLなどのメーカ製サーバにESXiをインストールする際はそれぞれのメーカが提供するOEMイメージを使用する。

で、あとでパッチを適用する場合、メーカから出ているBundle zipファイルを適用するが、「esxcli software update -d ~」で適用すると「構成:イメージ プロファイル」の記述がアップデートされない。

プロファイルとしてきちんとアップデートを適用するには、それなりの操作を行う必要がある。

(1) Bundle zipファイル内のプロファイル名確認

まず、提供されているBundle zipファイルに含まれるプロファイル名を確認するために「esxcli software sources profile list」を実行

[root@ホスト名] esxcli software sources profile list -d /vmfs/volumes/~/VMware-VMvisor-Installer-6.7.0.update03-18828794.x86_64-DellEMC_Customized-A16.zip
Name                             Vendor  Acceptance Level  Creation Time        Modification Time
-------------------------------  ------  ----------------  -------------------  -------------------
DellEMC-ESXi-6.7U3-18828794-A16  Dell    PartnerSupported  2021-10-26T03:23:17  2022-01-11T12:21:23
[root@ホスト名]

(2) 現状適用されているプロファイル名確認

次に現状のプロファイル名を確認するために「esxcli software profile get」を実行

[root@ホスト名] esxcli software profile get
(Updated) DellEMC-ESXi-6.7U3-15160138-A03
   Name: (Updated) DellEMC-ESXi-6.7U3-15160138-A03
   Vendor: Dell
   Creation Time: 2021-12-28T08:45:43
   Modification Time: 2022-04-22T07:27:05
   Stateless Ready: False
   Description:

      2021-12-28T08:45:43.600204+00:00: The following VIBs are
      installed:
        net-ixgbe     3.7.13.7.14iov-20vmw.670.0.0.8169922
        ata-pata-amd  0.3.10-3vmw.670.0.0.8169922
<略>
[root@ホスト名] 

(3) プロファイルによるアップデートの適用

プロファイルとしてアップデートを適用するため「esxcli software profile update」でコマンドを実行。

[root@ホスト名]  esxcli software profile update -d /vmfs/volumes/~VMware-VMvisor-Installer-6.7.0.update03-18828794.x86_64-DellEMC_Customized-A16.zip -p DellEMC-ESXi-6.7U3-18828794-A16
<略>

(4) 再起動

適用を反映させるため、再起動を実施

Oracle Cloud上のOracle Linux 8環境でレポジトリを追加する


Oracle Cloud上でOracle Linux 8を展開するとき、Oracleが提供するプラットフォームイメージ を使用する。

Oracle-Linux-8.5-aarch64-2022.03.17-1 を使用したところ、CLIのレポジトリ一覧表示に変化があった。

$ sudo dnf repolist --all
This system is receiving updates from OSMS server.
repo id                                  repo name                       status
ol8_addons-aarch64                       Oracle Linux 8 Add ons (aarch64 enabled
ol8_appstream-aarch64                    Oracle Linux 8 Application Stre enabled
ol8_baseos_latest-aarch64                Oracle Linux 8 BaseOS Latest (a enabled
ol8_ksplice-aarch64                      Ksplice for Oracle Linux 8 (aar enabled
ol8_mysql80-aarch64                      MySQL 8.0 for Oracle Linux 8 (a enabled
ol8_mysql80_connectors_community-aarch64 MySQL 8.0 Connectors for Oracle enabled
ol8_mysql80_tools_community-aarch64      MySQL 8.0 Tools Community for O enabled
ol8_oci_included-aarch64                 Oracle Software for OCI users o enabled
$

「This system is receiving updates from OSMS server.」というメッセージが追加されていて、有効化されているレポジトリしか表示されていない。

OSMSというのはOS Management System(OS管理) のことで、2020年ぐらいから組み込みが開始されていたもののレポジトリ管理までは行っていなかったものとなる。

リリース情報を確認すると2021年10月に関連する記載があった。


10月Oracle Linux 8プラットフォーム・イメージでデフォルトで有効になっているOS管理サービス・エージェント・プラグイン

2021年10月にリリースされたOracle Linux 8プラットフォーム・イメージ以降、Oracle Linux 8インスタンスのOracle Cloud Agent 1.16.0でOS管理サービス・エージェント・プラグインがデフォルトで有効になっています。

2021年10月(Oracle Cloud Agent 1.15.0以前を実行)より前に起動されたOracle Linux 8インスタンスの場合、OS管理サービス・エージェント・プラグインはデフォルトで無効になっています。無効化されたOracle Linux 8インスタンスのOS管理サービス・エージェント・プラグインは、Oracle Cloud Agent 1.16.0への更新後も無効のままです。

詳細は、OS管理の開始を参照してください。


ただ、「OS管理の開始 – 前提条件」には「OS管理は、Oracle Cloud Free Tierでは使用できません。」

使えてしまっている現状は正しいのか、誤りなのか、なやむところです・・・

それはさておき、「This system is receiving updates from OSMS server.」が表示される場合のレポジトリ追加は、まずは、Oracle Cloudのコンソール画面から実施する。

[インスタンスの詳細]-[OS管理]を開くと、パッチの状況が確認できる

レポジトリを追加する場合は「…」をクリックして表示される「OS管理詳細の表示」を選択する

[OS管理の詳細]で[ソフトウェア・ソース]を選択すると、現在enabledとなっているレポジトリ一覧が確認できる。

レポジトリを追加するには、ここの「追加」をクリックする。

追加したいレポジトリを選択し「追加」する。

一覧に追加されたことを確認します。

もちろんコマンドで確認しても追加されています。

$ sudo dnf repolist --all
This system is receiving updates from OSMS server.
repo id                                  repo name                       status
ol8_addons-aarch64                       Oracle Linux 8 Add ons (aarch64 enabled
ol8_appstream-aarch64                    Oracle Linux 8 Application Stre enabled
ol8_baseos_latest-aarch64                Oracle Linux 8 BaseOS Latest (a enabled
ol8_developer_epel-aarch64               Oracle Linux 8 EPEL Packages fo enabled
ol8_ksplice-aarch64                      Ksplice for Oracle Linux 8 (aar enabled
ol8_mysql80-aarch64                      MySQL 8.0 for Oracle Linux 8 (a enabled
ol8_mysql80_connectors_community-aarch64 MySQL 8.0 Connectors for Oracle enabled
ol8_mysql80_tools_community-aarch64      MySQL 8.0 Tools Community for O enabled
ol8_oci_included-aarch64                 Oracle Software for OCI users o enabled
$