XieJava's blog

记录最好的自己


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

安全防御之授权和访问控制技术

发表于 2024-01-03 | 更新于: 2025-07-11 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 4k | 阅读时长 ≈ 13

授权和访问控制技术是安全防御中的重要组成部分,主要用于管理和限制对系统资源(如数据、应用程序等)的访问。授权控制用户可访问和操作的系统资源,而访问控制技术则负责在授权的基础上,确保只有经过授权的用户才能访问相应的资源。

一、授权

授权技术通常包括身份认证和权限管理。
身份认证是验证用户身份的过程,确保用户是系统中的合法用户;
权限管理则是根据用户的角色和身份,为其分配相应的访问权限。通过授权技术,可以有效地防止非法用户或未授权的用户访问系统资源,从而保护系统的安全。
授权是确定用户访问权限的机制。用户访问权限必须始终遵循最小特权原则,该原则规定用户只拥有执行他们的作业功能所必须的访问权限,而不能拥有其他权限。为了保证网络资源在受控、合法地情况下使用,用户只能根据自己的权限大小访问系统资源,不得越权访问。

二、访问控制

访问控制是网络安全防范和保护的主要核心策略,它的主要任务是保证网络资源不被非法使用和访问。
访问控制包括三个要素:主体、客体和控制策略。
主体S(Subject):是指提出访问资源具体请求或某一操作动作的发起者,但不一定是动作的执行者,可能是某一用户,也可以是用户启动的进程、服务和设备等。
客体O(Object):是指被访问资源的实体。所有可以被操作的信息、资源、对象都可以是客体。客体可以是信息、文件、记录等集合体,也可以是网络上的硬件设施、无限通信中的终端,甚至可以包含另外一个客体。
控制策略A(Attribution):是主体对客体的相关访问规则集合,即属性集合。访问策略体现了一种授权行为,也是客体对主体某些操作行为的默认。

1、访问控制模型

典型访问控制模型如图所示:
在这里插入图片描述

访问控制模型的组成

2、访问控制的机制

访问控制机制是检测和防止系统被未授权访问,并保护资源所采取的各种措施。是在文件系统中广泛应用的安全防护方法,一般在操作系统的控制下,按照事先确定的规则决定是否允许主体访问客体,贯穿于系统全过程。
访问控制矩阵(Access Contro1 Matrix)是最初实现访问控制机制的概念模型,以二维矩阵规定主体和客体间的访问权限。行表示主体的访问权限属性,列表示客体的访问权限属性,矩阵格表示所在行的主体对所在列的客体的访问授权,空格为未授权,Y为有操作授权。以确保系统操作按此矩阵授权进行访问。通过引用监控器协调客体对主体访问,实现认证与访问控制的分离。在实际应用中,对于较大系统,由于访问控制矩阵将变得非常大,其中许多空格,造成较大的存储空间浪费,因此,较少利用矩阵方式,主要采用以下2种方法:
1)访问控制列表
访问控制列表(Access Control List,ACL)是应用在路由器接口的指令列表,用于路由器利用源地址、目的地址、端口号等的特定指示条件对数据包的抉择。是以文件为中心建立访问权限表,表中记载了该文件的访问用户名和隶属关系。利用ACL,容易判断出对特定客体的授权访问,可访问的主体和访问权限等。当将该客体的ACL置为空,可撤消特定客体的授权访问。
2)能力关系表
能力关系表(Capabilities List)是以用户为中心建立访问权限表。与ACL相反,表中规定了该用户可访问的文件名及权限,利用此表可方便地查询一个主体的所有授权。相反,检索具有授权访问特定客体的所有主体,则需查遍所有主体的能力关系表。

3、访问控制的策略

访问控制的安全策略是指在某个自治区域内(属于某个组织的一系列处理和通信资源范畴),用于所有与安全相关活动的一套访问控制规则。访问控制的安全策略有三种类型:基于身份的安全策略、基于规则的安全策略和综合访问控制方式。

1)基于身份的安全策略

基于身份的策略包括基于个体的策略和基于组的策略。

  • 基于个体的策略:一个基于个体的策略根据哪些用户可对一个目标实施哪一种行为的列表来表示。这个等价于用一个目标的访问矩阵列来描述。
  • 基于组的策略:一个基于组的策略是基于身份的策略的另一种情形,一些用户被允许对一个目标具有同样的访问许可。

2)基于规则的安全策略

基于规则的策略包括多级策略和基于间隔的策略。
多级策略:通过分配给每个目标一个密级来操作。密级由低到高分为:无密级、限制、机密、秘密、绝密。每个用户从相同的层次中分配一个等级。
基于间隔的策略:在基于间隔的策略中,目标集合关联于安全间隔或安全类别,通过他们来分离其他目标。用户需要给一个间隔分配一个不同的等级,以便能够访问间隔中的目标。

3)综合访问控制方式

综合访问控制策略(HAC)继承和吸取了多种主流访问控制技术的优点,有效地解决了信息安全领域的访问控制问题,保护了数据的保密性和完整性,保证授权主体能访问客体和拒绝非授权访问。综合访问控制策略主要包括:

  • 入网访问控制
    入网访问控制是网络访问的第一层访问控制。对用户可规定所能登入到的服务器及获取的网络资源,控制准许用户入网的时间和登入入网的工作站点。
  • 网络的权限控制
    网络的权限控制是防止网络非法操作而采取的一种安全保护措施。用户对网络资源的访问权限通常用一个访问控制列表来描述。
  • 目录级安全控制
    目录级安全控制主要是为了控制用户对目录、文件和设备的访问,或指定对目录下的子目录和文件的使用权限。用户在目录一级制定的权限对所有目录下的文件仍然有效,还可进一步指定子目录的权限。
  • 属性安全控制
    属性安全控制可将特定的属性与网络服务器的文件及目录网络设备相关联。在权限安全的基础上,对属性安全提供更进一步的安全控制。网络上的资源都应先标示其安全属性,将用户对应网络资源的访问权限存入访问控制列表中,记录用户对网络资源的访问能力,以便进行访问控制。
  • 网络服务器安全控制
    网络服务器安全控制允许通过服务器控制台执行的安全控制操作包括:用户利用控制台装载和卸载操作模块、安装和删除软件等。操作网络服务器的安全控制还包括设置口令锁定服务器控制台,主要防止非法用户修改、删除重要信息。
  • 网络监控和锁定控制
    在网络系统中,通常服务器自动记录用户对网络资源的访问,如有非法的网络访问,服务器将以图形、文字或声音等形式向网络管理员报警,以便引起警觉进行审查。
  • 网络端口和结点的安全控制
    网络中服务器的端口常用自动回复器、静默调制解调器等安全设施进行保护,并以加密的形式来识别结点的身份。自动回复器主要用于防范假冒合法用户,静默调制解调器用于防范黑客利用自动拨号程序进行网络攻击。

4、访问控制技术

访问控制技术则是在授权的基础上,进一步控制用户对系统资源的访问。它根据用户的角色和权限,决定用户可以访问哪些资源以及可以进行哪些操作。常见的访问控制技术包括:

  1. 强制访问控制(Mandatory Access Control):这是一种基于安全策略的访问控制方法,由系统管理员设定安全级别,并按照安全级别对资源进行访问控制。
  2. 自主访问控制(Discretionary Access Control):这是一种基于用户身份的访问控制方法,由资源的拥有者自行设定访问权限。
  3. 基于角色的访问控制(Role-Based Access Control):这是一种基于用户角色的访问控制方法,通过将权限分配给角色,再将角色分配给用户,来实现访问控制。

1)强制访问控制技术(Mandatory Access Control)

强制访问控制(MAC),将系统中的信息分密级和类进行管理,以保证每个用户只能访问到那些被标明可以由他访问的信息的一种访问约束机制。通俗的来说,在强制访问控制下,主体与客体都被标记了固定的安全属性(如安全级、访问权限等),在每次访问发生时,系统检测安全属性以便确定该主体是否有权访问该客体。基于规则的多级策略就是一种强制访问控制策略。

2)自主访问控制技术(Discretionary Access Control)

自主访问控制又被称为“基于身份的访问控制”,允许合法用户以用户或用户组的身份访问策略规定的客体,同时阻止非授权用户访问客体。自主访问控制模型的特点是授权的实施主体(可以授权的主体、管理授权的客体、授权组)自主负责赋予和收回其他主体对客体资源的访问权限。
在自主访问控制机制中,存取模式主要有:

  • 读:允许主体对客体进行读和拷贝的操作。
  • 写:允许主体写入或修改信息,包括扩展、压缩机删除等。
  • 执行:允许将客体作为一种可执行文件运行,在一些系统中该模式还需要同时拥有读模式。
  • 空模式:主体对客体不具有任何的存取权。

