研究多态恶意软件,探讨网络安全与AI

前言

近期ChatGPT火遍全球,AI技术被应用到了全球各行各业当中,国内外各大厂商也开始推出自己的ChatGPT,笔者所在公司在前段时间也推出了自研的安全GPT,AI技术在网络安全行业得到了很多的应用,不管是网络安全研究人员、安全厂商还是黑客组织都开始研究和使用AI技术,通过AI技术降低防御成本和攻击成本。

笔者最开始研究AI在网络安全一些场景的应用是在2017年的时候,当时AI技术最主要的应用就是利用AI进行WEB安全相关的检测以及利用AI进行恶意软件的分类、利用AI技术进行安全数据的分析等,笔者趁机也了解学习了一下相关的AI技术以及涉及到的一些AI算法,当时笔者学习的资源库:

https://github.com/wtsxDev/Machine-Learning-for-Cyber-Security

前些年,AI技术在安全领域的应用更多是用于一些安全威胁的检测,随着AI技术的发展,LLM模型的成熟,AI技术不仅仅用于安全检测,还可以应用到安全攻防方面,它拥有了与人“对话”的能力,不管是攻击者,还是防御者都可以与AI进行简单的“对话”,实现一些简单的自动化工作。

前不久国外某安全厂商使用AI技术生成了一种多态恶意软件PoC,表明可以利用大型语言模型(LLM)即时合成多态键盘记录器功能,从而可以逃避AV/EDR等安全产品的检测,该PoC多态恶意软件利用大型语言模型即时合成多态键盘记录器功能,在运行时动态修改良性代码,并且无需任何命令和控制基础设施来交付或验证恶意键盘记录器功能。

先给大家普及一下免杀相关的基础知识点,免杀主要分为两个层面:样本层免杀、流量层免杀,样本层免杀,又分为两个层面:静态免杀、动态免杀,流量层免杀,又分为两个层面:通信流量免杀、基础设施免杀,如下所示:

上面仅仅是简单普及一下相关知识点,免杀技术的研究是一个很复杂的专题,也是高端黑客组织研究的重点,免杀恶意软件是高端黑客组织最重要的攻击武器,普通的免杀能坚持一到两周就很不错了,高端的免杀可以坚持半年或一年以上,更高极的免杀可以持续几年,甚至十年以上不被发现,基于供应链的免杀技术是最难发现的一种免杀技术,免杀对抗技术是安全对抗的核心技术之一,需要攻击者在样本层面和网络流量层面都能做到深度的隐藏,才能在更长的时间里逃避全球安全厂商的检测和追踪。

近日卡巴斯基在使用卡巴斯基统一监控和分析平台(KUMA)监控其企业Wi-Fi网络的网络流量时,发现了一个新的移动APT活动,经过进一步分析,该公司研究人员发现攻击者一直针对数十名公司的员工的iOS设备进行攻击,随后俄罗斯政府指责苹果公司与美国国家安全局NSA进行勾结,攻击了与俄罗斯用户相连的数千部iPhone以及外国驻幕斯科大使馆内的一些设备,因为卡巴斯基的详细攻击报告和攻击样本都暂时没有发布,笔者就不作过多分析了,坐等后续详细分析报告了。

没有绝对的安全,现在使用的各种各样的IT设备、应用软件和操作系统里面究竟有没有隐藏后门,其实是未知的,你的企业有没有被攻陷,也是未知的,但可以肯定的是全球高端的APT黑客组织一直没有闲着,网络攻击行为时刻在发生。

AI多态恶意软件

让我们来详细分析一下国外安全厂商发布的基于AI的多态免杀恶意软件PoC。

动态行为免杀,需要使用Transformer模型合成代码,首先要在源代码示例的大型数据集上训练该模型,训练完成之后,可以根据提示或输入代码生成新代码,运行时通过连接OpenAI的API接口,返回窃取受感染用户按键的恶意代码,然后再使用Python的exec()函数执行动态生成的代码,生成多态恶意代码保留在内存中执行。

每次执行时,它都会重新返回生成新的恶意代码,然后在内存中执行,从而实现多态变形。

基于OpenAI生成恶意代码,如下所示:

利用Python的EXEC函数动态加载执行恶意代码,如下所示:

通信流量免杀,使用MS Teams webhook通信的方式,通过webhook可信任流量将收集的数据发送到由攻击者控制的恶意Teams频道,在那里可以对其进行分析、在暗网出售或用于其他恶意目的,如下所示:

