蘋果Mac OS X系統安全評級(2)

來源:互聯網
上載者:User

前面一篇(蘋果Mac OS X系統安全評級(1))主要介紹了安全評級的概貌和Mac系統的現狀,這裡來看看它的安全系統的內部情況。


前言

前面說了,OS X系統的安全審計組建是基於openBSM的,它的主要目標就是要提供選擇性地和有效顆粒化地記錄安全相關的系統和應用資訊,並應用於事後分析、入侵檢測和即時監測。openBSM主要包括:核心審計事件引擎(這部分需要和作業系統想匹配,比如OS X的March核心嵌入),
系統調用審計ABIs, 使用者空間組成的嵌入, 包括登陸相關程式login和sshd等,列印審計, 審計管理服務, 審計管道-用於即時應用程式監控,以及審計支援庫。它的特點是,支援FreeBSD,OS X和Linux系統,並通過支援字序無關的審計足跡格式來支援可移植性。它的各個發布版本裡麵包含有庫,命令列命令,設定檔,審計服務程式,和足跡的發布程式用來把足跡檔案即時傳送到中央存放裝置等等,目前它的發展主要面相融合到FreeBSD的版本10的核心開發。

在OS X系統裡,我們從下面幾個方面來考察它的具體細節。

配置

定義一個系統的行為離不開設定檔,通過對設定檔的解析,不僅可以對它的拒聽功能有一個更細緻的瞭解,而且也可以一窺它的大體結構。

它的設定檔主要存放於/etc/security目錄裡面,在其中存放著它的多個控制/設定檔。這些檔案或定義或設定openBSM的行為,為了瞭解如何控制它,來看看這些檔案:

  • audit_class: 是對審計事件分類的名稱定義,也就是一種宏定義,每個審計事件分類對應一個16進位位. 這些名詞又叫做審計旗幟Audit flags。
  • audit_control: 定義審計行為的設定檔。
  • audit_event: 對於事件標識(Event Indetification是一個整數類型的數字)與名稱之間對應關係的定義。
    事件分類:1-2047是作業系統核心事件,6000-9999作業系統使用者事件,32768-65535第三方應用事件,其中43000-44999是OpenBSM的核心事件,45000-46999是OpenBSM程式事件。第一列位事件標識數字,第二列為文字解釋,第三列為對應的事件分類,定應以audit_class裡面的定義。根據這裡的對應關係,你就可以瞭解具體一個事件類別目錄會被審計系統記錄哪些系統/使用者/應用暢敘行為。
  • audit_user: 針對不同使用者,可以做特殊審計定義。預設的是root使用者,製作login_logout記錄。
  • audit_warn: 審計警告時啟動並執行指令碼。


audit_class:

通過查看audit_class檔案,每個審計事件類別目錄其實就是對每個二進位位的定義,目前是32位的,也就是最多32類。不要改動這個檔案。

檔案如下:

## $P4: //depot/projects/trustedbsd/openbsm/etc/audit_class#6 $#0x00000000:no:invalid class0x00000001:fr:file read0x00000002:fw:file write0x00000004:fa:file attribute access0x00000008:fm:file attribute modify0x00000010:fc:file create0x00000020:fd:file delete0x00000040:cl:file close0x00000080:pc:process0x00000100:nt:network0x00000200:ip:ipc0x00000400:na:non attributable0x00000800:ad:administrative0x00001000:lo:login_logout0x00002000:aa:authentication and authorization0x00004000:ap:application0x20000000:io:ioctl0x40000000:ex:exec0x80000000:ot:miscellaneous0xffffffff:all:all flags set

audit_event:

audit_event檔案是對每個審計事件的硬性編碼,一個代碼對應著一個事件,如果開發人員需要添加自我定義的事件,可能需要對系統進行重新編譯。所以,我們無需對該檔案進行變更

它的基本格式是:代碼,縮減名,解釋和類別。在該檔案中可以看到每個事件的定義和審計類別的說明。比如46是關機事件,nt類別;6152-6154,6158,6165,6171和6172都是登入事件,屬於lo分類,如果一個使用者、組本不該有ssh/telnet登入許可權而出現了登入事件,那麼就要檢討一下系統漏洞,特別是對6159事件,普通使用者不能升級到系統管理員的。

審計事件是被分塊的,1-2047的是BSM核心事件,6000-9999是BSM使用者事件,32768-65535是對第三方程式開放的區塊。其中兩個保留區:43000-44999是openBSM的核心事件,45000-46999是OpenBSM的程式事件。


audit_warn:

管理員可以設定當審計警告出現時啟動並執行指令碼程式。

預設的檔案見下:

#!/bin/sh## $P4: //depot/projects/trustedbsd/openbsm/etc/audit_warn#3 $#logger -p security.warning "audit warning: $@"

audit_user:

管理員可以針對不同的使用者,設定不同的審計層級,預設的是:

## $P4: //depot/projects/trustedbsd/openbsm/etc/audit_user#3 $#root:lo:no

audit_control:

是控制審計系統行為的最主要的設定檔,

預設的是:

