點擊右邊

Podman:一個更寧靜的運LK娛樂城評價轉容器的方式

Podman 使用傳統的 fork/exec 模子(相對于于客戶端/服務器模子)來運轉容器。

在進入本文的首要主題 Podman 以及容器之前,我必要相識一點 Linux 審計功效的手藝。

甚么是審計?

Linux 內核有一個乏味的寧靜功效,鳴做審計。它許可治理員在體系上監督寧靜事宜,并將它們記載到audit.log 中,該文件可以內地存儲或者遙程存儲在另一臺機械上,以防止黑客試圖袒護他的蹤影。
/etc/shadow 文件是一個常常要監控的寧靜文件,由于向其增添記載可能許可進擊者取得對體系的走訪權限。治理員想曉得是否有任何過程點竄了該文件,你可以經由過程履行如下下令來履行此操作:

  1. # auditctl -w /etc/shadow

目前讓咱們望望當我點竄了 /etc/shadow 文件會產生甚么:

  1. # touch /etc/shadow
  2. # ausearch -f /etc/shadow -i -ts recent
  3.  
  4. type=PROCTITLE msg=audit(10/10/2018 09:46:03.042:4108) : proctitle=touch /etc/shadow type=SYSCALL msg=audit(10/10/2018 09:46:03.042:4108) : arch=x86_64 syscall=openat success=yes exit=3 a0=0xffffff9c a1=0x7ffdb17f6704 a2=O_WRONLY|O_CREAT|O_NOCTTY| O_NONBLOCK a3=0x1b6 items=2 ppid=2712 pid=3727 auid=dwalsh uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=pts1 ses=3 comm=touch exe=/usr/bin/touch subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 ke地下539包牌y=(null)`

審計記載中有許多信息,但我重點注重到它記載了 root 點竄了 /etc/shadow 文件,而且該過程的審計 UID(auid)的一切者是 dwalsh
內核點竄了這個文件了么?

跟蹤登錄 UID

登錄 UID(loginuid),存儲在 /proc/self/loginuid 中,它是體系上每個過程的 proc 布局的一部門。該字段只能配置一次;配置后,內核將不許可任何過程重置它。
當我登錄體系時,登錄法式會為我的登錄進程配置 loginuid 字段。
我(dwalsh)的 UID 是 3267。

  1. $ cat /proc/self/loginuid
  2. 3267

目前,縱然我釀成了 root,我的登錄 UID 仍將堅持不變。

  1. $ sudo cat /proc/self/loginuid妞妞怎麼贏
  2. 3267

請注重,從初始登錄進程 fork 并 exec 的每個過程都邑主動承繼 loginuid。這便是內核曉得登錄的人是 dwalsh 的方式。

容器

目前讓咱們來望望容器。

  1. sudo podman run fedora cat /proc/self/loginuid
  2. 3267

甚至容器過程也保留了我的 loginuid。 目前讓咱們用 Docker 嘗嘗。

  1. sudo docker r線上麻將賭博un fedora cat /proc/self/loginuid
  2. 4294967295

為何紛歧樣?

Podman 關于容器使用傳統的 fork/exec 模子,是以容器過程是 Podman 過程的子女。Docker 使用客戶端/服務器模子。我履行的 docker 下令是 Docker 客戶端對象,它經由過程客戶端/服務器操作與 Docker 保衛過程通訊。然后 Docker 保衛法式創立容器并處置 stdin/stdout 與 Docker 客戶端對象的通訊。
過程的默許 loginuid(在配置 loginuid 之前)是 4294967295(LCTT 譯注:232 – 1)。因為容器是 Docker 保衛法式的子女,而 Docker 保衛法式是 init 體系的子代,以是,咱們望到 systemd、Docker 保衛法式以及容器過程掃數具備雷同的 loginuid4294967295,審計體系視其為未配置審計 UID。

  1. cat /proc/1/loginuid
  2. 4294967295

怎么會被濫用?

讓咱們來望望若是 Docker 啟動的容器過程點竄 /etc/shadow 文件會產生甚么。

  1. $ sudo docker run --privileged -v /:/host fedora touch /host/etc/shadow
  2. $ sudo ausearch -f /etc/shadow -i type=PROCTITLE msg=audit(10/10/2018 10:27:20.055:4569) : proctitle=/usr/bin/coreutils --coreutils-prog-shebang=touch /usr/bin/touch /host/etc/shadow type=SYSCALL msg=audit(10/10/2018 10:27:20.055:4569) : arch=x86_64 syscall=openat success=yes exit=3 a0=0xffffff9c a1=0x7ffdb6973f50 a2=O_WRONLY|O_CREAT|O_NOCTTY| O_NONBLOCK a3=0x1b6 items=2 ppid=11863 pid=11882 auid=unset uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=(none) ses=unset comm=touch exe=/usr/bin/coreutils subj=system_u:system_r:spc通博娛樂城_t:s0 key=(null)

在 Docker 景遇中,auid 是未配置的(4294967295);這象征著寧靜職員可能曉得有過程點竄了 /etc/shadow 文件但身份丟掉了。
若是該進擊者隨后刪除了 Docker 容器,那末在體系上誰點竄 /etc/shadow 文件將沒有任何跟蹤信息。

【免責聲明】本站內容轉載自互聯網,其相關談吐僅代表作者小我私家概念盡非權勢巨子,不代表大樂透開獎直播本站態度。如您發明內容存在版權成績,請提交相關鏈接至郵箱線上麻將現金:,咱們將實時予以處置。