MS Teams是一种被广泛使用的合法通信和协作工作,因此恶意软件作者可以利用它来绕过安全产品的检测。

最后通过Python一款开源打包工具Auto-py-to-exe,将上面生成的python多态键盘记录恶意软件Python代码生成为EXE程序,如下所示:

这就是一个简单的基于AI的多态恶意软件,这个多态变形的关键在于AI模型的训练,前期需要通过AI的LLM大语言模型学习大量的Python键盘记录相关功能代码,然后才能自动生成相关功能的代码,然后再动态加载执行生成的这些恶意代码,即可实现多态变形。

引擎多态恶意软件

上面介绍了基于AI的多态恶意软件,目前来看只是一个简单的PoC,这里介绍一个多态引擎框架,源代码地址:https://github.com/frkngksl/Shoggoth多态引擎的设计框架,如下所示:

该引擎会可用于加密给定的PE和COFF文件,执行第一次加密之后,Shoggoth使用随机生成的分组密码进行第二次加密,第二次加密它加密了RC4解密器和可选的存根,存根包含有效负载、垃圾指令和用RC4加密的加载程序。

第一次加密,如下所示:

第二次加密,如下所示:

随机生成垃圾指令,如下所示:

生成的垃圾指令,包含跳过随机字节、没有副作用的指令、虚假函数调用以及有副作用但保留初始值的指令等,如下所示:

垃圾指令是随机选取生成的,通过调用AsmJit库的API函数生成,如下所示:

AsmJit是一个用C++语言编写的用于机器代码生成的轻量级库,它可以为X86、X86_64和AArch64架构生成机器代码,并支持基线指令和所有最新的扩展,AsmJit允许指定操作代码、寄存器、立即操作数、调用汇编操作数等,只需要调用对应的API函数即可。

这就是一个多态引擎框架,可以利用这个多态引擎自动生成多态恶意软件。

探讨网络安全与AI

关于网络安全与AI,群里一些朋友一直想让笔者谈谈看法,笔者基于自己十多年的安全工作经验,同时也对AI技术有一定的研究,就跟大家探讨几个可能是大家最关心的关于网络安全与AI的话题,仅供大家参考。

AI+安全可行吗?

答案是肯定的,AI技术在多少年前就已经被应用到了网络安全领域,例如:

使用AI进行数据分析

使用AI进行漏洞扫描

使用AI进行恶意软件的识别与归类

使用AI进行漏洞挖掘

使用AI对抗薅羊毛

使用AI进行钓鱼邮件的识别

基于数据+情报+AI,完全可以实现安全运营自动驾驶等。

......

利用AI进行扫描检测和数据分析是AI的一些基础性应用场景,未来AI技术在网络安全行业还会有更多高级的应用场景,例如:

如何利用AI进行自动化攻击渗透?(例如自动化打点、自动化漏洞扫描、漏洞挖掘、漏洞攻击等)

如何利用AI辅助开发驱动程序不蓝屏?(例如:主动防御驱动,文件过滤驱动、RootKit检测驱动等)

如何利用AI辅助开发高级恶意软件?(例如RootKit、UEFI BootKit、Ebpf RootKit攻击样本等)

如何利用AI辅助开发高级免杀恶意软件?(例如实现免杀对抗型样本的批量生成,多态混淆变形、反调试反虚拟机、动态免杀加载执行、Bypass AV/EDR/XDR攻击样本等)

如何利用AI实现自动化脱一些高级壳?(例如VMP、TMD、ZP之类的)

如何利用AI实现自动化去混淆?(例如一些混淆的PS、JS、VBS脚本以及二进制混淆代码等)

如何利用AI实现自动化解密加密的恶意数据和流量?(例如一些加密的远控流量、加密的恶意代码等)

如何利用AI分析高端APT攻击样本?(例如一些多模块化,高度混淆加密免杀的APT攻击样本,系统底层硬件层攻击样本等)

如何利用AI进行自动化分析取证溯源?(例如针对高端APT事件进行数字调查取证,分析溯源等)

AI在学习和实现上面这些高级能力的时候,需要安全研究人员不断地去纠错,这是一个漫长的过程,成本也是未知的,也需要安全研究人员对上面的这些技术非常熟悉,才能一点一点去教AI,让AI慢慢学习和掌握这些专业知识,达到更高级的应用水平。

