欢迎访问网易云社区,了解更多网易技术产品运营经验。

尽管鼻梁被碰坍陷,牙齿被撞裂,“伤痕累累”的沈明星依然喜欢对抗运动,他从骨子里觉得:“男人就应该拼一点,偶尔争强好斗下。”

沈明星是网易云安全首席架构师,他主要从事安全防御体系建设、安全应急响应、云安全、安全服务产品化等工作,目前正致力于实践传统企业在向云进行迁移时,利用云安全服务解决企业的安全需求。

作为网易云安全首席架构师,他的大部分精力在管理上,偶尔看到下属碰到难解的问题,经过多轮努力仍无解时,他往往因为好胜心,抵不住诱惑一头扎入其中,再次回到“篮球场”上。也正是如此,他带领着团队自研出网易独有的NDS抗D架构,稳定性上达到99.99%;同时,自研的“自适应DDoS攻击深度检测和防御系统”也入选了工信部公示的网络安全示范项目。

照片背后的故事:手里拿着有相机,想拍点东西,正好看到沈明星在前面指导同事,于是捏了这张照片

他说,安全是需要不断造轮子的。言论乍听之下骇世惊俗。不要重复造轮子——Stop Trying to Reinvent the Wheel,这是程序员被告知最多的行为准则,然而当听他静静讲完,则觉得安全行业应当如此。

和他的访谈中,沈明星讲了很多挑战,技术上有人质疑他:“这玩意不实用。”安全云化对外服务后,他遭遇瓶颈,有点玩不转了……然而越是挑战,越是让他在这种技术和人生的对抗中找到了乐趣。

现在,我们一起认识下这位技术专家——沈明星。

王伟撞击事件、911和闭塞环境

浙江杭州,美丽的钱塘江畔、六和塔边的月轮山峦下是浙江大学之江校区。2001年9月9日,沈明星拖着厚重的行李箱来到这里报道。

对入学日期之所以记得特别清楚,“是因为过两天就是911。”

那时的之江校区比较闭塞,楼板都是木头铺的,甚至可以从上面看到下面。交通不便的环境,让沈明星更加得以沉心学习计算机基础知识。为什么学计算机,沈明星说自己内心深处从高中开始就有一股好奇心和求知欲驱动:“红警、CS这些游戏,计算机是如何去构建和表达的?”

大学他的专业是计算机科学与技术,更多的是计算机基础知识和研发层面的东西,与安全无关,似乎是幂幂之中注定,一些因缘让他和安全牵在了一起。

第一个是他的室友。沈明星的室友出身大城市,接触计算机比较早。“当时就有板砖一样厚的康柏电脑,它的内存是32M。”对于细节沈明星记得特别清楚。重点当然不是他这个室友的电脑,而是这位兄弟可以破解软件,能够免费使用,这引起了沈明星的兴趣。

第二个是大环境,沈明星高中、大学那个阶段,国际政治事件频发,比如北约轰炸中国驻南联盟大使馆、王伟撞机事件(4·1中美南海撞机事件),夹杂在大事件一起的还有中美黑客大战。尽管那个时候的沈明星只能算作一个爱国青年,在网络上洒了点“热血”——在网吧里跟着大家“打酱油”,但爱国情怀下的对抗带来的影响却是深远的。

接下来就是“知行合一”,沈明星做了不少算是“出格”但也很刺激的事:黑进教务系统,逛逛服务器,看看数据;中国移动动感积分的兑换话费有漏洞,通过抓包修改,可以让扣500积分,变成增加积分;公交卡、门禁卡信息都是写到卡上的,通过破解读卡器的加密算法,修改金额……

尽管有很多可以占便宜的机会,但三观很正的沈明星只是浅尝辄止。他在采访中强调:“做安全的人,可以去尝试,测试自己的能力,但不能利用自己的安全知识去谋利。”

被安全“盯”上

真正让沈明星走上安全道路,是在他工作的第三年。

他硕士期间就开始在美国道富银行浙江研发中心实习,一开始他做的是研发工作,后台、Web系统、报表、数据库等。随着业务越来越大,安全也成了这个研发中心不得不投入大量资源的领域。

沈明星就这样被盯上。

“牵头组建部门时,首先就想到了我。”因为和那帮人都很熟悉,再加上安全方面有积累、兴趣强烈,沈明星立马就被安全团队拉入伙。

