作为面试过程的一部分,软件工程工作的申请者有时会遇到编码方面的挑战。公司可以在截止日期内发送申请者代码和开发任务,申请者可以根据开发任务发送修改后的代码。
提出这些编码挑战的公司如何安全地测试他们从申请者那里收到的代码?当然,申请人也可以有同样的问题,他们如何安全地处理发送给他们的代码,但如果申请人接触到一家已经成立的公司,我认为在这种情况下,这些公司更值得信赖。应该采取哪些预防措施来安全地打开、探索和运行一些鲜为人知的人提交的代码?
有关代码的一个很好的示例是整个Visual解决方案,该解决方案包含大约100,000行C++代码,开发任务需要在整个解决方案中修改或添加100行以内的代码。
也许答案只是信任的问题,但我不知道公司是否采取了技术防范措施,以确保没有申请者能够在公司的计算机上运行恶意代码。我对虚拟化和沙箱进行了标记,因为虚拟机似乎是一种合理的方法来对所讨论的代码进行沙箱化,但是如果测试代码需要计算机进行测试才能安装广泛而昂贵的软件,这仍然是合适的还是唯一的方法?在这种情况下,有什么反恶意软件扫描是可靠的吗?
发布于 2017-07-19 17:16:22
在很大程度上,这是一个解决自己的问题。要理解为什么,我们首先必须了解这样一个测试的目标。更具体地说,运行代码在优先级列表中的位置并不高。然而,理解它是。
面试官对开发人员要解决的问题有很好的理解,面试官对如何从技术上解决问题也有一定的期望。如果这是现有代码库中的一个问题,我要做的第一件事就是区分初始代码库和开发人员解决方案,查看他们所做的每一项更改,而我没有预料到的更改将会脱颖而出,并得到更多的关注。即使是我所期望的改变,也会得到很大程度的审查,因为我确信我已经理解了开发人员所做的事情,并评估了工作的质量。
所以,除了这样一个事实,如果你想做一些恶意的事情,你必须把它隐藏在一个变化集中,这将是一个全面的代码审查的人,他们都非常擅长它,而且已经确切地知道他们期待看到什么,但也有机会的挑战。作为攻击者,您必须在您想要攻击的公司获得面试,以获得允许您进行编码测试的职位,而且编码测试必须具有足够的复杂性,并允许您有足够的空间插入和隐藏攻击。然后,审查员必须实际选择编译并运行它,以便执行攻击。它所处的环境,必须允许实现你的有效载荷的最终目标。最终,这需要很多恒星完全对齐,而且几乎可以肯定有一种更简单、风险更小的方法。作为攻击媒介,这是毫无意义的。
https://security.stackexchange.com/questions/165571
复制相似问题