一、为什么远程桌面里的Blue Prism会话需要特殊保护
1.1 那些被忽略的远程桌面操作坑
很多企业用远程桌面管理Blue Prism自动化流程,比如开发人员在自己电脑上连公司的自动化服务器,启动Blue Prism改流程,或者运维人员查自动化的运行状态。但多数人都是直接双击服务器上的Blue Prism图标就开了,这就像在公共会议室里随便放了一台自己的工作电脑,旁边人随便碰,很容易出问题。比如之前有个朋友的公司,一个测试人员远程登服务器,不小心把自动生成客户报表的Blue Prism流程改成了“全部删除测试数据”,结果当天的报表全空了,加班3小时才恢复。还有更糟的,要是服务器里有恶意程序,通过远程桌面的共享会话,直接删整个自动化系统的配置,那损失就更大了。
1.2 核心风险点拆解
具体来说,这里有两个主要风险:一个是误操作,比如不小心改了核心流程、删了重要数据;另一个是权限提升风险,比如有人用你的远程会话权限,登录服务器的管理员账号,去改系统配置,甚至删整个磁盘。因为远程桌面默认是共享会话,你开的Blue Prism和别人开的同一个程序,用的是同一个系统权限,所以一个人做错事,其他人跟着倒霉。
二、隔离与锁定机制的具体落地方法
2.1 会话级隔离:给Blue Prism单独找个“小房间”
这个方法就是把运行Blue Prism的会话和普通远程桌面会话分开,就像你在公司的工位,自己的格子间和别人的分开,不会随便串门。具体怎么做?用Windows自带的命令和PowerShell脚本实现,不用额外装工具。 这里举一个完整的示例,技术栈用PowerShell 5.1,适配大部分企业常用的Windows Server版本(2016、2019都能用),这个脚本的作用是:自动找你的远程会话ID,启动低权限的Blue Prism,还能自动锁定空闲会话,防止别人碰你的屏幕。
# 技术栈:PowerShell 5.1(适配Windows Server 2016及以上版本)
# 脚本功能:安全启动Blue Prism交互式会话,隔离普通操作与自动化会话,锁定闲时会话
# 1. 先查当前自己的远程会话ID(每个登录服务器的用户会话都有唯一ID,这里找你的那个)
$currentSessionInfo = query user | Where-Object { $_ -match $env:USERNAME }
$currentSessionId = $currentSessionInfo -split '\s+' | Select-Object -Index 2
Write-Host "当前用户的会话ID是:$currentSessionId"
# 2. 用专门的低权限运维账户启动Blue Prism(不要用管理员账户,减少提权风险)
# 这里的账户是提前建好的,名字叫bp_oper,只给Blue Prism的目录读写权限,不给系统权限
$bpCred = Get-Credential -Message "请输入Blue Prism运维账户bp_oper的密码"
Start-Process -FilePath "C:\Program Files (x86)\Blue Prism\BluePrismClient.exe" `
-ArgumentList "/workspace:MainWorkspace" `
-NoNewWindow `
-Credential $bpCred
# 3. 启动后自动锁定当前远程桌面会话(防止别人趁你离开操作)
# 这个命令会瞬间锁定屏幕,需要输密码才能进
rundll32.exe user32.dll,LockWorkStation
# 4. 检查Blue Prism有没有正常启动,异常就记日志,方便后面查
$bpRunning = Get-Process | Where-Object { $_.Name -like "*BluePrism*" }
if (-not $bpRunning) {
Write-EventLog -LogName Application -Source "BluePrismSecurityLog" `
-EntryType Error `
-Message "会话ID为$currentSessionId的Blue Prism启动失败,请检查程序路径或账户权限"
}
这个脚本怎么用?你只要把这段代码复制到服务器的PowerShell里,按回车,就会自动做这些事,不用自己找会话ID。这里要注意,那个bp_oper账户一定要单独建,权限只给Blue Prism的安装目录和存储流程的文件夹,不能给管理员权限,这样就算会话被攻破,也没法改系统。
2.2 权限锁定:给Blue Prism的操作加“门禁”
光隔离会话还不够,还要给Blue Prism本身加权限限制,就像你进房间要刷卡,不能随便乱改。比如,Blue Prism里的流程,普通运维人员只能看和运行,不能删或改核心流程,只有少数管理员才能改,这就是权限锁定。具体做法是,在Blue Prism的系统设置里,给不同的用户角色分配不同的权限,比如建一个“bp_oper”角色,只给“运行流程”“查看日志”的权限,不给“修改流程”“删除对象”的权限。 举个例子,比如你要给运维账户加权限,步骤是:打开Blue Prism客户端,进入“安全”选项卡,建一个新角色,名字叫“运维只读”,然后勾选“允许查看流程”“允许运行流程”“允许查看日志”,把不想要的权限(比如修改流程、删除对象)全去掉,然后把bp_oper用户加到这个角色里,这样他就只能用,不能改,避免误操作。
三、应用场景、技术优缺点和注意事项
3.1 应用场景
这个机制适合很多企业的场景:比如做财务自动化的公司,用Blue Prism自动开发票、算工资,怕有人改流程删数据;还有测试团队,用Blue Prism自动测软件功能,怕测试人员误操作线上流程;还有运维团队,用Blue Prism自动管理服务器,怕别人用自己的会话改系统配置。
3.2 技术优缺点
优点很明显:第一,隔离性强,就算某个会话出问题,其他会话的Blue Prism和系统都不会受影响;第二,减少误操作,因为权限被锁了,普通用户不能改核心流程;第三,成本低,用Windows自带的工具和PowerShell脚本实现,不用买额外的安全软件。 缺点也有:第一,配置稍微麻烦,要建专门的账户、改Blue Prism的角色权限,还要写启动脚本,不能直接双击图标;第二,对习惯快捷操作的人来说有点麻烦,每次启动都要走脚本流程;第三,要定期维护,比如会话的ID可能会变,脚本要定期更新,账户密码要定期改。
3.3 注意事项
这里要注意几个关键点:第一,千万不要用管理员账户启动Blue Prism,就算用脚本也要用低权限的运维账户,不然别人拿你的权限就能改系统;第二,要开远程桌面的日志,每次谁登服务器、操作了什么都要记,出了问题能查;第三,远程桌面要开多因素认证,比如除了密码,还要用微软的Authenticator APP验证,防止别人盗密码登;第四,Blue Prism要定期更新,打安全补丁,不然老版本的漏洞可能被黑客利用。
四、总结
总的来说,在远程桌面环境下启动Blue Prism的交互式会话,要做到两个核心:一个是会话隔离,把Blue Prism的运行会话和普通远程会话分开,避免互相影响;另一个是权限锁定,给运行Blue Prism的账户和流程加权限限制,不能随便改。用刚才的PowerShell脚本,结合Blue Prism的角色权限设置,就能形成一套简单有效的安全基线,避免误操作和权限提升的风险,适合大部分企业的中小团队用,不用花太多钱,就能解决核心的安全问题。
评论
围绕“深入探讨从远程桌面环境启动Blue Prism交互式会话时的隔离与锁定机制,从而避免误操作及权限提升风险的安全基线设计”参与讨论