安全研究人员需要学习AI技术吗?

答案是肯定的,AI技术目前来看是一项很成熟的技术,现在很多中小学生都开始学习AI技术,AI技术在未来会越来越成熟,可以应用到各行各业,对于网络安全行业来讲,AI是一个很好的工具,它可以帮助我们做很多事情,我们不仅仅要了解AI技术、学习利用AI技术、还要深入的去研究AI技术,深入研究黑客组织利用AI技术进行哪些新型的攻击活动,比方前段时间报道的一些诈骗组织已经开始使用AI视频进行诈骗攻击,通过使用AI“换脸”技术来欺骗受害者,未来黑客组织通过让AI自主学习了各种网络攻击技术之后,可能会使用AI技术进行网络攻击活动,做为网络安全研究人员一定要去深入的AI技术在网络安全的应用场景,作为一名专业的网络安全研究人员,就是要时刻保持学习心态,不断去学习新的攻击场景,新的攻击技术,新的攻击手法,新的攻击武器,与时俱进,知已知彼,才能更好的对应未来网络安全所面临的各种挑战。

安全研究人员会被安全+AI替代吗?

随着AI技术的发展与应用普及,在各行各业应用AI技术确实可能替代一些简单的工作,在网络安全领域,例如:数据分析、日志分析、流量分析、样本运营、漏洞运营等安全运营未来都可以通过AI技术实现自动化处理,实现自动驾驶,同时一些专业的安全研究工作,也可以运用AI技术来辅助提升工作效率,像恶意软件开发、漏洞挖掘、红队渗透攻击、恶意样本逆向分析等,所以目前AI确实是可以替代一些简单的安全运营人员的。

安全+AI会不会替代自己?其实大可不必过度担心,正所上面所说的AI通过学习确实可以替代一些简单的安全运营工作,实现自动化“无人驾驶”,这是时代发展的必然趋势,但是专业性的安全研究工作,AI暂时还是无法完全替代的,AI可以做为辅助工具提升效率,同时AI自身也存在或者会带来很多问题,包括AI学习成本、AI不可控、AI自身安全性、以及AI对抗等因素,AI对于安全行业来说是一个很好的工具,我们要善于利用这个工具,帮助我们提升工作效率,降低防御成本。

做安全技术研究,能自动化的地方尽量自动化,同样能使用AI的地方,就尽量使用AI技术提升工作效率,不管AI技术如何发展,做安全的本质永远不会变,安全对抗也一直会存在,黑客会使用AI技术降低攻击成本,安全厂商也会使用AI技术降低防守成本,本质还是对抗,同时AI技术的广泛使用可能也会带来一些新的安全问题,同时也可能会让安全问题变的更复杂。

做安全,就是需要不断学习,不断进步,如果不能保持一颗不断学习的心态,持续积累,与时俱进,就算不被AI所替代,也迟早会被时代所抛弃,安全就是一条“不归路”,安全对抗会一直存在,做安全,不忘初心,与时俱进,方得始终。

对于安全研究人员,如果你担心自己会被AI所替代,那就时刻与时俱进,保持学习心态,一些黑客组织已经在使用AI技术进行自动化攻击活动,做安全也需要学习和研究AI技术,通过AI技术进行简单的网络对抗,同时还需要更深入的研究AI攻击技术和攻击武器,做到知已知彼,如果你的专业程度远高于AI,同时你又对AI技术非常了解,那又何必担心会被AI替代呢?

AI安全与对抗,网络安全+AI会有哪些问题?

AI未来可能面临哪些问题,笔者也总结了一下:

AI成本问题,使用AI技术降低攻击成本或防御成本的时候,更需要考虑AI的成本问题。

AI自身安全问题,AI本身存在的安全漏洞,还有AI被恶意利用等问题。

AI对抗与毒化,安全对抗一直存在,黑客组织可能会使用一些干扰数据和样本对抗AI模型的学习,让AI产出不可预计的结果。

AI不确定不可控,AI在学习了海量的知识库以后,可能会出现“胡说八道”不可控的情况,如何确保AI的输出是正确有用的,这就需要有一定的“容错修正”机制,能快速修正AI的结果,尽量保证AI的可控性。

参考

https://www.hyas.com/blog/blackmamba-using-ai-to-generate-polymorphic-malware

