首页 文章 精选 留言 我的

精选列表

搜索[思考控制],共10005篇文章
优秀的个人博客,低调大师

对incaseformat蠕虫事件一些思考

昨天incaseformat蠕虫病毒在全国爆发,各大安全厂商相继发布公告,安全产业似乎又迎来了新的发展机会...... 全国的安全厂商都在报道这个蠕虫事件,估计有一个人会坐立不安,那就是这个病毒的作者,至于原因,大家应该都懂的(开个玩笑)...... 其实这个病毒早在2009年就开发出来了,作者估计本来是想在愚人节的时候闹一下,也没想因为一个BUG,这款病毒在12年后会在全国爆发,引起这么大的动静,估计昨天作者看到了各大安全厂商的报道,才知道自己的“作品”受到了这么大的“欢迎”,也许这位作者已经成为了”某个安全厂商“的安全”砖”家,也许这位作者已经转行了,也许这位作者还在从事”黑产“活动,大家自由猜想吧,虽然这款病毒本身没有赢利,然后这也可以按破坏计算机信息系统罪来处置了,这次病毒的影响不亚于当年的”熊猫烧香“,而且两款病毒的技术含量也都很低,这款病毒相比”熊猫烧香“,可能技术含量更低一层了,”熊猫烧香“还多了几个感染、下载、自传播模块,这款病毒是型典的破坏型蠕虫病毒,其实这类病毒在十几年前非常流行,当时有很多U盘蠕虫病毒,十几年过去了,没想到这样的一款简单的蠕虫病毒又在全国有这么大的影响,这究竟是什么原因引起的呢? 笔者从05年开始研究病毒,到现在差不多十几年了,从PC时代(Windows/Linux)病毒到后面研究移动端(安卓,IOS)病毒,OSX(Mac)病毒,以及最近两三年新起的IOT僵尸网络病毒等,从业十几年基本上各个平台的恶意软件都有深入研究,这几年做To B,主要从事PC病毒的研究,基于Window/Linux两大平台,好像又转了一个大圈回来,笔者常常会听到一些人说“现在没有病毒了”,我用“mac"安全,Mac没有病毒,"Linux系统也没有病毒"之类的,其实就是不懂病毒,不懂安全这个行业吧了,不管是几十年前,还是现在计算机病毒一直存在,并没有减少,反而越来越多了,只是因为某些原因关注的人少了,至于原因我后面讲吧,从几十年前DOS平台上COM感染型病毒,到后面Window系统以后的蠕虫病毒,感染型,远控,木马,后门,下载者,DDOS病毒,直到现在最近几年比较流行的挖矿病毒,勒索病毒,IOT僵尸网络病毒,APT特马等等,可以说计算机病毒一直存在,从未消失过,只是在不同的时代,表现形式和攻击方式会有不一样,因为黑产的赢利模式会随着时代的变化而变化,以前大多数黑客写病毒就是为了”好玩“,”炫技“,现在大多数黑客组织只有一个目的就是”赚钱“,还有一些高端的黑客组织会成为国与国之间进行网络安全战争的”特种部队“,这种高端的黑客组织会基于政治和军事目的定向的攻击其他国家的重要政企单位,获得核心数据。 其实蠕虫类,感染型类的病毒,在现在基本没啥意义了 ,因为他们只能造成一些破坏性动作,而且随着操作系统的升级大部分蠕虫,感染型病毒已经失去了作用,只能在一些老的操作系统上运行,基本没啥危害了,现在主要的危害就是勒索病毒,挖矿病毒,僵尸网络和APT特马等。 上面简单给大家科普了一些病毒方向的知识,下面来讲讲这次蠕虫事件引发全国”烘动“,可以从这次现象,看到哪些本质的东西。 通过这次事件,可以说明现在企业病毒真的是太多了,先不要说现在新型窃密,远控,后门和APT特马病毒了,就是很多老的病毒都还没有清理干净,十几年前的很多旧病毒家族,还在国内很多企业中安安静静的”躺着“,那为什么会造成这种形象呢?难倒这些病毒安全厂商就没有办法,其实很多老的病毒,安全厂商都是可以完全清理的,包含各种感染型病毒,蠕虫病毒,只是现在关注病毒的人少了,做病毒研究的人少了吧了,为什么会导致现在这种形象?一个十几年前的蠕虫病毒,究竟能在全国引起这么大的动静,安全圈一直在炒作:大数据,数据安全,然后就是说:传统安全没用之类的,其实这次的安全就是一次”传统“安全的很普通的一次事件,这样的事件,在十几年前的安全厂商病毒研究人员那里,基本上天天会遇到,每天都会分析各种蠕虫病毒,感染型家族样本,以及后面的鬼影病毒等,然而在十几年后的今年,一个十几年前的蠕虫病毒,究竟能引起这么大的影响,to C安全的春天是不是要回来了,哈哈哈哈。 咱先不说老的那些病毒了,什么蠕虫 ,感染型病毒的,其实现在各种新型的病毒很多,为什么现在研究病毒的人少了?大家为啥不关注了,我来说一下自己的一些观点吧。 很多年以前的安全厂商其实大家重点研究的就是病毒,反病毒工程师是每个安全厂商必不可少的职位,反病毒工程师的工作就是每天捕获最新的病毒样本,然后进行逆向分析,提取相应的特征,集成到杀毒软件的引擎里面,这样的日子过的充实而有激情,当年的杀毒软件是付费的,然而突然之间出现了一家厂商免费提供这种服务,于是其他厂商的日子就过的越来越艰难了,然后这家厂商在做大之后,就通过流量广告等等来赚钱,后面也不做安全,去做了其他很多事情,导致其他厂商的安全从业者纷纷转行了,因为”安全“不赚钱,大家都要生存,只能转行了,能坚持做安全的很少很少了,这就导致现在研究病毒的人越来越少了。 研究的人少了,自然就会认为病毒少了,因为发现"问题"的人少了,"问题"就自然没有了,然后很多人就会说“现在没有病毒了”,再加上一些新型的名词开始炒作,各种新型的产品的推出,大数据,AI加入进来,后面更多的人开始去做大数据,做AI,其实这些人大部分人根本不懂安全,也不懂计算机病毒,然后这批人就会说这是传统安全,我们要做“新型”安全,就变成了现在这个局面,反病毒工程师这个名词在国内基本消失了,现在大家都叫安全分析师,其实真正的安全分析师不就是以前的反病毒工程师吗?然后现在又推出数据安全工程师之类的,总之各种新的名词出现,整个安全行业又重新燃起了希望,to c安全不赚钱,很多以前的安全从业人员,要么去做其他安全了,要么就直接转行做别的了,还有一些做了管理也基本不研究安全技术了,现在又有很多新型的病毒出现,大家就把希望寄托在了大数据,AI安全上面,这样就导致”传统“安全的人越来越少,也就是研究病毒的人越来越少了,很多”新型“的安全研究人员,不太懂病毒,对病毒不了解,也不认识病毒,其实也怪这款病毒太老了,他们没机会认识。 其实不管是to c安全,还是to b安全,安全问题一直没有变化,只是之前关注的人少,现在关注的人多了吧了,就像我说的,现在还有多少企业被攻击监控植入了木马后门,是一个未知数,企业的数据一直被黑客组织监控并获取,安全的路还很长,一次病毒的爆发仅仅是安全问题的冰山一角,其实还有更多的新型病毒被黑客组织研究,用于对一些重要的政企单位进行定向攻击使用,安全的路还很长,路漫漫其修远兮,吾将上下而求索。 基于这次病毒爆发事件,谈谈自己的一些感想,也给大家普及一下病毒的相关知识,借用一句话:这是一个最好的时代,也是一个最坏的时代,历史总是惊人的相似,各种病毒横行,安全未来可期,机会无处不在。

