新程序员网络安全完整指南

发布于:2021-02-07 14:00:20

0

438

0

程序员 网络安全 指南

当你刚开始做程序员的时候,你太忙了,没有时间去关注任何与你的核心能力无关的事情。学习新的技术和语言,执行项目,你的手都在忙着。

虽然这可能很难挤进去,但重要的是你要找到时间学习网络安全。

不安全的代码在纠正它所需的时间方面可能代价高昂,或者更糟的是,如果问题没有被发现,则会带来金钱和业务影响。

在这篇文章中,我将向你展示网络安全的基本原理,让你在一个地方掌握所有的基本信息。我们首先来看看常见的攻击和最佳实践,然后我将分享一些关于网络安全技能和技术的提示和建议。

什么是网络安全?你为什么要费心?

网络安全是指保护数据、网络和设备不被黑客滥用的过程。

数据非常有价值,范围从信用卡的详细信息到社会保险号码和医疗记录。当你为一家公司或一个自由职业者客户工作时,你可以处理客户的敏感数据,而这些数据是你无法承受的。

2019年上半年,数据泄露暴露了超过41亿条记录。更重要的是,最近的一项研究发现,黑客每39秒攻击一次连接互联网的电脑,平均每天攻击2244次。

一个成功的破绽就是把你的信誉或你的生意烧成灰烬。例如,2016年末,两名黑客获得了超过5700万优步应用程序用户的姓名、电子邮件地址和联系电话。

这导致优步估值下降200亿美元,首席安全官(CSO)被解职,公司声誉受损。此外,他们还必须向黑客支付10万美元才能删除这些数据并保持缄默。

显然,作为一个新的程序员,学习网络安全的基础知识并没有什么坏处。

在我们讨论您应该了解的网络安全最佳实践之前,让我们先看看一些常见的网络攻击类型。

网络攻击类型

网络攻击是一种有目的的、通常是恶意的试图捕获、修改或删除私人数据的行为。网络攻击有多种原因,但大多数都是出于勒索。

以下是四种最常见的影响用户(包括程序员)的网络攻击。

蛮力攻击

暴力攻击(或称“密码猜测”)是指攻击者试图手动猜测用户名和密码,或使用以极快速度进行猜测的软件。

此攻击通常会尝试已知的用户名和密码组合,从过去的数据泄露。当人们在不同的应用程序中使用较弱或通用的密码时(例如,当您的社交媒体和工作密码相同时),攻击就会成功。

针对暴力攻击的最佳防御措施是使用强密码,避免对不同的应用程序使用相同的密码,以及使用双因素身份验证。我们将在后面的文章中更仔细地研究这个和其他网络安全选项。

分布式拒绝服务攻击

分布式拒绝服务(DDoS)攻击是指攻击者通过大量的活动(如消息、请求或流量)涌入网络或系统,试图使其瘫痪。

成功的DDoS攻击可作为敲诈和勒索的手段。例如,可以要求网站所有者向攻击者支付赎金,以阻止DDoS攻击。

这种攻击通常是通过使用僵尸网络来完成的,僵尸网络是一组与互联网相连的设备,例如笔记本电脑、智能扬声器、游戏机或受病毒感染的服务器,黑客可以利用这些设备来执行这种攻击。

DDoS防御技术包括使用防火墙、VPN、反垃圾邮件、内容过滤和负载平衡。

恶意软件攻击

恶意软件是指黑客利用恶意软件和技术侵入计算机和网络,窃取易受攻击的私有数据。以下是几种常见的恶意软件:

  • 键盘记录者跟踪一个人在键盘上键入的内容。键盘记录程序通常用于获取密码和其他私人信息,如社会安全号码。

  • 勒索软件对您的数据进行加密并将其作为人质,如果您希望解锁并重新获得对数据的访问权,则迫使您支付赎金。

  • 间谍软件在您的网站上跟踪和“间谍”代表黑客。

  恶意软件可以通过多种途径传播,常见的有:

  • 特洛伊木马,通过看似无害的入口点感染计算机或网络,通常伪装成合法的应用程序。

  • 病毒,破坏、擦除或修改数据。当粗心的用户无意中安装时,这些病毒会在计算机之间传播。

  • 蠕虫,设计用于自我复制并通过具有相同漏洞的所有连接设备自主传播。

