多種方式自查是否被公司監控(Windows,MacOs,Android)

上次的這篇從網路分析判斷是否被公司監控(僅使用wireshark)釋出後收到了說是標題黨的反饋。因此決定較嚴肅的重寫一篇。請注意做自查時,萬萬不能修改工作電腦的配置,例如解除安裝客戶端(如果能解除安裝掉的話),還一鍵刪除根證書,本文不承擔後果。
我從來不在公司電腦上登入微信。
我們公司有內部的聊天軟體,有次遇到同事在上班時間登入個人微信,關係還好的我多嘴提醒一下,回答是“回覆緊急訊息,在工位看手機不方便,沒有發敏感的內容”。不知這個理由你也是否認同呢?
先不說“言多必失”,聊天軟體還會把歷史資料同步到本地,更有趣的是IT部門的同事有一個算一個,都在上廁所的路上看手機回信息,你細品。
多年以來,在數字化運營浪潮的推動下,員工行為監控分析系統在中大型公司普遍存在,同時與其他辦公系統在功能的整合整合,資料的協同共享,形成員工行為資料的匯聚和統一分析。這裡指的其他若干辦公系統,包含網路接入軟體(例如VPNOTP口令)、程式碼倉庫(提交程式碼行數和質量審計)、辦公閘道器入口(敏感檔案外發檢測,淘寶和娛樂新聞瀏覽時間佔比)、內部聊天軟體(敏感言論記錄,飛書釘釘會議活躍度記錄)、文件系統、報銷系統、考勤系統、本地駐留程序(記錄螢幕發呆時間等)。大資料形成員工畫像,成為員工自身性格、團隊角色定位、業務能力、績效偏離度指標、乃至調薪晉升等判斷的依據。
(注意,因行業和規模體量不同,保密程度、對員工監控的需求度和在其上的資源投入也不同,市面上在售的各監控系統功能也參差不齊。本文所涉及的不一定在讀者所在的公司存在。通常中小型企業覆蓋程度不夠或形同虛設,大型企業或數字化程度較高的一定有)
目錄
  1. 企業視角和員工視角的系統觀點
  2. 常見的監控點位置
  3. 網路側分析
    1. 原理
    2. 自查方法
    3. 非HTTPS協議的網路側監控
  4. 本地客戶端側監控
    1. 原理
    2. 自查方法
  5. 總結

一、企業視角和員工視角的系統觀點
企業和員工是有著不同立場的2個群體,對於企業來說,員工行為分析系統透過資料整合實現風險防控與組織健康度評估和最佳化。例如透過網路流量監控防範資料洩露、透過程式碼提交頻率評估開發效率、透過考勤與流程資料最佳化資源分配。在一些敏感行業(金融、科技)中,監控系統是滿足監管要求的必要手段,是強制規定的,各種資產有對應保密安全等級,甚至包括記錄儲存方式,備份數量,週期時間都有明文規定。
對於員工,更關注個人隱私保護與工作自主性,例如擔心聊天記錄、瀏覽習慣等資料被過度解讀,或因 “摸魚時間” 統計影響主觀績效評價。
二、常見的監控點位置
按照監控點位置可以粗略分為本地監控和網路側監控兩種。本地監控是指在電腦中安裝行為採集客戶端,對電腦操作做記錄。網路側監控是指在辦公閘道器上對流量解析從而分析員工危險行為,優勢是不需要安裝客戶端到電腦中,整個行為資料採集是透明的。總體而言網路側採集方法最常用,本地裝置採集方法本質上和木馬病毒很像,優點是採集的資訊更多更細節,缺點是侵入性太高,客戶端需要相容不同電腦的系統和驅動版本,一旦系統重灌了還要重新安裝採集客戶端。(IT部門說這活我真的很累)
首先來看看網路流量的監控。

三、網路側分析

