开发与渗透

开发与渗透


矛盾

开发工程师与渗透工程师之间是很微妙的关系。

开发的目的:

  • 开发应用,增添新的功能。

渗透的目的:

  • 在应用中的功能点中找到有漏洞的地方。

某种程度来说,开发与渗透在工作内容上是相生相克的。哈哈

  • 如果开发的水平很较高,能写出健壮性较高的代码的话,即考虑了多种异常情况,包括各种用户的异常输入情况,这样会让一个渗透工程师在开始测试的时候感到很棘手。

  • 如果渗透工程师的水平很高,会让开发者的网站满目疮痍,丑态尽出哈哈。。


挖洞过程:

渗透视角:

之前做过一小段时间的渗透,经常要对一些准备上线的Web应用进行渗透测试,运气比较好的话,总能找出一堆的漏洞。

几个搞渗透经常找到一些漏洞,都会高兴地分享出来这个功能点是是通过哪些步骤、姿势绕过验证。

大家经常有一种感觉,每找出一个漏洞,便会

扫描二维码关注公众号,回复: 1451955 查看本文章
  • 觉得这个开发水平不怎么样,哈哈哈。。。
  • 怎么连这这种情况都没有考虑到。。
  • 这样都给我绕过了。。哈哈

之前我也是这么觉得的,但是做了几个月的开发之后,又有新的理解。

开发视角:

开发的工作环境是与渗透完全不同的,从一首打油诗中可见一斑。

十年编程两茫茫,工期短,需求长。千行代码,bug何处藏。纵使上线又如何,新版本,继续忙。

黑白颠倒没商量,睡地铺,吃食堂。夜半惊醒,无人在身旁。最怕灯火阑珊时,手机响,心里慌。

这种赶需求的节奏,时间短,需求多,需要大量的开发人员,赶着开发,是很难写出健壮性的代码的。
有时候在规定的时间内,连上头的需求都写不完,哪有时间来考虑代码安全性方面的问题。

除了开发节奏过快之外,还有一个造成出现漏洞的原因似乎是 无法避免的。

应用的阿喀琉斯之踵???


出现漏洞的原因:

如果从代码层面来看待Web应用为何会出现安全漏洞,简单地可以笼统地归结为一句话:代码健壮性不够,即异常处理不够全面。

要想写出健壮性的代码,换句话说就是要考虑多种异常情况
但是一个开发者,或者一个开发团队,再有经验都很难在应用上线前就考虑完所有异常情况,几乎是不可能的。

所以很多异常情况是需要测试,或者上线后才能知道的,而渗透也属于测试的这个过程,可以说是充当着一个找Bug的角色。

渗透并不是全部。


总结:

要求开发者在短时间内写出安全性很高的代码,有种缘木求鱼的感觉。

从现实情况来看:

  • 应用几乎没可能不出现漏洞,这是个多因素造成的问题,似乎没有解决方案。

所以渗透过程中遇到任何应用出现漏洞应该觉得很正常,应该处之泰然,没必要diss开发哈哈

每当你觉得想要批评什么人的时候,你切要记着,这个世界上的人并非都具备你禀有的条件。
Whenever you feel like criticizing any one, just remember that all the people in this world haven’t had the advantages that you’ve had.

—–《了不起的盖茨比》菲茨杰拉德

  • 瞄一瞄软件开发平面图:

换个更大的视角去看,渗透测试只是软件开发的一个小插曲,并不是全部,not the all。


启示:

  • 开发者应该尝试去渗透测试的角度去看待、理解问题
  • 渗透测试工程师应该尝试从开发者角度去看待、理解问题

好像说了两句废话。。哈哈哈

自由在于用进一步的理解取代考虑不周全的思想。—斯宾诺莎

猜你喜欢

转载自blog.csdn.net/qq_28921653/article/details/78945594