我是一名IT专业学生,现在已经大学三年级了。到目前为止,我们一直在研究很多与计算机相关的主题(编程,算法,计算机体系结构,数学等)。
我非常确定没有人可以学习有关安全性的所有知识,但可以确保每个程序员或IT学生都应该了解“最小”知识,而我的问题是,这是最低知识?
您能否建议一些电子书或课程,或者有什么可以帮助您开始这条路的?
我是一名IT专业学生,现在已经大学三年级了。到目前为止,我们一直在研究很多与计算机相关的主题(编程,算法,计算机体系结构,数学等)。
我非常确定没有人可以学习有关安全性的所有知识,但可以确保每个程序员或IT学生都应该了解“最小”知识,而我的问题是,这是最低知识?
您能否建议一些电子书或课程,或者有什么可以帮助您开始这条路的?
Answers:
如果要确保应用程序安全,请记住以下原则:
在线上有一些关于使您的应用程序安全的优秀书籍和文章:
对开发人员进行应用程序安全性最佳实践方面的培训
密匙化(付费)
安全创新(收费)
安全指南针(收费)
OWASP WebGoat(免费)
程序员安全性的第一法则:不要自己动手
除非您自己是安全专家和/或密码专家,否则请始终使用设计良好,经过测试和成熟的安全平台,框架或库来为您完成工作。这些东西已经花费了数年的时间由专家和黑客进行思考,修补,更新和检查。您想获得这些优势,而不是通过重新发明轮子来消除它们。
现在,这并不是说您不需要学习任何有关安全性的知识。您当然需要了解足够的知识,以了解自己在做什么,并确保正确使用工具。但是,如果您发现自己即将开始编写自己的密码算法,身份验证系统,输入清理程序等,请停止操作,退后一步,并记住规则1。
每个程序员都应该知道如何编写漏洞利用代码。
在不知道如何利用系统的情况下,您不小心停止了漏洞。除非您知道如何测试补丁,否则知道如何补丁代码绝对是没有意义的。安全不仅仅是一堆思想实验,您必须科学并测试您的实验。
我建议复习CWE / SANS TOP 25最危险的编程错误。它在2010年进行了更新,并承诺将来会进行定期更新。在2009年修订版可用。
来自http://cwe.mitre.org/top25/index.html
2010年CWE / SANS排名前25位的最危险编程错误是最广泛和最严重的编程错误的列表,这些错误可能导致严重的软件漏洞。它们通常很容易找到,也很容易被利用。它们之所以危险,是因为它们经常使攻击者能够完全接管该软件,窃取数据或完全阻止该软件运行。
排名前25位的清单是一种教育和意识工具,可通过识别和避免在软件出厂前就已发生的非常常见的错误来帮助程序员防止困扰软件行业的各种漏洞。软件客户可以使用相同的列表来帮助他们要求更安全的软件。软件安全性研究人员可以使用前25名来关注所有已知安全性缺陷的狭窄但重要的子集。最后,软件经理和CIO可以使用“前25名”清单来衡量他们保护软件的进度。
麻省理工学院的计算机网络和安全性课程可能是一门不错的入门课程。我建议的一件事是不要忘记隐私。从某种意义上说,隐私确实是安全的基础,并且在安全技术课程中通常不会涉及。您可能会在本《道德与法律》课程中找到与互联网有关的一些隐私材料。
您应该了解三个A。认证,授权,审计。经典错误是对用户进行身份验证,而不检查用户是否有权执行某些操作,因此用户可以查看其他用户的私人照片,而Diaspora所做的错误。越来越多的人忘记了审核,您需要在一个安全的系统中才能知道谁在何时何地执行了操作。
我将添加以下内容:
了解不同的攻击媒介如何工作:
您可以轻松地用Google搜索所有这些内容。这将为您奠定良好的基础。如果您想查看Web应用程序的漏洞,可以使用一个名为google gruyere的项目,该项目向您展示如何利用有效的Web应用程序。
当您建立任何企业或任何自己的软件时,您应该像黑客一样思考。众所周知,黑客也不是所有事物的专家,但是当他们发现任何漏洞时,他们便会通过收集有关所有信息的方式来深入研究它。这些东西并最终攻击我们的软件。为防止此类攻击,我们应遵循一些众所周知的规则,例如:
您可以在以下链接上找到更多安全资源:
有关Google的更多信息,请参见有关应用程序供应商安全流程的信息。
有关安全性的一般信息,我强烈建议阅读Bruce Schneier。他有一个网站,他的加密货币时事通讯,几本书,并且做了很多采访。
我也会熟悉社会工程学(和Kevin Mitnick)。
对于一本关于安全性在现实世界中如何发挥作用的好书(而且很有趣),我会推荐克里夫·斯托尔(Cliff Stoll )的出色(尽管有些陈旧)的“杜鹃蛋”。
另外,请务必查看OWASP十大列表,以了解所有主要攻击媒介/漏洞的分类。
这些东西令人着迷。学会像攻击者一样思考,将训练您编写自己的代码时所要考虑的事情。
只是想与Web开发人员分享此信息:
面向开发人员的安全指南
https://github.com/FallibleInc/security-guide-for-developers