不会面试的“白帽子”不是好程序员

以下是CSDN英雄会对我的专访,主要介绍了白帽子和程序员面试

感谢 李晓利的对我的胡乱回答的编辑,CSDN英雄会欢迎各位技术领域专家加入

英雄会是CSDN旗下针对国内IT技术领域专家展示和交流的平台。通过线下线上的互动形式,为CSDN社区专家提供更多学习、合作、宣传的机会。英雄会后续将在北上广深等国内一二线城市建立分会,各个分会后期将组织技术交流活动。

为了让大家更好地认识CSDN英雄会的成员,我们特别开设了【CSDN英雄会】采访专栏,讲述他们的技术成长之路。

本期邀请的嘉宾刘朋,刘朋是中科院NICP国家安全重点实验室从事Android漏洞挖掘的科研项目,是一个“白帽子”,作为一个“白帽子,他帮助企业发现安全漏洞,帮助互联网企业完善安全体系。同时,在程序员面试上,他也有着一套自己的见解,他认为,面试之前一定要对自己有一个清晰的定位。清楚了解自己的实力和兴趣,以及求职目标企业和目标职位。只有明确这些才能做到有的放矢,事半功倍。

不会面试的“白帽子”不是好程序员_第1张图片
NICP国家安全重点实验室成员,CSDN博客专家 刘朋

白帽子”方法是灰色的 动机是正义的

CSDN:首先做个自我介绍。

刘朋:我目前在中科院NICP国家安全重点实验室从事Android漏洞挖掘的科研项目,是一个“白帽子”,如今已经已经向多家手机厂商,包括Google和小米,魅族等提交高危漏洞,并得到确认和奖励。这些漏洞主要是通过我自己实现的漏洞来进行挖掘的,主要是Android系统服务方面的漏洞。另外我也主导开发了两款App,其中主导开发“妙趣剪纸”已登录苹果体验店,是一款非盈利宣传中国传统剪纸文化的App。另外我也一直在从事Java和Android笔试和面试博客的写作,是CSDN的博客专家。

CSDN:您目前研究的重点是什么?进展如何?

刘朋:我目前研究的重点是写一个工具来挖掘Android系统层面的漏洞,主要包括一百多个系统服务的漏洞挖掘,这些系统服务涵盖了Android的主要功能,包括手机,界面显示等。目前工程方面工具已经完成,已经挖掘了几十个漏洞了,学术方面,也完成了相关的论文。

CSDN:Android漏洞检测是在一个什么样的检测平台?

刘朋:目前的漏洞检测主要是静态漏洞检测和动态漏洞检测。目前也有很多的漏洞查询平台,这些漏洞检测平台基于白名单和数据库,国外的比如cve,国内目前最大的漏洞数据库,是由我们实验室做的安全漏洞数据库,这个安全漏洞数据库建设”是由中国科学院研究生院国家计算机网络入侵防范中心承担的中科院“十一•五”科学数据库建设专业数据库项目之一。

CSDN:您在中科院主要研究Adroid,那么Adroid开发需要学习哪些技术?

刘朋:我觉得上层APP开发,需要以下知识:

1.一个扎实的Java的语言基础,包括基本的语法和Java的高级知识点。
2.Linux基础知识,大家都知道Android的内核是linux内核。
3.网络协议的基本知识。目前的主流APP都需要联网,对于联网,现在有许多成熟的轮子,但是只有深刻了解了一些基本的网络知识,比如Http协议知识,把它用好,才能自己也写出好的轮子。
4.数据库的基本知识。相对来说,我更侧重于Android的底层安全,除了掌握Android的开发和Framework层的架构还要掌握基本的安全知识,比如缓冲区溢出等。

CSDN:据了解“Android容易被攻击”或者“Android不如苹果安全”。而且iOS具备及时修复问题的能力。对此您怎么看? Android在安全方面应该有哪方面的提升?

刘朋:我不太同意Android系统比iOS系统不安全的论断,Android系统也有自己的安全机制,比如沙箱机制和权限控制体系。我觉得针对最新的Android系统和iOS系统来说,各有不同的优势和不足。但是相对来说Android的生态更加混乱,容易遭受攻击。我觉得原因主要是一下几个方面:

1.首选开源的Android的碎片化严重,Google在系统升级的层面掌控力更弱。各个厂商都有定制的系统,最新的漏洞爆出来,原Android系统打补丁升级之后,其他的第三方厂商由于定制周期不能吃上最新的系统,另外由于机海战术,许多厂商不能及时更新自己的系统。

2.Android最初推出的时候,基因里面更加重视开源和自由,而闭源的苹果能够建立更加严格的开发者和应用审查制度,Android市场相比要混乱的多,造成了开发者的良莠不齐。

如果Android手机能够升级到最新的系统,绝大多数的漏洞都将消失。

我个人觉得Android系统在安全方面的提升主要体现在以下几个方面:

1.建立更加完善的Android漏洞,提交相应完善制度,加快补丁发布。
2.完善Android文件的加密,同时在硬件上完善,比如TrustZone。
3.通过更加细粒度的授权机制,来保护用户的安全和隐私。
4.缩小Android的碎片化。
5.提高开发者的审核门槛,应用市场加强恶意应用的检查。

CSDN:在Adroid漏洞挖掘上,您挖到第一个漏洞的经历是怎样的?

刘朋:我挖到的第一个漏洞是比较有意思的漏洞,是关于WallPaper系统服务的一个漏洞,这个系统服务是管理壁纸,由于缺乏完善的参数检查,可以通过setWallpaper()等函数实现一些工具,比如偷换壁纸以及造成System UI进程崩溃等。

CSDN:Android 较常见的漏洞有哪些?它有什么样特点?

刘朋: APP反编译重打包,组件劫持漏洞,密码泄露,第三方库漏洞,WebView漏洞,系统服务漏洞。我觉得大部分漏洞都是因为缺乏安全意识,比如系统服务很多漏洞,就是Google的Android开发人员没有做好参数检查和防御性编程。

CSDN:您经历过Android哪种漏洞是最可怕的?后果怎样?

刘朋:我之前挖掘到了小米的一个定制服务存在漏洞,这个系统服务是KeyStore,负责小米的秘钥管理,是一个安全相关的系统服务,如果组合其他的漏洞进行攻击,可以直接对安全中心发起攻击,后果不堪设想。目前小米已经确认危险漏洞,并且会得到及时修复。

CSDN:漏洞挖掘需要哪些技术?

刘朋:漏洞挖掘是一个多种漏洞挖掘分析技术相互结合、共同使用和优势互补的过程。目前漏洞挖掘分析技术有多种,主要包括手工测试技术(manual testing)、Fuzzing技术、比对和二进制比对技术(Diff and BinDiff)、静态分析技术(static analysis)、动态分析技术(runtime analysis)等 。

CSDN:据报道,

外界对于“白帽”黑客有些排斥,360公司董事长周鸿曾说“‘白帽子’发现漏洞并不是为了牟利,但这存在一个悖论,尽管他发现漏洞的初心是好的,但方法却是灰色的,有的企业可能接受不了。”这是否就会影响“白帽子”黑客的发展?您怎么看“白帽”黑客的未来?作为“白帽”黑客应该如何应对?为什么他说“白帽子”用的方法是灰色的?是用的什么方法?

刘朋:白帽子在挖掘漏洞过程中,要假想自己是破坏者,对产品进行全面的攻击,这个和恶意黑客是一样的思路,所以方法来说是灰色的,但是“白帽子”有作恶的能力,而不做恶,而是主动提醒厂商完善,方法是灰色的,动机是正义的。

方法主要分为两类,一类是静态挖掘漏洞的思路,一类是动态挖掘漏洞的思路,具体的技术在上面有提到。

我认为不会影响白帽子”发展。攻和防是一对矛和盾的关系,只有掌握更好的攻击方法才能增强防护能力,“白帽子”会代表正义的一方,知己知彼,才能更好的为信息安全尽出自己的一份力。

我觉得“白帽子”会越来越受到重视,而且随着国家政策和企业对安全的重视,未来面向“白帽子”的岗位和发展机遇也会越来越多,我觉得“白帽子”以后会是保护网络环境安全运行的一支不可忽视的重要的力量。

“白帽子”黑客除了掌握专业技能之外,一定要坚守自己的原则,坚守自己的底线。另外就是要将自己的知识和流行的应用安全缺陷紧密结合,在最重要的关头,保驾护航,做出自己的贡献。

