Security+ 5. 实现主机/软件安全性

本文详细探讨了实现主机和软件安全的各个方面,包括系统加固、可信计算基础、软件更新、防恶意软件策略、嵌入式系统安全、云和虚拟化安全以及移动设备的安全管理。重点讲解了硬件和固件安全、软件安全基线、虚拟化安全性、云计算及其安全准则,同时强调了移动设备的连接方式和管理,以及在软件开发生命周期中融入安全性的重要性。
摘要由CSDN通过智能技术生成

5.1 加固(Hardening)

  • 指修改系统的默认配置来尝试关闭漏洞
  • 系统加固的技巧如下:
1. 确保操作系统符合最小功能原则,即系统不能提供超出其目的范围之外的其他功能。
2. 通过系统基于主机防火墙禁用任何不必要的网络端口
3. 禁用运行在系统上的任何不必要服务,减少系统的攻击面
4. 充分利用供应商或行业认可的组织所提供的任何安全配置来加强系统的防御能力。
5. 禁用系统上的任何默认账户,使攻击者无法通过这些账户获取访问权限。
6. 强制要求用户改掉分配给他们的默认密码。
7. 执行补丁管理服务,以便能够更高效地管理所有软件和服务的自动更新补丁。

5.2 可信计算基础(trusted computing base/TCB)

  • 指计算机系统中用于负责确保安全策略得到实施,系统安全性得到保障的硬件。
  • TCB组成:(TOS(固件(硬件)))
  • TOS(Trusted operating systems):可信OS,满足TCB安全要求的操作系统。

5.2.1 硬件和固件安全

  • BIOS/UEFI:基本输入/输出系统BIOS和统一可扩展固件接口[Unified Extensible Firmware Interface(UEFI)]都是固件接口,为操作系统启动初始化硬件。UEFI更现代更安全。
  • 信任根和HSM:信任根(root of trust)是指通过使用能保持数据机密性和防止被篡改的加密机制,实施硬件平台的可信计算架构的技术。硬件安全模块[Hardware security module(HSM)]是一种能够提供信任根功能的物理设备。
  • TPM:可信平台模块[Trusted platform module(TPM)]:一种安全的加密处理器,用于生成加密密钥,在TCB的多个方面都有使用。
  • 安全启动和远程认证:安全启动(Secure boot)是一种UEFI功能,在启动操作过程中阻止不想要的进程执行。UEFI采用启动加载程序的加密散列来确保其完整性。TPM为这个启动散列签订一个报告,发送到第三方进行验证,这个过程叫远程认证(remote attestation)
  • FDE/SED:基于硬件的全磁盘加密[full disk encryption(FDE)],用在被称为自加密驱动[Self-encrypting drives(SED)]的设备中。
  • EMI保护:所有的电器都会产生电磁干扰[Electromagetic interference(EMI)],未授权用户如果能接收这些电磁辐射,就可能获得其他的敏感数据。
  • EMP保护:攻击者使用电磁脉冲[Electromagetic pulses(EMP)]来破坏硬件,引起故障。
  • 供应链安全(supply chain):指供应,制造,分配,最终向消费者发布商品和服务的端到端过程。硬件生产商就对供应链的每个环节实施强而有力的安全机制,并评估执行该机制执行。

5.2.2 软件安全

  • 安全基线:一组应用到组织中特定主机上的安全和配置设置。
  • 日志(logging):win事件日志查看器(eventvwr.msc)
  • 安全审计(Security auditing):指对系统安全性中的优缺点执行有序技术评估的过程,确保系统符合要求。
5.2.2.1 软件更新
  1. 补丁(Patch):补充代码的小单元,用于解决软件数据包或操作系统中的问题或功能缺陷。
  2. 热修复(Hotfix):紧急发布的补丁,用于解决特定的安全缺陷。
  3. 汇总(Rollup):之前发布的补丁与热修改集合。
  4. 服务包(Service pack):更大的系统更新汇编集合,可能包括功能的提高,新性能等。
