?SFTP 協議事件監聽及用戶訪問控制方案
文 / 交通銀行軟件開發中心 周文博 周軍
SFTP技術背景現狀
1.數據安全交換系統業務背景。交通銀行數據安全交換系統(DSES),主要通過管理數據文件的交換過程,起到安全管控的作用,主體功能有數據的上傳、下載、文件加解密、借用流程的申請管理、對數據的審計及數據借用工單查詢功能。
2.SFTP技術背景。SFTP(Secure File Transfer Protocol)安全文件傳送協議,是一種數據流連接,SSH的一部分,使用加密傳輸認證信息傳輸數據,是一種傳輸文件到服務器的安全方式,提供文件訪問、傳輸和管理功能的網絡傳輸協議。
3.SFTP原生協議服務的不足。SFTP在提供安全傳輸的前提下還存在一些不足。(1)鑒權:賬號訪問權限是嚴格遵照系統用戶實現的,只有將該賬戶添加為操作系統用戶才能夠保證其可以正常登錄SFTP服務器。(2)文件系統管理:因賬號訪問權限需要預分配,導致不同文件系統管理混亂,不能靈活支持不同級別的用戶上傳下載文件的隔離。
為解決原生SFTP在鑒權和文件系統管理的不足,項目組基于開源項目ApacheMinaSSHD,結合交行企業級用戶信息管理系統EUIF用戶權限模型,對SFTP服務器項目工程進行適應性改造,實現SFTP賬號訪問權限與行內用戶權限連通,并使用虛擬文件系統實現服務器文件統一有序管理,使用自定義監聽器,對SFTP文件上傳、下載、重命名、移動等一系統操作事件進行監控。
SFTP協議服務優化改造
1.登錄鑒權改造。原生方法改造前只支持Linux用戶的登錄鑒權,因交換系統用戶都為行內用戶,原方法不應能滿足用戶登錄需求及權限管理要求,故沿用EUIF聯機登錄驗證。
改造原生類方法 org.apache.sshd.cli.server.SshServerMain.main,調用時增加EUIF鑒權sshd.setPasswordAuthenticator(newDsesPasswordAuthenticatorImpl());用以判斷用戶是否可以登錄數據安全交換系統,使用SFTP協議進行上傳和下載數據。
2.虛擬文件系統管理。用戶登錄后,為保證數據安全,確保取數團隊只能上傳自己部門的工單數據并且使用人只能下載自己申請的數據原則,對虛擬文件系統進行管理,并區分上傳平臺及下載平臺兩種虛擬文件系統管理。
針對上傳平臺,根據功能不同分為用戶自己上傳及取數團隊上傳;因上傳方式不同分為快捷上傳和普通上傳兩種。
取數團隊上傳功能包含以上兩種方式。快捷上傳功能需為用戶增加白名單,登錄SFTP默認根路徑是快捷上傳路徑,只需將文件上傳至該目錄下,審批通過后文件會自動傳輸至下載平臺;普通上傳用戶登錄SFTP后默認根路徑為所在機構/工單號路徑,該工單號文件夾只會在審批成功后創建,將文件上傳至相應工單號文件夾下,上傳完文件后會自動傳輸至下載平臺。
用戶自己上傳功能主要為先上傳后審批,用戶可登錄上傳平臺填寫申請,同時在申請頁面上傳相關數據或通過SFTP上傳。上傳完回到申請頁可以看見文件列表里有此條數據文件,點擊提交后進入審批環節,審批結束后文件會自動傳輸至下載平臺。
針對下載平臺,數據使用人登錄SFTP后,默認根路徑用戶user/工單號文件夾,數據會根據不同的用戶user下發至對應人的對應工單號文件夾下,保證數據只有相應數據使用人可以下載。
改造原生類方法 org.apache.sshd.cli.server.SshServerMain.main,sshd.setFileSystemFactory(newDsesVirtualFileSystemFactory());設置DSES自定義的用戶路徑關系管理,以實現虛擬文件系統管控,實現操作管理、文件和用戶的關聯。
3.事件管理。因日常用戶SFTP操作比較多樣,涉及文件移動、重命名等操作,可能會對文件移動產生不良影響,故對此行為進行監控入表;為監控文件行為及對文件移動的記錄,將上傳、下載、移動、重命名等操作涉及的方法進行改造。
改造原生類方法org.apache.sshd.cli.server.SshServer.registerSubsystemFactoryListeners,添加設置DSES自定義監聽器DsesSftpEventListener;結合數據借用流程約定,對數據借用工單進行檢查,對調用SFTP進行文件上傳、下載、重命名、移動的一系統操作事件進行監控。
(欄目編輯:張麗霞)