## $P4: //depot/projects/trustedbsd/openbsm/etc/audit_control#8 $#dir:/var/auditflags:lo,aaminfree:5naflags:lo,aapolicy:cnt,argvfilesz:2Mexpire-after:10Msuperuser-set-sflags-mask:has_authenticated,has_console_accesssuperuser-clear-sflags-mask:has_authenticated,has_console_accessmember-set-sflags-mask:member-clear-sflags-mask:has_authenticated

啟動/控制命令

一般控制操作:
audit命令:在/usr/sbin/檔案夾中,是主要的系統命令,它可以初始化並開始審計;強制審計系統關閉當前的審計記錄檔,並從新的檔案開始記錄審計事件;重新讀取audit_control檔案的配置資訊;或者停止審計工作。

在OS X中,audit的啟動控制是由Mac OS X的launchd控制的,描述檔案是/System/Library/Launchdaemons/com.apple.auditd.plist,由launchd來啟動/usr/sbin/auditd服務精靈,這和其他的系統服務類似,也使用launchctl來控制auditd是否被啟動/禁止,後面有簡單介紹。


審計日誌

上面大致看了看審計系統的結構,對它有了一個大概的瞭解,而我們更關心的是對審計日誌內容的解析。OpenBSM的日誌/trail檔案的格式不同一般的log檔案,需要使用特殊的命令/軟體來解讀。


日誌(trails)檔案:

OS
X系統的所有日誌都使用自己特有的格式儲存,不會在系統的log檔案中出現。它的trails檔案儲存在/var/audit/目錄中,這個目錄只有系統管理員,也就是root參能訪問,所以下面的命令最好在root使用者下運行,否則會遇到permission
denied錯誤。

在上面的audit_control檔案中定義過,每個trails檔案的最大大小,一旦一個trail檔案達到這個限制,系統就會寫入另外一個trail檔案,然而系統也會根據時間長短自動切換到下一個檔案,這也是為什麼你可能看到好多檔案的大小隻有幾K或幾十K。

trails檔案的命名方式是該檔案的最初起始時間和最後一個trails的終止時間作為檔案名稱,比如20130112143036.20130114164647,分割為:2013
01 12 14 30 36,也就是起始於2013年1月12日14點30分36秒,終止於2013年1月14日16點46分47秒。其中還會夾雜有*.crash_recovery的檔案,
如果OpenBSM系統崩潰,就會產生這個檔案;而*.not_terminated的事當前還在使用的trails檔案。

記錄檔的大小取決於在audit_control中設定的監視類型,如果設定為all,那麼會產生巨量的trials,這樣你的硬碟會很快佔滿(如果expire-after設定的足夠大),而且由於佔用系統資源過多,可能影響其他程式的運行。


praudit命令:

praudit命令可以解析指定的trail檔案的內容,並以文本方式輸出。基本的命令格式是:

    praudit -s /var/audit/*:輸出簡短格式
    praudit -x /var/audit/ :輸出XML格式

下面是一個使用簡單格式輸出的一部分的例子:

header,203,11,AUE_ssauthorize,0,Sat Jan 12 07:31:44 2013, + 927 msecsubject,-1,root,wheel,root,wheel,39,100004,39,0.0.0.0text,system.login.consoletext,client /System/Library/CoreServices/loginwindow.apptext,creator /System/Library/CoreServices/loginwindow.appreturn,success,0trailer,203header,72,11,AUE_lw_login,0,Sat Jan 12 07:31:45 2013, + 23 msecsubject_ex,admin,root,wheel,admin,staff,39,100004,50331650,0.0.0.0return,success,0trailer,72header,200,11,AUE_ssauthorize,0,Sat Jan 12 07:31:45 2013, + 174 msecsubject,-1,root,wheel,root,wheel,39,100004,39,0.0.0.0text,system.login.donetext,client /System/Library/CoreServices/loginwindow.apptext,creator /System/Library/CoreServices/loginwindow.appreturn,success,0trailer,200header,156,11,AUE_ssauthmech,0,Sat Jan 12 07:31:45 2013, + 872 msecsubject,admin,admin,staff,admin,staff,158,100004,158,0.0.0.0text,system.services.systemconfiguration.networktext,mechanism builtin:entitled,privilegedreturn,success,0trailer,156

看起來還是不那麼容易理解,也不直觀。

auditreduce:
使用auditreduce命令,可以從指定審計trails檔案中選取符合要求的事件按照原始格式輸出,產生另外一個縮小版本的trails檔案,之後使用者可以使用praudit來轉換輸出格式。

Auditpipe:
審計事件可以從/dev/auditpipe裝置上即時讀取,這是auditpipe的功勞,而且這個裝置可以被複製,每個都會有相同的審計事件輸出,但是比較auditd的檔案書寫而言,它並不可靠,他可能把一些小的事件報丟棄。

Audit Explorer:

目前來說,比較直觀的瀏覽trails檔案的軟體,要說是Audit Explorer了,這個程式可以在Mac Store上來買到。

後記:

審計系統對系統資源的佔用很小,完全可以忽略不計,不過如果你真的不需要審計騷擾你的系統,那麼可以通過下面的步驟來完全禁止它:

  • 編輯/etc/security/audit_control中的flags, 如下
    flags:no,no
  • 再執行下面的操作:

    sudo audit -tsudo launchctl unload -w /System/Library/Launchdaemons/com.apple.auditd.plistsudo rm /var/audit/* 


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.