案例 | 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进行文件上传、下载、重命名、移动的一系统操作事件进行监控。
(栏目编辑:张丽霞)
往期精选:
(点击查看精彩内容)
● 案例 | BMC与百硕联合实施三维服务升级,加速金融行业大型机数字化转型
● 案例 | 用行动夯实建设,用科技提升管理,用数据控危解困
新媒体中心:主任 / 邝源 编辑 / 傅甜甜 张珺 邰思琪