自主访问控制的具体实施可采用以下四种方法:

  • 目录表
    在目录表访问控制方法中,借用了系统对文件的目录管理机制,为每一个欲实施访问权限的主体建立一个能被其访问的“客体目录表(文件目录表)”。如某个主体的客体目录表可能是:
    客体1 :权限1 客体2:权限2…
    客体目录表中各个客体的访问权限的修改只能由该客体的合法属主确定,不允许其他任何用户在客体目录表中进行写操作,否则将可能出现对客体访问权限的伪造。操作系统必须在客体的拥有者控制下维护所有的客体目录。
  • 访问控制列表
    访问控制列表是从客体角度进行设置的,是面向客体的访问控制。每个客体都有一个访问控制列表,用来说明有权访问该客体的所有主体及其访问权限。
  • 访问控制矩阵
    访问控制矩阵是对上面两种方法的综合,直观地看,访问控制矩阵是一张表格,每行代表一个主体,每列代表一个客体,表中纵横对应的项是该主体对该客体的访问权集合。
  • 能力表
    能力表是访问控制矩阵的改进,将矩阵的每一列作为一个客体而形成一个存取表,每个存取表只由主体、访问权集合组成。

3)基于角色的访问控制技术(Role-Based Access Control)

基于角色的访问控制(RBAC)是实施面向企业安全策略的一种有效的访问控制方式。其基本思想是:对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。这样做的好处是,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理,减少系统的开销。
在一个组织内部,角色是相对稳定的,而用户和权限之间的关系则是易变的,比如因用户职务变化而随之发生权限变化。通过角色,可以减少授权管理的复杂度,降低管理开销,它是传统访问控制技术的有效补充。通常角色和用户组在概念上容易混淆,它们之间有本质的区别,组是用户的集合,而角色作为中介,既是用户的集合,又是权限的集合。
在一个组织内,安全管理员可以根据完成某项工作所需的权限,创建适当的角色;然后根据用户所要完成的任务,授予不同的角色,从而授予访问权限。用户与角色,角色与权限之间关系都是多对多的关系。用户与特定的一个或多个角色相联系,角色与一个或多个访问权限相联系。用户根据自己的需求动态地激活自己拥有的角色,完成特定的任务,避免误操作造成的危害。

授权和访问控制技术是安全防御的重要组成部分,可以有效防止未经授权的用户访问系统资源,保护系统的安全。在实际应用中,需要根据具体的安全需求和场景,选择合适的授权和访问控制技术,以达到最佳的安全防护效果。


博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

安全防御之身份鉴别技术

发表于 2024-01-03 | 更新于: 2025-07-11 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 2.2k | 阅读时长 ≈ 7

身份认证技术用于在计算机网络中确认操作者的身份。在计算机网络世界中,用户的身份信息是用一组特定的数据来表示的,计算机也只能识别用户的数字身份。身份认证技术能够作为系统安全的第一道防线,主要用于确认网络用户的身份,防止非法访问和恶意攻击,确保数字身份的操作者就是这个数字身份合法拥有者。

一、基本概念

1、身份鉴别

身份鉴别是指对主客体身份进行确认的过程,也就是对网络用户在进入系统或访问受限系统资源时的身份进行识别和验证的过程。这是信息安全的第一道防线,可以确保用户身份的真实、合法和唯一性,防止非法人员进入系统。

身份鉴别的方法:主要有三种,即基于实体所知、基于实体所有和基于实体特性。
基于实体所知的方法包括密码、验证码等,这些方法的成本低,实现简单,但面临的风险也较大,如暴力破解、木马等。
基于实体所有的方法通常涉及一些物理设备,如IC卡、门禁卡等,安全性较高,但成本也较高,并可能面临损坏和被复制的风险。基于实体特性的方法通常采用生物识别技术进行验证,如指纹、虹膜、声波等,这是安全性最高的一种方式。

2、标识

标识认证技术是信息安全理论与技术的一个重要方面,是实现信息安全等级保护身份鉴别、访问控制的技术基础,主要包括信息认证与身份标识认证两个方面的内容。信息认证用于保护信息的完整性与抗否认性,身份标识认证则用于鉴别用户身份,限制非法用户访问资源。

1)人的标识

身份标识认证是安全技术的一个重要方面,在用户访问文件时,必须通过某种形式的身份标识验证机制来证明他们的身份,验证用户的身份与所宣称的保持一致,才能够实现对文件的访问。用户首先经过身份标识认证才能访问安全系统,然后由安全系统根据用户身份决定用户的访问权限。

2)网络标识

网络标识是指机器在网络中的标志信息,对一台具体的机器而言,机器的IP地址,MAC地址就是在网络中标识的。
在网络中,同一数据在不同的层有不同的标识,数据链路层的标识是MAC地址,网络层的标识是IP地址,传输层的标识就是UDP或者TCP的端口号。
主机的标识就是主机名称。在网络中,主机的名称+地址成为唯一的标识。

3)应用标识

应用标识包括应用名,进程名称,占用端口,序列号,标准的应答方式等。

3、口令

口令是指只有通信双方知晓的一段数据。口令是最广泛使用的一种身份鉴别方法,也是最容易实现和成本最低的用户鉴别和认证机制,但是经常会遭到攻击者的威胁:
口令字典攻击:也就是猜口令,在获得口令密文后,攻击者可以通过运用自己保存的口令字典,通过可以获得的相同的加密算法进行枚举尝试。
口令丢失:用户经常会将自己的口令分享给同事、上司或第三方工程人员。这样就失去了口令的鉴别作用。
口令嗅探:很多系统的口令在网络上都是明文传输的,比如,电子邮件,Telnet远程登录等。通过在网络关键路径上进行嗅探可以轻易地获得用户的口令。
口令文件被窃取:对口令文件的保护是口令机制的弱点。如果口令文件被窃取,可能导致大量的用户口令沦陷。

4、挑战-响应技术

挑战-响应技术是一种常用的基于口令的身份认证技术。
基于挑战/响应方式的身份认证系统就是每次认证时,认证服务器端都给客户端发送一个不同的“挑战”字串,客户端程序收到这个“挑战”字串后,做出相应的“响应”,基于此机制系统认证过程为:

  1. 客户端向认证服务器发出请求,要求进行身份认证;
  2. 认证服务器从用户数据库中查询用户是否是合法的用户,若不是,则不做进一步处理;
  3. 如果是合法用户,认证服务器内部产生一个随机数,作为“提问”,发送给客户端;
  4. 客户端将用户名字和随机数合并,使用单向Hash函数(例如MD5算法)生成一个应答串作为响应;
  5. 认证服务器将应答串与自己的计算结果比较,若二者相同,则通过一次认证;否则,认证失败;
  6. 认证服务器通知客户端认证成功或失败。
  7. 认证成功之后,以后的认证由客户端不定时地发起,过程中没有了客户端认证请求一步。两次认证的时间间隔不能太短,否则会给网络、客户和认证服务器带来太大的开销;也不能太长,否则不能保证用户不被他人盗用IP地址,建议时长为1-2分钟。

5、公钥认证技术

公钥认证技术使用一对加密字符串,一个称为公钥,任何人都可以看到其内容;另一个称为私钥,由用户妥善保存。公钥认证技术功能的实现在于通过公钥加密过的密文使用私钥可以轻松解密,但根据私钥来猜测密钥却十分困难。

二、常见的身份鉴别技术

  • 用户名/密码认证:这是一种最基本的方式,用户需要输入用户名和密码来证明自己的身份。但是,由于密码可能被破解或泄露,因此这种方式存在一定的安全隐患。
  • 动态口令认证:这是一种更加安全的方式,用户需要输入动态生成的口令才能进入系统。这种方式可以有效地防止密码被破解或被盗用。
  • 多因素认证:这是一种基于多种因素的认证方式,除了用户名和密码外,还需要用户提供其他信息,如手机验证码、指纹、虹膜等。这种方式可以大大提高系统的安全性。
  • 基于角色的访问控制:这是一种基于用户角色的访问控制方式,用户只能访问自己被授权的资源。这种方式可以有效地防止未授权的访问和数据泄露。
  • 单点登录认证:这种方式可以实现一次登录即可访问多个系统的功能,减少了用户的操作步骤,提高了工作效率。同时,这种方式也可以减少因某个系统被攻击而导致其他系统受到攻击的风险。