https://github.com/frkngksl/Shoggoth

资料

上面笔者已经讲了,作为网络安全从业者,一定要了解、学习和应用AI技术,而且还要深入的去研究AI技术在网络安全领域的各种攻防场景,这里笔者也给大家分享一些AI与网络安全相关的资料,供大家参考学习,AI在网络安全的应用场景非常多,大家选择自己感兴趣的方向深入研究即可,例如笔者对AI进行高级武器化攻击和应用场景这个方向比较感兴趣,如何利用AI实现高级攻击、高级武器库的开发、高级对抗等应用场景,笔者就会在这个方向多研究,时刻关注全球各大安全厂商发布的一些最新的安全研究技术报告或相关的研究成果,例如最新的攻击事件,攻击技术,攻击武器,安全工具等。

https://github.com/wtsxDev/Machine-Learning-for-Cyber-Security

https://github.com/jiep/offensive-ai-compilation

https://github.com/unica-mlsec/mlsec

https://github.com/XMoyas/AI_CyberSecurity_Resources

https://github.com/SkalskiP/courses

https://github.com/ustayready/cloudgpt

https://github.com/sdnewhop/AISec

https://github.com/NoDataFound/hackGPT

https://github.com/GreyDGL/PentestGPT

https://github.com/LiLittleCat/awesome-free-chatgpt

https://github.com/travistangvh/ChatGPT-Data-Science-Prompts

https://github.com/kingthreestones/Malicious-URL-Detection-Deep-Learning

https://github.com/fabriciojoc/ml-cybersecuritiy-course

https://github.com/dtonomy/Awesome-Security-ML

https://github.com/tuff96/Malware-detection-using-Machine-Learning

AI Cyber Security Books

https://github.com/abdullah-patwary/Books

训练AI成为一句网络安全专家

https://github.com/sechelper/awesome-chatgpt-prompts-cybersecurity

微软最近推出一系列AI相关的入门基础知识库,如下:

https://microsoft.github.io/AI-For-Beginners/

https://microsoft.github.io/ML-For-Beginners/#/

https://microsoft.github.io/Data-Science-For-Beginners/#/

总结结尾

国外厂商发布的基于AI的多态变形恶意软件只是一个非常简单的PoC,目前来看基于AI的高级攻击应用场景,还处于非常初级的阶段,未来要走的路还很长,AI还需要学习更多的相关知识,让AI学习上面的多态变形引擎框架,然后再利用AI来生成恶意软件,就可能自动化开发实现基于引擎的多态恶意软件?不过这是一个漫长的学习过程,而且还要保证学习的过程中不会出现错误的结果,有一定的容错修正机制,不然可能生成的代码无法正常执行,虽然上面基于AI的多态变形仅仅是一个很简单的PoC,然而利用ChatGPT来生成简单的恶意软件,无疑是大大降低了攻击成本,一些初级的黑客组织完全能够使用ChatGPT去开发一些简单的勒索病毒、挖矿病毒、木马、远控、后门等恶意软件,ChatGPT被一些黑客组织当成了一个类似的自动化的MAAS平台来使用,极大的降低了攻击成本,不懂代码开发的黑客,都可以通过ChatGPT自动化开发一些恶意软件攻击样本。

AI技术的普及,在一定程度上确实会降低了安全攻击的成本,一些黑客组织已经开始使用AI技术来进行简单的自动化攻击活动,然而高端的黑客组织攻击行为,目前来讲短时间内还是无法通过AI实现,AI还需要学习更多的专业安全知识,其实这就是一个长期的过程,把AI当成一个人来看待,它从对安全知识其实是一无所知,我们需要不断训练它,让它学习,慢慢它就可能成长为一名专业的安全研究人员,本身就是一个漫长的学习过程,在这个学习的过程中,就需要专业的安全人员不断给它传输更专业的知识,让它学习更专业的安全知识,AI需要不断学习,安全研究人员需要不断学习,黑客组织也在不断更新自己的攻击技术和攻击武器,安全对抗会持续升级。

