找回密码
 立即注册
搜索
查看: 83|回复: 0

网络安全行业前景向好,看雪社区资深专家 htg 分享经验指引方向

[复制链接]

2万

主题

0

回帖

6万

积分

管理员

积分
66138
发表于 2024-11-22 00:46:40 | 显示全部楼层 |阅读模式
如今,国家和社会对网络安全越来越重视,并逐步加大这方面的投入。前景广阔的同时,近年来越来越多的新鲜血液涌入安防行业。大家纷纷效仿,难免会出现混乱和困惑。此时此刻,有些人可能会感叹。如果有前辈可以指点一下,那该多好啊。

因此,我们想通过采访的形式,与观雪界的优秀前辈交谈并寻求建议。初衷是想用前辈的一些经验为刚进入这个行业的同学指导方向;为处于迷茫和困惑时期的朋友提供指导。

本期我们邀请了看学社区的资深软件安全专家:htg,来听听他的分享吧!

*文末有惊喜~

本期嘉宾:htg

软件安全专家

丰富的软件技能:掌握Lisp、C、C++、VBA、C#、COBOL等编程语言编程技能,以及IDA等逆向软件技能。

丰富的开发经验:拥有10多年的软件开发经验,主持或承担过多个大型管理平台软件及二次开发插件的研发。

丰富的逆向经验:结合动静态逆向,研究了多款加壳保护软件和解壳破解软件。

问:谢谢师父接受我们的采访。你能告诉我你叫我什么吗?您在世界各地旅行时使用什么名字?我先给大家介绍一下我自己吧!

答:首先非常感谢看学论坛的盛情邀请。作为国内非常著名的网络安全交流平台,我早在2012年就听说过并注册成为看雪会员,用户名为“htg”。我还在看学KCTF组建了“新雪”战队。他上网的时候,也用过“文宇”、“心音草”等名字。本人是一名系统架构设计师,主持过多个大型管理平台软件及二次开发插件的研发。目前主要研究人工智能、大模型、智能建造技术。

问:请问桂庚大师的几何?您从事网络安全多少年了?是什么促使您对网络安全产生兴趣?

答:我已经很老了。在程序员这个行业,我应该算是已经到了退休阶段了。其实我并没有完全涉足网络安全。更准确的说法是我是从事软件安全的。我个人对 RSA 和底层的数学知识很感兴趣。

Q:大师必须至少有十年以上丰富的软件开发经验。你如何寻找锻炼自己的机会?

A:需求来自工作和兴趣。有需求才有目标。动力来自于生活和兴趣。只有有了动力,才能从主观层面去落实。我主要通过上网搜索、查阅教程、和同行交流来提高自己的能力。每一个过程都让我沉浸其中。对每一项技术的理解和掌握都能带来快乐。每一次进步对我来说都是一种祝福。鼓励。

Q:大师是一开始就把网络安全作为自己的职业方向,还是中途走上了这条路?

A:其实我本科专业并不是计算机或者软件领域,但是我在大学期间非常喜欢计算机技术以及相关的编程语言。大学期间通过了NCRE-3(PC技术)和NCRE-4,自学了数据结构、操作系统、编译原理、计算机组成原理和体系结构,还选修了计算机网络技术等计算机专业课程。毕业后,我参加了CCSP考试,先后通过了软件设计师和系统架构设计师。同时,我也强迫自己学习一些软件工程和软件开发的相关知识。所以,不能说网络安全从一开始就是一个职业方向,现在更不能说。堪称个人二次成长曲线。

我学过的计算机语言都比较复杂,比如汇编语言、C/C++、C#、VBA、java等。在学习面向对象语言的过程中,我对类结构的概念有点困惑、对象结构、虚函数、纯虚函数、重载和多态性。后来通过看汇编语言代码,学得更透了。至此,我开始真正接触软件安全,包括一些溢出漏洞和格式化漏洞。后来通过阅读《0day安全:软件漏洞分析技术》,接触到了网络安全相关知识、PHP代码安全、pwn知识。对操作系统底层的内存分配和释放有了更深入的了解。我是中途才进入互联网的。安,还没到一半呢。

问:师父,这是典型的非科班出身,凭兴趣自学的例子!那么您是怎么开始的,走过了哪些弯路,对刚进入这个行业的新手有什么建议吗?