網路側是監控主要的手段沒有之一,現在的軟體大量使用應用層協議且以HTTPS為主,HTTPS的安全性由SSL/TLS協議來保證,整體流量在握手階段完成後使用主金鑰加密。因此首先需要解密HTTPS流量。除了HTTPS 證書替換方法外無其他解密辦法。各網安公司的監控產品都有證書替換功能。
場景上,只要發到網線上的http流量網路側分析都可以檢測。例如是否有外發敏感文件(如客戶資料、財務報表)、攔截違規訪問(如繞過 VPN 的境外站點)、原始碼洩露(例如直接把公司程式碼gitpush到公網)。
原理
  1. 公司透過辦公網閘道器實施中間人攻擊,會生成一個自簽名的 CA 根證書,並將其預置到員工電腦的作業系統或瀏覽器的信任證書儲存中。見上圖中的預置CA根證書,當員工入職領電腦時就已經預置。注意不要試圖解除安裝該證書,一旦解除安裝後可能會無法上網!!
  2. 當員工在電腦上訪問HTTPS網站時,代理閘道器攔截訪問請求,解析域名(如example.com),生成臨時的偽造證書(域名同為example.com,由企業 CA 簽名)。見上圖中的“審查閘道器”,此時已建立了一個偽造證書,並且該證書與預置的根證書形成證書鏈。
  3. 閘道器將偽造證書返回給員工瀏覽器,瀏覽器因信任企業 CA 根證書(已預置),允許建立 HTTPS 連線網關同時與真實伺服器建立 HTTPS 連線(使用真實證書),完成雙向流量解密與轉發。因此整個通訊過程都透明的進行,代理閘道器持有偽造的中間人證書的私鑰,因此對通訊過程的內容完全可解密。

自查方法

找到這張公司預置的證書,一般情況下是一張自簽名的證書。
尋找預置的本地證書CA
Windows系統
依次開啟控制面板=>網路和 Internet =>Internet 選項,在彈出的 Internet 屬性視窗中切換到 “內容” 選項卡,點選 證書” 按鈕,在彈出的證書視窗中選擇 “受信任的根證書頒發機構” 分類,即可檢視已安裝的根證書。
Android 手機
開啟手機的設定選單。找到 “安全”  “裝置” 選項並點選進入。
在安全或裝置設定中,找到 “信任的根證書”“已信任的憑據” 或類似的選項並點選進入。即可檢視 Android 系統所信任的根 CA 證書
iOS 手機3
開啟手機 “設定。點選 “通用” 選項。
在通用設定中,選擇 “關於本機。在關於本機頁面中,找到並點選 “證書信任設定,進入後可檢視系統自帶的信任根證書。
Ubuntu 系統
證書目錄位於/etc/ssl/certs,根證書是/etc/ssl/certs/ca – certificates.crt。可以使用命令
awk -v cmd='openssl x509 -noout -subject''/BEGIN/      {close(cmd)}; {print | cmd}' < /etc/ssl/certs/ca - certificates.crt
檢視所有證書的subject
代理閘道器的HTTPS流量解密功能是否開啟
如果存在被預置的根證書,只能說明電腦包含這個根證書,但還需要檢查代理閘道器的HTTPS流量解密功能是否開啟。方法是使用你個人的電腦和個人的網路,然後訪問網站A。再使用公司的電腦和公司的網路,再訪問網站A。分別匯出網站A的證書並對比。如果證書中的公鑰不同,公司電腦證書的證書鏈根是公司預置的內部 CA 根證書,而自己個人電腦上網站 A 的真實證書鏈根是權威 CA 根證書(如 DigiCert 根證書)。如果這裡的判斷條件成立,則表示已經被監控。
注意,無論證書替換功能開啟與否,公司流量閘道器上都能能監控流量元資料(如訪問域名、IP、時間等),根據這些資料照樣可以判斷員工是否在摸魚。

HTTPS協議的網路側監控

對於瀏覽器等走HTTPS的場合可以使用上面的方法覆蓋。對於傳輸層協議例如TCP、應用層的RPCJavaRMI、基於XMLSOAP、甚至自定義協議,沒有一種通用的監控解密辦法,一般根據埠號進行流量封禁,或者使用下面的本地Agent在員工電腦上進行監控。

四、本地客戶端側監控

