macOS终端等级测评方法及知识点

查看版本

左上角苹果图标→关于本机


身份鉴别

  • 是否设置口令
    依次登录各账户,打开左上角的苹果图标→系统偏好设置→安全性与隐私→通用,是否显示已给此用户设定登录密码

  • 是否开启自动登录
    打开系统偏好设置→用户和群组→登录选项, 检查自动登录是否设置为关闭

密码策略-pwpolicy

登录失败

  • macOS中密码尝试次数间的延迟

为了帮助阻止暴力破解攻击,当Mac启动时,登录窗口中或使用目标磁盘模式时最多允许10次密码尝试,并且在错误密码的输入达到一定次数后,延迟时间会逐步增加。延迟由安全隔区执行。如果Mac在定时延迟期间重新启动,延迟仍然执行,且定时器从当期重新计时。
为了帮助防止恶意软件通过尝试攻击用户密码来导致永久数据丢失,这些限制在用户成功登录Mac后不会执行,但会在重启后重新执行。如果10次尝试失败,启动进入recoveryOS后会增加10次尝试。如果仍失败,每个文件保险箱恢复机制(iCloud恢复、文件保险箱恢复密钥和机构密钥)将各增加10次额外尝试,总的新增次数最多为30次。这些额外尝试用尽后,安全隔区将不再处理任何解密宗卷或验证密码的请求,驱动器上的数据变为不可恢复。
若要保护企业设置中的数据,IT应使用MDM解决方案定义和实施文件保险箱配置策略。组织有若干加密宗卷管理选项,包括机构恢复密钥、个人恢复密钥(可选择由MDM托管储存)或两者结合。密钥循环也可以设为MDM中的一种策略。

  • 搭载Apple芯片和搭载T2芯片的Mac上的密码尝试次数间的延迟
尝试次数 执行的延迟
5 1分钟
6 5分钟
7 15分钟
8 15分钟
9 1小时
10 已停用

注意,仅在Mac启动时有效,如解锁屏保时该设置无效

参考:macOS 中密码尝试次数间的延迟

登录超时

  • 屏幕保护程序

等待时间:系统偏好设置→桌面和屏幕保护程序→屏幕保护程序→此时间段后显示屏幕保护程序
需要密码:系统偏好设置→安全和隐私→通用→进入睡眠或开始屏幕保护程序立即要求输入密码


访问控制

系统偏好设置→用户和群组

Mac OS X用户与账号介绍


安全审计

  • 日志服务
1
2
sudo launchctl list | grep auditd
sudo launchctl list | grep syslogd
  • 日志配置文件
syslogd
1
2
/etc/asl.conf
/etc/asl/*
auditd
1
2
/etc/security/audit_control
/etc/security/*
  • 日志记录
syslog日志
1
2
/var/log/system.log
/var/log/asl/Logs/aslmanager.*
auditd日志
1
2
3
4
5
/var/audit/*.crash_recovery
/var/audit/*.not_terminated

# 使用praudit命令进行查看,-x:以XML格式输出
sudo praudit -x filename

入侵防范

系统服务和端口

1
2
sudo launchctl list
netstat -an -p tcp | grep LISTEN
  • 可能的多余服务

系统偏好设置→共享

服务名称 说明
屏幕共享 允许其他电脑的用户远程查看并控制此电脑,使用VNC协议
文件共享 共享文件夹,使用AFP、SMB协议,big sur及以上版本不再支持AFP
媒体共享 网络上的设备可以浏览和播放所下载的音乐、电影和电视节目
打印机共享 共享打印机
远程登录 可通过SSH和SFTP访问该电脑
远程管理 Apple远程桌面,使用VNC协议
远程Apple事件 允许其他macOS电脑上的应用程序向这台电脑发送Apple事件
  • 可能的多余端口

TCP445(文件共享)、631(打印机共享)、5900(VNC远程桌面协议)

Apple产品使用的端口


数据完整性

鉴别信息存储完整性

系统完整性保护是 OS X El Capitan 及更高版本所采用的一项安全技术,旨在帮助防止潜在恶意软件修改 Mac 上受保护的文件和文件夹。系统完整性保护可以限制 root 用户账户,以及 root 用户能够在 Mac 操作系统的受保护部分完成的操作。

1
2
3
csrutil status
# 输出结果
System Integrity Protection status: enabled.

数据保密性

鉴别信息传输保密性

用户信息在/var/db/dslocal/nodes/Default/users/目录下,用户名.plist

1
2
3
sudo plutil -p /var/db/dslocal/nodes/Default/users/username.plist | grep Shadow
# 输出结果,为SHA512
0 => ";ShadowHash;HASHLIST:<SALTED-SHA512-PBKDF2,SRP-RFC5054-4096-SHA512-PBKDF2,SMB-NT>"