Questions tagged «hacking»

10
Ken Thompson的编译器黑客仍然是威胁吗?
肯·汤普森·哈克(1984) 肯·汤普森(Ken Thompson)于1984年概述了一种破坏编译器二进制文件(和其他已编译软件,例如* nix系统上的登录脚本)的方法。我很想知道现代编译是否解决了此安全漏洞。 简短的介绍: 重新编写编译器代码以包含2个缺陷: 在编译自己的二进制文件时,编译器必须编译这些缺陷 在编译其他一些预选的代码(登录功能)时,它必须编译一些任意的后门 因此,编译器可以正常工作-编译登录脚本或类似文件时,可以创建安全后门,并且将来在编译自身的较新版本时,它仍保留以前的缺陷- 并且这些缺陷仅存在于编译器中二进制文件,因此很难检测。 问题: 我在网上找不到任何答案: 这与即时编译有什么关系? 运行诸如* nix系统上的登录名的程序之类的功能在运行时是否已编译? 这仍然是一个有效的威胁吗?或者自1984年以来在编译安全性方面的发展阻止了它成为一个重大问题? 这会影响所有语言吗? 我为什么想知道? 我在做作业时遇到了这个问题,这看起来很有趣,但是我缺乏具体了解这个问题是解决当前问题还是解决问题的背景。 参考资料 总览 一些代码
156 linux  unix  compiler  hacking 

14
为什么SQL注入预防机制会演变为使用参数化查询的方向?
在我看来,可以通过以下方式防止SQL注入攻击: 仔细筛选,过滤和编码输入(在插入SQL之前) 使用准备好的语句 /参数化查询 我想每个都有优点和缺点,但是为什么#2脱颖而出,或多或少地被认为是防止注入攻击的实际方法?是更安全,更不容易出错,还是还有其他因素? 据我了解,如果正确使用#1并注意所有警告,它可能与#2一样有效。 消毒,过滤和编码 在清除,过滤和编码的含义上,我感到有些困惑。我要说的是,出于我的目的,以上所有选项都可以考虑作为选项1。在这种情况下,我了解到清理和过滤有可能修改或丢弃输入数据,而编码可以按原样保留数据,但可以对其进行编码适当避免注射攻击。我认为转义数据可以视为对数据进行编码的一种方式。 参数化查询与编码库 有一些答案,其中parameterized queries和的概念encoding libraries可以互换使用。如果我错了,请指正我,但我印象深刻的是它们是不同的。 我的理解是encoding libraries,无论多么出色,他们总是有潜力修改SQL“程序”,因为在发送给RDBMS之前,他们正在对SQL本身进行更改。 Parameterized queries 另一方面,将SQL程序发送到RDBMS,然后优化查询,定义查询执行计划,选择要使用的索引等,然后插入数据,作为RDBMS内部的最后一步本身。 编码库 data -> (encoding library) | v SQL -> (SQL + encoded data) -> RDBMS (execution plan defined) -> execute statement 参数化查询 data | v SQL -> RDBMS (query execution plan defined) -> …

5
在浏览器中破解JavaScript有多容易?
我的问题与JavaScript安全性有关。 假设您使用的是Backbone或AngularJS之类的JavaScript框架的身份验证系统,并且您需要安全的端点。没问题,因为服务器始终是硬道理,并会检查您是否有权执行所需的操作。 但是,如果在不涉及服务器的情况下需要一点安全性怎么办?那可能吗? 例如,假设您有一个客户端路由系统,并且希望为登录用户保护一条具体的路由。因此,您对服务器执行ping操作,询问是否允许访问受保护的路由,然后继续。问题是,当您对服务器执行ping操作时,会将响应存储在一个变量中,因此,下次访问私有路由时,它将检查您是否已登录(不对服务器执行ping操作),并取决于响应会成功与否。 用户修改该变量并获得访问权限有多容易? 我的安全(和JavaScript)知识不是很好。但是,如果变量不在全局范围内并且在模块模式的私有部分中,该模式仅具有getter而没有setter,即使在这种情况下,您能否破解呢?

10
如果比赛使用“ lingua obscura”促进发展(为什么),我应该担心吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5年前关闭。 我正在阅读保罗·格雷厄姆(Paul Graham)的文章- 击败平均水平(Beating the Averages,2003),这是他不得不说的: 职位描述所具有的IT风格越多,公司的危险就越小。最安全的一种是想要Oracle经验的。您无需担心这些。如果他们说他们想要C ++或Java开发人员,那么您也很安全。如果他们想要Perl或Python程序员,那将有些吓人-听起来像一家公司,至少在技术方面由真正的黑客经营 现在,这是一篇过时的文章。但是,我看不到使用非通用语言(C / C ++ / Java,C#)如何“不太危险”。如果组织的程序员非常熟练使用开发语言,那么他们应该同样擅长以适当的速度编写代码。实际上,如果您确实使用非通用语言,那么从长远来看,维护/增强问题是否会面对您,因为不会有太多的程序员可用? 我同意,为了制作快速脏的系统,某些语言允许您比其他语言更快地起飞。但是,保罗·格雷厄姆(Paul Graham)的论文/评论在2012年及以后是否有意义?如果一家初创公司要使用典型的IT语言进行开发,那么为什么不那么担心竞争呢? 我看不出语言本身是如何产生变化的。恕我直言,重要的是开发人员对语言的了解以及框架的可用性,因此您可以DRY(不要重复自己)而不仅仅是使用特定语言进行编码。 我想念的是什么?是否意味着初创公司更好地选择非IT风格的语言(即使开发人员可能非常擅长使用它们)?这项主张背后的(程序)经济/市场力量是什么? PS:“ lingua obscura”并不意味着伤害任何人的感情:)

7
所有安全威胁是否都由软件错误触发?
我听说过的大多数安全威胁是由于软件中的错误引起的(例如,未正确检查所有输入的完整性,堆栈溢出等)。因此,如果我们排除所有社交黑客攻击,是否都是由于漏洞引起的安全威胁?换句话说,如果没有错误,是否就不会有安全威胁(再次,排除诸如公开密码之类的人类错误)?还是可以通过非漏洞引起的方式利用系统?
13 security  bug  hacking 

5
针对软件漏洞的攻击/工具的软件生命周期的独特之处是什么?
在我当地的大学中,有一个约20名学生的小型学生计算俱乐部。该俱乐部有几个小组,专门负责特定领域,例如移动开发,机器人技术,游戏开发以及黑客/安全性。 我正在向几个团队介绍一些基本的敏捷开发概念,例如用户故事,估计任务的复杂性以及持续集成以进行版本控制和自动构建/测试。 我熟悉一些基本的开发生命周期,例如瀑布,螺旋,RUP,敏捷等,但是我想知道是否存在诸如用于黑客入侵/破坏安全性的软件开发生命周期之类的东西。当然,黑客正在编写计算机代码,但是该代码的生命周期是什么?我认为他们不会太在意维护,因为一旦发现并修补了漏洞,利用该漏洞的代码就没有用了。 我认为生命周期将是这样的: 找出安全漏洞 利用安全漏洞 采购有效载荷 利用有效载荷 当产品的目的是破坏安全性时,软件的开发生命周期会有什么样的差异(如果有)?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.