精华内容
下载资源
问答
  • 代码安全审计实践

    2021-01-13 14:27:24
    代码安全审计实践代码安全审计的内容代码安全审计的工具源码安全检查第三方依赖包安全代码安全审计的落地参考文档 2020年安全相关的事务变多了,也因此更注重安全合规相关的工作了。其中代码安全审计是安全开发生命...

    2020年安全相关的事务变多了,也因此更注重安全合规相关的工作了。其中代码安全审计是安全开发生命周期(SDL)中重要的内容,这一年中也正好负责这块的相关工作,这边做个小结。

    代码安全审计的内容

    通常关于代码的安全问题有两类:

    • 源码安全分析:通过对源代码进行审查,找出并修复代码中的各种可能影响系统安全的潜在风险,通过提高代码的自身质量,达到降低系统风险的目的。往往由于代码量大,代码安全审计一般会借助静态分析类工具,对代码进行自动检测,产生代码安全审计报告。

    • 第三方依赖包安全:扫描应用程序(及其依赖库),执行检查时会将漏洞数据库下载到本地,再通过核心引擎中的一系列分析器检查项目依赖性,收集有关依赖项的信息,然后根据收集的依赖项信息与本地的CPE&NPM库数据进行对比,如果检查发现扫描的组件存在已知的易受攻击的漏洞则标识,最后生成报告进行展示。

    常见漏洞库

    • 美国
      • 赛门铁克的漏洞库 https://www.securityfocus.com/
      • 美国国家信息安全漏洞库 https://nvd.nist.gov/
      • 全球信息安全漏洞指纹库与文件检测服务 http://cvescan.com
      • 美国著名安全公司Offensive Security的漏洞库https://www.exploit-db.com/
      • CVE(美国国土安全资助的MITRE公司负责维护) https://cve.mitre.org/
    • 工控类
      • 美国国家工控系统行业漏洞库 https://ics-cert.us-cert.gov/advisories
      • 中国国家工控系统行业漏洞:http://ics.cnvd.org.cn/
    • 国内:
      • 中国国家信息安全漏洞共享平台(由CNCERT维护): http://www.cnvd.org.cn
      • 国家信息安全漏洞库(由中国信息安全评测中心维护):http://www.cnnvd.org.cn/
      • 绿盟科技-安全漏洞:http://www.nsfocus.net/index.php?act=sec_bug

    代码安全审计的工具

    源代码安全分析

    源代码安全分析的核心在于分析挖掘代码中的内部逻辑关系,从而发现其存在的漏洞;同时进一步尽力发掘设计、运行时逻辑中存在的问题。其主要的思路为:

    代码原始信息提取
    代码内部逻辑关系分析
    漏洞特征分析
    漏洞检测判定

    源代码安全分析应有两个方向:

    • 针对源代码的审计:
      基于源代码的静态扫描,没有中间文件生成。主要通过收集数据流,生成dom节点,根据上下语义进行分析。
      针对源代码的审计的主要特点为可以不需要编译,直接分析出源代码的漏洞。主要的代表为:Checkmax。
    • 针对二进制代码的审计:
      依赖构建编译的文件,主要的分析技术为:内存建模,符号执行,数据流,路径裁剪等。
      针对二进制代码的审计需要依赖构建环境。主要的代表为:Sonar。

    当然也有厂商采用两者结合的方案,比如:Fortify。

    第三方依赖包安全分析

    第三方依赖包安全检查用于扫描应用程序(及其依赖库),执行检查时会将 Common Platform Enumeration (CPE)美帝国家漏洞数据库及NPM Public Advisories库下载到本地,再通过核心引擎中的一系列分析器检查项目依赖性,收集有关依赖项的信息,然后根据收集的依赖项信息与本地的CPE&NPM库数据进行对比,如果检查发现扫描的组件存在已知的易受攻击的漏洞则标识,最后生成报告进行展示。

    对于第三方依赖包的检测,比较常用的是OWASP(Open WebApplication Security Project)的开源项目,主要有两个:

    • DependencyCheck:
      开发团队使用的工具,用于识别项目依赖项并检查是否存在任何已知的,公开披露的漏洞。主要针对单个项目。支持Java、.NET、Ruby、PHP、Node.js、Python等语言编写的程序,并为C/C++构建系统(autoconf和cmake)提供了有限的支持。同时支持和许多主流的软件进行集成,比如:命令行、Ant、Maven、Gradle、Jenkins、Sonar等。
      官网:https://owasp.org/www-project-dependency-check/
    • DependencyTrack:
      安全团队使用的工具,实现第三方组件的安全统一管理。
      官网:https://dependencytrack.org/

    代码安全审计的落地

    关于代码安全审计,主要的问题在于:误报、漏报。一般情况下,代码审计工具采用清洗、以及自定义规则的方式,应对上述问题。

    自定义漏洞规则
    自定义清洗规则
    代码
    初步漏洞报告
    漏洞报告

    因此,在实际代码安全审计操作过程中,主要在于在实践中不断的:

    1. 调整自定义漏洞规则,以完善漏洞库;
    2. 调整自定义清洗规则,以减少误报率;

    通常在初步引入代码安全审计时,通常:

    • 先适当的选择部分的工程,能过这批次的工程,调整漏洞规则、清洗规则,得到可接受的工程落地结果;
    • 而后适当的增加工程,不断重复上述的步骤,直到所有的工程都进行代码审计为止;

    按介绍经验,预计上述步骤需要经历半年到一年的时间,才能完成代码审计工具的引入。

    参考文档

    • https://github.com/dependency-check-team/dependency-check
    • https://www.microfocus.com/zh-cn/products/static-code-analysis-sast/overview
    • https://docs.sonarqube.org/latest/
    展开全文
  • 基于内容分类技术网络内容安全审计系统应用,胡亮,,随着互联网普及以及快速发展,基于互联网应用技术要求不断提出。信息检索领域文本分类技术已经作为一项重要技术在互联网
  • 安全审计内容 简化版

    2012-05-31 09:44:04
    网络层面、系统层面、应用层面、业务层面与审计相关的内容和要求。
  • 基于内容的网络信息安全审计系统,论文资料分享给朋友们
  • 为了解决在代码安全审计过程中没有结合XXXX 公司实际情况安全策略和 安全审计基线问题,XXXX 公司因此邀请在业界在软件安全开发和安全审计方 面有丰富实践经验咨询人员针对XXXX 公司实际状况作安全咨询,...
  • 监控os的cpu利用率能算是安全审计的功能之一吗?我总认为安全审计就是主要分析日志的过程,不能跟监控之类本来属于网管的内容扯在一块.抑或是我自己太纠缠于概念还是的确应该搞清楚概念?安全审计概述审计是对访问...

    网络安全领域的安全审计和网络管理领域的监控技术他们之间的关系如何定位?安全审计和网络管理如何界定他们的工作范围?监控os的cpu利用率能算是安全审计的功能之一吗?我总认为安全审计就是主要分析日志的过程,不能跟监控之类本来属于网管的内容扯在一块.抑或是我自己太纠缠于概念还是的确应该搞清楚概念?

    31f9af9fee36159991f0610696098b53.png

    安全审计概述

    审计是对访问控制的必要补充,是访问控制的一个重要内容。审计会对用户使用何种信息资源、使用的时间,以及如何使用(执行何种操作)进行记录与监控。审计和监控是实现系统安全的最后一道防线,处于系统的最高层。审计与监控能够再现原有的进程和问题,这对于责任追查和数据恢复非常有必要。

    审计跟踪是系统活动的流水记录。该记录按事件从始至终的途径,顺序检查、审查和检验每个事件的环境及活动。审计跟踪通过书面方式提供应负责任人员的活动证据以支持访问控制职能的实现(职能是指记录系统活动并可以跟踪到对这些活动应负责任人员的能力)。审计跟踪记录系统活动和用户活动。系统活动包括操作系统和应用程序进程的活动;用户活动包括用户在操作系统中和应用程序中的活动。通过借助适当的工具和规程,审计跟踪可以发现违反安全策略的活动、影响运行效率的问题以及程序中的错误。审计跟踪不但有助于帮助系统管理员确保系统及其资源免遭非法授权用户的侵害,同时还能提供对数据恢复的帮助。

    1、审计内容

    审计跟踪可以实现多种安全相关目标,包括个人职能、事件重建、入侵检测和故障分析。

    1)个人职能(individualaccountability)。审计跟踪是管理人员用来维护个人职能的技术手段。如果用户被知道他们的行为活动被记录在审计日志中,相应的人员需要为自己的行为负责,他们就不太会违反安全策略和绕过安全控制措施。例如;审计跟踪可以记录改动前和改动后的记录,以确定是哪个操作者在什么时候做了哪些实际的改动,这可以帮助管理层确定错误到底是由用户、操作系统、应用软件还是由其他因素造成的。允许用户访问特定资源意味着用户要通过访问控制和授权实现他们的访问,被授权的访问有可能会被滥用,导致敏感信息的扩散,当无法阻止用户通过其合法身份访问资源时,审计跟踪就能发挥作用。审计跟踪可以用于检查和检测他们的活动。

    2)事件重建(reconstructionofevents)。在发生故障后,审计跟踪可以用于重建事件和数据恢复。通过审查系统活动的审计跟踪可以比较容易地评估故障损失,确定故障发生的时间、原因和过程。通过对审计跟踪的分析就可以重建系统和协助恢复数据文件;同时,还有可能避免下次发生此类故障的情况。

    3)入侵检测(intrusiondetection)。审计跟踪记录可以用来协助入侵检测工作。如果将审计的每一笔记录都进行上下文分析,就可以实时发现或是过后预防入侵检测活动。实时入侵检测可以及时发现非法授权者对系统的非法访问,也可以探测到病毒扩散和网络攻击。

    4)故障分析(problemanalysis)。审计跟踪可以用于实时审计或监控。

    2、安全审计的目标

    审计技术出现在计算机技术之前,是产生、记录并检查按时间顺序排列的系统事件记录的过程。安全审计是计算机和网络安全的重要组成部分。安全审计提供的功能服务于直接和间接两方面的安全目标:直接的安全目标包括跟踪和监测系统中的异常事件,间接的安全目标是监视系统中其他安全机制的运行情况和可信度。

    所有审计的前提是有一个支配审计过程的规则集。规则的确切形式和内容随审计过程具体内容的改变而改变。在商业与管理审计中,规则集包括对确保商业目标的实现有重要意义的管理控制、过程和惯例。这些商业目标包括资源的合理使用、利率最大化、费用最小化、符合相应的法律法规和适当的风险控制。在计算机安全审计的特殊情况下,规则集通常以安全策略的形式明确表述。并且,为了能完成合理的审计数据分析,策略表中还需要增加一些不容易明确表述的规则。

    尽管从抽象意义上讲,传统的金融和管理审计与计算机安全审计的过程是完全相同的,但它们各自关注的问题有很大不同。计算机安全审计是通过一定的策略,利用记录和分析历史操作事件发现系统的漏洞并改进系统的性能和安全。计算机安全审计需要达到的目的包括:对潜在的攻击者起到震慑和警告的作用;对于已经发生的系统破坏行为提供有效的追究责任的证据;为系统管理员提供有价值的系统使用日志,帮助系统管理员及时发现系统入侵行为或潜在的系统漏洞。

    JamesP.Anderson在1980年写的一份报告中对计算机安全审计机制的目标作了如下阐述:

    1)应为安全人员提供足够多的信息,使他们能够定位问题所在;但另一方面,提供的信息应不足以使他们自己也能够进行攻击。

    2)应优化审计追踪的内容,以检测发现的问题,而且必须能从不同的系统资源收集信息。

    3)应能够对一个给定的资源(其他用户也被视为资源)进行审计分析,分辨看似正常的活动,以发现内部计算机系统的不正当使用;

    4)设计审计机制时,应将系统攻击者的策略也考虑在内。

    概括而言,审计系统的目标至少包括:确定和保持系统活动中每个人的责任;确认重建事件的发生;评估损失;临测系统问题区;提供有效的灾难恢复依据;提供阻止不正当使用系统行为的依据;提供案件侦破证据。

    3、安全审计系统

    审计是通过对所关心的事件进行记录和分析来实现的,因此审计过程包括审计发生器、日志记录器、日志分析器和报告机制几部分。

    1.日志的内容

    在理想的情况下,日志应该记录每一个可能的事件,以便分析发生的所有事件,并恢复任何时刻进行的历史情况。然而,这样做显然是不现实的,因为要记录每一个数据包、每一条命令和每一次存取操作,需要的存储量将远远大于业务系统,并且将严重影响系统的性能。因此,日志的内容应该是有选择的。一般情况下,日志记录的内容应该满足以下原则:

    1)日志应该记录任何必要的事件,以检测已知的攻击模式。

    2)日志应该记录任何必要的事件,以检测异常的攻击模式。

    3)日志应该记录关于记录系统连续可靠工作的信息。

    在这些原则的指导下,日志系统可根据安全要求的强度选择记录下列事件的部分或全部:

    1)审计功能的启动和关闭。

    2)使用身份鉴别机制。

    3)将客体引入主体的地址空间。

    4)删除客体。

    5)管理员、安全员、审计员和一般操作人员的操作。

    6)其他专门定义的可审计事件。

    通常,对于一个事件,日志应包括事件发生的日期和时间、引发事件的用户(地址)、事件和源和目的的位置、事件类型、事件成败等。

    2.安全审计的记录机制

    不同的系统可采用不同的机制记录日志。日志的记录可能由操作系统完成,也可以由应用系统或其他专用记录系统完成。但是,大部分情况都可用系统调用Syslog来记录日志,也可以用SNMP记录。下面简单介绍Syslog。

    Syslog由Syslog守护程序、Syslog规则集及Syslog系统调用三部分组成。

    记录日志时,系统调用Syslog将日志素材发送给Syslog守护程序,Syslog守护程序监听Syslog调用或Syslog端口(UDP514)的消息,然后根据Syslog规则集对收到的日志素材进行处理。如果日志是记录在其他计算机上,则Syslog守护程序将日志转发到相应的日志服务器上。Syslog规则集是用来配置Syslog守护程序如何处理日志的规则。通常的规则可以是以下情况:

    1)将日志放进文件中。

    2)通过UDP将日志记录到另一台计算机上。

    3)将日志写入系统控制台。

    4)将日志发给所有注册的用户。

    3.安全审计分析

    通过对日志进行分析,发现所需事件信息和规律是安全审计的根本目的。因此,审计分析十分重要。日志分析就是在日志中寻找模式,主要内容如下:

    1)潜在侵害分析。日志分析应能用一些规则去监控审计事件,并根据规则发现潜在的入侵。这种规则可以是由已定义的可审计事件的子集所指示的潜在安全攻击的积累或组合,或者其他规则。

    2)基于异常检测的轮廓。日志分析应确定用户正常行为的轮廓,当日志中的事件违反正常访问行为的轮廓,或超出正常轮廓一定的门限时,能指出将要发生的威胁。

    3)简单攻击探测。日志分析应对重大威胁事件的特征有明确的描述,当这些攻击现象出现时,能及时指出。

    4)复杂攻击探测。要求高的日志分析系统还应能检测到多步入侵序列,当攻击序列出现时,能预测其发生的步骤。

    4.审计事件查阅

    由于审计系统是追踪、恢复的直接依据,甚至是司法依据,因此其自身的安全性十分重要。审计系统的安全主要是查阅和存储的安全。

    审计事件的查阅应该受到严格的限制,不能篡改日志。通常通过以下不同的层次保证查阅的安全:

    1)审计查阅。审计系统以可理解的方式为授权用户提供查阅日志和分析结果的功能。

    2)有限审计查阅。审计系统只能提供对内容的读权限,因此应拒绝具有读以外权限的用户访问审计系统。

    3)可选审计查阅。在有限审计查阅的基础上限制查阅的范围。

    5.审计事件存储

    审计事件的存储也有安全要求,具体有如下几种情况:

    1)受保护的审计踪迹存储。即要求存储系统对日志事件具有保护功能,防止未授权的修改和删除,并具有检测修改删除的能力。

    2)审计数据的可用性保证。在审计存储系统遭受意外时,能防止或检测审计记录的修改,在存储介质存满或存储失败时,能确保记录不被破坏。

    3)防止审计数据丢失。在审计踪迹超过预定的门限或记满时,应采取相应的措施防止数据丢失。这种措施可以是忽略可审计事件、只允许记录有特殊权限的事件、覆盖以前记录、停止工作等

    展开全文
  • 问题: ... 主要内容: 数据库审计主要用于监视并记录对数据库服务器各类操作...审计是一项非常重要工作,也是企业数据安全体系重要组成部分。 MySQL企业版自带审计功能,但是需要付费。MySQL社区版没有审...

     问题:

    解决:参考链接 https://www.jianshu.com/p/9ae11743e269

    主要内容:

    数据库审计主要用于监视并记录对数据库服务器的各类操作行为,并记入审计日志或数据库中以便日后进行跟踪、查询、分析,以实现对用户操作的监控和审计。审计是一项非常重要的工作,也是企业数据安全体系的重要组成部分。

    MySQL企业版自带审计功能,但是需要付费。MySQL社区版没有审计功能,基于成本的考虑,很多用户采用社区版MySQL作为业务系统数据库。采用社区版MySQL如何实现重要的审计功能,本文从自建和云服务两种情况来解答这个问题。

    自建MySQL数据库的场景

    本文自建数据库所有实验环境是基于window10下MySQL5.7这个版本。

     

    方法一 Genreal Log

    默认情况下,MySQL不开启General log; 开启General log后,MySQL将所有到达MySQL Server的SQL语句记录下来。

    开启General log步骤:

    1、查看General Log开启情况:执行SQL命令show variables like '%general_log%’ ;可以看到默认general_log是OFF的:

    数据库审计主要用于监视并记录对数据库服务器的各类操作行为,并记入审计日志或数据库中以便日后进行跟踪、查询、分析,以实现对用户操作的监控和审计。审计是一项非常重要的工作,也是企业数据安全体系的重要组成部分。

    MySQL企业版自带审计功能,但是需要付费。MySQL社区版没有审计功能,基于成本的考虑,很多用户采用社区版MySQL作为业务系统数据库。采用社区版MySQL如何实现重要的审计功能,本文从自建和云服务两种情况来解答这个问题。

    自建MySQL数据库的场景

    本文自建数据库所有实验环境是基于window10下MySQL5.7这个版本。

     

    方法一 Genreal Log

    默认情况下,MySQL不开启General log; 开启General log后,MySQL将所有到达MySQL Server的SQL语句记录下来。

    开启General log步骤:

    1、查看General Log开启情况:执行SQL命令show variables like '%general_log%’ ;可以看到默认general_log是OFF的:

    2、开启General Log: 执行SQL命令set global general_log=on 而后查看general_log打开了:

     

    3、验证:general_log打开后,所有SQL的访问都会记录在general_log_file指向的日志文件。我们执行几个SQL语句测试:

     

    而后查看ZB-PF11H2E3.log日志文件里面的内容,我们看到刚才做的操作都已经记录在日志里了:

     

    开启General Log只要用户执行了操作,无论对错,MySQL就会记录日志,这样的话日志量会非常庞大,对数据库效率有影响。所以我们一般不建议开启开功能,个别情况下可能会临时的开一段时间以供排查故障等使用。

     

    方法二 BinLog+Init_connect

    BinLog是MySQL操作时留下的日志,BinLog一方面可以用在数据库的恢复与主从复制上,另外一方面可以用来做数据库的审计。

    由于BinLog日志里面无法查询是谁在哪个时间段登录的等信息,缺少审计必要的信息。在MySQL中,每个连接都会先执行init_connect进行连接的初始化,我们可以在这里获取用户的登录名称和thread ID值。然后配合BinLog,就可以追踪到每个操作语句的操作时间,操作人等信息,再加上BinLog的日志信息实现审计。

    配置和验证过程如下:

    1、创建审计用的数据库和表:

    2、创建具有操作auditdb数据权限的用户:

     

    如果已经有用户,需要对现有用户添加操作auditdb的权限:

    <pre style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; font-size: inherit; color: inherit; line-height: inherit;">

    1MySQL> insert into mysql.db (Host,Db,User1,Insert_priv) values ('%','auditdb','','Y');
    2Query OK, 1 row affected (0.03 sec)
    3MySQL> flush privileges;
    4Query OK, 0 rows affected (0.00 sec)

    </pre>

    3、设置init_connect,并重启MySQL数据库在初始化参数文件[mysql]部分添加如下内容:

    <pre style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; font-size: inherit; color: inherit; line-height: inherit;">

    1log-bin=mysql-bin #开启Binlog
    2init_connect='insert into auditdb.accesslog(connectionid, connectionuser,logintime) values(connection_id(),user(),now());' #设置初始化连接参数

    </pre>

     

    4、用user1用户登录,执行一些写入和删除的操作;

    5、用mysqlbinlog工具查看BinLog,根据delete操作找到相应的ThreadId,而后在前面创建的审计日志表auditdb.accesslog里面根据ThreadID找到用户登录信息:

     

    查看当前binlog mysqlbin.000029的内容,并找到delete操作对应的ThreadID D:\mysql57\bin>mysqlbinlog ../data/mysql-bin.000029

     

    从Binlog中可以得知删除Test2表对应的threadid是8,根据ThreadID在审计表里查看用户的登录信息,可以得知这个删除操作是user1用户在本机执行的操作。


    说明:采用这种方式进行审计,由于init-connect只会在连接时执行,不会对数据库产生大的性能影响,但是init-connect不会记录拥有root权限的用户记录.

     

     

    方法三 使用审计插件

    除了商业版的审计插件外,常见的还有三类审计插件Percona Audit Log Plugin、MariaDB Audit Plugin、McAfee MySQL Audit Plugin。这几个插件功能上大同小异,只是展示的内容和格式略有不同。
    我们以MariaDB Audit Plugin为例,给大家介绍如何采用插件的方式实现对Mysql数据的审计。

    一、下载与安装

    1、下载MariaDB Audit Plugin插件(下载地址:https://downloads.mariadb.org/mariadb/5.5.64/)

    2、安装:把server_audit.dll复制到对应的mysql插件库中D:\mysql57\lib\plugin,执行install安装命令:

    image

    3、安装验证:Mysql>show variables like '%audit%'

    二、关键审计参数说明

    • server_audit_logging:启动或关闭审计

    • server_audit_events:指定记录事件的类型,可以用逗号分隔的多个值(connect,query,table) ,默认为空代表审计所有事件。

    • server_audit_incl_users:指定哪些用户的活动将记录,默认审计所有用户,该变量比server_audit_excl_users优先级高

    • server_audit_excl_users:指定哪些用户行为不记录

    • server_audit_output_type:指定日志输出类型,可为SYSLOG或FILE,缺省输出至审计文件

    三、审计过程示例

    1、开启审计mysql>set global server_audit_logging=on

    由于是验证测试,我们其余参数都按默认设置。

    2、执行一些数据库操作:

    3、查看审计记录日志,server_audit.log,默认在data目录下:

     

    我们看见,刚才在Mysql数据库的操作都已经审计上了。

     

     

     

    展开全文
  • 安全审计

    2011-04-30 15:34:00
    安全审计概述审计是对访问控制必要补充,是访问控制一个重要内容。审计会对用户使用何种信息资源、使用时间,以及如何使用(执行何种操作)进行记录与监控。审计和监控是实现系统安全最后一道防线,处于系统...

    转载http://www.iteye.com/topic/108239

     

    安全审计概述

    审计是对访问控制的必要补充,是访问控制的一个重要内容。审计会对用户使用何种信息资源、使用的时间,以及如何使用(执行何种操作)进行记录与监控。审计和监控是实现系统安全的最后一道防线,处于系统的最高层。审计与监控能够再现原有的进程和问题,这对于责任追查和数据恢复非常有必要。
    审计跟踪是系统活动的流水记录。该记录按事件从始至终的途径,顺序检查、审查和检验每个事件的环境及活动。审计跟踪通过书面方式提供应负责任人员的活动证据以支持访问控制职能的实现(职能是指记录系统活动并可以跟踪到对这些活动应负责任人员的能力)。审计跟踪记录系统活动和用户活动。系统活动包括操作系统和应用程序进程的活动;用户活动包括用户在操作系统中和应用程序中的活动。通过借助适当的工具和规程,审计跟踪可以发现违反安全策略的活动、影响运行效率的问题以及程序中的错误。审计跟踪不但有助于帮助系统管理员确保系统及其资源免遭非法授权用户的侵害,同时还能提供对数据恢复的帮助。

    11.3.2  审计内容

    审计跟踪可以实现多种安全相关目标,包括个人职能、事件重建、入侵检测和故障分析。
    1)个人职能(individual accountability)。审计跟踪是管理人员用来维护个人职能的技术手段。如果用户被知道他们的行为活动被记录在审计日志中,相应的人员需要为自己的行为负责,他们就不太会违反安全策略和绕过安全控制措施。例如;审计跟踪可以记录改动前和改动后的记录,以确定是哪个操作者在什么时候做了哪些实际的改动,这可以帮助管理层确定错误到底是由用户、操作系统、应用软件还是由其他因素造成的。允许用户访问特定资源意味着用户要通过访问控制和授权实现他们的访问,被授权的访问有可能会被滥用,导致敏感信息的扩散,当无法阻止用户通过其合法身份访问资源时,审计跟踪就能发挥作用。审计跟踪可以用于检查和检测他们的活动。
    2)事件重建(reconstruction of events)。在发生故障后,审计跟踪可以用于重建事件和数据恢复。通过审查系统活动的审计跟踪可以比较容易地评估故障损失,确定故障发生的时间、原因和过程。通过对审计跟踪的分析就可以重建系统和协助恢复数据文件;同时,还有可能避免下次发生此类故障的情况。
    3)入侵检测(intrusion detection)。审计跟踪记录可以用来协助入侵检测工作。如果将审计的每一笔记录都进行上下文分析,就可以实时发现或是过后预防入侵检测活动。实时入侵检测可以及时发现非法授权者对系统的非法访问,也可以探测到病毒扩散和网络攻击。
    4)故障分析(problem analysis)。审计跟踪可以用于实时审计或监控。

    11.3.3  安全审计的目标

    审计技术出现在计算机技术之前,是产生、记录并检查按时间顺序排列的系统事件记  录的过程。安全审计是计算机和网络安全的重要组成部分。安全审计提供的功能服务于直  接和间接两方面的安全目标:直接的安全目标包括跟踪和监测系统中的异常事件,间接的  安全目标是监视系统中其他安全机制的运行情况和可信度。
    所有审计的前提是有一个支配审计过程的规则集。规则的确切形式和内容随审计过程具体内容的改变而改变。在商业与管理审计中,规则集包括对确保商业目标的实现有重要意义的管理控制、过程和惯例。这些商业目标包括资源的合理使用、利率最大化、费用最小化、符合相应的法律法规和适当的风险控制。在计算机安全审计的特殊情况下,规则集通常以安全策略的形式明确表述。并且,为了能完成合理的审计数据分析,策略表中还需要增加一些不容易明确表述的规则。
    尽管从抽象意义上讲,传统的金融和管理审计与计算机安全审计的过程是完全相同  的,但它们各自关注的问题有很大不同。计算机安全审计是通过一定的策略,利用记录和分析历史操作事件发现系统的漏洞并改进系统的性能和安全。计算机安全审计需要达到的目的包括:对潜在的攻击者起到震慑和警告的作用;对于已经发生的系统破坏行为提供有效的追究责任的证据;为系统管理员提供有价值的系统使用日志,帮助系统管理员及时发现系统入侵行为或潜在的系统漏洞。
    James P.Anderson在1980年写的一份报告中对计算机安全审计机制的目标作了如下阐述:
    1)应为安全人员提供足够多的信息,使他们能够定位问题所在;但另一方面,提供的信息应不足以使他们自己也能够进行攻击。
    2)应优化审计追踪的内容,以检测发现的问题,而且必须能从不同的系统资源收集信息。
    3)应能够对一个给定的资源(其他用户也被视为资源)进行审计分析,分辨看似正常的活动,以发现内部计算机系统的不正当使用;
    4)设计审计机制时,应将系统攻击者的策略也考虑在内。
    概括而言,审计系统的目标至少包括:确定和保持系统活动中每个人的责任;确认重建事件的发生;评估损失;临测系统问题区;提供有效的灾难恢复依据;提供阻止不正当使用系统行为的依据;提供案件侦破证据。

    11.3.4  安全审计系统

    审计是通过对所关心的事件进行记录和分析来实现的,因此审计过程包括审计发生器、日志记录器、日志分析器和报告机制几部分。
    1.日志的内容
    在理想的情况下,日志应该记录每一个可能的事件,以便分析发生的所有事件,并恢复任何时刻进行的历史情况。然而,这样做显然是不现实的,因为要记录每一个数据包、每一条命令和每一次存取操作,需要的存储量将远远大于业务系统,并且将严重影响系统的性能。因此,日志的内容应该是有选择的。一般情况下,日志记录的内容应该满足以下原则:
    1)日志应该记录任何必要的事件,以检测已知的攻击模式。
    2)日志应该记录任何必要的事件,以检测异常的攻击模式。
    3)日志应该记录关于记录系统连续可靠工作的信息。
    在这些原则的指导下,日志系统可根据安全要求的强度选择记录下列事件的部分或全部:
    1)审计功能的启动和关闭。
    2)使用身份鉴别机制。
    3)将客体引入主体的地址空间。
    4)删除客体。
    5)管理员、安全员、审计员和一般操作人员的操作。
    6)其他专门定义的可审计事件。
    通常,对于一个事件,日志应包括事件发生的日期和时间、引发事件的用户(地址)、事件和源和目的的位置、事件类型、事件成败等。
    2.安全审计的记录机制
    不同的系统可采用不同的机制记录日志。日志的记录可能由操作系统完成,也可以由应用系统或其他专用记录系统完成。但是,大部分情况都可用系统调用Syslog来记录日志,也可以用SNMP记录。下面简单介绍Syslog。
    Syslog由Syslog守护程序、Syslog规则集及Syslog系统调用三部分组成。
    记录日志时,系统调用Syslog将日志素材发送给Syslog守护程序,Syslog守护程序监听Syslog调用或Syslog端口(UDP 514)的消息,然后根据Syslog规则集对收到的日志素材进行处理。如果日志是记录在其他计算机上,则Syslog守护程序将日志转发到相应的日志服务器上。Syslog规则集是用来配置Syslog守护程序如何处理日志的规则。通常的规则可以是以下情况:
    1)将日志放进文件中。
    2)通过UDP将日志记录到另一台计算机上。
    3)将日志写入系统控制台。
    4)将日志发给所有注册的用户。
    3.安全审计分析
    通过对日志进行分析,发现所需事件信息和规律是安全审计的根本目的。因此,审计分析十分重要。日志分析就是在日志中寻找模式,主要内容如下:
    1)潜在侵害分析。日志分析应能用一些规则去监控审计事件,并根据规则发现潜在的入侵。这种规则可以是由已定义的可审计事件的子集所指示的潜在安全攻击的积累或组合,或者其他规则。
    2)基于异常检测的轮廓。日志分析应确定用户正常行为的轮廓,当日志中的事件违  反正常访问行为的轮廓,或超出正常轮廓一定的门限时,能指出将要发生的威胁。
    3)简单攻击探测。日志分析应对重大威胁事件的特征有明确的描述,当这些攻击现象出现时,能及时指出。
    4)复杂攻击探测。要求高的日志分析系统还应能检测到多步入侵序列,当攻击序列出现时,能预测其发生的步骤。
    4.审计事件查阅
    由于审计系统是追踪、恢复的直接依据,甚至是司法依据,因此其自身的安全性十分重要。审计系统的安全主要是查阅和存储的安全。
    审计事件的查阅应该受到严格的限制,不能篡改日志。通常通过以下不同的层次保证查阅的安全:
    1)审计查阅。审计系统以可理解的方式为授权用户提供查阅日志和分析结果的功能。
    2)有限审计查阅。审计系统只能提供对内容的读权限,因此应拒绝具有读以外权限的用户访问审计系统。
    3)可选审计查阅。在有限审计查阅的基础上限制查阅的范围。
    5.审计事件存储
    审计事件的存储也有安全要求,具体有如下几种情况:
    1)受保护的审计踪迹存储。即要求存储系统对日志事件具有保护功能,防止未授权的修改和删除,并具有检测修改删除的能力。
    2)审计数据的可用性保证。在审计存储系统遭受意外时,能防止或检测审计记录的修改,在存储介质存满或存储失败时,能确保记录不被破坏。
    3)防止审计数据丢失。在审计踪迹超过预定的门限或记满时,应采取相应的措施防止数据丢失。这种措施可以是忽略可审计事件、只允许记录有特殊权限的事件、覆盖以前记录、停止工作等

    展开全文
  • 资料性附录 代码安全审计报告 概述 本附录给出了第5章代码安全审计过程中审计报告示例 报告内容 审计总体信息 审计总体信息应包括但不限于以下信息 审计日期 审计团队成员信息 审计依据 审计原则 代码信息包括...
  • 一、说明本篇文章主要说一说MySQL数据库安全审计控制点相关内容和理解。MySQL除了自身带有审计功能外,还存在着一些其它审计插件。虽然遇到这些插件概率不高,我还是把这些插件基本参数都列出来,到时候...
  • 附 录 A 资料性附录 代码安全审计报告 A.1 概述 本附录给出了第 5章代码安全审计过程中审计报告示例 A.2 报告内容 A.2.1 审计总体信息 审计总体信息应包括但不限于以下信息 a) 审计日期 b) 审计团队成员信息 c) ...
  • 第一条 安全审计是从管理和技术两个方面检查安全策略和控制措施执行情况,进而发现安全隐患过程。 第二条 信息安全管理部门定期进行安全审计工作,应根据审计内容确定安全审计周期。 第三条 信息安全管理...
  • 1审计是指对用户所执行数据库活动做跟踪记录,它是数据库管理系统安全重要部分,通过审计功能,与数据库安全相关操作均可被记录下来。 审计内容 1数据库连接操作跟踪记录 2SQL语句执行操作跟踪记录 ...
  • 【序】安全审计是近来国内比较热门的技术和市场。这个比较古老的市场现在又火了起来,用Gartner的hyper cycle来说的话,应该表明正在...我再次整理这个稿子后,想强调一下文中提及的安全审计的技术和产品选型的过程...
  • 数据库安全审计行业要求:审计内容是否至少包括:用户添加和删除、审计功能启动和关闭、审计策略调整、权限变更、系统资源异常使用、重要系统操作(如用户登录、退出)等。数据库开启情况:需开启相关内容的...
  • 数字权限管理安全审计日志记录的内容由数字权限管理安全审计日志描述模型给出。通过对已有数字权限管理事件模型的分析,提出了“基于原因-背景-影响的数字权限管理安全审计日志描述模型”;这个模型从数字权限管理...
  • 安全审计转载

    2010-10-28 22:48:00
    安全审计概述审计是对访问控制必要补充,是访问控制一个重要内容。审计会对用户使用何种信息资源、使用时间,以及如何使用(执行何种操作)进行记录与监控。审计和监控是实现系统安全最后一道防线,处于系统...
  • 安全审计和监控区别?

    千次阅读 2007-08-02 17:48:00
    监控os的cpu利用率能算是安全审计的功能之一吗 ?我总认为安全审计就是主要分析日志的过程,不能跟监控之类本来属于网管的内容扯在一块.抑或是我自己太纠缠于概念还是的确应该搞清楚概念?  安全审计概述 审计...
  • 审计的目的是基于事先配置的规则生成日志,记录可能发生在系统上的事件(正常或非正常行为的事件),审计不会为系统提供额外的安全保护,但她会发现并记录违反安全策略的人及其对应的行为。 2.审计能够记录到日志...
  • 数据库安全审计行业要求:审计内容是否至少包括:用户添加和删除、审计功能启动和关闭、审计策略调整、权限变更、系统资源异常使用、重要系统操作(如用户登录、退出)等。数据库开启情况:需开启相关内容...
  • 服务器安全审计行业要求:服务器主机审计内容是否包括:用户添加和删除、审计功能启动和关闭、审计策略调整、权限变更、系统资源异常使用、重要系统操作(如用户登录、退出)等。服务器开启情况:默认未...
  • 冰之眼安全审计系统(ICEYE SAS)是绿盟科技自主知识产权安全产品,通过网络数据采集、分析、识别,实时动态监测通信内容、网络行为和网络流量,发现和捕获各种敏感信息、违规行为,实时报警响应,全面记录网络...
  • 文档为安全审计系统可行性方案,主要论文必要性、设计内容、设备清单等等

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 933
精华内容 373
关键字:

安全审计的内容