A:我是在无知的情况下进入计算机技术圈的。一开始不知道学习的顺序,所以先学了编程语言。后来我了解了NCRE考试,并在学校图书馆查阅了书籍。我弥补了我错过的一切,这很耗时。更长。大学毕业后就从事这个专业,从NCRE转考CCSP。学习方法是类似的。当我遇到不懂的东西时,我会花时间去理解它,而不需要系统的学习。在工作中,我有时会通过编程做一些批处理工作,以提高工作效率。我主要是靠兴趣坚持在这个领域。对于刚入行的新手,建议找硕士,按照专业课程计划学习。这里给个建议:一定要先做,先按流程走,然后再研究具体的细节。当你想不通的时候,就利用网络进行搜索或者向同行请教。当你实在看不懂的时候,你可能缺乏基础知识。这个时候没有捷径可走。来吧,稳稳地看书吧。

Q:我看到大师有多种编程语言的编程能力。在高手看来,您建议网络安全新手首先学习掌握哪些语言?

A:我的学习比较复杂,但也不是特别精通。近年来主要使用C#语言,有时也使用。编程语言都有一些共同点,无非就是三种结构的组成:【序列、循环、选择】。底层汇编语言或中间语言,整体逻辑或架构不会有太大差异,但在语法或操作符号上可能会有明显差异。高级语言一般都会涉及到面向对象,然后泛化成设计模式,一开始学习起来可能会比较困难。

如果您是编程语言新手,建议学习。首先,有大量可以直接使用的库。其次,它们广泛应用于人工智能和大模型的应用级研发,资源非常丰富。如果涉及到底层或者驱动层的研发,建议pwn方向的网络安全学习C/C++语言。有精力的话还是应该懂汇编语言的。如果你是做一些网络应用开发,建议先从C#、java、php等语言开始。

问:您认为网络安全研究需要哪些基础知识和技能?您通常如何保持自己的技术水平和知识更新?

A:具备数据结构与算法、操作系统、主要加密算法、网络协议、编程语言等基础知识和技能。此外,还必须掌握一些常用的分析软件。计算机技术日新月异。我首先接触到的是晓榕软件实验室。我使用过诸如 、 之类的软件。后来我一直关注看学论坛和52破解网站的内容。平时我还是多关注前沿技术,与同行交流,访问权威论坛,玩经典赛事,这对于保持自己的技能和知识更新很有帮助。

以看学学院为例。里面有很多高质量的教程。想要全面深入了解相关技术的同仁可以多阅读。论坛上也有大量的经验帖子。如果想深入了解技术细节和关键点,可以阅读更多内容。环顾四周;观雪KCTF比赛中也有很多经典题。如果你想更深入地了解相关技术的用处,可以多尝试。其实网络安全研究的最深层次就是数学。如果你还没有深刻理解数学的用处,那么你还没有真正开始。

问:在逆向工程过程中您最常使用哪些工具和技术?您有什么建议可以分享吗?

A:我主要使用dnSpy、IDA,偶尔也使用OD等工具。大部分是研究组件的逆向工程,也有PE本地组件。我偶尔也会做一些apk的逆向工程和重新打包。我给大家提三点建议:第一,要动手、看、学、练、悟;其次,你应该阅读一些有价值的教程;第三,你应该阅读一些高质量的代码。

Q:到目前为止,你印象最深刻的逆向经历是什么,它对你有启发吗?

A:是看学KCTF里关于《天堂之门》的问题。就在那时,我第一次知道32位和64位可以互相切换。毕竟写代码的时候一定要注意32位和64位的区别。该代码很可能无法编译,也可能无法运行。切换模式将导致主调试器发生故障。当然,下面这个是不存在的,所以我一直在使用调试工具,这些工具对于程序调试非常有用,尤其是在JIT层面。简单的命令输入就可以输出相关的元数据信息,断点命令也可以用来截断关键点,特别是在一个方法即将进行JIT之前,方便对比分析。

当然,任何软件都不可能适合所有场景。你还是要找到适合自己使用的工具和相应的程序。该程序与普通PE程序逆向工程有很大不同。对于逆向分析来说,dnSpy和dnSpy是必备的工具,dnlib是必备的库。不过,想要提高自己的能力,还需要全面系统的辅导。



问:您遇到过哪些困难挑战,是如何克服的?

A:现在回想起来,其中大部分对当时的我来说都是困难的挑战,但现在对我来说似乎不再那么困难了。每当你进入一个未知的领域并试图了解未知的技术时,这都将是一个艰巨的挑战。但一旦你掌握了技术,深入到这个领域,你就会发现,其实并没有那么困难。俗话说,会做的人不难,不会做的人就难了。比如我记得有一道关于KCTF的题,我以前从来没有遇到过。我上网搜索、加入QQ群、查阅资料等,初步了解了指令集,然后尝试解决问题。 KCTF中有很多类似的话题,基本上都是我的盲区,但是经历了过程,积累了经验,再看的时候就会恍然大悟。

