站点开发人员和管理员的安全基础知识

在所有技术主题中,安全性可能是最复杂的,当然也是最重要的。 这是因为安全性总是在不断发展。 这是一种强制进化,因为我们必须适应不断出现的威胁。

我们将负责各种级别的安全性。 第一级是我们自己或我们工作的组织。 第二级是我们的客户。 第三级是我们为客户开发的网站或应用程序的用户。

尽管我们付出了最大的努力,但客户总会想方设法破坏我们为他们提供的保护。 他们依靠我们作为IT专业人员来帮助他们保持安全,但矛盾的是 很少遵循安全建议 我们为他们提供。 大多数用户 真的是 他们自己最坏的敌人。

那么,我们需要做的是让客户尽可能地牺牲自己的安全性,同时尽可能地让他们尽可能地完成他们需要做的任务。 实现这两个完美目标可能是不可能的,但在本文中,我们将介绍一些可以降低安全漏洞风险的方法。

gif by Patswerk

保护您自己的设备和数据

您是自己和客户的第一道防线。 如果您的系统遭到入侵,那么您工作的每个人都可能面临风险。 以下是您可以采取的最低限度建议,以避免在风险增加的环境中运营:

  1. 使用安全的桌面操作系统。 如果您尚未使用安全的操作系统,这是您可以进行的最基本的升级。 最安全的操作系统是Linux,Unix和BSD。 您应该使用这些操作系统之一作为主要桌面操作系统。
    开发人员和管理员的好处是可以访问更大的免费开发和安全工具库,而且大多数工具都比Windows或OSX等效工具更好。 要真正以偏执模式运行,请选择更安全的Linux发行版,例如 鹦鹉, qubes尾巴.
  2. 保持操作系统和数据之间的分离。 如果您正在运行Linux或Unix,这很容易。 您只需确保已创建分区或单独的硬盘来托管您的主分区。 然后,所有用户文件将在任何数量的操作系统安装中存活,并且可以从多引导系统上的多个操作系统访问。
  3. 如果系统崩溃或意外停止,请使用日记文件系统来帮助防止数据丢失。
  4. 镜像您的主分区。 定期备份重要文件并使用文件版本控制以避免意外覆盖。
  5. 考虑使用云备份(不要与云同步相混淆,云同步远不如真正的备份安全可靠)。 敏感数据在上传之前应加密。
  6. 让您的系统保持最新,永远不要忽略安全补丁。 使用滚动更新的系统具有以下优势:您始终可以知道修补程序何时可用,需要修补的内容以及原因。
  7. 对您组织内的人员进行培训,以警惕可能用于对其进行访问的社会工程方法。
  8. 避免从未经验证的来源运行软件。 从受信任的来源下载软件时,请验证文件签名以确定您拥有可靠的副本。
  9. 保持计算机的物理安全性,尤其是在旅行时。 在任何地方携带你的笔记本电脑可能不实用,但它比让一些人更好 邪恶的女仆 破坏你的BIOS。 如果真的不能随身携带您的计算机,请将其锁在可锁定的盒子中,并将其固定在保险箱内,或尽可能将其固定。
  10. 永远记住,最好是偏执,而不是被黑客攻击的白痴。

插图 幻影点创意

保护客户

保护客户免受IT威胁是困难的,因为他们并不都了解他们所面临的威胁的规模。 许多人还认为,如果他们的网站遭到入侵,那么解决问题就不是他们的问题了。

