在理想的情况下,网络安全人员必须以企业高管能够理解、发现有用、满足好奇心并导致可操作结果的方式衡量和报告网络安全。 在网络安全方面可以衡量什么? 大多数利益相关者通常对风险、合规性或保证存在疑问。不幸的是,这些问题通常无法使用单一数据点来回答。幸运的是,为了解决利益相关者的问题和担忧,网络安全人员可以衡量各种各样的事情,这些可大致分类为: •控制:为应对威胁和降低信息风险而采取的措施。 •资产:企业拥有的任何有价值的物品。 •漏洞:系统中可能被威胁利用的弱点。 •威胁事件:由能够对资产造成损害的威胁发起的行动。 •安全事件:在中断、停机、系统关闭、数据泄露、网络钓鱼、勒索软件等方面成功影响业务的事件。 以上类别可以根据数量、时间或成本进一步细分。例如,通过数字可以衡量未打补丁的服务器的总数和百分比,未打补丁的服务器与所需基线和容量的比率,或者可能修补的服务器数量。通过时间可以衡量识别事件所花费的时间,或者特定网络威胁在一段时间内发生的频率。通过成本可以帮助企业从财务方面衡量事件的影响、恢复成本以及由于停机造成的业务损失。 为什么要关注KPI? 网络安全人员在向业务团队报告时必须选择最相关的指标。大多数网络安全团队专注于指标,这些是与资产、漏洞和威胁事件相关的基本指标。另一方面,执行团队关心关键绩效指标(KPI)和关键风险指标(KRI),因为这些指标可以帮助回答与信息安全风险、运行状况、准备工作和业务优先级相关的具体问题: •企业的系统安全吗? •安全投资是否为企业带来价值? •从安全角度来看,是否符合监管义务? •企业如何应对勒索软件攻击或供应链攻击? 这些都是KPI和KRI帮助回答的问题类型,这就是为什么网络安全人员必须专注于KPI和KRI的原因,衡量他们的安全性能、准备和有效性。 安全团队如何衡量网络安全? 构建正确的衡量框架是一个渐进的迭代过程,以下探索构建安全衡量周期所涉及的五个主要步骤: (1)定义需求 与利益相关者进行双向对话,以定义和理解他们的需求。在开始时,利益相关者并不总是对信息风险和他们自己的需求有很好的理解,因此需要一种更加自下而上的方法,即安全人员衡量他们认为重要的内容并向上报告。安全从业人员可以利用这些对话自己提出探究性问题,制定必要的议程。 (2)选择关键指标 一旦定义了利益相关者的需求,网络安全人员应该确定并选择有助于支持这些需求的关键指标,必须咨询所有利益相关者,并告知将在稍后阶段提出的衡量标准。 关键指标应使利益相关者能够采取行动或做出决定。这些关键指标应处于较高水平,且数量较少。其目标是帮助决策,而不是用数据来压倒或混淆人们。 (3)确定指标 在确定了企业的高层目标和指标之后,安全团队现在必须专注于确定有助于报告这些指标的基本指标。根据指标的确切性质,这可能涉及所需的几十个指标,涉及上述各种指标类别。 (4)收集和分析指标,计算关键指标 既然确定了需求,选择了关键指标并确定了衡量标准,网络安全人员现在可以开始收集和分析基于这些关键指标的数据。衡量标准必须只使用准确、及时、相关和值得信赖的数据。否则,企业高管可能会做出错误的决策,在业务方面造成严重后果。安全团队必须找到在持续的基础上收集这些数据的方法(大多数衡量需要查看随时间变化的趋势视图),并且最好使该过程尽可能自动化(人工过程可能很累且耗时)。 (5)向利益相关者报告关键指标 关键指标必须及时向决策者报告,安全人员和利益相关者应该就节奏达成一致:报告需要多长时间提交一次?报告风格也必须达成一致,因为不同的方法适合不同的利益相关者:是需要仪表板,还是幻灯片演示?关键指标应清晰可见,易于理解。最后,报告应该促进决策或行动。 最后,在每个报告周期之后,重要的是审查关键指标并与利益相关者重新验证它们。安全团队和利益相关者必须问,所报告的指标是否仍然具有价值?是否需要更改某些内容?如果业务需求确实发生了变化,那么必须重新定义需求并分析不同的指标。 不要忘记,网络威胁环境总是在变化,因此安全也必须同步发展。企业、利益相关者和网络安全人员不应该害怕倒退。快速失败、继续前进、即兴发挥或重新规划的能力是成功衡量网络安全的关键。 我正在学习如何使用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
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i