作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
每当我告诉我的朋友我为一个从未谋面的客户远程工作时, 他们问我:你远程工作安全吗? 我的回答是一个响亮的“是的……但是,这取决于你如何创造你的。 远程工作人员安全策略.”
我住在巴基斯坦,在那里我编写的代码对地球另一端的客户有价值. 我的客户从来没跟我握过手,也没见过我工作的地方. 然而,我需要确保客户的秘密和代码得到保护. 在一个你的团队成员不熟悉你的面孔或声音的世界里, 如何防止安全漏洞? 答案是: 非常小心.
不久前, 我们相信,为了保证我们应用程序的性能和安全性, 我们需要在我们的私人数据中心运行它们. 然后 cloud 是在, 我们接受了在可扩展的平台上运行应用程序的成本和性能优势, 按需平台,而无需在房间内维护一系列服务器.
请允许我告诉你一个众所周知的秘密:
现在,像Uber这样的公司1 和条纹2 在云提供商的服务器上存储和处理实时客户位置信息、信用卡和付款, 同时遵守严格的安全标准,如pci遵从性. 为了做到这一点,他们采取了严格的政策,以确保生产数据的安全.
如果公司能够保证他们的整个生产环境保持安全,即使在他们的私有数据中心之外运行, 我们当然可以使用远程开发团队来确保开发的安全性. 毕竟,整个公司都可以完全远程运行. Toptal是一家远程公司 我们正在招聘.
在本文中,当我谈到“安全性”时,我的意思是 信息安全.
“信息安全”一词是指保护信息和信息系统免受未经授权的访问, use, 信息披露, 中断, 修改, 或破坏. – 44 U.S. 法典§3542
有 世上没有十全十美的安全措施,但“安全”意味着你已经采取了 合理的措施 执行 信息安全.
具体地说, 当你说“我的工作环境很安全。,“你的意思是说你已经采取了合理的措施来保护数据, code, 或其他机密信息, 并确保其完整性. 您还采取措施确保访问敏感信息系统的权限不会被您自己使用, 或者是未经授权的个人, 以一种对拥有这些信息的组织的目标有害的方式, 这些系统.
远程团队的攻击面确实比集中式团队大得多. 不像一个集中的团队,你可以把机密信息锁在后面 防火墙 以及公司的工作站, 作为远程工作者, 你被鼓励,甚至被要求, 自带设备(BYOD). 更重要的是, 因为你们大部分的交流都是在网上进行的, 你更容易受到社会工程的影响 身份盗窃. 然而,有了正确的策略集,您当然可以将违规的风险降至最低.
安全没有灵丹妙药. Often, 在安全性和便利性之间需要权衡取舍, 你可以决定你的安全措施要走多远,但要记住, 你的团队的安全取决于最弱的成员. 让我们来看看一些常见的安全攻击, 防御策略, 最后讨论一个示例远程安全工作者策略.
如果你不知道你将要面对的是什么,你就没有准备好. 对手可以在攻击中使用许多策略,但大多数可以分为三类. 虽然这个列表并不详尽, 以下是恶意黑客可能使用的三种常见攻击媒介:
也被认为是人类黑客, social engineering is the practice of manipulating people to act in a manner that is not in their best interest; this may include divulging confidential information.
社会工程攻击要么试图利用你的同情心,试图让你绕过良好的实践, 或者制造一种紧迫感,让他们担心如果你不遵守就会对你采取负面行动,从而让你绕过最佳做法.
社会工程的例子包括:
网络钓鱼是窃取您凭证的最常见方法. 想象一下,一个看起来像Facebook的网站,当你登录时,以为它是真实的. 网络钓鱼是指攻击者创建一个看起来合法但实际上不合法的网站.
你能认出假脸书吗? 提示:它是不在Facebook上的那个.com.
有时黑客可以毒害你的互联网,并将他们的网站注入Facebook域名, 这就是所谓的中路进攻, 不过别担心, 你的浏览器会警告你这些.
鱼叉式网络钓鱼是另一种形式的网络钓鱼,其中网络钓鱼页面可能是为您或您的组织定制的. 这让你更有可能上当受骗,尤其是当它与社会工程结合在一起时.
我给你讲个故事:当我还在上学的时候, 最近了解到网络钓鱼的人创建了一个假的Facebook网站,并将计算机实验室的主页更改为他创建的. 接下来他知道的是,这个人有300个Facebook账户密码. 这次攻击是专门针对我的学校,结果证明是一次成功的鱼叉式网络钓鱼攻击.
想想看,只要有人懒得抬头看一下地址栏,所有这些密码就会保持安全.
现在有上百种不同类型的恶意软件. 有些是无害的,或者只是令人讨厌,但有些可能非常危险. 需要注意的最重要的恶意软件类型有:
故意让你在电脑上安装自定义恶意软件, 攻击者通常使用社会工程:
我们已经讨论了最常见的对抗性攻击方法,但我们如何保持安全?
我讨厌密码. 好了,我说出来了. 我坚信用户名和密码组合是目前存在的最弱的用户认证形式. 密码只不过是由现存最糟糕的伪随机数生成器——人类大脑——生成的一串短字符.
我需要一个秘密词? 我的中间名和出生年份呢?肯定没人能猜出来! ——每一个人
更糟糕的是,为了方便,人们倾向于重复使用密码. 这使得某些人可以在银行登录和家庭WiFi上使用相同的密码, 同时让密码以他们最喜欢的乐队的名字结尾. 的恐怖!
多年前,我决心做以下事情:
当我说在安全性和便利性之间存在权衡时,它并不适用于这里. 要么你是安全的,使用密码管理器,要么你不是. 没有中间地带. 为确保良好的密码安全性,您必须使用密码管理器. 我将解释.
如果你对上面任何一个问题的回答都是否定的,那么你就需要一个密码管理器了. 一个好的密码管理器会随机为你生成密码,并安全地存储它们. 不管你用什么密码管理器,只要你用一个就行!
I use LastPass 因为我喜欢他们在事件报告上的透明, 能够与朋友共享我的证书,并在我想要的时候撤销共享, 我喜欢他们免费计划中的移动同步功能.
我已经使用LastPass很多年了, 他们的安全挑战告诉我,我是他们安全意识最高的1%的用户之一.
这可能听起来违反直觉,因为我在上面要求您使用密码管理器, 但在某些情况下,密码是不可避免的:您需要为密码管理器设置一个强大的主密码, 或者登录你的电脑. 在这些情况下,请使用安全且易于记忆的高熵密码短语.
说到熵,我们来讨论一下它. 我所说的“熵”是什么?
熵是在一定意义上衡量的统计参数, 语言文本的每个字母平均产生多少信息. 如果以最有效的方式将语言翻译成二进制数(0或1), 熵H是原始语言中每个字母所需的二进制位数的平均值. ——克劳德·香农
如果这句话很难理解,也没关系. 基本上, 密码的熵, 从一组中随机选择的, 集合中元素的总数是以2为底表示的吗. 例如:如果您的密码长度为4个字符, 只能包含小写字母, 随机生成密码的熵将是19位,因为:
26^4
= 456,976Log (456,976) / Log (2)
= 19位(四舍五入到最接近的位)高熵密码的问题在于它们最终很难被记住,比如 c05f $ KVB # * 6 y
. 为了让它们更容易被记住,如果我们不使用单个字母,而是使用整个单词呢? 用了一本有上千个单词的字典? 突然间我们的字母表变成了一千个元素那么长, 我们可以在7个单词中获得与11个字符相同的熵.
现在的不同之处在于,不再使用通行证word我们使用通行证phrase它的长度要长得多.
下面的XKCD漫画最好地解释了这个概念:
生成安全随机密码短语的最简单方法是 here.
双因素身份验证(2FA)或两步验证都是同一事物的名称. 这是一件需要慢慢习惯的事情, 但2FA的安全效益远远超过成本,并使我个人免于两次账户泄露!
MFA背后的想法很简单. 我们可以用三样东西来验证你的身份:
使用两个比只使用一个更安全.
大多数网站通过要求密码来支持第一个身份验证因素, 但越来越多的服务也开始支持第二个因素. The third factor is usually left out by web services since it requires specialized hardware; like the fingerprint sensor on your phone.
如果你是一个团队的管理员, 考虑为用户创建一个强制策略来设置2FA. 这确保了密码泄露不会导致帐户泄露.
“something you have”有两种常用的表达方式:
我想马上说:不要在2FA中使用SMS代码. 恶意的人劫持你的电话号码已经成为一种常见的做法. The story 几乎都是一样的:有人对运营商进行了社交工程,将你的电话号码转移到另一家运营商. 我知道至少有一个人是这次袭击的受害者.
相反,使用基于时间的一次性密码(TOTP),也称为“谷歌身份验证”方法. 但是,我建议不要使用Google Authenticator,而是使用 Authy 因为它会在云端加密和备份你的2FA令牌. 你可以恢复你的2FA令牌,即使你改变设备…事实上, 您可以在多个设备上使用相同的令牌. 非常方便.
这是最简单和最强大的2FA方法. 我有一个Yubikey Neo,可以和我的手机和电脑一起使用. 为了证明我的身份,我只需要插入我的硬件令牌并按下一个按钮. My token is unique and being a physical token; I can carry it on my keychain or in my wallet.
不管你认为自己有多安全,适度的怀疑是一件好事. 警惕那些要求你做不寻常事情的人. 你是否收到过某人让你重置密码的短信? 等一下,和他们进行视频通话. 要求他们证明自己的身份. 没有人会因为你的谨慎而责备你.
如果他们真的想抓你,那就不是偏执狂. -哈罗德·芬奇,疑犯
他们真的是来抓你的. 有时候,恶意用户做他们所做的事情是没有理由的,只是有这样做的意愿.
我的一位朋友曾经收到一位老熟人发来的信息,问他是否愿意成为他在Facebook上的“信任联系人”. 我的朋友同意了,并被要求回复一个他们会在手机上收到的代码, 这就是我的朋友如何通过社交工程为她的Gmail帐户提供重置令牌. 如果我的朋友从一开始就保持警惕,她就不会丢失她的电子邮件.
最小特权原则要求在计算环境的特定抽象层中, 每个模块(例如进程), a user, 或者一个程序, (取决于主题)必须只能访问其合法目的所必需的信息和资源. ——维基百科
如果用户、应用程序或服务不需要某些特权,就不要给他们特权. 你可以从这个原理推导出许多规则, 但我将在下一节讨论安全策略时再讨论它们.
让我告诉你一个故事:我曾经设计过一个应用程序,它可以接受用户使用为他们生成的唯一地址进行比特币支付,然后将其转发到一个中央安全存储地址. 如果你不熟悉比特币的工作原理, 这里有一个简单的解释:你需要一个公钥来接收比特币(像一个账号),一个相应的私钥来使用它(像一个账户密码)。. 比特币的账号和密码是加密连接的,不能更改.
我有几个选择来设计这个系统,但我决定采取更长的路线. 我决定让用户付费, 应用程序不需要访问私钥. So, 而不是设计一个接收和转发比特币支付的大型系统, 我做了两个系统:
很久以后,在我停止维护这个应用程序之后,公共接收系统被攻破了. 我立即关闭了它, 但攻击者从未设法窃取比特币,因为公共系统根本没有包含任何私钥.
有些做法不需要解释. 你可能知道它们很重要, 但我经常惊讶于有多少人(包括我自己)忘记按几个开关. 我把这张清单放在这里:
防火墙根据一组规则控制进出计算机的网络流量. 它通过明确询问您是否允许新程序访问您的网络而起作用,并且是您的第一道防线.
您的操作系统可能内置了防火墙. 确保它已打开.
全磁盘加密是这种神奇的能力,使您的整个磁盘的内容无用,没有您的密码. 万一你的笔记本电脑丢失或被盗, 你可以放心,没有人能够访问你的数据. 启用这个功能就像打开一样简单 FileVault 在Mac上.
现代手机也默认启用了全磁盘加密.
硬件故障,这是不可避免的. 你的机器总有一天会出故障的, 否则病毒会感染你的电脑, 或者(不寒而栗)勒索病毒会控制你的电脑. 但作为一个务实的人,你可能已经有了一个备份流程设置,我敢肯定,不是吗?
但是,即使有了备份,您也必须保持警惕. 确保你的备份是加密的,这样即使它们丢失或被盗, 您可以放心,您已经采取了合理的措施来保护您所委托的数据的安全.
如果你用的是Mac电脑,Mac上的Time Machine应用程序会自动对备份进行加密.
如果您从本文中学到了什么,那就是停止使用密码SSH到计算机. 密码很难分享,如果它们被泄露,你的整个机器就会受到损害. 相反,只需运行命令即可创建SSH密钥 ssh - keygen
.
要登录到远程机器,只需复制本地的内容 ~/.ssh / id_rsa.pub
to ~/.ssh / authorized_keys
在远程机器中. 您可能需要在远程机器上重新启动SSH服务,但仅此而已.
将整个团队的SSH密钥添加到远程机器上,这样就没有人需要再次输入密码了. 撤销团队成员的密钥就像从远程计算机中删除密钥一样简单.
当你与某人共享互联网连接时,你共享的不仅仅是你的带宽. 这取决于网站的配置和你的互联网, 他们至少可以检测到你访问了哪些网站, 最坏的情况是读取你传送的所有信息, 包括密码, 消息, 或电子邮件.
这很容易启用,也很容易搞砸. 采取合理的预防措施,以确保您的连接是私人的. 确保没有未经授权的人可以访问你的互联网连接.
使用WPA2密码保护您的个人WiFi, 如果你在当地的咖啡店(或任何公共WiFi)工作,假设你被监视并使用VPN代理.
我犹豫是否要使用基于订阅的vpn,特别是因为自己的vpn非常简单. 使用这个 单线VPN解决方案 托管你自己的.
秘密是不应该泄露的. 这就是为什么他们被称为 secrets. 尽管如此, 你有多少次因为通过Facebook Messenger将密码发送到PostgreSQL生产数据库而感到内疚? 确保你总是:
如果您必须通过聊天等渠道共享秘密,请确保它们是加密的. 作为练习,访问您经常使用的最老的聊天客户端. 它可能是Facebook的消息或Whatsapp. 不管它是什么,打开并在你的消息中搜索短语“密码”.
如果这些秘密被加密了, 任何可以访问您的消息的人都无法使用它们.
一个秘密存在的时间越长,或者被分享的次数越多,它就越有可能被泄露. 在一段时间后轮换秘密和密码被认为是一种很好的做法.
这当然是一种先进的策略, 但我个人不明白为什么这不是一种普遍的做法. 想想看:你的同事认为你被出卖了. 他们如何把信息传递给真实的你? 如果有人从互联网上分享重要的漏洞信息, 他们如何安全地发送? 您如何确保员工在传输过程中安全地共享信息?
我最喜欢的例子是Coinbase keybase概要在那里,他们对员工的PGP密钥进行加密签名. 他们走得更远,付出了他们的 合规部门提供PGP密钥. 说真的,Coinbase做得很好!
For me, 就我个人而言, 如果有人有理由怀疑我的网络身份被泄露了, 只需让我使用我的服务器上可用的PGP密钥签名一条消息 keybase profile. 我是唯一能拿到这个PGP密钥的人, 我已经采取了合理的预防措施来确保这把钥匙的安全,即使我的其他身份被泄露.
如果对消息的真实性有疑问,请让我签名. 如果你需要给我发送一个秘密,用我的公钥加密.
安全策略是对系统安全的定义, 组织或其他实体. 对于一个组织来说, 它解决了对其成员行为的约束,以及通过门等机制对对手施加的约束, locks, 钥匙和墙. – 维基百科
安全策略是执行操作时必须遵循的强制性规则或协议. 上面的策略是有帮助的,但要使它们更容易遵循, 给你的团队一套简单易懂的规则. 当您的团队确切知道该做什么时,就很难搞砸安全性.
让我们讨论要实现的远程工作人员安全策略的示例.
要实现的策略 员工:
员工会离开,但他们不应该带走你的信息. 调整这些策略以保留 data 即使你的员工离开了公司:
保障你的 基础设施:
写作时的策略 code:
READ
特权,不要授予它 WRITE
特权. 坚持最少特权原则.安全漏洞确实时有发生, 虽然在验尸过程中有足够的时间来学习, 重要的是,有一个明确的途径来保护所有的数字资产.
花点时间制定一个应急计划,以防万一发生安全漏洞. 考虑你在以下情况下的行动:
应对计划中需要包括的内容:
发生安全事故. 重要的是你如何处理你的回应. 到目前为止,我最喜欢的回应之一是在2015年,当LastPass检测到时,他们会强制重置主密码 异常网络活动. 我一直是LastPass的长期用户,尽管他们 recent 在安全问题上,我喜欢他们把客户的需求放在第一位的方式.
重申一下:不存在十全十美的安全. 重要的是确保您已经做出了合理的努力来保证数据的安全.
这些安全实践将使您和您的远程团队更难以被黑客攻击.
如果你想读一个黑客逃亡的真实故事,我推荐 《欧博体育app下载》 凯文·米特尼克.
如果你想了解更多关于对方的想法,我建议你阅读:
我的罪过是好奇.
世界级的文章,每周发一次.
世界级的文章,每周发一次.