有时面试题会问的。
EDR(终端检测与响应)其实我觉得可以视为传统杀软的加强版。
Gartner 于 2013 年定义了这一术语,被认为是一种面向未来的终端解决方案,以端点为基础,结合终端安全大数据对未知威胁和异常行为进行分析,并作出快速响应,后来被业界通称为端点检测和响应 (EDR)。
端点威胁检测和响应 (ETDR) 一词是由 Gartner 分析师于 2013 年创造的,他写道:“这个名称反映了端点(相对于网络)、威胁(相对于恶意软件和官方宣布的事件)和工具“主要用于检测和事件响应”该术语于 2015 年更改为 EDR。
什么是端点?端点包括笔记本电脑、移动设备、工作站、服务器和任何网络入口点,几乎任何连接到组织网络的东西都应该被视为端点。
端点检测和响应平台执行以下关键功能:
收集有关流量、磁盘和内存信息、登录以及帐户活动的端点和网络数据
为安全团队提供文件和事件日志
当系统检测到异常或攻击时向安全运营中心 (SOC) 和安全分析师发出警报
分析收集的端点和网络数据,以便企业可以查看异常和正常流量的模式
执行补救任务,例如终止进程、阻止应用程序或运行脚本来阻止恶意行为
允许安全团队查看文件、事件日志、网络连接和配置
总之,EDR是一种主动式端点安全解决方案。EDR能够实时监控端点设备的活动,包括文件访问、进程执行、网络连接等,以便识别异常行为。同时,它使用行为分析、签名匹配、机器学习等技术来检测潜在的威胁和攻击模式,并快速响应检测到的威胁,如隔离感染设备、阻止攻击传播、修复漏洞等。EDR解决方案通常提供威胁搜寻、检测、分析和响应功能,旨在提高组织的安全性和降低风险。
EDR和传统杀毒软件之间其实存在一些重叠和交叉。甚至现在不少传统杀软都有EDR的特征。只不过理解起来EDR应该还是更加全面一些。。。EDR一般会利用大数据、人工智能等新技术来对对攻击者行为进行分析,但是其实不少传统杀软都能做到这些了。。。
EDR和传统杀软的不同我觉得主要有以下两点:
1.EDR要更加依赖于对端点上发生的事情的行为分析。他不严重依赖于签名。传统杀软往往见到你有微软、腾讯什甚至一些可信第三方么的签名就一般不会管你了。
例如,如果一个 正常的有签名的exe程序突然产生一个 PowerShell 进程并执行一个未知的脚本,这种行为是非常可疑的。那么,该文件就将被标记和隔离,直到确认该过程的安全性。但是在很多杀软里面,本身powershell的执行就是白名单。他不会管的。
2.EDR更加全面和体系化,统一管理做得好,有微隔离,有远程协助,有统一的病毒扫描和漏洞修复功能。甚至还能自动修复漏洞。总之这么一看就完全是传统杀软的升级版。
我们可以如此模拟一个EDR的使用。
假设场景:一个简单的EDR系统,用于监控Windows系统上的文件访问行为,并检测可疑的文件访问。
核心组件:
- 数据收集器:负责收集端点设备上的文件访问事件。
- 分析引擎:对收集到的数据进行分析,检测可疑行为。
- 响应模块:根据分析引擎的指示,执行相应的响应操作。
代码示例
# 假设我们有一个函数来模拟数据收集器,它返回文件访问事件
def collect_file_access_events():
# 这里只是模拟,实际情况下会从系统日志、文件监控工具等获取数据
return [
{"filename": "C:\\example\\normal_file.txt", "user": "Alice", "time": "2023-10-23 10:00:00"},
{"filename": "C:\\example\\suspicious_file.exe", "user": "Bob", "time": "2023-10-23 10:10:00"},
# ... 其他事件
]
# 分析引擎函数,用于检测可疑行为
def analyze_events(events):
suspicious_events = []
for event in events:
if event["filename"].endswith(".exe") and event["user"] == "Bob":
# 假设Bob用户访问.exe文件是可疑的
suspicious_events.append(event)
return suspicious_events
# 响应模块函数,根据可疑行为执行相应操作
def respond_to_suspicious_events(suspicious_events):
for event in suspicious_events:
print(f"Detected suspicious file access: {event['filename']} by user {event['user']}")
# 在这里可以添加更复杂的响应操作,如隔离设备、发送警报等
# 主程序
def main():
events = collect_file_access_events()
suspicious_events = analyze_events(events)
respond_to_suspicious_events(suspicious_events)
# 运行主程序
if __name__ == "__main__":
main()
版权归原作者 playmaker90 所有, 如有侵权,请联系我们删除。