谈及沟通过程,沈明星形容是“一拍即合”。他说自己非常看好安全行业的发展:“信息那个时候已经从线下跑到了线上,安全的工作非常重要。更何况是跟钱相关的业务,因此道富银行对安全非常重视。”

来到安全领域,似鸟投林。沈明星做了很多有价值的事情,比如说,开发出一套漏洞扫描系统。大的金融公司解决安全问题,一般都是购买乙方的产品和服务。但问题点是,商业化的东西,不一定贴合自己业务,而更为关键的是商业化的东西可控性比较差。碰到问题,做改动、提需求、沟通、发新版本、验证……往往一两个月就过去了,这种时间跨度,对敏捷开发、响应是一种灾难。

“我们需要有更多的把控性。”面对现实,沈明星暗暗下定决心。

于是,他们把一些外包出去的安全工作,拿回来自己做。基于一些开源的组件,他们研发出了属于自己的漏洞扫描系统,与此同时,也把漏洞的生命周期管理给做了起来。以前购买的安全服务,只能扫漏洞,但漏洞下一步谁处理、多长时间修复、怎么复查漏洞…这些都很混沌。但现在从漏洞发生、修复、给方案、复查、关闭,整个漏洞生命周期的管理都给做起来了。

“这大大降低了公司的风险。”沈明星说。

来到猪厂

2011年,沈明星加入网易。网易安全部当时内容安全做的特别好,网络安全攻防这块需要补足下,这对沈明星而言这是一个非常好的机会。

在网易七年多的时间,沈明星做了很多事情。主导了漏洞扫描器、入侵检测系统、应用层 DDoS 智能防御系统、流量清洗系统、安全运维平台、网易安全应急响应中心等平台的建设和维护,以及推动了一系列安全制度和策略的落地实施。

中间有遇到很多问题,比如说运维流程上的问题。网络安全跟运维耦合性非常高,但网易有很多运维团队:游戏、有道、邮箱等,不同团队技术标准、底层架构、监控技术和框架都不一样,沟通成本非常高,而且交付质量参差不齐。沈明星就带领团队做了安全运维的流程化、标准化和自动化。这样人的工作经验都沉淀到系统上来了,而不是依赖工程师个人的水平和责任心,从而导致交付东西的质量参差不齐。

流程化、标准化和自动化的另外一个好处则是,便于衡量和考核KPI,比如100个漏洞里,是不是可以要求机器发现的漏洞得占到70%,逻辑的漏洞是不是可以有个20%等。

过程看起来顺理顺章,但真正入手做,又是另外一码事。

举一个小例子:发现一个问题,很难快速定位这个负责人是谁。找人的这个动作中间出现的时间窗口,往往风险很大,随时会有人进来肆意妄为。其次是,大部分开发都没有安全背景且忙着推进自己的业务进度,漏洞很难引起他们的特别重视。

如何解决?对于时间窗口,沈明星是在技术方案能达到的地方会去打上一个虚拟补丁,“这个虚拟补丁并没有真正修复漏洞,但可以挡一挡,为后面的修复争取时间。”漏洞重视的问题,他是深挖——把漏洞的后果直接展示给业务方,业务方往往一般都是以惊讶收尾。“这有一个好处是,提升安全部门在公司的影响力,也推进安全流程的落实。”

创新——DDoS “Docker化”

后来,沈明星又负责DDoS的研发工作,也正是这个阶段有人直接挑战他,认为他做的还不够。

今日的DDos与往日早已不同,随着联网的设备越来越多,带宽的增加非常快,以前几十M、一两G就已经很大了,现在最大的攻击已经达到数T级别了。其次,以前DDoS更多的是单机,发起的攻击资源非常少,现在越来越多的攻击是模拟真实用户请求,打CC,这对防御和算法的要求比较高。再者,随着数字化的进一步发展,互联网的变化和挑战越来越大,技术要求之外,带宽资源的要求越来越欲壑难填。

而传统的抗D设备实际上算是一个单进程的网络设备,只有一个服务源服务所有用户,如果这个服务源“请假了”——比如某一个用户量特别大,导致服务不过来,进程挂掉,所有用户都会受影响。

喜欢打篮球的沈明星,最享受的就是对抗的过程,因为这种直面问题、解决问题的方式让他很兴奋,他喜欢这种斗争。如何通过创新,把DDoS做到极致,是沈明星想拼下的一个点。沈明星思考,是不是可以做一个隔离方案,对每一个用户分配一个服务源:给每一个用户起一个进程,单个进程分配一个资源额度。