身份鉴别技术是保护信息安全的重要手段,不同的应用场景需要选择合适的身份鉴别技术来保证系统的安全性和稳定性。

三、防御措施

针对身份鉴别过程中可能出现的攻击,如线路窃听和重放攻击等,需要采取相应的防御措施。例如,在口令中使用随机数可以防止攻击者通过构造特定表格(如彩虹表)来破解口令。针对重放攻击,可以在会话中引入时间戳或使用一次性口令等方式进行防御。

身份鉴别技术是网络安全的重要组成部分,通过确认网络用户的身份,可以有效地防止非法访问和恶意攻击。同时,随着技术的发展,身份鉴别技术也在不断地进步和完善,以应对日益复杂的网络安全威胁。


博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

pandas将dataframe列中的list转换为多列

发表于 2023-12-26 | 更新于: 2025-07-11 | 分类于 技术 , 开发 | | 阅读次数:
字数统计: 524 | 阅读时长 ≈ 2

在应用机器学习的过程中,很大一部分工作都是在做数据的处理,一个非常常见的场景就是将一个list序列的特征数据拆成多个单独的特征数据。

比如数据集如下所示:

1
2
3
4
5
data = [['John', '25', 'Male',[99,100,98]],
['Emily', '22', 'Female',[97,99,98]],
['Michael', '30', 'Male',[97,99,100]]]
df_data= pd.DataFrame(data,columns=['Name', 'Age', 'Gender','Score'])
df_data

在这里插入图片描述

很多场景是需要将类似于Score的list序列特征,拆成多个特征值如这里的语、数、外的分数。

下面通过几个实例来将dataframe列中的list序列转换为多列。

1、一维序列拆成多列

可以通过在列上应用Series来进行拆分。

1
2
df_score=df_data['Score'].apply(pd.Series).rename(columns={0:'English',1:'Math',2:'Chinese'})
df_score

在这里插入图片描述

可以看到将Score的数组,拆分成了English、Math、Chinese三个特征字段了

1
2
df_data=df_data.join(df_score)
df_data

在这里插入图片描述

2、二维序列拆成多列

用同样的思路也可以将二维序列的特征列拆成多列
如特征列是二维序列,序列里还有多个序列

1
2
3
4
5
data = [['John', '25', 'Male',[[99,100,98],[89,70]]],
['Emily', '22', 'Female',[[97,99,98],[99,96]]],
['Michael', '30', 'Male',[[97,99,100],[87,99]]]]
df_data= pd.DataFrame(data,columns=['Name', 'Age', 'Gender','Score'])
df_data

在这里插入图片描述

1
2
3
4
5
6
df_score=df_data['Score'].apply(pd.Series)
df_score_1=df_score[0].apply(pd.Series).rename(columns={0:'English',1:'Math',2:'Chinese'})
df_score_2=df_score[1].apply(pd.Series).rename(columns={0:'Biology',1:'Geography'})
df_score=df_score_1.join(df_score_2)
df_data=df_data.join(df_score_1).join(df_score_2)
df_data

在这里插入图片描述

另外一种情况就是序列里面只有一个序列的二维序列,数据如下所示:

1
2
3
4
5
data = [['John', '25', 'Male',[[99,100,98,89,70]]],
['Emily', '22', 'Female',[[97,99,98,99,96]]],
['Michael', '30', 'Male',[[97,99,100,87,99]]]]
df_data= pd.DataFrame(data,columns=['Name', 'Age', 'Gender','Score'])
df_data

在这里插入图片描述

这样也可以通过多次应用Series来进行拆分,也可以先explode()再应用Series来进行拆分。

1
2
df_score=df_data['Score'].apply(pd.Series)[0].apply(pd.Series).rename(columns={0:'English',1:'Math',2:'Chinese',3:'Biology',4:'Geography'})
df_score

在这里插入图片描述

1
2
df_score=df_data['Score'].explode().apply(pd.Series).rename(columns={0:'English',1:'Math',2:'Chinese',3:'Biology',4:'Geography'})
df_score

在这里插入图片描述

两者效果是一样的。


博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

安全运营之团队人员组织建议

发表于 2023-12-22 | 更新于: 2025-07-11 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 1.4k | 阅读时长 ≈ 4

安全运营是一个持续的过程,需要不断地评估风险、监测威胁、改进措施和更新策略,以确保组织的安全性和可靠性。由人员、数据、平台(工具)、流程的共同组合构成安全运营体系。

一、安全运营团队目标

安全运营团队目标

图-安全运营团队目标

安全运营团队是具有日常安全运营及实战化攻防对抗能力的专职安全团队,依托安全运营中心平台,有效使用各项安全工具,以标准化的作业流程驱动,开展各项安全运营活动,实现安全工作持续、主动、精细化、标准化的过程管理,通过持续有效的安全运营活动满足合规要求、降低网络安全风险、保障企业网络安全。

二、团队人员组织架构

在这里插入图片描述

图-安全运营团队人员组织架构

三、运营团队职责分工

序号 运营工作内容 运营工作子项 频率 所属分组 相关职责 备注
1 安全资产识别与梳理 安全资产发现和识别 按需 安全资产管理 对已有安全资产和新增安全资产进行管理维护,协调督促业务部门安全资产责任人进行资产数据上报、agent安装。定期对异常资产、未纳管安全资产等进行通报督促整改。 常态化
安全资产信息梳理与管理
2 安全资产脆弱性管理 安全资产脆弱性识别与管理 对安全资产的脆弱性进行定期的识别,发布存在有脆弱性风险通知到安全资产责任人,督促整改,对脆弱性问题跟踪确认。
3 威胁监测 威胁监测 按需 监测研判 1.对安全监测平台进行日常的监测运营工作,形成相关交付物。(运营日报、周报、月报等)
2.对监测过程中发现的安全告警进行初步筛选,排查是否误报,对非误报告警进行安全级别判断,对判断后的安全告警进行安全事件的升级,并进行专人的研判分析。
3.对分析后重要安全事件,进行处置组递交沟通,提供事件分析报告。并对处置执行组反馈的处置情况进行复验审核工作。
常态化
威胁分析与通告
持续攻击对抗
事件分析与处置
应急响应
安全运营可视化
4 人工研判 安全事件人工研判
定期安全运营汇报
5 安全问题处置 安全事件处置 按需 处置执行 1.对研判后的安全事件进行处置操作,负责协调相关业务部门及安全资产归属单位,对网络及安全策略进行调整优化控制(含平台策略优化)。
2.对责任部门或责任人按处置流程进行通告下发,并跟踪事件处置过程,提供处置建议与咨询。
3. 跟踪事件处置情况,并将处置反馈情况同步监测研判组进行复验,负责对安全事件处置进行闭环,归档工作。
常态化
安全事件归档
安全事件报告
6 安全通告 安全事件通告
7 策略管理 策略管理
8 平台保障 现场处置协调跟踪 按需 平台保障 1.对安全运营中心平台进行日常的巡检维护,对各平台功能,告警数据采集,设备权限,性能消耗进行巡检监控,对巡检过程中发现的问题及时跟踪处理。
2.协助处置执行组对安全事件进行处置闭环跟踪及协调工作。
3.根据运营需求进行平台规则优化、剧本流程优化。
常态化(平台建设方参与)
现场故障应急处理
平台现场运营监测
平台运营日常巡检
平台规则流程优化
9 脆弱性评估与管理 漏洞、弱口令扫描 最新漏洞预警和响应 月/次 安全服务 1.负责漏洞管理、渗透测试、应急演练的方案整理及需求确认工作。
2.依据各服务内容流程,负责实施相关服务。
3.对服务过程发现安全问题进行协助处置工作,并提供处置方案。
4.负责方案服务总结,并对发现安全问题进行分析总结,提供加固建议及安全事件处理能力的建议。
按需,一般以服务外包的方式外包给专业团队
漏洞协助处置
10 渗透测试 渗透测试方案 按需
渗透测试内容
11 应急演练 应急演练 一年/次
12 风险评估 双新评估服务 一年/次 负责双新评估、定级备案风险评估等安全风险评估服务。
定级备案风险评估 一年/次
13 流程优化 运营流程及人员调整优化 按需 安全运营管理 流程优化;团队管理; 培训组织;工作汇报; 质量审核;应急响应。 常态化,固定负责人
14 工作汇报 安全监测运营汇报(月报、季报、半年报)
15 培训组织 培训组织