网络钓鱼攻击

网络钓鱼攻击是指黑客试图诱使人们做一些看似紧急或有益的事情,比如提交个人信息以获得有限的时间奖励。

这些都是非常常见的,可以尝试通过下载链接,电子邮件,假冒网站,或形式,看起来合法的表面。

此外,鱼叉式网络钓鱼指的是当攻击者针对特定的人或公司,而不是大规模垃圾邮件。

网络安全最佳实践

网络安全不是你可以通过遵循一成不变的规则来完全保证的。在网络世界中,没有简单的方法来保护您或您的企业的安全。

然而,有一些最佳实践和网络安全技术,你可以用最好的方式来保护自己。

创建近乎无法穿透的登录凭据

这听起来似乎非常明显,但许多人,包括精通技术的程序员,都会使用带有附加含义的可预测密码,比如爱人姓名、首字母缩写或出生日期的略微修改版本。

这样的密码很容易记住,因此很容易被破解。

使用随机密码生成器来创建一个无法猜测的超强密码,而不是一个容易记住的密码。也要设置允许的登录尝试次数限制。这是一个简单而强大的方式来挫败暴力攻击。

另外,为了防止错误的人轻松访问您所有敏感的个人或业务数据,请让您的登录在几个小时不活动后过期,即使这是一个小的不便。

此外,要注意共享登录权限。理想情况下,根本不要分享它们。但是,如果你经营一家企业,而且绝对必须这样做,那么只有少数你完全信任的精选员工才应该拥有登录权限。如果具有凭据的员工不再与您的业务关联,请确保及时重置凭据。

保持你的CMS最新

你可能会在你的个人网站或工作场所使用内容管理系统(CMS)。虽然使用像WordPress或Magento这样的CMS是一种更有效地管理网站的好方法,但它也有可能被黑客利用的漏洞。

以WordPress为例:它为超过35%的互联网提供动力,而且仍在不断普及。但随着WordPress的流行和广泛的可定制性(使用无数的插件和主题)的出现,它的弱点和简单的入门点使得WordPress成为黑客的主要目标。

尽管WordPress本身就是一个安全的CMS,但每年仍有成千上万的WordPress网站成为网络攻击的受害者。

你所安装的所有插件和主题形式的使生活更轻松的扩展,都是赛博朋克的潜在入口。这些插件中的许多都不那么安全,虽然漏洞通常由开发人员修复,但您可能无法及时应用补丁。

所以,确保你的CMS,它的主题,和它的插件总是最新的版本。

警惕社会工程诈骗

你可能会觉得自己很聪明,能够区分合法邮件和可疑邮件,而且很可能是这样,但每个人都会时不时地失去判断。

时刻注意钓鱼电子邮件和欺诈网站与阴暗的下载或提供。毕竟,网络钓鱼是黑客获取敏感信息(如信用卡详细信息)的有效、高回报和最低投资策略。因此,它总是会成为一种威胁。

以下是一些预防措施,以保护自己免受社会工程攻击:

  • 提防那些不知名的发件人,甚至是熟悉的人(比如你公司的首席执行官或你的医生)发来的邮件,他们通常不会直接与你沟通。不要单击这些发件人的链接或打开附件。

  • 请检查发件人的电子邮件地址,确保其来自真实的帐户。将鼠标悬停在链接上,可以在“收件人”和“发件人”字段中查看关联的网址。另外,要注意一些细微的字符变化,这些变化会使不合法的电子邮件地址在视觉上看起来是合法的,比如说,应该是.gov的.com域。

  • 注意电子邮件内容中的语法错误,因为它们几乎都是骗局的标志。

  • 检查徽标:它们看起来合法吗?字体匹配吗?它们的分辨率高吗?

  • 在浏览器和电子邮件上使用反钓鱼过滤器,并使用防病毒软件扫描附件。

启用双因素身份验证(2FA)

最强大的密码仍然可以被破解。而且你的登录凭证总是有可能落入坏人之手。