总结:未来随着AI技术进一步成熟,AI技术会被应用到各行各业当中,而不仅仅是在网络安全行业,我们要积极的拥抱AI技术,学习AI技术,善于利用AI技术帮助我们改进和提升工作效率,还要深入的学习和研究AI技术在网络安全行业的各种高级应用场景,黑客组织使用AI技术会产生哪些新型的安全攻击活动,以及AI技术可能带来的新型安全问题等,作为一名专业的网络安全研究人员,就是要不断学习,不断进步,永远保持学习的心态,与时俱进,不断丰富自己的专业知识,时代在进步,未来会有更多新型的攻击技术和攻击武器,要快速学习和接受新的事物,并从更专业的角度去深度分析和研究这些新事物,取其所长,避其所短,知已知彼。

笔者一直从事与恶意软件威胁情报APT等相关安全分析与研究工作,包含挖矿、勒索、远控后门、僵尸网络、加载器、APT攻击样本、CS木马、Rootkit后门木马等,涉及到多种不同的平台(Windows/Linux/Mac/Android/iOS),通过跟踪分析全球最新的各种安全攻击事件、攻击样本、漏洞利用和攻击技巧等,可以了解全球黑客组织最新的攻击技术和攻击趋势,做到知已知彼。

各位读者朋友如果有遇到什么新型恶意软件家族样本、最新的家族变种以及各种高端的攻击样本都可以私信发给笔者,提供的样本越高端越好,提供的攻击事件线索越新越好,感谢给笔者提供样本的朋友们!

做安全,不忘初心,与时俱进,方得始终!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/676649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch之倒排索引

写在前面 本文看下es的倒排索引相关内容。 1:正排索引和倒排索引 正排索引就是通过文档id找文档内容,而倒排索引就是通过文档内容找文档id,如下图: 2:倒排索引原理 假定我们有如下的数据: 为了建立倒…

Matlab绘图经典代码大全:条形图、极坐标图、玫瑰图、填充图、饼状图、三维网格云图、等高线图、透视图、消隐图、投影图、三维曲线图、函数图、彗星图

学会 MATLAB 中的绘图命令对初学者来说具有重要意义,主要体现在以下几个方面: 1. 数据可视化。绘图命令是 MATLAB 中最基本也是最重要的功能之一,它可以帮助初学者将数据可视化,更直观地理解数据的分布、变化规律和趋势。通过绘制图表,可以快速了解数据的特征,从而为后续…

?你咋知道我的电脑密码的?---> Mimikatz!

还记得昨天在内网中提到了mimikatz这个工具,那么今天就来和大家讲一下这一款牛逼的工具 但是在这里先祝自己和各位看官新年快乐,万事顺遂 🐉🐲🐲🐲🐲 1.Mimikatz的介绍 传说呢,是…

学习通考试怎么搜题找答案? #学习方法#微信#其他

大学生必备的做题、搜题神器,收录上万本教材辅助书籍,像什么高数、物理、计算机、外语等都有,资源十分丰富。 1.菜鸟教程 菜鸟教程是一个完全免费的编程学习软件。 它免费提供了HTML / CSS 、JavaScript 、服务端、移动端、XML 教程、http…

开发JSP应用程序

开发JSP应用程序 问题陈述 TecknoSoft Pvt Ltd.公司的首席技术官(CTO)John Barrett将创建一个应用程序的任务委托给了开发团队,该应用程序应在客户访问其账户详细信息前验证其客户ID和密码。客户ID应是数字形式。John希望如果所输入的客户ID或密码不正确,应向客户显示错误…

Stable Diffusion 模型下载:Disney Pixar Cartoon Type A(迪士尼皮克斯动画片A类)

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 目前还没有一个好的皮克斯迪士尼风格的卡通模型,所以我决定自己制作一个。这是将皮克斯风格模型与我自己的Loras合并在一起,创建一个通用的…

endnotesX9 如何批量导入 .enw文件

文章是用schoolar搜出来 点击下载引用之后,endnotesX9只能一个一个从.enw文件导入,麻烦 —————————————— 可以在schoolar保存到个人图书馆 类似于上面这种,我用的是保存,保存很多的论文之后点我的个人图书馆&#x…

MySQL进阶查询篇(6)-锁的种类与应用场景

MySQL是一个常用的关系型数据库管理系统。在多用户并发访问数据库时,为了确保数据的一致性和完整性,MySQL提供了多种锁机制。本文将介绍MySQL数据库中的锁的种类与应用场景。 1.悲观锁(Pessimistic Lock) 悲观锁是在进行数据读取…

【GO语言卵细胞级别教程】03.条件与循环语句