许多网站已被利用多年而网站所有者并未意识到这一点,因为针对网站的大多数恶意攻击不应该让他们的存在被人知晓。 因此,您不能依赖客户来告知您问题。 你需要采取积极主动的方法。

  1. 尝试向客户介绍风险。 大多数问题是由于无知有任何风险需要警惕。
  2. 告知企业客户他们将面临的最大威胁是 内部威胁 由他们自己的员工和承包商创建(通常是无意中,但并非总是如此)。 还要确保他们意识到社会工程,肩膀冲浪和垃圾箱潜水等问题。
  3. 保持服务器修补。 执行定期备份。
  4. 扫描后门漏洞或其他恶意活动的证据。 设计网站的文件和文件夹结构尽可能简单有助于简化检测。 知道每个文件夹中应该包含哪些文件。 如果您看到不熟悉或似乎有计算机生成名称的新文件,那将是一个严重的危险信号。
  5. 知道cgi-bin文件夹中应该包含哪些文件(对于大多数网站来说,这将是没有文件),因为这是隐藏恶意程序的最喜欢的位置。
  6. 定期检查htaccess文件以确保它没有被篡改。
  7. 您编写的代码不太可能广泛使用编码和解码字符串,或者包含高度加密的内容。 如果PHP文件包含异常代码,则这些文件不太可能是合法文件。 不寻常的字符编码指令也是一种赠品。 例如,您的合法文件不太可能以Windows-1251编码进行编码。
  8. 确认违规后,请更改密码。 为所有文件和文件夹正确设置了检查文件权限。 监控标志着入侵者已经返回。 即使在更改密码后,攻击者也可能有办法进入。您需要确保他们没有。 将服务器设置为在对服务器进行任何更改时通过电子邮件通知您。
  9. 通过以他们能够理解的方式向他们解释规则,帮助您的用户适当地选择密码。 这就是大多数人喜欢设置密码的方式:jenny23T这是系统管理员通常建议他们设置密码的方式:n @ ^ 2z`jGAnd - 问题是第一个密码可以在几秒钟内破解,而第二个密码可以破解几个小时后。 也没有任何希望用户会记住更复杂的密码。 这是一个密码的例子,需要几个生命周期来破解,永远不会忘记:Ialwaysfly @ 40,000feet - 上述密码的特征包括:超过20字符的长度,大写和小写字符的混合,包括数字和字母,包括非字母数字字符,易于记忆。 类似的例子可能是:

    asImove ^ inlife,Iwillnever4getwhereIstarted对密码的创造性没有任何限制,而且还有更多优势

    asImove ^ inlife,Iwillnever4getwhereIstarted与n @ ^ 2z`jG相比。 第一个例子(41混合字符)将持续到破解时间结束并且易于记忆,而第二个示例(8混合字符)可以在 不到六个小时 并且几乎不可能记住。不要以为你可以把单词串在一起,一切都会好的,因为黑客是 到那个。 您仍然需要混合使用案例并使用非字母数字字符,但当然 长度比复杂性更重要 就像现在的情况一样。 将两者结合起来比仅使用其中一个的人更具优势。

    大多数基于字典的攻击都集中在英语上,因为它是使用最广泛的语言,大多数最好的目标网站(就其产生的价值而言)都是由讲英语的人管理的网站。 如果您了解其他语言,请在创建密码时使用它。

    非常优秀

    asImove ^ inlife,Iwillnever4getwhereIstarted,它仍然不如aMedidaQue ^ enLaVida,nuncaolivdarededondecomence完美,因为这增加了另一层复杂性,迫使饼干诉诸暴力。 学习另一种语言只是为了创造更好的密码可能有点多,所以你能做的另一件事就是在你设计一个密码短语时变成(或保持)非常糟糕的英语。 例如:

    asImoov ^ inlyfIwillnevar4getwhereIstarted

    最终,您可以使用拼写错误的外语单词并用Leet元音替换所有元音:

    4M3d1d4Qu3^3nL4V1d3,nunc40l1vd4r3d3dond3c0m3nc3

    我不了解你,但我没有耐心打字。 尽管如此,这是一个非常安全的密码,迫使破解者做了大量的工作(希望然后发现他们所访问的只是猫图片的集合)

  10. 确保客户了解通过电子邮件,Skype等发送敏感信息所固有的危险。

gif by Hoang Nguyen

开发人员的特别说明

开发人员采用的快速简单的文化转变可以防止每年无数的安全漏洞,这只是为了最大限度地减少其站点的外部依赖链。 我们不必要地连接到第三方托管脚本。 其中许多脚本可能有自己的外部依赖项。 一切都是为了节省几个字节。

只要有可能,我们应该尝试自己托管所有脚本。 流行的第三方托管脚本是攻击者的诱人目标,因为通过获得对脚本的控制,可以在数千台计算机上运行攻击。

结束语

计算机安全是一项永无止境的挑战,并且在挑战的双方都需要投入大量资金。 赌注非常高,没有人是完全安全的,即使是那些认为自己无所遁形的人。 获胜主要是使用常识和保持警觉,永远不会让自己变得自满。

标题图片由...提供 乔什沃伦

波格丹兰萨

Bogdan是Inspired Mag的创始成员,在此期间积累了近6年的经验。 在业余时间,他喜欢学习古典音乐和探索视觉艺术。 他也非常着迷于修复工具。 他已拥有5。