草庐IT

如何通过可疑活动检测新威胁?

布加迪 2023-03-28 原文
未知的恶意软件构成了重大的网络安全威胁,可能对组织和个人造成严重损害。如果没有被检测出来,恶意代码就可以访问机密信息、破坏数据,并允许攻击者操控系统。本文介绍了如何避免这些情形,并有效地检测未知的恶意行为。

检测新威胁面临的挑战

虽然已知的恶意软件家族更容易预测,也更容易被检测出来,但未知的威胁可能以多种形式呈现,这就给检测它们带来了一系列挑战:

1. 恶意软件开发人员使用多态性,这使他们能够修改恶意代码,以便生成同一种恶意软件的独特变体。

2. 有些恶意软件仍未被识别,也缺少检测它们的任何规则集。

3. 一些威胁可能在一段时间内完全不可检测(FUD),这给边界安全出了难题。

4. 代码常常是经过加密的,因此很难被基于特征的安全解决方案检测出来。

5. 恶意软件的编写者可能使用一种“少量而缓慢”的方法,即在很长一段时间内通过网络发送少量恶意代码,因而加大了检测和拦截的难度。这在企业网络中尤其具有破坏性,因为无法深入了解环境可能导致未被检测出来的恶意活动。

检测新威胁

研究人员在分析已知的恶意软件家族时,可以充分利用关于恶意软件的现有信息(比如行为、攻击载荷和已知漏洞),以便检测和响应它。

不过在应对新威胁时,研究人员必须从头开始,使用以下指南:

第1步:使用逆向工程来分析恶意软件的代码,以确定其目的和恶意性质。

第2步:使用静态分析来检查恶意软件的代码,以确定其行为、攻击载荷和漏洞。

第3步:使用动态分析来观察恶意软件在执行期间的行为。

第4步:使用沙盒机制在隔离的环境中运行恶意软件,以观察其行为,又不损害系统。

第5步:使用启发式方法,根据可观察到的模式和行为来识别可能恶意的代码。

第6步:分析逆向工程、静态分析、动态分析、沙盒机制和启发式方法的结果,以确定代码是不是恶意代码。

外头有众多工具可以帮助你完成上面这5个步骤,从Process Monitor、Wireshark到ANY.RUN,不一而足。但如何得出一个准确的结论?在拥有所有这些数据的同时,你又应该注意什么?

答案很简单:关注恶意行为的指标。

监控可疑活动以实现高效检测

不同的特征被用来检测威胁。在计算机安全术语中,特征是与计算机网络或系统上的恶意攻击相关联的典型足迹或模式。

这些特征的一部分是行为特征。在操作系统中做了一番手脚而不留下跟踪是不可能做到的。我们可以通过可疑活动来识别是什么软件或脚本。

你可以在沙盒中运行可疑程序,以观察该恶意软件的行为,并识别任何恶意行为,比如:

异常的文件系统活动

可疑的进程创建和终止

异常的网络活动

读取或修改系统文件

访问系统资源

创建新用户

连接到远程服务器

执行其他恶意命令

利用系统中的已知漏洞

微软Office启动了PowerShell,是不是觉得看起来很可疑?一个应用程序将自己添加到计划任务中,一定要注意它。svchost进程在临时注册表中运行,肯定哪里出了岔子。

你总是可以通过行为检测到任何威胁,即使没有特征。

不妨证明一下。

第一个用例

这是窃取器的一个样本。它执行什么操作?窃取用户数据、cookie和钱包等。我们如何才能检测它?比如说,当该应用程序打开Chrome浏览器的Login Data(登录数据)文件时,它就会暴露自己。

图1. 窃取器的可疑行为

网络流量中的活动还显露了威胁的恶意意图。合法的应用程序永远不会发送凭据、操作系统特征及本地收集的其他敏感数据。

以流量为例,恶意软件可以通过众所周知的功能检测出来。Agent Tesla在一些情况下并不加密从受感染的系统发送的数据,如该样本所示。

图2. 网络流量中的可疑活动

第二个用例

没有多少合法的程序需要停止Windows Defender或其他应用程序来保护操作系统或者把自己排除在外。每当你遇到这种行为,这是可疑活动的迹象。

图3. 可疑行为

应用程序是否删除影子副本?如果是,看起来像是勒索软件。它是否删除影子副本,并在每个目录中创建带有自述文本的TXT/HTML文件?这是表明它是勒索软件的另一个例子。

如果用户数据在这个过程中被加密,我们基本可以确定它是勒索软件。就像这个恶意例子(https://app.any.run/tasks/39633ba6-7cd7-441a-97f6-9556fc1f0056/?utm_source=hacker_news&utm_medium=article&utm_campaign=detect_new_threats0223&utm_cnotallow=task3)中发生的情况一样,即使我们不知道恶意软件家族,也可以识别出该软件构成什么样的安全威胁,然后见机行事,采取措施来保护工作站和组织的网络。

图4. 勒索软件的可疑行为

根据沙盒中观察到的行为,我们可以对几乎所有类型的恶意软件得出结论。不妨尝试ANY.RUN在线互动服务来监测恶意软件,你可以立即得到初期结果,并实时看到恶意软件的所有活动,这正是我们揪出可疑活动所需要的。

结语

网络犯罪分子可以利用未知威胁向企业勒索钱财,并发动大规模网络攻击。即使恶意软件家族没有被检测出来,我们也总是可以通过观察分析其行为来推断威胁的功能。利用这些数据,就可以构建信息安全以防止任何新的威胁。行为分析在不增加成本的情况下增强了应对新型未知威胁的能力,并加强了贵组织的保护。

本文翻译自:https://thehackernews.com/2023/02/how-to-detect-new-threats-via.html

有关如何通过可疑活动检测新威胁?的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  3. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  4. ruby-on-rails - 如何验证 update_all 是否实际在 Rails 中更新 - 2

    给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru

  5. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  6. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  7. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  8. ruby - 如何指定 Rack 处理程序 - 2

    Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack

  9. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

    在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

  10. ruby-on-rails - 如何从 format.xml 中删除 <hash></hash> - 2

    我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为

随机推荐