CSDN:“白帽子”黑客最怕什么?

刘朋:最害怕的是误解和质疑,以及相关漏洞提交制度的不完善。目前我个人认为“白帽子”对一些厂商的安全具有建设性作用,如果大家误解和质疑,“白帽子”会很受打击,另外不完善的漏洞提交制度,通常会造成白帽子工作的浪费。

CSDN:企业对于外界找自己的漏洞是积极的吗?

刘朋:目前大部分企业都是一个积极的态度。国际公司,比如Google均建立起一个安全响应中心,对提交的漏洞做出回应,并给予相应的奖励。国内的互联网厂商也是越来越重视漏洞提交,目前BAT和小米、魅族等企业也都在建立自己的安全响应,比如小米,魅族会对漏洞提交者,按照提交的漏洞等级,给予丰厚物质和精神奖励。

CSDN:您怎么看待乌云网被关?他的出现,给这个行业带来哪些变化?

刘朋:目前圈内对于乌云网的关闭众说纷纭,我个人认为,乌云的出现对整个安全行业带来了很多的推进,给“白帽子”一个统一的提交漏洞和交流的平台,而且他的出现引起了厂商对于安全的重视。

多实习 多刷题 多看面经

CSDN:您在程序员面试上也有经历。介绍一下面试的经历吧。在求职上您有什么样的感悟?您在面试中最大的感受是什么?

刘朋:我面试的公司比较多样,其中包括互联网企业、IT外企,国企、研究所以及传统行业,也都拿到了不少Offer。我个人认为面试之前一定要对自己做一个清晰的定位。清楚了解自己的实力和兴趣,以及求职目标企业和目标职位。只有明确这些才能做到有的放矢,事半功倍。
最大的感受是,除了目标职业的专业知识,基础知识也是被大家所忽视的一个重要方面,基础知识决定了技术的深度,也是面试考察的重点。

CSDN:您会给学弟学妹什么样的建议?

刘朋:要重视基础知识的掌握,不要好高骛远,基础决定深度,另外尽可能把握实践机会。如果能够平衡学业的话,尽可能多实习,这个过程除了会有技术的进步,另外可以帮你思考自己适合什么样的职位和工作。同时也要多刷题,多看面经,提前了解笔试和面试的套路,我的博客和公众号记录了面试的过程和总结,希望可以更多的人帮助,博客地址是:http://blog.csdn.net/lpjishu,公众号是:IT面试题汇总。

CSDN:找工作中您遇到过哪些困难?您认为毕业生们应该树立一个怎样的就业观。

刘朋:主要是面试的节奏和压力给人压迫,导致心态浮躁,难于做出正确的选择。我觉得应该有一个平和的心态,树立一个全局的就业观。提前最好准备,冷静的分析自己,冷静的分析面试题,最后综合考虑,做出一个全局的最优选择。

CSDN:有些事情会有一定规则,面试也不例外,您掌握了哪些面试规则?

刘朋:面试同时考察技术和非技术方面的能力。笔试的话,是以基础题为主,这块的话,需要看一些基础书籍,同时适当的刷题。对于技术面试部分,这部分主要考察技术能力和沟通,协作能力。这部分需要打好扎实的技术基础,同时也注意在叙述的时候,能够准确的表达自己的项目和技术思路,比如采用STAR原则等来叙述。对于综合面试,这块主要考察一个人的综合能力和技术素养。对于这部分,我觉得除了平时注意培养自己的沟通能力、协作能力及领导能力,在技术上,不要局限于技术实现,要更多的关注最新的技术和技术优化,保持一颗学习的心态,不断提高自己的技术素养。

CSDN:您在CSDN上发表了写了很多博客,那么写博客给您带来了什么?

刘朋:写博客使我能够对所学的知识进行一个梳理和重新的思考。另外通过写博客我也认识了很多志同道合的人,结交了很多的朋友,在互相的交流中,我对于很多的知识也得到了提高和启发。同时有些朋友也从我的博客中得到了启发和收获,这也使我得到了快乐,使得我更加坚定的做一个喜欢分享,学会分享的“白帽子”程序员。

刘朋博客地址:http://blog.csdn.net/lpjishu

你可能感兴趣的:(面试,程序员,android,android)