企业安全建设与实践
1、复习Windows及Linux基础命令。例如:用户创建、权限提升等。
Windows:
用户创建:net user <username> <password> /add
权限提升:Start-Process powershell -Verb runAs
Linux:
用户创建:useradd username
权限提升:sudo command / su /sudo -s
添加新的用户账号使用useradd命令,其语法如下:
useradd 选项 用户名 参数说明: 选项: -c comment 指定一段注释性描述。 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 -g 用户组 指定用户所属的用户组。 -G 用户组,用户组 指定用户所属的附加组。 -s Shell文件 指定用户的登录Shell。 -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。 用户名: 指定新账号的登录名。
创建一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam(/home为默认的用户主目录所在的父目录)。
useradd –d /home/sam -m sam
新建一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。
useradd -s /bin/sh -g group –G adm,root gem
这里可能新建组:groupadd group及groupadd adm
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。
Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。
2、复习docker 基础命令:启动、关闭、导入、导入、下载等命令复习建议docker菜鸟教程。
查找镜像:docker search httpd
拉取镜像:docker pull ubuntu
删除镜像:docker rmi hello-world
查看所有镜像列表:docker images
查看所有容器:docker ps -a,-a :显示所有的容器,包括未运行的
用于列出指定的容器的端口映射:docker port
查看容器 mymysql 的端口映射情况 docker port mymysql
创建一个新的容器但不启动它:docker create
使用docker镜像nginx:latest创建一个容器,并将容器命名为myrunoob docker create --name myrunoob nginx:latest
创建一个新的容器并运行,启动容器:docker run -it ubuntu /bin/bash
1、使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。 docker run --name mynginx -d nginx:latest 2、使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。 docker run -P -d nginx:latest 3、使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。 docker run -p 80:80 -v /data:/data -d nginx:latest 4、绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。 docker run -p 127.0.0.1:80:8080/tcp ubuntu bash 5、使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。 docker run -it nginx:latest /bin/bash
在运行的容器中执行命令:docker exec
1、在容器 mynginx 中以交互模式执行容器内 /root/runoob.sh 脚本 docker exec -it mynginx /bin/sh /root/runoob.sh 2、在容器 mynginx 中开启一个交互模式的终端 docker exec -i -t mynginx /bin/bash
启动一个已停止的容器:docker start <容器 ID>
停止容器:docker stop <容器 ID>
重启容器:docker restart <容器 ID>
删除容器:docker rm <容器 ID>
导出本地某个容器,将文件系统作为一个tar归档文件导出到STDOUT:docker export 1e560fca3906 > ubuntu.tar
- -o :将输入内容写到文件。
将id为a404c6c174a2的容器按日期保存为tar文件 docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2 ls mysql-`date +%Y%m%d`.tar mysql-20160711.tar
导入容器快照、从归档文件中创建镜像:docker import
# 可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1: cat docker/ubuntu.tar | docker import - test/ubuntu:v1 # 此外,也可以通过指定 URL 或者某个目录来导入,例如: docker import http://example.com/exampleimage.tgz example/imagerepo 从镜像归档文件my_ubuntu_v3.tar创建镜像,命名为runoob/ubuntu:v4 docker import my_ubuntu_v3.tar runoob/ubuntu:v4
将指定镜像保存成 tar 归档文件:docker save,
- -o :输出到的文件。
将镜像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文档 docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
获取容器/镜像的元数据:docker inspect
3、复习Windows策略相关知识点。
Windows安全策略主要包括以下几种类型:
1)密码策略:包括密码长度、复杂度、更换频率等设置,以防止未经授权的访问。
2)防火墙策略:通过设置防火墙规则来控制网络通信,以抵御外部攻击。
3)防病毒软件策略:及时更新防病毒软件,以便检测和清除病毒、木马等恶意程序。
4)系统更新策略:及时更新Windows系统,以确保系统的安全性和稳定性。
5)安全审计策略:配置安全审计功能,以便追踪和记录系统中的操作行为,及时发现异常事件。
4、复习基线加固部分内容。
安全基线(Security Baseline)是安全保护的起始水平标准,也可以理解为对目标系统进行网络安全保护所需的最小安全措施集合,或者是目标系统应获得的最低安全保护能力的集合。
从保障安全的角度出发,安全基线不可或缺的四大基本要素是:
甲)身份管理;
乙)访问控制;
丙)运行监测;
丁)审计管理。
这是安全基线的首要维度。
考虑到实际业务需求、功能结构和系统实现等多方面的限制,安全基线的四个基本组成部分需要与具体的设备、系统类型相匹配。
因此,形成了安全基线的第二个维度,包括:
(a)网络设备;
(b)安全设备;
(c)操作系统;
(d)Web中间件;
(e)数据库系统;
(f)可控制部分的应用运行状况。
从安全保障的视角,第三个层面主要关注的是安全基准,其中包括:
① 内在脆弱性(技术漏洞);
② 配置脆弱性;
③ 运行过程中的脆弱性。
https://blog.csdn.net/weixin_43047908/article/details/130577043
https://blog.csdn.net/weixin_48664996/article/details/119054046
5、渗透测试的流程及注意事项。
渗透测试一般流程:
准备阶段—>信息收集—>漏洞检测—>漏洞利用—>内网转发—>内网渗透—>痕迹清除—>撰写报告
渗透测试注意事项:
(1)合法,得到信息系统运营方的正式授权,得到监管机构的授权
(2)避免影响业务
(3)选择测试方法中避免使用具备破坏性的测试方法
(4)选择非业务高峰时段进行测试
(5)在与生产系统相同的开发、测试等环境中进行测试
(6)考虑风险规避
(7)风险处理计划
(8)备份及恢复
【渗透测试】最详细的介绍和流程方法(建议收藏)_渗透测试博客-CSDN博客
6、应急响应包括哪几个阶段,每个阶段主要内容?
应急响应程序6个过程为:准备、检测、抑制、根除、恢复、报告和总结。
(1)准备阶段:进行风险评估,建立应急响应和演练制度,人员和工具的准备。
(2)检测阶段:检测并确认安全事件的发生,确认安全事件类型和产生的原因,明确事件等级。
(3)抑制阶段:限制安全事件发生的范围和时长,降低损失。
(4)根除阶段:找出安全事件的根源,并清除隐患。
(5)恢复阶段:将系统恢复到正常运行状态,利用备份数据进行恢复。
(6)总结阶段:总结整个安全事件的发生过程,输出应急响应报告,提出整改建议。
应急响应处置流程通常被划分为准备、检测、抑制、根除、恢复、报告与总结等六个阶段。 (1) 准备阶段:在事件真正发生之前应该为事件响应作好准备,这一阶段十分重要。准备阶段的主要工作包括建立合理的防御和控制措施、建立适当的策略和程序、获得必要的资源和组建响应队伍等。 (2) 检测阶段:检测阶段要做出初步的动作和响应,根据获得的初步材料和分析结果,估计事件的范围,制订进一步的响应战略,并且保留可能用于司法程序的证据。 (3) 抑制阶段:抑制的目的是限制攻击的范围。抑制措施十分重要,因为太多的安全事件可能迅速失控,典型的例子就是具有蠕虫特征的恶意代码的感染。抑制策略一般包括关闭所有的系统、从网络上断开相关系统、修改防火墙和路由器的过滤规则、封锁或删除被攻破的登录账号、提高系统或网络行为的监控级别、设置陷阱、关闭服务 (4) 根除阶段:在事件被抑制之后,通过对有关恶意代码或行为的分析结果,找出事件以及反击攻击者的系统等。根源并彻底清除。对于单机上的事件,主要可以根据各种操作系统平台的具体检查和根除程序进行操作;但是大规模爆发的带有蠕虫性质的恶意程序,要根除各个主机上的恶意代码,是十分艰巨的任务。很多案例数据表明,众多的用户并没有真正关 注他们的主机是否已经遭受入侵,有的甚至持续一年多,任由感染蠕虫的主机在网络中不断地搜索和攻击别的目标。造成这种现象的重要原因是各网络之间缺乏有效的协调,或者是在一些商业网络中,网络管理员对接入到网络中的子网和用户没有足够的管理权限。 (5) 恢复阶段:恢复阶段的目标是把所有被攻破的系统和网络设备彻底还原到它们正常的任务状态。恢复工作应该十分小心,应避免出现误操作导致数据的丢失。另外,恢复工作中如果涉及到机密数据,需要额外遵照机密系统的恢复要求。对不同任务的恢复工作的承担单位,要有不同的担保。如果攻击者获得了超级用户的访问权,一次完整的恢复应该强制性地修改所有的口令。 (6) 报告与总结阶段:报告与总结是最后一个阶段,但却是绝对不能够忽略的重要阶段。这个阶段的目标是回顾并整理发生事件的各种相关信息,尽可能地把所有情况记录到文档中。这些记录的内容,不仅对有关部门的其他外理工作具有重要意义,而且对将来应急工作的开展也是非常重要的积累。
https://www.wangan.com/wenda/13542
http://www.manongjc.com/detail/42-gmreurtiagrqbot.html
7、服务器上传webshell,如何解决?
① 及时隔离主机。
② 结合web日志分析,使用find命令查找定位webshell。
③ 安装webshell检测工具,发现webshell后及时隔离查杀,清除残留文件。
④ 排查程序存在的漏洞,及时修补漏洞。
⑤ 对服务器进行安全加固,例如开启防火墙策略,关闭远程桌面功能、定期更换密码、禁止使用最高权限用户运行程序、使用HTTPS加密协议等。
⑥ 加强敏感目录权限管理,限制脚本执行权限,运用白名单上传文件。
8、在加固windows操作系统时,可以从哪些方面进行加固?
① 及时更新操作系统补丁和应用程序。
② 安装杀毒软件,定期扫描系统,启用实时保护。
③ 配置防火墙,控制进出网络流量,禁用或限制不必要的服务、多余进程、无用端口。
④ 禁用或删除不必要的账户,设置强密码,要求复杂且定期更换密码。
⑤ 定期备份重要数据。
⑥ 设置应用程序白名单。
⑦ 定期检查安全日志,提高用户安全意识。
9、什么是社会工程学?
社会工程学是指利用心理学、社会学及各种交际技巧等手段,通过对人类心理弱点的研究,制造虚假场景或者说话方式来获取目标信息或者对其进行控制,来获取或欺骗他人的机密信息或实现对其进行诈骗、攻击等非法行为的一种手段。
社会工程学是指攻击者利用心理学和社会学知识,通过与目标人员建立信任、误导、欺骗等手段,获取机密信息,来达到攻击目的的一种技术手段。
比如通过伪装成公司员工或者其他可信身份,骗取密码、账户信息等敏感数据,或者利用社交网络等获取个人信息从而进行钓鱼攻击等。
https://blog.csdn.net/weixin_44556964/article/details/130287492
10、蜜罐分类及作用。
按用途分类:研究型蜜罐,产品型蜜罐。
研究型蜜罐:用于研究各类网络威胁,寻找应对的方式。
产品型蜜罐:用于捕获生产环境中的攻击,保护生产环境。
按交互程度分类:低交互式蜜罐,中交互式蜜罐,高交互式蜜罐。
低交互式蜜罐 :通常是指与操作系统交互程度较低的蜜罐系统,仅开放一些简单的服务或端口,用来检测扫描和连接,这种容易被识别。
中交互式蜜罐 :能够模拟操作系统更多的服务,让攻击者看起来更像一个真实的业务,从而对它发动攻击,这样蜜罐就能获取到更多有价值的信息。
高交互式蜜罐 :与操作系统交互很高的蜜罐,它会提供一个更真实的环境,这样更容易吸引入侵者,有利于掌握新的攻击手法和类型,但同样也会存在隐患,会对真实网络造成攻击。
按实现方法分类:物理蜜罐,虚拟蜜罐。
物理蜜罐是网络上一台真实的完整计算机。
虚拟蜜罐是由一台计算机模拟的系统,但是可以响应发送给虚拟蜜罐的网络流量。
作用:蜜罐是用来吸引那些入侵者,可以实现对攻击者的主动诱捕,能够记录攻击者攻击痕迹,收集到大量有价值的数据,从而便于提供丰富的溯源数据。
https://www.wangan.com/p/11v74e42b4fb7a32
https://www.jianshu.com/p/8e12f6782120
https://blog.csdn.net/adzz9/article/details/134413086
11、网站服务器中了挖矿病毒,如何进行处置?
1)首先隔离当前主机,做断网处理。
- 非重要业务系统直接下线隔离再做排查。
- 重要业务系统:在不影响业务的前提下,及时隔离当前主机。
2)排查服务器,根据CPU高占用率确定挖矿进程。
- 查看安全设备是否有相关告警日志,排查服务器,确认挖矿进程。
- 查看CPU高占用(Windows直接通过任务管理器,Linux使用命令top),可疑进程,计划任务,开放的端口,服务项等。
3)定位挖矿文件位置并删除,检查并清除挖矿定时任务,启动项等,防止复发(挖矿木马持久化)。
- crontab -l 查看定时任务
- crontab -r 删除所有定时任务
4)安全加固:根据挖矿木马的传播方式,修复相应漏洞,防止再次感染。
5)最后通过账号、日志、母体文件等信息,溯源攻击路径。
挖矿病毒应急响应思路,挖矿病毒事件处理步骤_挖矿程序怎么解决_士别三日wyx的博客-CSDN博客
12、自动化渗透测试与手动渗透测试区别
手动渗透测试:需要专业的渗透测试工程师,可以针对性分析与测试,灵活,但需要成本且耗时。
自动化渗透测试:利用自动渗透测试工具,自动测试机器的漏洞和风险,更快,更高效,更容易,更可靠,但输出统一,不能测试所有漏洞。
在实际工作中,往往利用自动渗透测试工具辅助手动渗透测试工作。
https://baijiahao.baidu.com/s?id=1749904668078627061&wfr=spider&for=pc
13、军方进行渗透测试为什么不建议进行自动化渗透测试,而选择手动渗透测试?
(1)误报漏报:自动化工具可能会误判正常的网络行为为漏洞或者漏报某些真实的漏洞.
(2)漏洞深度检测有限:自动化工具无法像人类安全专家那样对系统的复杂性和深度进行检测。
(3)无法对新漏洞进行充分检测:自动化工具的漏洞库存在滞后性,不能及时发现新漏洞.
(4)不具备判断力和灵活性:自动化工具缺乏判断力和灵活性,难以有效应对复杂的攻击场景。
(5)数据敏感性:军事组织处理的数据通常具有极高的敏感性和保密性。自动化工具可能会产生大量的日志和输出,这些输出如果没有得到妥善处理,可能会泄露敏感信息。
(6)后续分析和建议:手动渗透测试的结果通常伴随着专家的分析和建议,这些见解对于修复漏洞和加强系统安全至关重要。
14、如何防范社会工程学的攻击?
个人:
① 了解常见的社会工程学手段,如钓鱼邮件、钓鱼网站、身份冒充等;
② 保护个人隐私,不要随意透露个人信息,在注册可信网站时只填写必要信息,尽量少填写未知问卷;
③ 对未知人员和来电信息,时刻提高警惕;
④ 保持理性;
企业:
① 普及教育,做好网络安全意识的培训;
② 严格身份认证,严格授权审核;
③ 建立完善的安全响应应对措施。