“这样,A用户挂掉,就不会影响到B用户,做到资源的隔离。”沈明星说,这等于把DDoS服务Docker化。

按照这个思路,他把产品中做出来了,但紧接着又遇到另外一个问题。有人挑战他:“这玩意不实用。”也的确是如此,进程启动多了,就很容易崩溃,一开始只能达到50多个。

如何破?沈明星又和资源的分配策略斗争起来,他重新写了相关底层的代码,把CPU、内存、网卡等做了一个新的资源池管理,并对每一个设置一个最高值。“如果需求更多资源,则从空闲的资源池里拿。”凭借这个,进程数一下子翻了100倍,稳定达到5000多个进程,并通过极端情况下的流量严格的压测。而这为网易云带来的效益也是明显的,一台机器可以服务很多个客户,并且相互之间不会有任何影响,一年为网易在设备上节省投入上千万元。

架构上做了创新之外,沈明星也在思考能否帮助企业做用户体验上的改善。很多企业尽管用了抗D服务,并且在受到攻击时抗D服务也能够扛住,但还是有部分用户会受到影响,无法享受正常的服务,沈明星好胜的心里就又多了这么一个目标,一有时间就琢磨。

有一天,他突然想到,我们是不是可以做一个插件,和用户的业务做一个轻量级耦合。“用户请求登录,强验证因子证通过后,就可以认定你不是一个攻击的人。”他接着思考,可以做一个插件,对这个过程提取特征码,并加白,后续就不需要验证了,这样就能保证遭到特大规模攻击时,在线的用户不会失去服务。

想通之后,沈明星都有点自恋,他佩服自己的这个想法。随后团队赶紧去研发和测试,效果符合预期。后来就有不少客户受益这个技术,其中有位客户还送来非常名贵的茶叶,“原因就是这些定制的插件,保证了他在极端DDoS攻击的情况下,真正的客户端发来的数据几乎是零误杀    ,提升了特殊情况下的用户体验。”

向前一步

2016年8月份,网易云官网正式上线,对外提供场景化云计算服务,易盾的DDoS作为场景化服务的重要一环,也如期上线。

对外提供云安全服务后,沈明星有点“玩不转”了。玩不转倒不是因为有什么技术难题,而是他习惯和技术难题掰扯,但是现在解决技术难题还不行,他还得和销售、市场去打交道;与此同时,他也得维系好形形色色的客户。

“并不是说没有技术挑战,而是说对外服务要做好的并不仅仅是技术。”沈明星解释,比如说易盾专家对客户的响应时间是:工作日十五分钟之内响应,非工作时间三十分钟之内响应。“这样的标准,还是有客户嫌慢,他们希望找到你,一分钟内就能响应。”他说,这对技术专家挑战和干扰蛮大的,因为他们更多的是希望能有静心搞研究的时间。

后来他想了下,还是自己过于局限于技术人思维里了。于是他开始转换思维,从用户视角出发,因此他有同理心了,能够理解客户:“出现问题了放任何人身上都会急得不得了,的确得应该第一时间解决。”

安全服务云化后仅几十天,他就开始调整构建起“三化体系”,希望能提高用户体验,解决用户痛点,三化分别是:

1.FAQ化:将常见问题、典型难题整理到官网上;
2.多责任化:之前是技术专家7x24小时直接面对客户,后来培训一批售后技术人员,让他们先去解决。如果解决不了,说明问题还是有难度的,售后正好把整理后的需求传递给易盾专家,技术专家再及时衔接上。
3.沟通常态化:不少客户对安全认识不足,对基本技术理念理解不到位,他只描述下需求,其他都指望你来搞定,但殊不知安全是双方共同推进的。沈明星就化身布道师,对客户做安全知识的宣贯,包括线下活动、上门分享、官网、用户手册等。

这样一来,充分利用资源的同时,用户体验也提高了,对技术的压力也小了很多,技术专家也可以更加专注于创新和一些疑难杂症了。

但沈明星后来发现,做到这些仍然还不够,他发现个别客户不按常理出牌。