在这里插入图片描述

博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

安全运营之态势感知与监测

发表于 2023-12-21 | 更新于: 2025-07-11 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 1.4k | 阅读时长 ≈ 4

信息安全是一个动态的过程,操作系统、应用软件、中间件,还有硬件,平台的种类越来越多,技术越来越复杂,稍有不慎就会留下安全隐患和管理漏洞,依靠客户自身的IT资源无论从技术的先进性还是方案的严密性上都越来越难以应对,企业往往由于人手或技术力量的不足,无法自如的处理各种复杂的信息安全问题。针对这种情况,就需要持续对新的安全威胁、安全漏洞进行跟踪、分析和响应。

安全态势感知与监测是一种基于环境的、动态、整体地洞悉安全风险的能力,它以安全大数据为基础,从全局视角提升对安全威胁的发现识别、理解分析、响应处置能力的一种方式,最终是为了决策与行动,是安全能力的落地。

目前网络安全态势感知平台系统架构如下:

  1. 海量多元异构数据的汇聚融合技术:在大规模网络中,网络安全数据和日志数据由海量设备和多个应用系统中产生,且这些安全数据和日志数据缺乏统一标准与关联,在此基础上进行数据分析,无法得到全局精准的分析结果。
  2. 数据挖掘与智能分析技术:通过机器学习、大数据分析等技术,实现基于逻辑和知识的推理结果,从已知威胁推演未知威胁,实现对安全威胁事件的预测和判断。
  3. 威胁情报的共享与交换技术:通过建立威胁情报共享与交换平台,实现不同安全厂商、不同组织之间的威胁情报共享与交换,提高安全态势感知的准确性和效率。

一、安全监控

安全监控应覆盖网络、安全设备、主机、数据库、应用和中间件的安全和性能监控,具体内容如下:

类型 内容 监控方式
网络层 路由器、防火墙、IPS、WAF等 SNMP、syslog等
主机层 Windows2000/XP/2003、Solaris、AIX、HP-UX、Redhat Linux SNMP、syslog、专用数据收集代理
数据库 Oracle、MS SQL Server、Mysql、ES SNMP、syslog、专用数据收集代理
应用中间件 WebLogic、WebSphere、Jboss/Tomcat、Apache、IIS SNMP、syslog、专用数据收集代理

一般来说将需要监控的数据统一汇聚到安全态势感知平台,通过平台的采集、汇聚、分析、展现能力,实现对网络安全的统一监控和告警通知。

二、风险感知

风险感知是指部署相应的监测措施如态势感知平台,主动发现来自系统内外部的安全风险,具体措施包括数据采集、收集汇聚、特征提取、关联分析、状态感知等。

  1. 数据采集
    数据采集指对网络环境中各类数据进行采集,为网络异常分析、设备预测性维护等提供数据来源。
  2. 收集汇聚
    对于数据的收集汇聚主要分为两个方面。一是对网络设备系统及应用系统所产生的安全告警数据进行汇聚,包括产品全生命周期的各类数据的同步采集、管理、存储及查询,为后续过程提供数据来源。二是对全网流量进行监听,并将监听过程中采集到的数据进行汇聚。
  3. 特征提取
    特征提取是指对数据特征进行提取、筛选、分类、优先级排序、可读等处理,从而实现从数据到信息的转化过程,该过程主要是针对单个设备或单个网络的纵向数据分析。信息主要包括内容和情景两方面,内容指网络流量、告警日志信息等;情景指人员的操作指令、人员访问状态、登录事件、时长等。
  4. 关联分析
    关联分析基于大数据进行横向大数据分析和多维分析,通过将运行机理、运行环境、操作内容、外部威胁情报等有机结合,利用群体经验预测单个设备的安全情况,或根据历史状况和当前状态的差异进行关联分析,进而发现网络及系统的异常状态。
  5. 状态感知
    状态感知基于关联分析过程,实现对企业网络运行规律、异常情况、安全目标、安全态势、业务背景等的监测感知,确定安全基线,结合大数据分析等相关技术,发现潜在安全威胁、预测黑客攻击行为。

为了提高安全态势感知与监测的能力和准确性,还需要采取以下措施:

  1. 加强数据分析和挖掘能力:通过对海量数据进行深入分析和挖掘,发现潜在的安全威胁和漏洞。
  2. 建立威胁情报共享机制:通过建立威胁情报共享机制,实现不同组织之间的信息共享和协同作战。
  3. 加强技术创新和研发:通过加强技术创新和研发,不断推出新的安全防护措施和技术手段,提高安全防护能力。
  4. 加强人员培训和管理:通过加强人员培训和管理,提高人员的安全意识和技能水平,减少人为因素对网络安全的影响。

博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

安全运营之安全加固和运维

发表于 2023-12-19 | 更新于: 2025-07-11 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 4.2k | 阅读时长 ≈ 14

安全运营是一个将技术、流程和人有机结合的复杂系统工程,通过对已有安全产品、工具和服务产出的数据进行有效的分析,持续输出价值,解决安全问题,以确保网络安全为最终目标。

安全加固和运维是网络安全运营中的两个重要方面。
安全加固是指通过采取一系列措施,提高网络、系统和应用程序的安全性,以防止或减少未经授权的访问、数据泄露或系统损坏。这包括对网络设备、服务器、数据库和其他关键组件进行安全配置和加固,以防止潜在的攻击。
运维是指对网络、系统和应用程序的日常管理和维护,以确保其正常运行和性能。这包括监控系统的状态、维护和更新软件、管理网络设备、解决故障等。

在安全加固方面,一些常见的措施包括:

  1. 更新和修补操作系统、应用程序和网络设备的漏洞。
  2. 配置强密码和多因素身份验证。
  3. 限制不必要的网络端口和服务。
  4. 实施访问控制和权限管理。
  5. 定期备份数据和配置信息。

在运维方面,一些常见的任务包括:

  1. 监控系统的性能和状态。
  2. 维护和更新软件和操作系统。
  3. 管理网络设备和网络连接。
  4. 解决系统和应用程序故障。
  5. 管理和优化数据库。

以下从补丁管理、安全加固、日志的监控分析、日常安全运维几个方面来一窥安全加固和运维。

一、补丁管理

伴随着软件大小的不断膨胀,潜在的BUG 也不断增加。据估计,1992年发布的Windows3.1 有3 百万行代码。然而,估计它存在15000 到60000处潜在的BUG。1999 年发布的Windows2000 保守估计有三千五百万行代码,也就是说可能存在175,000 到700,000 个潜在的BUG。
安全相关的BUG 通常是在大量用户使用,以及黑客或者软件测试者企图进行渗透时才会发现的。一旦BUG 被发现,软件厂商通常会发布一段软件修正这个BUG。这种软件一般称为补丁(patch)、hotfix,或者Service pack。
与以往不同的是,只有时刻对出现的漏洞及时做出反应才能够有效地保护系统的有效性、保密性和完整性。几乎每天都会有厂商发布新的补丁,即使有经验的系统管理员也很难保证能够及时使用所有最新的补丁修补系统。
补丁管理是指一个区域的系统管理,包括获得、测试和安装多个补丁(代码改变)到一个执行的计算机系统。补丁管理可被看作变动管理的部分。
补丁管理任务包括:维持当前的可用补丁的知识;决定对于特定的系统什么样的补丁是合适的;确保补丁正确安装;安装后测试系统;证明所有相关的程序,例如所需的特殊的配置等。
在网络环境中,组织通常尝试维护计算机之间的软件版本一致性,并且通常执行集中式补丁管理,而不是允许每台计算机下载自己的补丁。集中式补丁管理使用中央服务器检查网络硬件是否有缺失的补丁、下载缺失的补丁并根据组织的补丁管理策略将其分发到网络上的计算机和其他设备。集中式补丁管理服务器的作用不仅仅是自动化补丁管理;它还使组织能够对补丁管理流程进行一定程度的控制。例如,如果确定某个特定补丁有问题,组织可以配置其补丁管理软件以阻止部署该补丁。集中式补丁管理的另一个优点是它有助于节省互联网带宽。从带宽的角度来看,允许组织中的每台计算机下载完全相同的补丁是没有意义的。相反,补丁管理服务器可以下载补丁一次并将其分发到指定接收它的所有计算机。

二、安全加固