因此,与其只需要密码就可以成功登录到你的个人资料或网站,不如使用双因素身份验证,即向你的注册手机或电子邮件发送验证码,以验证登录的人确实是你。

启用双因素身份验证(2FA)可以在每次有人试图使用您的凭据登录时为您提供一个附加的安全层。像googleauthenticator或Authy这样的工具就可以做到这一点。

使用虚拟专用网(VPN)

公共Wi-Fi热点很棒。它们是免费的,不需要密码。它们使您不必耗尽移动数据。

然而,还有一个附加的网络安全成本。无论是您友好的邻里咖啡馆还是机场,公共Wi-Fi点都是黑客窃取您的数据或侵犯您隐私的最佳场所。

黑客利用这些开放的网络试图进行中间人攻击,将自己置于你和网络路由器之间。然后,他们可以创建假登录页来窃取您的凭据或从您的设备发送的数据。

您可以通过使用虚拟专用网(VPN)来保护自己免受这些攻击。VPN创建了一个“隧道”,当您进入和退出web服务器时,您的数据将通过它进行传输。这个隧道会加密你的数据并隐藏你的位置,这样黑客或恶意软件就无法读取。

因此,无论你是在公共网络上上网,还是打算使用PrimeWire之类的流媒体服务,都可以考虑使用VPN来提高安全性。

执行频繁的备份和恶意软件扫描

你可能听腻了,但经常备份重要数据是必不可少的。就像吃你的蔬菜你知道这是一件好事,但并不真的想这样做。

假设你的商业网站被黑了。停机时间的每一秒都会让你付出沉重的代价。

在这种情况下,最快的回退是恢复上一次备份。虽然有些托管服务提供商为您执行自动备份,但几乎没有一家以理想的频率(每天或最多每周)执行。所以,你要自己安排频繁的备份。

下一步,使用防病毒工具,定期进行恶意软件扫描,跟踪并删除可能被黑客利用的病毒和过时的软件或扩展。使用漏洞扫描工具进行漏洞测试,以揭示web应用的弱点。

新的漏洞不断出现,上个月安全的东西今天可能不安全。注意提前安排备份、扫描和测试。

要学习的技能和技术

网络安全是一条有回报的职业道路,每年平均工资60万元左右。

但是,即使你不想在网络安全领域开始职业生涯,了解成为一名精明的程序员所需的技能和技术也是一个好主意。

虽然精通网络安全不一定要有编程知识,但你对编程语言的了解肯定会给你一个先机。让我们来看看专家们对你需要知道什么来保护你自己有什么看法。

你不需要成为专家,但能够阅读和理解一门语言是(网络安全)一项很好的技能。只有对系统的脆弱性有了坚定的理解,才能预测和防止网络攻击。

具体的技术技能因专业领域而异,但从广义上讲,建议程序员具备以下网络安全技能:

  • 安全和网络基础

  • 记录和监控程序

  • 网络防御策略

  • 密码学和访问管理实践

  • Web应用程序安全技术

不管你在做什么,你的重点应该是了解系统幕后发生了什么,什么数据对系统的运行很重要,系统所有者的目标,以及黑客可能试图利用的弱点。

例如,如果您正在查看工资单系统,请先问以下问题:

  • 员工如何获得报酬?

  • 他们的数据存放在哪里?

  • 这个系统怎么会出故障?

在技术方面,最好了解网络体系结构、管理和操作系统(如各种Linux发行版或Windows)、网络和虚拟化软件的管理。了解并喜欢防火墙和网络负载均衡器。

除此之外,软技能——清晰表达复杂概念的能力、出色的表达和倾听能力、团队合作等,当然是成功的先决条件。

例如,您可能需要向毫无戒心的员工介绍社会工程的概念,或者向可能没有技术背景的C-suite高管传达复杂的主题或策略。

网络安全认证对于显示网络安全专业人员的知识水平至关重要。然而,他们不应该是唯一的参考,认证应该与坚实的行业经验相结合,以获得所需的适当水平的技能。

确保数据安全

现在你知道了网络安全的基本原理什么,为什么,如何以及技能,技术和证书,你需要作为一个新的程序员想要学习更多关于这个令人兴奋的领域。所以,黑客可能会说是时候破解了!