有一个客户为了省安全的服务费,使用共享套餐时就有了“创新”。比如说,把高防IP挂在CDN后面,在CDN后面后就会导致高防接收的IP就是CDN回源的IP了,“这就有一个问题,我们对于IP级别的很多策略就会受到影响或失效。”他接着指出背后的问题:“CDN回源的IP比较集中,这会导致基于频率的统计会失效,有很多IP就不能盲目地封。”

他暗忖,这样的做法虽然不符常理,但也不能说客户做的就是错的。因此他选择从技术角度出发,开发了特定的安全插件,根据DPI(包的深度分析)做特定的适配,解决IP级策略失效的问题。

安全云化的“乐趣”

在适应了前期的一些商业化转型后,沈明星渐渐发现安全云化后的乐趣。

用他的话来说就是,刷新了对生态的认知。他说,虽然网易做的业务比较主流,但安全云化对外提供服务后,让他看到了一些特有的需求,对互联网生态和产业链的了解进一步加深,这是之前只做内部支撑时所看不到的。

其次,他也非常享受被认可的感觉。有一家初创企业,创始人是老司机,业务刚刚起步时就提前预料到会有各种风险,他找到沈明星团队提前做了接入和适配。因为介入的比较早,沈明星除了提供安全服务之外,也在技术和架构上提供了技术咨询,当做易盾自己的业务去对待。

随着业务的增长,初创企业受到的攻击越来越大,最近的一次DDoS达到近500G。这次攻击是持续性对抗,大部分自动系统可以识别出来,但易盾技术专家也适时介入,因此他的业务没有受到任何影响。“有的时候凌晨一两点,也会盯着不断发出蓝光的屏幕,根据攻击的特征加入了新的规则和策略,保证攻击平稳过渡。”

事前、事中、事后,易盾的抗D服务都及时推送通知,把攻击方式展示、报表发给他们,有什么疑惑,沈明星也第一时间响应和回复。这样的效果和服务,让他们的创始人非常认可易盾,也送了特别的礼物来感谢。

沈明星原本的志愿是学医,但随着自己在高中接触电脑,以及后来在计算机世界里越来越Enjoy那种热血的感觉,于是他高考志愿填报了计算机专业,踏上了一条兴奋不已的“对抗”路。在网易把安全能力云化对外服务后,这种兴奋感又开始不断涌来。

他喜欢遇到挑战,喜欢不断的对抗。

有一次,沈明星遭遇一次很特殊的CC攻击。一般的CC攻击,在下一条攻击上会有明显的特征,但他们团队所负责的一个客户,攻击端不仅量很大,而且很多僵尸网络发过来的包很先进、很离散,找不到一个很好的特征去做拦截。常规的302跳转,JS挑战都无效,它都能正常响应,并绕过去。

试了很多办法无效后,他引入人工智能来解决。通过一个算法,对连接数、新建连接数、一些奇怪的重传率等很多维度去打分,最终对整个行为建立一个模型。如果分数大于500分,那么这个身份验证的人就是坏蛋,那么低于500分,那么进行身份验证的人就是一个好人。

逻辑是这样,但实际对抗中,需要不断的去调整分数的预值,直到能扛得住,也没有大量的用户反馈被误杀。有人说,网易是猪厂,他们的食堂能让人一年长胖二十斤,而在这个过程中,整天埋头思索的沈明星,却瘦了数斤。

被老虎追,不一定要跑成第一,但千万不要成最后一个

有不少程序员被告诫,不要重复造轮子。

原因主要是以下两点:

1.复杂点的轮子特别费劲,而且道阻且长,很有可能半途而废;
2.最终造出来的轮子,维护成本更高,且漏洞百出。

但在沈明星看来,安全必须要造轮子,因为这能在攻防对抗上增加把控度。他举了一个简单的例子——网易考拉类似于双11的商品大促销。他说,黑灰产往往在你开始之前就已经分析好你现有的安全方案,写好秒杀器等着你。

“如果用的是一个标准化的方案——比如AES、3DES算法,黑灰产们根本不需要看算法内容,只需要找密钥在哪里,调一下就立马破解。”那么造轮子自写加密算法,是如何起作用的?沈明星说:“我们会造一堆轮子,在活动之前挂的可能是方案1,但真正上线时就会切换成方案6。过程中,也不会不断的去变,并且这些都不是标准的东西。”通过造轮子,让对方分析成本变高。