本地採集客戶端通常是一個後臺無法關掉的服務或注入到一些系統程序中(如 explorer.exesvchost.exe)。也可以在其他“看似正常”的應用軟體裡透過SetWindowsHookEx API安裝鍵盤鉤子(WH_KEYBOARD_LL),監控全域性按鍵輸入;使用GDI 截圖函式(如 BitBlt)或DirectX抓屏實現螢幕內容採集;呼叫WMI獲取程序列表、硬體資訊等。
本地行為採集可玩的花樣非常非常豐富,技術紛繁複雜,涉及到驅動層和使用者態、多層次全面立體式全天候監控,開好幾篇文章都說不完。這裡只說一點點。

原理

  • 鍵盤輸入監控。
    透過 Hook 鍵盤驅動的中斷處理函式(如 KbdClass.sys KeyboardClassServiceCallback),即時捕獲按鍵掃描碼;透過Windows 訊息鉤子(WM_KEYDOWN/WM_CHAR)或跨程序記憶體讀取(如讀取記事本程序的視窗文字)獲取輸入內容。
  • USB 裝置與檔案外發監控。
    透過 Hook USB 主機控制器驅動(如 Usbhub.sys)或檔案系統過濾驅動(如 MiniFilter),攔截 USB 裝置插入事件,記錄檔案複製行為(如源路徑、目標路徑、檔名、大小)。對複製的檔案內容進行關鍵詞掃描(如 “銀行卡號”“機密),阻止敏感檔案外發。透過開發NDIS 網路驅動 WFPWindows Filtering Platform)(過濾網路流量)、Minifilter 檔案系統驅動(監控檔案讀寫)或鍵盤類驅動(KBDClass)鉤子,實現對系統底層操作的無感知採集。識別透過 USB 享網路(如手機熱點)傳輸的資料。
  • 螢幕錄製與即時截圖。這個很使用者態軟體都可以,名字這裡不說了,有些聊天軟體就在截圖錄屏。
  • 移動裝置
    macOS:透過系統擴充套件(System Extension)或輔助功能許可權(Accessibility API)實現鍵盤監聽與螢幕錄製;
    Android:利用裝置管理員許可權(Device Administrator)或輔助服務(Accessibility Service)監控按鍵、螢幕及麥克風錄音;
    iOS:因系統封閉性,僅能透過企業證書籤名的 App 獲取有限許可權(如網路流量代理),無法直接監聽鍵盤或截圖。

自查方法

Windows 系統

1. 驅動程式檢測

    • 系統驅動預設儲存在 C:\Windows\System32\drivers 目錄下,可疑驅動通常以 .sys 為副檔名。
    • 企業級監控驅動可能命名為 *.mon*.hook 或包含廠商名稱(如 sangfor.sys360pdr.sys)。

檢視已載入驅動

# 命令列檢視當前載入的核心驅動sc query type= driver | findstr "SERVICE_NAME"# 使用PowerShell檢視驅動詳細資訊Get-WmiObject-Class Win32_SystemDriver | Select-Object Name, State, StartMode

注意異常狀態為 Running且啟動型別為 Auto的非系統驅動(如 RdpMon.sys可能是遠端桌面監控驅動)。

2. 服務與程序監控

服務列表檢查

# 檢視所有服務(重點關注描述模糊或無描述的服務)services.ms

可疑服務特徵:名稱包含 agentmonitorsecurity等關鍵詞,且路徑指向非系統目錄(如 C:\Program Files\EnterpriseMonitor\)。使用 Process ExplorerSysinternals工具)檢視程序詳情,重點檢查:

父程序異常的程序(如 svchost.exe衍生出的非微軟子程序);

高許可權執行的使用者態程式(如以 TrustedInstaller許可權執行的未知程式)。

3. 證書與網路配置

檢視受信任根證書

# 開啟證書管理器certmgr.msc

檢查 受信任的根證書頒發機構” 中是否存在企業自簽名證書(如 Enterprise CACompany Security Root),這可能是 HTTPS 攔截的標誌。

網路代理與防火牆規則

# 檢視系統代理設定netsh winhttp show proxy# 檢視防火牆入站規則(可能存在允許監控軟體通訊的規則)netsh advfirewall firewall show rule name=all | findstr "Enabled"

macOS 系統檢測方法

1. 核心擴充套件與系統擴充套件