优秀的个人博客,低调大师

Data Vault的一点思考(三)

前段时间和一家互联网创新企业的数据架构师聊天,说他们正准备开始用Data Vault的模型进行数据仓库的建设,他们有一套维度建模的集市,但是维度建模的特点是更贴业务,但是对于数据的存储不是很友好,对于数据友好,他们是想在维度集市之前,加一层Data Vault的数据层。 其实这个数据架构也就很明白啦。ER来说太突出从上往下的关系,但是现在的创新企业的数据架构的关系还不明确,不好去表达,那Data Vault 是一个很好的选择,综合了ER和DM。同时还是保留原有的维度集市进行数据分析。这说明该企业已经有了一定的数据结构的大方向,只是细节还是不确定,那么Data Vault就是一个很好的载体,也是一个很好的解决方案。有一点是需要探讨的是,习惯了维度建模的架构师,怎么去建立好这个数据层呢?有一点无法逾越的是,维度建模强调业务,就是有用的放在一块,如果面向数据,不可避免的是要对数据进行整理,那整理就会有类似主题的概念,所以个人认为Data Vault要有一个弱主题的形式存在,不然太散,Hub太多,不好维护。当然也不要像是ER那种强主题形式,也不适合。还有一点就是用ER地有一个特点就是业务逻辑简单,但是实际场景复杂,而DM是另外一方面,业务逻辑多变,但实际场景简单。但是当DM这一方,想去尝试多个场景的,同时业务逻辑会更多变时,那维度模型似乎就是支撑不了。因为应付一个场景的多变的需求还可以,和同时应付多个场景的多变需求,而且多个场景的数据之间还有关联,那么就需要一个能够体现关系的模型出现。Data Vault是一个很好的选择。总结一下,数据越是需要反应关系,其路径就是如图所示,一步步递进,最终是ER。