1、安全加固作用

各类网络设备、主机系统、数据库系统、应用系统等的安全状况是动态变化的,对于安全问题的发现及安全加固优化配置等操作都需要非常专业的安全技能,需要进行周期性的安全评估、审计、加固等工作,才能够保障整体安全水平的持续提高。
安全加固主要是解决以下安全问题:
(1)安装、配置不符合安全需求;
(2)使用、维护不符合安全需求;
(3)系统完整性被破坏;
(4)被植入木马程序;
(5)帐户、口令策略问题;
(6)安全漏洞没有及时修补;
(7)应用服务和应用程序滥用;

2、安全加固流程

安全加固是根据专业安全评估结果,制定相应的系统加固方案,针对不同目标系统,通过打补丁、修改安全配置、增加安全机制等方法,合理进行安全性加强。加固的流程和范围如下图所示:
安全加固流程

3、安全加固内容

系统安全加固是指通过一定的技术手段,提高操作系统或网络设备安全性和抗攻击能力。内容包括主机加固、数据库加固、中间件加固、网络设备加固等。

(1)主机加固

Windows设备安全加固内容:账号、口令、授权、日志配置操作、日志保护配置、共享文件夹及访问权限、Windows服务、防病毒管理、自动播放、屏幕保护、远程登录控制、补丁管理、IP协议安全配置操作、时间同步服务。
Linux操作系统安全加固内容:账号、口令、文件权限、IP协议安全、日志审计、关闭不必要的服务、资源控制。
AIX操作系统安全加固内容:账号、口令、授权、日志配置、IP协议安全、路由协议安全、补丁管理、内核调整、服务进程和启动、AIX可被利用的漏洞。

(2)数据库加固

加固的内容包括:身份鉴别、访问控制、安全审计、资源控制等安全项加固。加固方法包括:对数据库安全策略、服务等进行安全加固;加强对敏感存储过程的管理,尤其是能执行操作系统命令的存储过程。
Oracle数据库安全加固内容:账号、口令、授权、日志审计、远程操作连接。
Linux版MySQL数据库安全加固内容:认证授权(以非root用户启动MySQL、口令策略、共享帐号、最小权限、IP地址限制、删除无关帐号)、日志审计、安全文件权限配置、连接数限制。
Windows版MySQL安全加固内容:认证授权(以普通用户权限运行MySQL、口令策略、共享帐号、最小权限、IP地址限制、删除无关帐号)、日志审计、安全文件权限配置、连接数限制。
SQL Server数据库安全加固内容:账号、口令、授权、日志审计、通信协议、补丁、停用不必要的存储过程。

(3)中间件加固

IIS中间件安全加固内容:账号、口令、授权、日志配置操作、日志保护配置、文件系统及访问权限、IIS服务组件、隐藏IIS版本号及敏感信息、版本和补丁管理、IP协议安全配置操作、连接数限制。
Linux版Apache安全加固内容:认证授权设置、以非root用户启动Apache、目录安全配置、限制IP地址访问、日志审计设置、配置错误日志、配置访问日志、其他安全设置、隐藏Apache版本号、关闭目录浏览功能(必选)、禁用Apache的执行功能、防御拒绝服务攻击、自定义错误页面、升级使用最新版Apache。
Windows版Apache安全加固内容:认证授权设置、以普通用户权限运行Apache、目录安全配置、限制IP地址访问、日志审计设置、配置错误日志、配置访问日志、其他安全设置、隐藏Apache版本号、关闭目录浏览功能(必选)、禁用Apache的执行功能、防御拒绝服务攻击、自定义错误页面。
Tomcat中间件安全加固内容:账号、口令、授权、日志配置操作、定时登出、错误页面处理、目录列表访问限制。
Weblogic中间件安全加固内容:账号、口令、授权、日志、审计、其他安全配置、定时登出、错误页面处理、禁用Send Server header。

(4)网络设备加固

对二层交换设备、三层交换设备、路由器、防火墙等网络设备进行加固,加固内容包括:访问控制、安全审计、网络设备防护等安全项加固。
CISCO网络设备安全加固内容:账号、口令、密码复杂度、加固CON端口的登录、加固AUX端口的管理、对网络设备的管理员登录地址进行限制、HTTP登录安全加固、设置登录超时时间、用户权限分配、限制具备管理员权限的用户远程登录、日志配置、日志安全要求、远程日志功能、防止地址欺骗、SNMP服务器配置、使用ssh加密传输、禁用空闲端口、端口级的访问控制策略。
HUAWEI网络设备安全加固内容:用户帐号分配、限制具备管理员权限的用户远程登录、无效账户清理、静态口令复杂度、静态口令加密、密码重试、加固CON端口的登录、加固AUX端口的管理、对网络设备的管理员登录地址进行限制、远程登录加密传输、设置登录超时时间、用户权限分配、配置日志功能、对用户操作进行记录、对用户登录进行记录、开启NTP服务保证记录的时间的准确性、远程日志功能、ACL配置、防止地址欺骗、SNMP服务器配置、配置SNMPV2或以上版本、修改SNMP的Community默认通行字、动态路由协议口令要求配置MD5加密、禁止发布或接收不安全的路由信息、MPLS安全、禁用空闲端口、关闭不必要的服务。
H3C网络设备安全加固内容:账号、设备特权口令、密码复杂度、设置特权口令(推荐)、关闭未使用的端口、账号口令、Console口密码保护、禁止无关账号、日志配置操作、审核登录、VTY端口防护策略、远程主机IP地址段限制、远程管理通信安全、更改SNMP 服务读写权限管理、修改SNMP默认的Community字符串、Community字符串加密、IP/MAC地址绑定、ARP攻击防御、ARP防止IP报文攻击、关闭设备FTP服务、防源地址欺骗攻击、端口隔离、启用端口安全功能。

(5)漏洞修复

漏洞指的是计算机系统(操作系统和应用程序)的缺陷,攻击者可以通过这些缺陷进行非法入侵,实施恶意行为。漏洞修复对这些缺陷进行修补,以减少系统漏洞的暴露。在安全事件发生前防患于未然,包括主机漏洞修复、第三方产品漏洞和应用漏洞,主机漏洞修复主要通过补丁升级、版本升级来修复,第三方产品漏洞需厂商配合,应用漏洞需开发商对软件源码进行修复。

(6)安全设备调优

根据信息系统的安全情况和风险情况逐步调整已有的防火墙、堡垒机、安全监控平台、日志审计平台、IPS、WAF等安全设备策略配置,达到最佳的安全防护效果。

三、日志监控分析

日志监控分析是从应用系统各结点获得日志文件,采取人工+工具的分析分析方法,形成日志分析报告。该报告与定期评估结果、定期策略分析结果进行综合分析,找到当前的系统及网络设备中存在的问题和隐患,并给信息系统运维提供专业的增强建议。

1、日志分析流程

日志分析服务遵循以下流程:
(1)日志服务器搭建。将路由器、交换机通过syslog 协议,将Windows 系统的日志通过eventlog 的方式集中转存到搭建的日志服务器上。
(2)分析日志。分析关键服务器、防火墙、路由器、交换机等设备的日志, 采取人工加工具的审计分析方法对日志信息进行综合分析,找到当前的系统及网络设备中存在的隐患和被攻击痕迹。
(3)生成报告。根据日志分析内容,结合企业信息系统网络的构成及业务流程等,生成专业又极具可读性的报告,并针对日志分析出的各项问题,提出修补建议,使发现的问题能尽可能早的得到解决,避免引起更大范围的影响和损失。
(4)其它支持。企业根据报告的内容对系统进行检查和修补,并寻求专业公司帮助和指导。

2、日志分析内容

日志分析的内容主要包括:

类型 内容 方式
网络层 网络设备日志 工具、手工
主机层 通用的windows 和unix 系统日志,包括:应用程序日志、系统日志、安全日志等。 工具、手工
应用 Web 系统,包括:IIS、Apache;数据库等 工具、手工

四、日常安全运维