Q:说到CTF,大师在这方面的经验非常丰富。大师作为攻击者和防御者有何经历?

A:我的主要方向是,无论是进攻方还是防守方​​,确实可以说它的意义就是“参与”。 ——我们可以在比赛中看到自己的不足,有针对性地学习、实践、揣摩,巩固自己的知识,不断提高个人能力。

作为攻击者,你要学习很多知识点,比如常用的加密技术、混淆技术、虚拟机技术、反调试技术等等,你必须要掌握。另外,你可能遇到的问题所使用的技术也是你的盲点。这个时候,你只能在短时间内查阅资料,补充知识,快速掌握核心。攻击者向优秀者学习是非常有必要的,并且必须在审查过程中进行审查并掌握技术。有时可能需要多次练习和复习才能真正理解和掌握。作为攻击者,还应该注意收集相关的软件或工具以及相关攻击技术的技术路线。攻击思路非常重要,简单易用的工具也能起到事半功倍的效果。攻击者必须学会站在防御者的角度思考,比如防御者的帖子或论文,以及防御者如何考虑使用当前的技术。有时候,如果想法正确,就会找到更有效的方法。

作为一名后卫,我认为有五个方向。一是运用数学知识,其核心是数学解题过程;二是混淆技术、扰乱流程;三是利用反调试技术,防止攻击者快速找到关键点;第四是虚拟机技术和代码虚拟化,除非找到对应关系,否则很难分析;五是融合技术,融合相关技术,强化防御效果。防御者可以从行业的封装保护软件或技术中探索防御技术,比如上面提到的五个方向,有能力的可以进行改进。作为防御者,也要学会站在攻击者的角度去考虑,比如攻击者会用什么方法来攻击,然后设置一些结界阵法、陷阱等措施来误导攻击者的进攻路线。

Q:与其他同行相比,您认为自己有哪些缺点和优点?您认为在网络安全领域取得成功的最重要因素是什么?

A:我没有专业背景,也没有全职投入。更多的是一种爱好,还有很多不足之处。在软件开发方面,我做了一些系统,但规模不大,用户数量也较少。他们不具备大规模软件开发所需的健壮性和安全维护运营能力。底层理解不够深入,比如IR变形、局部变量排序、循环优化、断言传播等,需要进一步理解。我认为我的优势在于能够静下心来专心研究技术,尤其是对.NET常用防护技术有全面的了解。我个人认为,想要在网络安全领域取得成功,关键在于个人兴趣和潜心研究,以及刨根问底、加强基础数学知识。

问:看学官网上有一门大师写的课程《.NET程序的文件解析与保护技术》。您能详细介绍一下它能给学生带来哪些帮助吗?

A:现在有很多反编译软件可以反编译.NET程序文件的源代码。反编译后的代码与源程序代码没有太大区别。主要存在几个问题:一是程序员辛辛苦苦写出来的代码完全暴露;二是软件授权方式容易失败,通过源码可以快速编写注册机。三是源代码泄露存在安全风险。近年来,汉王行动不断强化行业安全意识。如果你从事.NET软件开发,就得注意软件安全问题,尤其是关键的源代码保护问题。这也是我编写《.NET程序的文件解析与保护技术》课程的初衷。本课程可以帮助您深入理解.NET文件格式,了解常用防护技术的原理和关键实现,增强软件开发中的安全防护意识,创建.NET程序的打包保护和解包破解软件。希望通过学习,大家能够进一步提高.NET程序逆向技能,提高.NET软件开发的安全防护水平。

对了,看学课程平台上有htg大佬们精心编撰的《.NET程序的文件解析与保护技术》。欢迎有兴趣的老板下单哦~

新品特价:¥589元

最后,感谢看学论坛专家[htg]在百忙之中抽出时间接受采访,也感谢他对看学社区的持续贡献。祝愿他在未来的软件安全道路上不断披荆斩棘,课程大卖!

如果这次采访能够对大家有所帮助和启发,那就太好了。您还希望我们采访谁以及您希望我们采访哪些问题?在评论部分告诉我们吧!

看雪 ID:htg

*本文为看学论坛专家htg专访。转载时请注明来自看学社区。

本期互动福利

话题讨论:网络安全领域专业人士和非专业人士有很大区别吗?

文章末尾留言:

第一个喜欢的地方:获得2024年SDC门票

第二名至第三名喜欢:获得10元观雪课程优惠券(所有人均可使用)

活动时间:5月17日(周五)11:00抽奖结束





您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|【远见汇智】 ( 京ICP备20013102号-17 )

GMT+8, 2025-5-9 01:21 , Processed in 0.248951 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表