5.2.2.2 应用程序黑名单与白名单
  • 黑名单:阻止特定应用程序在系统上运行;但只能阻止被确定的,新的或未知的存在风险的应用程序可能会被赋予访问权限
  • 白名单:比黑名单提供了一种更加彻底的解决方案,但管理开销太大。
5.2.2.3 防恶意软件(Anti-malware software)

*指扫描独立计算机和整个企业网络,查找已知病毒、木马、蠕虫、以及其他恶意程序的保护性软件。有以下几种类型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的脚本部署 OpenStack 的示例,您可以根据自己的实际情况进行修改和调整。本脚本适用于 CentOS 7 系统。 1. 安装必要的软件包: ```bash yum install -y centos-release-openstack-stein yum update -y yum install -y python-openstackclient openstack-selinux mariadb mariadb-server rabbitmq-server memcached python-memcached httpd mod_wsgi python2-PyMySQL ``` 2. 配置 MariaDB 数据库: ```bash systemctl enable mariadb.service systemctl start mariadb.service # 创建数据库和用户 mysql -u root CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS'; FLUSH PRIVILEGES; QUIT; ``` 3. 配置 RabbitMQ 消息队列: ```bash systemctl enable rabbitmq-server.service systemctl start rabbitmq-server.service rabbitmqctl add_user openstack RABBIT_PASS rabbitmqctl set_permissions openstack ".*" ".*" ".*" ``` 4. 配置 Memcached 缓存: ```bash systemctl enable memcached.service systemctl start memcached.service ``` 5. 配置 Keystone 身份认证服务: ```bash # 修改 /etc/keystone/keystone.conf 文件 [database] connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone [token] provider = fernet # 初始化数据库 su -s /bin/sh -c "keystone-manage db_sync" keystone # 创建 Fernet 密钥 keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone # 创建管理员账户和服务 keystone-manage bootstrap --bootstrap-password ADMIN_PASS \ --bootstrap-admin-url http://controller:5000/v3/ \ --bootstrap-internal-url http://controller:5000/v3/ \ --bootstrap-public-url http://controller:5000/v3/ \ --bootstrap-region-id RegionOne # 设置环境变量 export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 # 创建服务和 API 端点 openstack service create --name keystone --description "OpenStack Identity" identity openstack endpoint create --region RegionOne identity public http://controller:5000/v3/ openstack endpoint create --region RegionOne identity internal http://controller:5000/v3/ openstack endpoint create --region RegionOne identity admin http://controller:5000/v3/ ``` 6. 配置 Glance 镜像服务: ```bash # 修改 /etc/glance/glance-api.conf 和 /etc/glance/glance-registry.conf 文件 [database] connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance [keystone_authtoken] auth_uri = http://controller:5000/v3 auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = glance password = GLANCE_PASS [paste_deploy] flavor = keystone # 初始化数据库 su -s /bin/sh -c "glance-manage db_sync" glance # 设置环境变量 export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 # 创建服务和 API 端点 openstack user create --domain default --password-prompt glance openstack role add --project service --user glance admin openstack service create --name glance --description "OpenStack Image" image openstack endpoint create --region RegionOne image public http://controller:9292 openstack endpoint create --region RegionOne image internal http://controller:9292 openstack endpoint create --region RegionOne image admin http://controller:9292 ``` 7. 配置 Nova 计算服务: ```bash # 修改 /etc/nova/nova.conf 文件 [database] connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova [api_database] connection = mysql+pymysql://nova_api:NOVA_API_DBPASS@controller/nova_api [keystone_authtoken] auth_uri = http://controller:5000/v3 auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = NOVA_PASS [glance] api_servers = http://controller:9292 [oslo_concurrency] lock_path = /var/lib/nova/tmp # 初始化数据库 su -s /bin/sh -c "nova-manage api_db sync" nova_api su -s /bin/sh -c "nova-manage db sync" nova # 设置环境变量 export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 # 创建服务和 API 端点 openstack user create --domain default --password-prompt nova openstack role add --project service --user nova admin openstack service create --name nova --description "OpenStack Compute" compute openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1/%\(tenant_id\)s openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1/%\(tenant_id\)s openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1/%\(tenant_id\)s ``` 8. 配置 Neutron 网络服务: ```bash # 修改 /etc/neutron/neutron.conf 文件 [database] connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron [keystone_authtoken] auth_uri = http://controller:5000/v3 auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = neutron password = NEUTRON_PASS [DEFAULT] core_plugin = ml2 service_plugins = router allow_overlapping_ips = True [ml2] type_drivers = flat,vlan,vxlan tenant_network_types = vxlan mechanism_drivers = linuxbridge,l2population extension_drivers = port_security [ml2_type_flat] flat_networks = provider [ml2_type_vxlan] vni_ranges = 1:1000 [securitygroup] enable_ipset = True [ovs] local_ip = 192.168.100.20 bridge_mappings = provider:br-provider # 初始化数据库 su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron # 设置环境变量 export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 # 创建服务和 API 端点 openstack user create --domain default --password-prompt neutron openstack role add --project service --user neutron admin openstack service create --name neutron --description "OpenStack Networking" network openstack endpoint create --region RegionOne network public http://controller:9696 openstack endpoint create --region RegionOne network internal http://controller:9696 openstack endpoint create --region RegionOne network admin http://controller:9696 # 创建网络 openstack network create --share --external --provider-physical-network provider --provider-network-type flat provider openstack subnet create --network provider --allocation-pool start=192.168.200.100,end=192.168.200.200 --dns-nameserver 223.5.5.5 --gateway 192.168.200.1 --subnet-range 192.168.200.0/24 provider # 创建路由器和子网 openstack router create router openstack subnet create --subnet-range 10.0.0.0/24 --network provider --gateway 10.0.0.1 provider_subnet openstack router add subnet router provider_subnet openstack router set --external-gateway provider router ``` 9. 配置 Horizon 控制台: ```bash # 安装 Apache 和 mod_wsgi yum install -y httpd mod_wsgi # 修改 /etc/openstack-dashboard/local_settings 文件 OPENSTACK_HOST = "controller" ALLOWED_HOSTS = ['*', ] SESSION_ENGINE = 'django.contrib.sessions.backends.cache' CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': 'controller:11211', } } OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True OPENSTACK_API_VERSIONS = { "identity": 3, "image": 2, "volume": 2, "network": 2, } OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default" OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user" # 启动 Apache 服务 systemctl enable httpd.service systemctl start httpd.service ``` 10. 配置 Compute 节点: ```bash # 安装必要的软件包 yum install -y centos-release-openstack-stein yum update -y yum install -y python-openstackclient openstack-selinux qemu-kvm libvirt libguestfs-tools virt-install bridge-utils # 修改 /etc/nova/nova.conf 文件 [database] connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova [api_database] connection = mysql+pymysql://nova_api:NOVA_API_DBPASS@controller/nova_api [DEFAULT] my_ip = 192.168.100.20 use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver [vnc] enabled = True server_listen = 0.0.0.0 server_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html [glance] api_servers = http://controller:9292 [oslo_concurrency] lock_path = /var/lib/nova/tmp [neutron] url = http://controller:9696 auth_url = http://controller:5000 auth_type = password project_domain_name = Default user_domain_name = Default region_name = RegionOne project_name = service username = neutron password = NEUTRON_PASS [libvirt] virt_type = qemu [keystone_authtoken] auth_uri = http://controller:5000/v3 auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = NOVA_PASS # 启动服务 systemctl enable libvirtd.service openstack-nova-compute.service systemctl start libvirtd.service openstack-nova-compute.service ``` 11. 完成以上步骤后,您应该能够正常创建云主机,并能够通过网络正常访问它们。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值