注意:以下演示所用的项目,在第一章节已经介绍了,这里不做赘述 目录: 【GO语言卵细胞级别教程】03.条件与循环语句1.条件语句1.1 if语句1.1.1 单层if语句1.1.2 if-else语句1.1.3 if-else-if 语句1.1.4 if 嵌套 1.2 switch 语句1.1…

Android java基础知识

一.Android java基础知识 第一个java程序Hello Worid: public class Hello {public static void main(String args[]) {System.out.println("Hello, world!");} }运行结果: rootubuntu:/home/topeet/guyilian# javac Hello.java rootubuntu…

使用CICFlowMeter 实现对pcap文件的特征提取【教程】

使用CICFlowMeter 实现对pcap文件的特征提取【教程】 针对现有的关于CICFlowMeter 的使用教程不够全面,一些细节没有展示,我将结合网络上的相关资料和实际的经历,提供一些经验和建议。 configuration information --------------- Windows…

C++入门学习(二十六)for循环

for (初始化; 条件; 递增/递减) { // 代码块 } 打印1~10&#xff1a; #include <iostream> using namespace std; int main() { for (int i 1; i < 10; i) { cout <<i<<endl; } return 0; } 打印九九乘法表&#xff1a; #include <iostream…

Java面向对象 访问控制权限

目录 访问控制权限继承多态组合代理向上转型staticfinal 访问控制权限 访问控制权限⼜称为封装 &#xff0c;它是⾯向对象三⼤特性中的⼀种&#xff0c;我之前在学习过程中经常会忽略封装&#xff0c;⼼想这不就是⼀个访问修饰符么&#xff0c;怎么就是三⼤特性的必要条件了&a…

uniapp的配置和使用

①安装环境和编辑器 注册小程序账号 微信开发者工具下载 uniapp 官网 HbuilderX 下载 首先先下载Hbuilder和微信开发者工具 &#xff08;都是傻瓜式安装&#xff09;&#xff0c;然后注册小程序账号&#xff1a; 拿到appid&#xff1a; ②简单通过demo使用微信开发者工具和…

在Linux系统中设置全局HTTP代理的步骤与技巧

在Linux系统中&#xff0c;设置全局HTTP代理可以方便我们统一管理和控制网络请求。这不仅可以帮助我们加速网络访问&#xff0c;还可以在某些情况下绕过网络限制或实现匿名上网。下面&#xff0c;我将为你详细介绍在Linux系统中设置全局HTTP代理的步骤与技巧。 步骤一&#xf…

windows10安装配置nvm以达到切换nodejs的目的

前言 各种各样的项目&#xff0c;各种node环境&#xff0c;还有node_modules这个庞然大物。。想想都觉得恐怖。 所以现在有了&#xff1a;nvm-切换node环境&#xff0c;pnpm–解决重复下载同样类库的问题。 下面将就如何在win10下配置进行说明 nvm下载配置 nvm的github下载地…

Python DNS操作详解

在网络世界中&#xff0c;DNS&#xff08;Domain Name System&#xff09;扮演着重要的角色&#xff0c;它是一种分布式数据库系统&#xff0c;用于将域名&#xff08;如 google.com&#xff09;转换为相应的 IP 地址&#xff08;如 172.217.7.206&#xff09;。DNS 可以被视为…

【Flink】SQL-CLIENT中出现 Could not find any factory for identifier ‘kafka‘

在Flink的sql-client客户端中执行sql代码时出现如下错误,版本Flink1.13.6 [ERROR] Could not execute SQL statement. Reason: org.apache.flink.table.api.ValidationException: Could not find any factory for identifier kafka that implements org.apache.flink.table.fa…

nginx: [error] invalid PID number ““ in “/usr/local/nginx/logs/nginx.pid“

问题描述 执行nginx -s reload时&#xff0c;出现如下错误 [rootiZuf65h6i43ltlzhqolumyZ conf]# ../sbin/nginx -s reload nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"解决办法 因为每一个nginx进程都对应一个id&…

配置ARM交叉编译工具的通用步骤

ARM交叉编译工具是用于编译在ARM架构上运行的代码的工具。这些工具允许开发者在一种架构&#xff08;通常是x86或x64&#xff09;上编写和编译代码&#xff0c;然后将其移植到ARM架构上运行。 ARM交叉编译工具链通常包括编译器、链接器、调试器和其他必要的工具&#xff0c;用…