檢查 Legacy 核心擴充套件(KEXT

# 檢視已載入的核心擴充套件kextstat |grep-v com.apple# 檢查存放位置(需root許可權)ls-la /Library/Extensions/

檢查新系統擴充套件(System Extension

# 檢視系統擴充套件狀態systemextensionsctl list

注意非蘋果開發者簽名的擴充套件(如 com.enterprise.monitor)。

2. 啟動項與守護程序

使用者啟動項

# 檢視登入項~/Library/LaunchAgents/# 檢視系統級守護程序/Library/LaunchDaemons/

檢查 plist 檔案中是否存在可疑程式(如 com.sangfor.agent.plist)。

活動監視器使用 Activity Monitor檢視 CPU / 記憶體佔用異常的程序,重點關注:

持續高 CPU 佔用的後臺程序(如 monitor_daemon);

非標準路徑下的程序(如 /usr/local/bin/enterprise_agent)。

3. 隱私許可權審計

終端命令檢查

# 檢視已授權的輔助功能應用sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db 'SELECT * FROM access'|grep kTCCServiceAccessibility

若發現未知應用(如 EnterpriseMonitor.app)被授予輔助功能許可權,可能存在螢幕錄製風險。

Linux 系統檢測方法

1. 核心模組檢查

檢視已載入模組

# 顯示當前載入的核心模組lsmod# 檢視可疑模組檔案find /lib/modules/$(uname-r)/ -name"*.ko"|grep-i"monitor\|hook\|spy"

注意非標準模組(如 netfilter_monitor.ko)。

2. 服務與程序監控

systemd 服務

bash# 檢視所有執行的服務systemctl list-units --type=service --all# 檢查可疑服務檔案ls-la /etc/systemd/system/ |grep-i"monitor\|agent"

程序分析

# 檢視所有程序(重點關注父程序為root的非標準程序)ps-ef|grep-v"grep"|grep-i"monitor\|agent"

3. 檔案系統掃描

查詢隱藏檔案

# 查詢/home目錄下的隱藏監控檔案find /home/ -name".*"-type f -size +100k 2>/dev/null# 檢查常見監控軟體安裝目錄ls-la /opt/ |grep-i"security\|monitor"

移動裝置檢測方法

1. Android 裝置

檢視已安裝應用設定 → 應用管理 → 檢視所有應用,重點檢查:

名稱包含 securitymonitorguard的應用;

無明確開發者資訊或許可權申請異常的應用(如僅用於辦公的 App 申請錄音許可權)。

檢查裝置管理員設定 → 安全 → 裝置管理員,檢視是否存在未授權的管理應用。

2. iOS 裝置

檢視已安裝描述檔案設定 → 通用 → 描述檔案與裝置管理,檢查是否存在企業級配置檔案(如 Company MDM Profile)。

檢查 App 許可權設定 → 隱私,檢視各 App 的麥克風、攝像頭、位置等許可權授予情況。

五、結論

本文只是從技術角度確認是否有可疑被監控的痕跡,即使監控開啟也不代表記錄會儲存,記錄儲存也不一定有人去審計,放鬆看個十分鐘新聞也不值得會上綱上線。所以不要過於擔心。
公司在法律允許範圍內的監控是合理合法合規的。站在打工牛馬角度,也是無可厚非的,但搞加班時間排名搞提交程式碼行數比拼內卷,只會堆積垃圾程式碼,增加無效工作時間並且降低團隊創新創造力。員工和公司平臺是互相成就彼此成長的。我畢業後的公司氛圍很開放包容,由於做的toC產品,每個人都是全棧技術也是產品經理,每個人都要參與使用者增長和產品運營,學習使用者心理參與UI體驗設計,釋出推進也是自身驅動的,延遲釋出了比專案經理還著急。個人綜合能力的提升很巨大,因為不會再扣某個技術細節而是每天在想如何把日活和renew搞上去,最佳化每個頁面展示和互動,定位轉化漏斗每個環節的問題點。得到的結果就是僅靠這些產品就夠部門的自給自足。對於這個問題你有什麼見解呢,歡迎在評論區留言分享~

相關文章