“安全本身就是一个对抗的过程,任何一个方案都做不到绝对的安全,更多的是双方的成本比拼,把攻击门槛提高,当攻击方发现攻击的成本和收益不对等时,自然就不会攻击了。”他强调,这并不是代表他攻不破,而是他们也得考虑本钱。

沈明星举了一个例子形容黑灰产:“一群人被老虎追,要做的就是不一定非要跑成第一,但千万不要成为最后一个。”他说,黑灰产说到底都是为了钱,他们的资源和精力也是有限的,他们也会评估成本,攻击找的一定是找最弱的。“如果你做的比其他人好,垒的墙足够高,他们自然而然会去找别的。”

沈明星认为,未来DDoS攻击的流量越来越大的同时,流量也会越来越复杂,这对DDoS的识别挑战会比较大

谈及DDoS的预防,他建议容易遭到攻击的企业应该增加自身的实力,他说DDoS是资源的对抗,因此要做系统的储备、系统的优化;在设计应用时,可以做有些动静分离,把一些静态的资源分拆到CDN,动态的资源微服务化,不要有很重的请求——特别耗资源的话,会成为短板,黑客就会死揪这个短板。

除此之外,也可以考虑外围的帮助(比如说网易云易盾高防的产品等),尤其是在有人特意搞破坏的情况下。哪怕平时不用,也可以当做储备,遇到大流量攻击时,就可以甩到云端的清洗上去,做到一个立体的多层次防护。

一次分享中,沈明星为大家展示DDoS攻击的行业比例

“安全没有银弹,玩的是纵深防御,是一道道防线,不存在搞一个东西就能把所有问题解决。”因此,沈明星建议,防线多做几道,即使破了一道两道,也不会被攻透,导致底裤都被看到。

否则损失的就不是这点钱了,而是无形的品牌价值和用户的信任,特别是互联网金融产品——用户会担心这是不是要跑路的征兆……

结束语

沈明星是一个看起来文质彬彬的技术人,他特别喜欢身体对抗的活动,喜欢流汗的感觉,年轻时身体因此也伤痕累累,而这笔者却浑然看不出。

沈明星说,WAF他们是通过分析参数个数、长度、分布、频率等维度,用统计学方法筛选出异常

这种“冲突”,也发生在眼前。问经历,他像是一个腼腆的邻家男生,一旦涉及到技术问题以及细节时,像是换了一个人——专注度、气场、解释力,和之前判若两人。

谈及人工智能,他说人工智能可以从一些关系中找到规律出来,“但今天所谓的人工智能,仍旧需要大量的人工辅助,才能做出智能的效果出来。”因为今天互联网流量中,机器人异常的比例非常大,所以他们团队也投入了大量的人力,把正常流量标记出来,提高人工智能的精准度。

对于接下来的目标,喜欢看历史书籍的他没有透露太多,一开始只讲了七个字:“超越过去,比下去。”沈明星说:“我们会顺应形势,站在更大的视角去看待问题;发展上会寻求差异化,揪住一个点,由点及面,做大做强。”

历史上有很多以弱胜强的例子,也有很多微小事件导致重大历史的转折。

末了,他点题到:一是从骨干网层面去做一个业界的联合;二是在服务质量、技术指标上达到一个更高的层次。

网易云安全(易盾)基于网易20年技术积累及安全大数据,为互联网各行业提供反垃圾、验证码、注册保护、登录保护、活动反作弊、应用加固、DDoS 防护等整体安全解决方案,全程提供完善的技术支持,助力产品建立安全防护体系。点击可免费试用。

相关文章:
【推荐】 数据库路由中间件MyCat - 源代码篇(7)
【推荐】 GitLab 自动触发 Jenkins 构建