日常安全运维是确保网络和系统安全的重要环节。以下是一些日常安全运维的常见任务和注意事项:
1、监控网络和系统状态:通过使用各种工具和技术,监控网络和系统的状态,包括流量、设备性能、安全事件等,以便及时发现潜在的安全威胁和问题。
2、更新和修补漏洞:定期更新系统和应用程序的补丁和安全更新,以修复已知的安全漏洞。确保及时应用这些更新,以减少被攻击的风险。
3、访问控制和权限管理:实施严格的访问控制策略,确保只有授权人员能够访问敏感数据和系统资源。同时,管理用户的权限,确保他们只能访问他们需要的功能和数据。
4、入侵检测和防御:部署入侵检测系统和防御措施,以监控和识别潜在的攻击行为。及时响应和处理安全事件,防止攻击者进一步渗透网络和系统。
5、日志管理和分析:收集和分析系统日志,以监控和分析潜在的安全威胁和异常行为。通过日志分析,可以及时发现潜在的安全问题并采取相应的措施。
5、安全审计和监控:定期进行安全审计和监控,以确保安全策略和措施的有效性。通过审计和监控,可以发现潜在的安全漏洞和问题,并及时采取相应的措施。
7、备份和恢复计划:制定备份和恢复计划,以确保在发生安全事件或灾难时能够迅速恢复系统和数据。定期测试备份和恢复计划,以确保其有效性。
8、培训和管理:对运维人员进行安全培训和管理,提高他们的安全意识和技能水平。同时,建立完善的安全管理制度,确保运维人员遵守安全规定和操作流程。

安全加固和运维是相互关联的,因为一个安全的系统需要运维来维护和管理,而运维也需要安全加固来确保系统的安全性。因此,在网络安全领域中,安全加固和运维是密不可分的。


博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

安全运营之安全检查和测试

发表于 2023-12-19 | 更新于: 2025-07-11 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 1.6k | 阅读时长 ≈ 5

安全运营是一个将技术、流程和人有机结合的复杂系统工程,通过对已有安全产品、工具和服务产出的数据进行有效的分析,持续输出价值,解决安全问题,以确保网络安全为最终目标。

安全检查和测试是确保系统、设备或环境安全的重要手段,是安全运营基础工作的一部分。

安全检查主要通过定期或不定期地对系统、设备或环境进行全面的检查,以发现潜在的安全风险和漏洞。检查的内容可能包括各级人员安全责任制的落实情况、安全活动开展的贯彻落实情况、安全规章制度和措施的落实情况、现场安全管理情况、员工的遵章守纪情况以及员工安全操作规程及安全常识掌握情况等。

安全测试则是一种通过模拟攻击者的行为,测试系统的安全性,并发现潜在的弱点和漏洞的过程。这可以包括网络渗透测试、应用程序渗透测试等。

安全检查和测试包括日常的安全扫描、安全检查和针对信息系统的渗透测试。

一、安全扫描

通过按照计算机信息系统安全的国家标准、相关行业标准设计、编写、制造的安全扫描工具,分析并指出有关网络的安全漏洞及被测系统的薄弱环节,给出详细的检测报告,并针对检测到的网络安全隐患给出相应的修补措施和安全建议。

安全扫描目的是提高内部网络安全防护性能和抗破坏能力,检测评估已运行网络的安全性能,为网络系统管理员提供实时安全建议。安全扫描作为一种积极主动的安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害之前可以提供安全防护解决方案。

安全扫描是一种快速有效的安全评估手段,可以发现系统可能存在的部分安全问题,一般会采用安全扫描工具进行安全扫描,漏扫工具会根据目前安全行业漏洞发掘情况,对扫描系统漏洞库不断进行更新。使在扫描过程中,可以发现系统更多的安全问题。

在安全扫描过程中严格遵守以下原则:

1)服务不能影响目标系统所承载的业务运行;

2)服务不能严重影响目标系统的自身性能;

3)操作时间选择在系统业务量最小,业务临时中断对外影响最小的时候。

二、安全检查

安全检查是指安全专家登录主机,网络设备,根据检查列表对可能存在的安全漏洞进行逐项检查,根据检查结果提供详细的漏洞描述和修补方案。人工检查作为人工实施的安全评估手段可以有效弥补由于在防火墙策略或者其他安全设备的防护措施下,安全扫描工具无法扫描发现系统内部特定区域的缺陷。通过安全专家在主机、网络等设备上的实际操作,可以更深程度地发现系统存在的问题及需要安全增强的脆弱点。

安全检查是信息系统脆弱性发掘的一种有效措施,可以发现系统内部帐号策略、权限管理、日志审核、网络服务等诸多问题。对服务器及网络系统来说人工检查是安全加固的必要步骤。

三、渗透测试

渗透测试(penetration test)是通过模拟恶意攻击的方法,来评估系统是否存在安全风险的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,安全渗透测试工程师以攻击者的视角从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。渗透测试还具有的两个显著特点是:渗透测试是一个渐进的并且逐步深入的过程。渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。

1、渗透测试方法

黑盒渗透测试:是为了证明信息系统在网络孤岛的情况下面对 APT 攻击的危险性,系统安全防御是否按照预期计划正常运行而提供的一种测试方案。

测试过程中,会综合采用各种手段和途径,包括端口扫描,漏洞扫描,密码猜测, 密码破解,数据窃听,伪装欺骗等技术方式。最终目的就是为了检验该网络各个环节的安全性。

2、模拟渗透测试技术

模拟渗透入侵测试,是指为了对一个目标网络的安全性进行实际检查,进行不带攻击行为的全面安全检测;是一个在评估目标主机、网络、嵌入式设备的安 全性,模仿黑客特定攻击行为的过程。

详细地说,是指测试工程师尽可能完整的收集相关信息,利用收集到的信息进行靶场搭建,完整的模拟黑客使用的漏洞发现技术和攻击手段,对目标网络的安全性作完整攻击复现的过程。

通过安全检查和测试,可以及时发现并解决潜在的安全问题,提高系统的安全性,确保系统、设备或环境的安全稳定运行。


博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

pandas对波形异常数据处理实战

发表于 2023-12-18 | 更新于: 2025-07-11 | 分类于 技术 , 开发 | | 阅读次数:
字数统计: 533 | 阅读时长 ≈ 2

做数据分析很大一部分工作量都是在对数据处理,因为数据来源的质量问题,不能保证所有的数据都是正常的。对于数据分析和处理来说pandas无疑是常用的利器。下面通过一个实例来用pandas对波形异常数据进行实战处理。

读取数据

1
2
3
4
5
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df_data=pd.read_csv('data\HRTrend测试波形.csv')
df_data

原始波形数据

从csv导入的数据是文本字符串类型的,用《Python将列表中的数据写入csv并正确读取解析》中介绍的方法将文本数据转成列表。

1
2
3
4
5
def str2list(str):
return np.fromstring(str[1:-1], sep=' ')

df_data['HRTrend']=df_data['HRTrend'].apply(str2list)
df_data

文本字符串转list后的波形数据
用plt查看图形

1
2
3
4
5
6
fig,axes = plt.subplots(3,4,figsize=(12,4))
i=0
for x in range(3):
for y in range(4):
axes[x,y].plot(df_data['HRTrend'][i])
i=i+1

异常数据波形

从图形上看出现了异常。我们抽一个数据进行查看,发现前后有很多空值,并且在数据中也存在缺失值。

1
df_data['HRTrend'][0]

异常数据实例

1
plt.plot(df_data['HRTrend'][0])

异常图形实例

用plt画出图形,可以看到因为有缺失值所以图形并不连续。

异常数据处理

为了更好的展示图像,为以后的数据分析准备数据,我们需要将前后的空值去掉,对于中间存在的异常值我们可以用前值或后值进行填充。

1
2
3
4
5
6
# 定义一个方法,先将空值用0填充,然后去首尾的0,再将中间存在异常的值用前值填充。
def ruledata(df_cloumn):
ps=pd.Series(df_cloumn).fillna(0) #先将为空值用0填充
values=pd.Series(np.trim_zeros(ps)).replace(to_replace=0, method='ffill').values #去首尾0,然后用异常值填充
return values
df_data['rule_HRTrend']=df_data['HRTrend'].apply(ruledata) #将异常数据处理的方法进行应用处理异常值
1
2
3
4
5
6
fig,axes = plt.subplots(3,4,figsize=(12,4))
i=0
for x in range(3):
for y in range(4):
axes[x,y].plot(df_data['rule_HRTrend'][i])
i=i+1

异常数据处理后的正常图形

最后可以发现经过异常值修复后图形变得正常连续了。


博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

Python将列表中的数据写入csv并正确解析出来

发表于 2023-12-16 | 更新于: 2025-07-11 | 分类于 技术 , 开发 | | 阅读次数:
字数统计: 524 | 阅读时长 ≈ 2

