, ,

如何借助人工智能安全地强化你的安全防护?

人工智能能提升你的安全保障吗?还是说它只是个隐患?

上个月,知名独立开发者马克・卢维翁(Marc Louvion)陷入了麻烦,一位 X(原推特)用户指出了他模板化产品中的安全漏洞。

“ShipFast 事件” 让许多独立开发者开始质疑自己软件即服务(SaaS)产品的安全性 —— 这是他们在急于推出产品时可能忽略的一个关键要素。

但不管是因为时间有限、专业知识不足(或者两者皆有),有漏洞的代码可能会给你带来严重的后果。

包括卢维翁在内的许多独立开发者都在向人工智能寻求安全方面的帮助。他在近期的一条 X 帖子中表示,尽管人工智能 “肯定不是万无一失的”,但它让这个复杂领域 “变得稍微容易一些”。

但经验丰富的开发者警告称,人工智能的安全技能有限,使用时必须谨慎。

内克梅丁・“内乔”・卡拉卡亚(Necmettin “Neco” Karakaya)是一名有着丰富安全经验的软件开发者。在看到独立开发者对安全问题的关注度激增后,他推出了早期工具 defendsaas.com

他说:“安全问题很复杂。它通常需要在应用程序的更广泛背景下理解特定的攻击途径。人工智能可能为较小的、孤立的问题提供解决方案,但涉及大规模的安全问题时,其有效性就值得怀疑了。”

话虽如此,独立开发者可能不知道还能向何处寻求安全问题的答案。

内乔说:“安全即服务已经存在一段时间了。” 但它通常是为企业设计的,这些企业需要定期进行安全审计,作为其许可流程的一部分。

对于大多数自筹资金的 SaaS 初创企业来说,这有些过头了,而且成本很高。大公司可能要花费 1.6 万至 2 万美元进行一次审计。

另一方面,人工智能成本低且能即时使用。如果你渴望在自己的项目中使用它,怎样确保负责任地使用呢?

1. 不要自满

内乔告诉我:“依赖人工智能快速解决问题很容易,这可能导致开发者忽略引入漏洞的细微变化。”

当我与其他独立开发者交谈时,似乎每个人都有类似的经历。

一位经验丰富的创始人告诉我:“十分之七不会采纳人工智能的安全建议。” 他在没有注意到一个人工智能代码编辑器更改了集合名称后,连续几周使用了过时的数据。他说:“它在不了解上下文的情况下做了一个小调整,结果搞砸了一个功能。”

另一位独立开发者说:“我忽略了一个微小的变化,结果搞砸了一个网络钩子。我太懒了,没去检查每一个细节。”

LeaveMeAloneStartKit.ai 的联合创始人詹姆斯・艾文斯(James Ivings)说:“这些就是我不用(人工智能代码编辑器)Cursor 的原因。我很懒,而且我知道如果我开始用,就会错过诸如此类的各种问题。”

2. 确保你理解人工智能生成的任何代码

仅检查人工智能生成的代码是否有错误是不够的。你需要真正理解它的功能,否则就有可能放过你未曾考虑到的错误。

一位创始人说,逐行阅读并思考代码实际的功能 “非常有用”。如果你将来需要回过头来进行更改,给自己写注释可能也会有帮助。

内乔说:“过一段时间后阅读自己的代码就已经够难了;解读你没有编写的代码 —— 或者由人工智能生成的代码 —— 会让调试和修复安全问题变得更加困难。”

“你可能会觉得与自己的代码库脱节,更难识别和解决问题。”

3. 用人工智能检查你的工作,但记住它并非万无一失

几位独立开发者建议让人工智能检查自身的工作是否存在潜在安全风险。一位创始人说,他会让人工智能对生成的任何内容进行三重检查。

其他创始人根本不会使用人工智能来生成代码,但会用它来审计自己的脚本。

一位创始人说:“人工智能可能既是问题所在,也是解决办法。我怀疑它在发现安全漏洞方面可能已经比普通开发者强了。”

内乔建议使用人工智能生成测试用例,这可以帮助你构建 “更健壮的” 代码库。他说:“利用人工智能创建全面的单元测试、集成测试和其他自动化检查,确保你的代码按预期运行,并能有效处理边缘情况。”

测试代码能让你对其可靠性充满信心。你测试得越彻底,信心就越足。

但重要的是,不能仅仅依赖人工智能审计来保障安全,因为它可能会遗漏其无法完全理解的复杂系统中的漏洞。

一些初创公司提供自动代码审查服务,可以突出你可能没有考虑到的问题。但内乔说,传统的静态分析工具和同行评审也很有价值。

4. 用它来解决高层次问题

如果你不信任人工智能来审计自己的代码,你可能仍然会发现它有助于发现因你特定的设置而产生的高层次问题。

LexBoost 的联合创始人欧文・伦克克(Erwin Lengkeek)告诉我:“在大多数情况下,我想自己理解并实施(相关内容),不会让人工智能碰任何东西。”

“我只是问人工智能,为了提高我特定基础设施和设置的安全性,我应该考虑 / 学习 / 了解什么。”

但要记住,即使是这些见解也可能具有误导性。内乔说:“由于缺乏上下文或出现幻觉,人工智能可能会提供不准确或不相关的信息。”

5. 与现实中的开发者交流

鉴于人工智能的局限性,它绝不应该是安全专业知识的唯一来源。

内乔说:“我最主要的建议是,在推出应用程序之前咨询有经验的开发者。一双经验丰富的眼睛能迅速发现漏洞,并推荐可能不那么显而易见的最佳实践。”

作为其安全初创公司的一部分,内乔设立了一个 Discord 频道,用户遇到不懂的问题时可以在那里获得建议。最终,他希望为创始人打造一个资源中心。

他告诉我:“保持积极主动并不断自我学习至关重要。”

“构建一个安全的应用程序不仅仅是在问题出现时解决它们,而是要在整个开发过程中秉持安全第一的理念。”