因为喜欢“对抗”,这位安全首席架构师一年为网易云节省上千万相关推荐

  1. ArchSummit讲师专访:微酷首席架构师赵志猛

    编者按:由InfoQ中文站主办的首届International ArchSummit架构师峰会即将召开.我们也对一些专题的讲师进行了采访,谈谈他们要讲的议题. \ 本次采访的是微酷首席架构师赵志猛,在 ...

  2. 资深首席架构师眼中的架构应该是怎样的?【转】

    "架构的视角每个人都不一样,这位在eBay.携程.唯品会等平台型互联网公司都工作过的老司机就以平台架构视角和大家分享架构心得体会.一家之言,欢迎讨论. 本文首发于InfoQ垂直公众号「聊聊架 ...

  3. 蚂蚁金服首席架构师何昌华:开源 SQLFlow 是牛刀初试,实时大数据系统才是未来基石...

    阿里妹导读:开源 SQLFlow,反哺业界,同时小小秀出AI肌肉.这就是蚂蚁金服近日开源首个将 SQL 应用于 AI 引擎项目 SQLFlow 后,业界给出的反应.带领团队研发出 SQL 正是蚂蚁金服 ...

  4. 专访百度云首席架构师林仕鼎:如何突破瓶颈

    专访百度云首席架构师林仕鼎:如何突破瓶颈 在今年的百度开发者大会上,百度云战略高调发布,成为开发者们瞩目的焦点.一直以来在公共领域很低调的百度移动·云事业部的首席架构师,也在当天以百度云首席架构师的身 ...

  5. 技术人攻略访谈三十八-许式伟:十一年逆流顺流,首席架构师到CEO

    文:Gracia (本文为原创内容,部分或全文转载均需经过作者授权,并保留完整的作者信息和技术人攻略介绍.) 导语:本期访谈对象@许式伟,七牛云存储CEO,国内Go语言圈领军人物,ECUG社区发起人. ...

  6. 微软亚太研发集团高性能计算首席架构师徐明强访谈:我的成长启示录

    记者 / 陈秋歌 [caption id="attachment_4516" align="alignright" width="200" ...

  7. 在首席架构师眼里,架构的本质是……

    在首席架构师眼里,架构的本质是-- 浏览次数:117次 36 氪 2016年03月03日 字号: 大 中 小 分享到:QQ空间新浪微博腾讯微博人人网豆瓣网开心网更多0 编者按:本文作者王庆友,前 1号 ...

  8. 葡萄城首席架构师:前端开发与Web表格控件技术解读

    讲师:Issam Elbaytam,葡萄城集团全球首席架构师(Chief Software Architect of GrapeCity Global).曾任 Data Dynamics.Inc 创始 ...

  9. 资深首席架构师眼中的架构应该是什么样子的

    "架构的视角每个人都不一样,这位在eBay.携程.唯品会等平台型互联网公司都工作过的老司机就以平台架构视角和大家分享架构心得体会.一家之言,欢迎讨论. 本文首发于InfoQ垂直公众号「聊聊架 ...

最新文章

  1. Spring Boot+Redis+拦截器+自定义Annotation实现接口自动幂等
  2. 3D Button Suite
  3. wxWidgets随笔(7)-utf8中文(3)
  4. vpx8运行待解决问题
  5. python之collections之有序字典(OrderedDict)
  6. 再提“鸿蒙”,任正非说这是为物联网而生;硅谷公司年薪报告出炉,谷歌年薪居榜首;苹果CEO库克接班人浮出水面,苹果高层或大换血?...
  7. Quartus II 与ModelSim-SE联合仿真Shift_ram
  8. BZOJ1968: [Ahoi2005]COMMON 约数研究
  9. 《史无前例!编程语言python斩获最有发展第一与排行榜第三!》深入 Python 流程控制
  10. 为什么修电脑的叫自己不要杀毒和清理垃圾?
  11. 别双击闪存盘 惊醒病毒就不得了
  12. 数据防泄漏对于数据安全的重要性
  13. 淘系技术虚拟AI技术创新未来,斩获IJCAI2021 Video Competition Award
  14. JavaScript—进阶篇
  15. int转long Long型
  16. 京东主图视频上传,如何关联商品投放?
  17. atl常量暴露的最简便方法
  18. Fiddler对手机或模拟器的网络请求抓包
  19. python实现水滴筹页面的数据统计
  20. 【BYM】Android 仿百度搜索列表滑动效果,写的太详细了

热门文章

  1. ADSL开机自动拨号
  2. python easyicon同类型ico图片批量爬取
  3. 软考系统集成PV、EV、AC、BAC、EAC、ETC等的含义及计算公式
  4. RQNOJ 169 最小乘车费用:水dp
  5. 文献阅读-融合注意力机制的 IETM 细粒度跨模态检索算法
  6. 涉密资质是什么?有哪些好处
  7. python QT designer tableview 滑条QScrollBar样式设置后失效解决方案
  8. python 读写json文件
  9. 合肥移动护理查房车维护,医疗器械维修
  10. Vue.js基于Springboot的校园新闻发布网站-java毕业设计成品源码