优秀的个人博客,低调大师

关于服务器性能排查的思考

服务器上性能排查的经验不多,这里算对以往经验的一个总结吧! 服务性能排查一般就两种:高内存占用或高CPU占用,需要具体问题具体分析。比如应用程序高内存占用,可能因为大文件读取、频繁IO,内存消耗频繁,导致频繁GC,进一步占用内存和CPU;比如应用程序高CPU占用,可能在执行大任务计算,或者死循环、卡死,或者不断超时、重试(活锁是容易占CPU的,死锁和饥饿是容易占内存的,因为资源不释放)。 应用进程还活着,但页面出不来、不响应,这种是高CPU,高内存是应用响应慢或者内存溢出、直接死掉。 从这两个方向考虑,比如: 高CPU占用的话,关注一下,是user态占用率高还是sys态占用率高,闲置多少;占用率高的进程是否频繁变动;load平均负载是否过载(超过70%)。如果user态CPU占用率过高,意味着应用在做高耗CPU的任务;如果sys态占用率过高,则意味着内核态的操作比较多比如IO复制;如果占用率高的线程频繁变动,则可能是CPU时间片不断调度,线程唤醒跑一下而后换另一个线程跑,需要看多线程任务是否存在大计算问题,以及线程池设置是否合适等; 高内存的话,关注一下,free可用内存有多少,buff、cache还有多少;swap交换区是否过高,这通常是因为未禁用swap区而内存又不足,导致swap频繁读写,性能低下;sar内存变化曲线,是稳定上升还是高低曲线,前者意味着某个函数存在内存泄漏问题,而后者意味着有某个高内存运算任务在线程池里唤醒重试; 更实际的情形是,应用出现高应用或者高CPU的问题时,你只有30秒到两三分钟来快速定位问题,而后就要马上重启应用,避免影响到正常业务。像高CPU,可能连日志都没有,因为请求没进来,很多时候你都需要去前后dump线程堆栈或内存堆栈,以保留现场方便后续分析工作。成熟的线上环境,一般会有仪表大盘和监控预警,内存或CPU超过阈值你就需要立马去关注了,或应用发布回滚,在线下验证问题。 一般出问题时,首先去看监控大盘,有没有异常告警,看不出问题来再去查看系统层面有没有异常: 通过top或htop命令观察系统的整体情况,很容易拿到占用CPU或内存较高的进程ID; 先通过ps aux | grep [PID]进一步确定是Java进程还是服务器上其它进程; 如果是CPU占用高,通过pidstat查看该进程,然后用perf/trace+PID,抓取CPU消耗栈来找到引发瓶颈的具体的函数名,结合业务代码来分析问题具体在哪儿; 通过ps -mp pid -o THREAD,tid,time 找到具体的线程ID; printf "%x\n" [TID]] 将线程id转换为16进制 如果是内存占用高,通过free命令查看内存的使用情况,然后通过pmap/jmap命令查看进程的内存分布 或是通过vmstat命令查看内存使用的变化趋势,用memleak -a -p [PID]查看内存分配栈,定位到是哪个函数内存泄漏了 如果CPU、内存没问题,就要去看磁盘,通过df命令和iostat命令去查看磁盘空间和I/O情况; load平均负载和CPU使用率是有区别的,一个是单位时间内的活跃进程数,一个是单位时间内CPU空闲时间与总CPU时间的比值。它们之间有一定的联系,比如在CPU密集型应用中,大计算量任务会导致大量的CPU被占用,平均负载升高,而在I/O密集型应用中,不可中断进程的增多会导致平均负载升高,但I/O等待不占CPU,CPU使用率并不一定会很高。 CPU性能排查时首先去查看CPU使用率,比如user用户态较高,则往应用进程的性能问题去排查;如果sys内核态较高,则往系统调用的性能问题去排查。但很多时候,监控告警之后,等你登陆服务器时性能问题已经结束了,这样在线分析就看不出问题了,就需要从load平均负载、sar历史记录去回溯。 写的很粗,关于上下文切换的问题不是很懂,没写进去。如果有不同的意见建议,欢迎拍砖