用Python做数据处理常常会将数据写到文件中进行保存,又或将保存在文件中的数据读出来进行使用。通过Python将列表中的数据写入到csv文件中很多人都会,可以通过Python直接写文件或借助pandas很方便的实现将列表中的数据写入到csv文件中,但是写进去以后取出有些字段会有变化有些坑还是要避免。本文通过实例来介绍如何将列表中的数据写入文件如csv并正确解析出来使用。

示例数据如下:

1
2
3
data = [['John', '25', 'Male',[99,100,98]],
['Emily', '22', 'Female',[97,99,98]],
['Michael', '30', 'Male',[97,99,100]]]

通过pandas将数据写入csv

1
2
3
4
5
import pandas as pd
df = pd.DataFrame(data,columns=['Name', 'Age', 'Gender','Score'])
filename = 'data\pd_data.csv'
df.to_csv(filename, index=False)
df

数据集

我们对原始的数据中的分数Score字段进行求和统计总分TotalScore

1
2
df['TotalScore']=df['Score'].apply(sum)
df

数据集TotalScore

通过pandas将csv文件中的数据读出

用pandas将csv文件将数据读出也是非常方便的一行代码就可以搞定

1
2
df_read_csv=pd.read_csv(filename)
df_read_csv

数据集

但是会发现从csv文件中读出数据后形成的dataframe数据集对数据中的分数Score字段进行求和统计总分TotalScore会报错!

1
2
3
df_read_csv['TotalScore']=df_read_csv['Score'].app

TypeError: unsupported operand type(s) for +: 'int' and 'str'

原因是原数据中Score字段中的数据是list但是报错至文件读出来后这个字段变成了字符串,字符串不能求和。

解决方案
将字段中为字符串的值进行转换,转换成list,numpy提供了string转list的方法,当然也可以自己写。

1
2
3
4
5
6
7
8
import numpy as np
def makeArray(text):
#return [int(item) for item in text[1:-1].split(',')] #将字串转换成列表
return np.fromstring(text[1:-1], sep=',') #用numpy提供的方法将字串转换成列表

df_read_csv['Score']=df_read_csv['Score'].apply(makeArray) #将Score由字符串转成列表
df_read_csv['TotalScore']=df_read_csv['Score'].apply(sum)
df_read_csv

数据集TotalScore

可以看到这下Score字段可以正常的进行求和统计总分TotalScore了。


博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注微信公众号,一起学习、成长!

《芯片战争》读后感-得芯片者得天下

发表于 2023-12-02 | 更新于: 2025-07-11 | 分类于 读书 | | 阅读次数:
字数统计: 4.5k | 阅读时长 ≈ 15

随着社会的进步和技术的发展,以互联网产业化、人工智能等为代表的第四次工业革命席转全球,人工智能技术如火如荼,将整个世界推入了智能化时代。有人说石油是现在工业的血液,那么芯片就是现代工业的大脑。芯片作为现代工业的大脑,它们被广泛应用于各种电子设备、通信、计算机、人工智能等领域。在现代电子设备中发挥着核心的作用。芯片可以控制和操作各种电子设备,执行复杂的运算和数据处理任务,实现各种智能化的功能。随着科技的进步和数字化转型的加速,芯片在各个领域的应用越来越广泛,从计算机、手机、汽车到航空航天、医疗、国防等各个领域,都离不开芯片的支持和推动,半导体芯片在现代技术和工业中的重要性无法被低估。

近年来在中美贸易战中,芯片起到了关键的战略性作用。在中美贸易战期间,半导体芯片成为了贸易争端的一个焦点和核心议题。2018年4月开始,美国政府针对我国发动了一场以芯片为核心的科技战,我们可以把之称为芯片战争。

《芯片战争》是一部从企业竞争和国力较量的角度讲述全球芯片产业发展历程的书籍。全书分上部全球芯风云和下部中国芯势力,上部主要讲述了全球芯片产业的发展史和芯片产业链的变迁,下部主要讲述了中国芯片的崛起与芯片产业发展的最新动态。作者余盛是国内战略咨询专家、消费品营销专家及财经作家。这本书是作者继《手机战争》之后关于信息产业领域的第二部力作,目前豆瓣评分是8.6分。
在这里插入图片描述

什么是芯片

芯片,也被称为集成电路(Integrated Circuit,IC)或微芯片,是一种将多个电子元件(如晶体管、电阻、电容等)集成到一个小而紧凑的半导体片上的技术和产品。现代芯片可以包含数十亿个这样的元件,它们通过复杂的制造过程被制作在一块硅晶圆上。这个过程包括设计、掩模制作、光刻、蚀刻、沉积和测试等多个步骤。最终得到的芯片具有各种功能,例如处理数据(如CPU)、存储信息(如RAM、ROM)、或者进行信号放大和转换(如运算放大器、ADC/DAC)。芯片的应用非常广泛,涵盖了几乎所有的电子设备,从计算机和手机到家用电器、汽车、医疗设备甚至军事装备。由于其体积小、耗电少、成本低、速度快等特点,芯片对于推动科技进步和现代化生活起到了至关重要的作用。

芯片的发展历程

集成电路(芯片)在其早期发展阶段受到了美国国防工业的支持和推动。20世纪中叶,随着冷战的升温,美国政府和军方对于新技术的需求增加,特别是对于更小型化、更高效和更可靠的电子设备和计算机系统的需求。集成电路的发展为解决这些需求提供了重要支持。在这一时期,美国国防部和一些政府机构积极支持了集成电路技术的研究和发展。例如,1958年美国国家航空航天局(NASA)成立时,其推动了一系列技术创新,并且在航天器和计算机系统中广泛采用了集成电路。此外,军方对于集成电路在军事通信、导航系统和计算机技术中的应用也给予了关注和资金支持。
芯片的发展历程可以追溯到20世纪中叶,经历了几个阶段的演变。以下是芯片发展的主要历史阶段:

  • 初期概念(1940s - 1950s): 芯片的概念最早在20世纪40年代末至50年代初由多位科学家和工程师提出。在这一时期,电子元件的集成度很低,电子器件主要通过手工连接构建。
  • 第一代晶体管技术(1950s - 1960s): 随着晶体管的发明和使用,电子器件变得更加小型化和可靠。这一时期的电子器件仍然是离散的,但晶体管的引入为集成电路奠定了基础。
  • 集成电路的诞生(1958年): 杰克·基尔比(Jack Kilby)和罗伯特·诺伊斯(Robert Noyce)分别在1958年几乎同时提出了集成电路的概念。基尔比使用了间歇技术将几个器件集成到单个硅片上,而诺伊斯则提出了将多个晶体管集成到单个硅片上的全片法。这标志着集成电路的诞生,为后来的芯片技术奠定了基础。
  • 摩尔定律的确立(1965年): 戈登·摩尔(Gordon Moore)在1965年提出了著名的摩尔定律,指出集成电路上可容纳的晶体管数量每隔约18至24个月会翻倍。这一定律推动了半导体行业的迅猛发展,促使了芯片技术的不断创新和提升。
  • LSI和VLSI技术的发展(1960s - 1970s): 大规模集成电路(LSI)和超大规模集成电路(VLSI)技术的发展使得更多的晶体管能够集成到单个芯片上。这一时期,芯片的功能和复杂性不断增加,应用领域也逐渐扩展。
  • 先进制程和微纳米技术(1980s至今): 随着半导体制造技术的不断进步,制程尺寸不断减小。从1980年代开始,微纳米技术逐渐成为主流,芯片上的晶体管数量呈指数级增长。这一时期,集成电路的制造变得更加复杂,包括光刻、蚀刻、离子注入等高度精密的制程。
  • 多核处理器和异构集成电路(2000s至今): 随着对计算能力和功耗效率的不断需求,多核处理器和异构集成电路的兴起成为一个重要趋势。这使得在一个芯片上集成不同类型的处理器和功能成为可能,以满足不同应用的需求。

芯片的发展历程体现了对集成度、性能、功耗等方面不断追求的过程。这一过程推动了信息技术的发展,影响了现代社会的方方面面。

芯片技术为什么难攻克

