编程是这些所有的基础,除此之外代码审计会要求工程师有丰富的安全编码经验和技能。
编程 更偏向于功能的代码实现。码农的职业和职责,编程更注重思路和方法的实现。
代码审计。 更偏向于代码的安全性和运行效率。
渗透。分为两种 不熟编程的渗透。(脚本小子。)
精通各种语言的高级渗透师。很强势
编程是基础代码审计是白盒审计,其实也包括走码测试,但是实际更关注安全方面渗透则是黑盒攻击,web渗透网络渗透APP渗透,攻防是一起成长的,没有攻就没有防先好好编程,确保逻辑能力没问题,攻防一起关注,做一个懂安全的好的码农,然后才有渗透或审计的事情。你的情况,就像是爬还没爬稳在问跑,一步一步来审计这个行业,其实是合规性导向的,目前国内还不太成熟,事实上也有不懂开发的人在业内用工具用经验做成果的。如果想进入,希望不是半瓶水
代码审计属于白盒测试,渗透测试属于黑盒测试,但不无论哪种测试,面向的对象都是程序员开发的程序。如果你对代码一点不熟悉,那么很难在代码审计和渗透之中迅速找出问题;相反,如果你具有很丰富的编程经验,其实就很容易着找出整个系统中最为脆弱的部分。题主的目标是希望做代码审计,那么丰富的编码经验是必须具备的,至于渗透,在某些方面也确实是有助于代码审计的提升。
假设题中大多指web安全。那么一般常见的开发语言:PHP、Java、Python等。如果掌握其中一门语言,理解基础的语法和该语言的特点,也肯定会涉及到数据库相关内容,那么肯定会理解SQL的基础使用。也理解前端HTML&CSS等内容,了解整个web应用的架构是如何运行跑起来的,理解一个URL访问到显示整个页面这背后的机制。代码审计属于白盒审计,是从审查源代码出发,寻找漏洞。如果你拥有编程基础,那么你首先肯定可以阅读和理解代码,然后更重要的是,凭你的开发经验 可以猜测哪些地方可能存在bug导致漏洞的产生,然后再去一步一步审查每处可能的“突破口”。所以说 编程 是代码审计的基础。渗透我这里指黑盒测试,是先看到应用即页面效果,然后再去寻找漏洞。这样的情况下,如果你没有编程基础,不熟悉运行机制,不理解整个页面的web交互是如何进行的。那么你假如没有前辈留下的经验内容或网上的各种web常见漏洞整理等等,也许你真的是无从下手,因为你不明白它是什么。你不理解get和post的区别,不理解URL参数,不理解为何会发生SQL注入,不理解为何会产生xss等等 那何谈渗透。但是现在Web常见漏洞和利用方式都能很简单的获取到,所以或许你能利用渗透测试工具发现漏洞,但一个waf可能把你拒之门外。所以说 编程 是渗透的一个基础或平台。但是我不否认现在存在没有编程经验和能力的人,代码审计也能找出利用点甚至0day,黑盒测试也能发现漏洞。
编程相当于工地搬砖的代码审计相当于工地的监理渗透相当于扒手如果要做得好,最终都归一相同的原理。如果仅会编程,就是个码农,需要理解背后的技术原理,比如清楚SQL注入的原理,语句的拼接,参数的传递,知道为什么会产生SQL注入,就能有对应方法避免。那编程就能写出更安全的代码。同样的,理解背后的技术原理,别人写的代码不管用fortify工具还是肉眼看代码,你都能很快分析出代码是否有安全隐患,否则就只能用工具看工具的输出报告。同样的,理解背后的技术原理,渗透时就知道怎么确定这个点是不是注入点,找到点之后怎么快速的攻击,否则只就能照着书或攻略瞎试。
欢迎您登录红帽社区,如您还没有账号,请点此注 册
欢迎您注册红帽社区会员,如您已拥有账号,请点此 登 录