优秀的个人博客,低调大师

Data Vault的一点思考(二)

现在的企业,只要是有点规模的,已经不仅仅是有ER这一套数据仓库模型来做数据,如现在很多企业从原有的线下转到线上,就不得不面临DM这一套数据模型,或者是线下和线上都有,而且是相互促进的(个人认为这是发展趋势的必然),但是貌似来说现阶段线上企业用DM这一套模型,现在更火,因为现在还是处在线下往线上发展的阶段,很多创业公司只要是线上的,数据的分析是必然,那怎么把数据组织好把数据给下游用,现在的主流是DM。 那么我们聊点远的,假设一个条件,有一家公司不管从现在线下往线上发展而来(如传统行业转型成功的),还是从线上去融合线下的(如创新型公司进过几年的发展,成为独角兽)。都会去面临线下和线上融合的问题,当然最好的结果是线下和线上相互促进相互依赖的。那么当这个情况已经发生,数据仓库模型怎么去变,Data Vault 是不是一个可选项。个人认为这是可以的。就像数据仓库的作用一样是解决的是原先多对多的效率低的问题,有了数据仓库,就是变成两边的一对多,不管是对上游业务数据,还是对下游指标类需求。虽然结构上多了一层,但是效率大大提升。那么在一个线下和线上都已经有规模的企业,将两者数据模型的数据放在一块,是不是就能解决两者之间的相互协作带来的效率低下,就像两个轮子,Data Vault是不是成为两个轮子的链条,甚至两个轮子合并,就是Data Vault所说的样子,还是有待验证的。但个人认为比较认同这个路径的,但发展成什么样子,实践是最重要的。综合以上说法来看,上图所体现的是传统企业转型,数据模型的走向,总共有3步。下一讲说说创新企业的数据模型思路。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册