芯片技术随着这么多少年的快速发展,使得芯片技术变得异常复杂且具有高度专业性,涉及多个复杂的技术、物理和工程难题,对于后来者造成了巨大的技术壁垒。

  • 制程复杂性:
    制造芯片的制程非常复杂,涉及多个步骤,如光刻、蚀刻、沉积、离子注入等。随着制程尺寸不断减小,对制程的控制要求越来越高。微纳米技术的应用使得芯片上的元件尺寸趋近或小于100纳米,目前世界上最先进的芯片制造制程是3纳米,需要高度精密的制造工艺。
  • 摩尔定律挑战:
    摩尔定律指出,集成电路上的晶体管数量每隔一段时间会翻倍,但随着晶体管尺寸的不断缩小,已经接近原子尺度的极限。超越这一极限需要开发新的技术和材料,例如量子点技术、碳纳米管等。
  • 材料科学难题:
    随着制程的进一步微缩,新的材料需求不断涌现。寻找符合要求的材料,能够在小尺寸下保持稳定性、导电性、绝缘性等特性,是一个具有挑战性的问题。
  • 热管理问题: 集成电路的密度增加,功耗也随之增加。如何有效地管理芯片上的热量,防止过热对性能和寿命造成影响,是一个重要的挑战。
  • 设计复杂性:
    芯片设计变得越来越复杂,涉及到大量的晶体管和电路元件。设计出高性能、低功耗、可靠的芯片需要高度专业的技术和工程知识,而且设计周期较长。
  • 成本压力:
    高度先进的制程和设备投资成本巨大。发展新技术需要大量的研发资金,而且芯片制造商需要在竞争激烈的市场中保持竞争力,这对技术和成本控制提出了更高要求。

目前芯片产业的格局

在全球范围内,目前参与芯片产业领域竞争的主要经济体包括中国、美国、日本、韩国、中国台湾地区、欧州等。

  1. 中美两国: 中美之间的竞争是最引人注目的。美国在半导体领域拥有一些全球领先的企业,而中国则致力于迎头赶超,并投资大量资源用于半导体技术的研发和产业发展。两国之间存在着贸易争端和技术战略的角力。
  2. 日本:日本是全球领先的半导体生产国之一,拥有多家知名半导体公司,如东芝、富士通等。在芯片产业领域竞争,日本致力于发展先进的半导体技术,并将其应用于各种产品和服务中,包括汽车、电子设备和工业设备等。
  3. 韩国:韩国是全球最大的半导体生产国之一,拥有三星、LG等知名半导体公司。在芯片战争中,韩国通过大力发展半导体产业,实现了经济的快速增长和技术赶超。韩国的半导体产品广泛应用于全球市场,包括手机、电视、电脑等电子产品。
  4. 中国台湾:台湾的半导体产业在全球范围内具有重要地位,拥有台积电、联发科技等知名公司。台湾的半导体技术广泛应用于各种电子产品,包括手机、电脑、电视等。在芯片产业领域,台湾致力于维护自己的市场份额和技术优势。
  5. 欧洲:欧洲在芯片产业领域竞争中扮演了重要角色,拥有多家领先的半导体公司,如意法半导体、荷兰恩智浦、荷兰的ASML等。欧洲致力于发展自主的半导体产业,以减少对美国和亚洲的依赖,并推动创新和经济增长。

芯片产业的格局涉及到全球范围内的多个公司

  • 主要制造商:
    台湾半导体制造公司(TSMC): 作为全球最大的独立芯片制造厂商之一,TSMC提供给包括苹果、英特尔、AMD等公司制造先进的芯片。其技术领先地位使其成为全球芯片制造的中流砥柱。
    三星电子: 三星不仅在芯片制造领域有重要地位,还在内存、存储器和其他半导体产品方面具有竞争力。
    英特尔: 作为一家全球领先的芯片设计和制造公司,英特尔在服务器、个人电脑和数据中心等领域占据主导地位。
  • 设计公司:
    美国公司: 在芯片设计领域,美国的公司占据主导地位。例如,英特尔、高通、博通、NVIDIA等公司在处理器、通信芯片、图形处理器等领域具有显著的市场份额。
    中国公司: 中国也在不断加强在芯片设计领域的实力,包括华为旗下的海思、紫光展锐等公司。中国一直在推动本国芯片产业的发展,投资大量资源进行研发和支持本土芯片公司。
  • 消费电子公司:
    苹果、三星、华为、小米等: 这些公司不仅是芯片的大规模采购者,同时也在自家产品中采用自家设计的芯片,以提高产品性能和降低成本。
  • 新兴技术领域的公司:
    NVIDIA: 在人工智能和图形处理领域,NVIDIA具有显著的地位,其GPU(图形处理器)在深度学习等领域取得了巨大成功。
    AMD: 在处理器和图形芯片领域,AMD也在市场上展现出竞争力,尤其是在台式机和服务器市场。
  • 其他:
    日本的东芝、富士通,韩国的SK海力士等公司在存储器领域具有一定的市场份额。

中国芯片的发展

通过海湾战争,中国看到,现代战争已经发展到信息化战争阶段,以芯片为基础的电子战和信息战对战争的进程起着决定性作用。美国军方早在1987年就开始耗巨资研制带有病毒的芯片。海湾战争中,伊拉克军队从法国购买的打印机中就被安装了这种病毒芯片。美军在空袭巴格达之前,将芯片上隐蔽的病毒遥控激活,结果病毒通过打印机侵入伊拉克军事指挥中心的主计算机系统,导致伊军指挥系统失灵,整个防空系统随即瘫痪,完全陷入了被动挨打的境地。如今在军舰、战车、飞机、导弹等现代化武器中,以芯片为核心的电子装备越来越多。过去几次战争的经验显示,如果电子设备失效,武器将变成一堆废铜烂铁。因此,谁拥有了先进的芯片,谁就能掌握战场的主动权。像芯片这种事关国防安全的关键技术,必须掌握在自己国家的手中。

中国芯片产业的发展可以追溯到20世纪70年代,那时中国的芯片技术还相对落后于世界先进水平。然而,经过几十年的努力和政策支持,中国已经取得了显著的进步,并在全球半导体市场中占据了重要的地位。

  • 早期发展阶段
    1970年代初:中国政府开始认识到芯片产业的重要性,并着手建立国内的芯片研发和制造能力。
    1980年代:随着改革开放的推进,中国开始引进国外的技术和资金,推动了芯片产业的发展。
  • 进入国际市场(1990年代至今)
    1990年代:中国逐渐成为全球电子产品的重要生产基地,对芯片的需求量大增。
    2000年以后:中国政府加大了对芯片产业的支持力度,出台了一系列鼓励自主创新、吸引外资的政策。
    2014年:“集成电路产业发展纲要”发布,提出“中国制造2025”的战略目标,旨在实现关键领域的自主可控。
  • 现状与挑战
    截至2023年,中国已经成为全球最大的芯片消费国,但其在高端芯片的设计和制造方面仍然依赖于外国公司,尤其是在最尖端的工艺节点上。
    “卡脖子”问题依然存在,即在某些关键技术环节受到国际供应链限制,特别是在光刻机等核心设备以及EDA设计工具等领域。
    虽然华为海思等企业已经在移动处理器等领域取得了一定突破,但在存储器和高性能计算芯片等方面仍面临挑战。
  • 未来展望
    随着中美贸易紧张局势持续,中国更加重视自主发展芯片产业,投入大量资源进行自主研发。
    国内企业如长江存储、紫光展锐等正在积极开发自己的技术和产品,以减少对外部供应商的依赖。
    在国家政策的引导下,预计中国的芯片产业将继续保持较快的增长速度,同时也会在技术创新、人才培养和国际合作等方面做出更多的努力。

尽管面临着诸多挑战,中国芯片产业的发展前景总体来说是乐观的。不过,要想真正达到国际领先水平,还需要克服一系列技术和市场的障碍,并且需要时间来培养相关的生态系统。

半导体芯片制造这一极其复杂、高风险的业务一直是全球巨头之间的较量,也逐渐演变成为大国之间的竞争。虽然美国不断地在芯片领域打压我们,但是截止目前,美国并没有取得他们想要的结果,而中国的芯片领域在重重压力之下依旧坚持着发展,并且取得了不小的成绩。随着华为Mate60新手机发布后,我们已全面吹响了破除美帝科技霸权的号角,以芯片为代表的高科技之战,是我们崛起之前最后,也必须要打一场硬仗,只有打赢了对美国的芯片战争,才能真正建立完善的工业产业体系,走出一条属于中国的科技强国之路。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

<1…789…21>
XieJava

XieJava

203 日志
11 分类
26 标签
RSS
GitHub
友情链接
  • 爱分享读书
  • CSDN
  • 豆瓣
© 2025 XieJava | Site words total count: 419.2k

主题 — NexT.Muse
0%