TryHackMe 第1天 | Introduction to Cyber Security
偶然之间了解到了TryHackMe这个网站,尝试跟着其中的学习路径进行学习,发现还是挺适合入门网络安全这一领域的。但是这个网站包含了很多内容,如果不用一些东西记录下来,那么很容易忘记,所以打算在此记录一下学习过程。
目前因为刚开始,学习路径中的内容都还比较基础,有些内容之前我也了解,但是“温故而知新”,所以也就打算快速过一遍,复习的同时也进行一些查漏补缺。
由于网站里的所有内容都是英文,因此都是借助翻译软件和自己的理解来翻译的,可能有不太准确的地方。
Introduction to Cyber Security
这一部分简要地介绍了 Offensive security (攻击性安全) 和 Defensive security (防御性安全)的概念。
Offensive security 就如同“角色扮演”,“扮演”一个黑客,去寻找漏洞、利用漏洞、入侵系统。
Defensive security 刚好相反,它如同“守卫”,保护网络和计算机系统使其免受恶意攻击影响。
Offensive security
这一部分介绍了 Offensive security 中比较常见的三个领域:
- Web application security,Web应用程序安全
- Operating system security,操作系统安全
- Network security,网络安全
Web application security
Web应用程序可以被理解为“在远程服务器上运行的程序”,有些Web程序可能会和数据库有所关联。Web程序在我们的生活中十分常见,比如 网页版邮箱、在线Office、网上银行等都属于Web应用程序的范畴。
常见的Web程序漏洞有如下几种:(注意,这并不代表Web程序漏洞只包含下述几种)
-
Identification and Authentication Failure,识别和认证失效。Identification 意为唯一识别用户的能力;Authentication 意为证明用户身份的能力。该漏洞很可能由于密码被爆破、使用弱密码、明文传输密码等原因导致。
-
Broken Access Control,被破坏的权限控制。权限控制能确保每个用户只能访问到自己权限内能访问到的文件。当权限控制出现问题时,可能会让信息被本不该允许访问的用户获取,比如使用他人ID查看或修改其信息,或者未登录就可以访问本该登录才能访问的页面。
-
Injection,注入。注入指用户可以通过Web程序中的漏洞插入恶意代码。这种漏洞的起因之一是未对用户的输入做验证和消毒。
-
Cryptographic failures,失效加密。这一类漏洞与密码学相关。一般来说,数据的加密将明文加密为密文,如果没有解密密钥的话,是无法理解密文的含义的。失效加密,顾名思义就是数据加密失效,就算没有解密密钥,也可以得知密文含义。像明文传输、使用弱加密算法、使用简单的解密密钥等,都会导致加密失效。
Operating system security
不管电脑还是手机,它们都由硬件构成,如CPU、内存等。我们无法直接在硬件上面运行程序,所以就需要操作系统进行控制,使程序可以按照特定规则访问硬件。
在我们的手机或者电脑上,存储着许多数据,有些可能普通,有些则可能涉及隐私。倘若操作系统出现了漏洞,那么我们存储在设备上的数据将十分危险。围绕着数据,我们需要保证如下三件事情,简称“CIA”:
- Confidentiality,机密性。确保隐私和秘密数据只提供给指定人员。
- Integrity,完整性。任何人都无法篡改系统中存储的数据或在网络上传输的数据。
- Availability,可用性。我们希望这些数据随时可用。
这三点,同时也是操作系统安全所关注的。
在操作系统安全中,主要面临如下几点威胁:
-
Authentication and Weak Passwords,身份验证中的弱密码。身份验证一般通过三个方式:用户所知(如密码)、用户所有(如门禁卡)、用户特征(如指纹)。其中密码是最常见也是最容易受攻击的方式,因为很多用户倾向于使用易于猜测的密码或者在许多网站上都使用同一个密码。
-
Weak file permissions,薄弱的文件权限。一般而言,对于用户权限都要遵循“最小特权”原则,即“用户被分配的特权刚好可以满足他们工作所需要的”。薄弱的文件权限就容易使攻击者访问到本不能让他们访问到的文件,从而影响数据的机密性和完整性。
-
Access to malicious programs,恶意软件入侵。木马病毒就是恶意软件的其中一种,这些恶意软件可以破坏数据的完整性、机密性和可用性。防范措施有提高自身安全意识、安装杀毒软件等。
Network security
这里的“网络”不是指互联网,而是指“一组相互连接的计算机和设备”。此处的网络安全也是指 保护计算机网络及其数据的机密性、完整性和可用性的设备、技术和流程。
实现网络安全的硬件设备包括但不限于:
- Firewall,防火墙
- Intrusion detection system (IDS),入侵检测系统
- Intrusion prevention system (IPS),入侵防御系统
- Virtual private network (VPN),虚拟专用网络
软件也有:
- Antivirus software,杀毒软件
- Host firewall,主机防火墙。比如Windows自带的 Windows defender就是 Host firewall。
“未知攻,焉知防”,维护网络安全前得先知晓一次网络攻击是如何进行的。一图以蔽之:

上图是TryHackMe网站自带的图片,十分清晰地展示了一次网络攻击的行动路径。
- Recon,信息收集。在该阶段将获取目标的信息,如IP地址、操作系统版本、邮箱地址、用户名等等。
- Weaponization,武器化。这一步将准备一个带有恶意组件的文件。
- Delivery,传输。将上一步“武器化”的恶意文件发送给目标,比如通过电子邮件或USB。
- Exploitation,利用。传输成功后,当用户点击该恶意文件,当中的恶意组件就被激活了。
- Installation,安装。在进行上一步时,恶意文件就会在目标系统中安装恶意软件,以方便后续攻击利用。
- Command & Control (C2),命令与控制。成功安装恶意软件后,攻击者就能对目标系统执行命令并控制它。
- Actions on objectives,目标行动。获得一个目标的控制权后,攻击者就达到了目的。
Defensive security
这一部分主要讲解了两个领域:
- Digital forensics,数字取证
- Security operations,安全运维
Digital forensics
随着计算机和智能收集等数字系统的普及,法证学诞生了一个新分支来调查相关犯罪:数字取证。
假设在调查一个嫌疑人时,发现他拥有诸多电子设备,如台式电脑、平板电脑、智能手机、数码相机和USB。那么这些电子设备中的任何一个都可能包含有助于调查的信息,因此需要将这些设备作为证据处理。
在这一部分的讨论中,数字取证主要指为法律目的应用计算机科学调查数字证据,实际上企业也可以通过指派私人调查员来进行数字取证,这样的调查一般由违反公司政策引发。
数字取证一般需要如下步骤:
- 获取证据。收集数码设备。
- 建立监管链。保证数码设备在每一阶段都有负责人,确保只有获得授权的调查人员才能接触证据,维护证据的完整性。
- 将数码设备放到安全的容器中保存。
- 将数码设备运输到数字取证实验室进行取证。
Security operations
Security operations center (SOC),安全运维中心,由IT安全专业人员组成的团队,他们的任务是每周 7 天,每天24小时监控公司的网络和系统。
SOC的目标有如下几点:
- 寻找网络中的漏洞。SOC可能会在网络上的任何设备上找到漏洞,然后针对漏洞发布特定补丁。严格来说,漏洞不一定是SOC的责任,不过既然有漏洞还是要去解决不是吗。
- 检测未授权的行为。假如有员工的用户名和密码泄露了,SOC需要在其产生损失前检测出该未授权行为。
- 发现违反政策的行为。安全政策是一套规则和程序,旨在帮助公司防范安全威胁并确保合规。SOC需要及时发现违反安全政策的行为,比如下载盗版文件和使用不安全的方法发送公司机密文件。
- 入侵检测。顾名思义。
- 应急响应支持。应急响应并非易事,SOC团队可以为应急响应团队提供支持和帮助。
那么SOC团队要凭借什么得知恶意行为的发生呢?
Data sources
SOC可以通过许多数据源来监控网络,寻找入侵迹象并检测任何恶意行为。这些数据源包括:
- Server logs,服务器日志。日志包含有关各种活动的信息,如登录成功或失败的尝试等。
- DNS activity,DNS活动。DNS用于将域名解析为IP地址,当DNS服务器进行解析时,会将查询记录起来。SOC只需要检查DNS查询记录就可以收集到内部系统试图通信的域名信息。
- Firewall logs,防火墙日志。防火墙日志可以揭示有关通过或试图通过防火墙的数据包的许多信息。
- DHCP logs,DHCP日志。DHCP用于为连接到网络中的系统分配IP地址。通过检查DHCP日志,我们可以了解加入网络的设备。
上述这些都是最常见的数据源,还有其他数据源可用于协助网络安全监控和SOC的其他任务,比如 Security information and event management (SIEM,安全信息和事件管理系统)。SIEM会汇总来自不同来源的数据,这样SOC就能有效地关联数据并应对攻击。
SOC需要提供的服务分为 reactive services(被动式服务) 和 proactive services (主动式服务)。
Reactive services 指检测到入侵或恶意事件后启动的任务,包括但不限于以下:
- 监控安全状况。这是SOC的主要职责,包括监控网络和计算机的安全警报和通知,并根据需要做出响应。
- 漏洞管理。查找公司系统中的漏洞并进行修复。SOC可以协助完成这项任务,但不一定要执行。
- 恶意软件分析。SOC可能会还原网络中的恶意程序,将其置于受控环境中执行基本分析。但是更高级的分析需要交给专门的团队进行。
- 入侵检测。维护入侵检测系统IDS,监控其警报,并根据需要查看其日志。
- 报告。报告事件与警报至关重要,这是确保工作流程顺畅和支持合规要求的必要条件。
Proactive services 指没有任何入侵迹象的情况下处理的任务,包括但不限于以下:
- Network security monitoring (NSM),网络安全监控。重点是监控网络数据并分析流量,以发现入侵迹象。与监控安全状况不同,后者是监控网络中的警报和通知。
- Threat hunting,威胁猎取。通过威胁猎取,SOC假定入侵已经发生,并开始猎取来确认是否能证实这一假设。
- Threat intelligence,威胁情报。威胁情报的重点是了解潜在威胁对象的信息、战术和技术,以改进公司的防御。目的是建立一种了解威胁的防御体系。
除这些服务外,SOC偶尔还会进行网络安全培训,提高用户安全意识,从而减少数据泄露和入侵事件的发生。
相关文章:
TryHackMe 第1天 | Introduction to Cyber Security
偶然之间了解到了TryHackMe这个网站,尝试跟着其中的学习路径进行学习,发现还是挺适合入门网络安全这一领域的。但是这个网站包含了很多内容,如果不用一些东西记录下来,那么很容易忘记,所以打算在此记录一下学习过程。 …...
ASP.NET MVC 迅速集成 SignalR
在现代 Web 应用程序中,实时更新数据是一个常见需求。本文将详细介绍如何在 ASP.NET MVC 项目中使用 SignalR 实现定时任务操作数据库并将数据更新到网页。我们将逐步讲解如何配置 SignalR、创建定时任务、操作数据库以及在前端显示实时数据。 目录 项目初始化安装…...
[数据集][目标检测]葡萄成熟度检测数据集VOC+YOLO格式1123张3类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1123 标注数量(xml文件个数):1123 标注数量(txt文件个数):1123 标注…...
【Python 数据分析学习】Matplotlib 的基础和应用
题目 1 Matplotlib 主要特性2 Matplotlib 基础知识2.1 导入模块2.2 图形构成2.2.1 图形(Figure)2.2.2 轴 (Axes)2.2.3 轴线(axis) 2.5 中文设置2.5.1 借助rcParams修改字体实现设置2.5.2 增加一个fontprope…...
HarmonyOS应用开发者基础认证
目录 一、判断二、单选三、多选 一、判断 1、HarmonyOS提供了基础的应用加固安全能力,包括混淆、加密和代码签名能力。正确 2、可以通过ohpm uninstall 指令下载指定的三方库。错误 3、支持模块化开发是指一个应用通常会包含多种功能,将不同的功能特性…...
gin基本使用
中文文档:https://gin-gonic.com/zh-cn/docs/ 下载和安装gin模块 go get -u github.com/gin-gonic/gin简单接口demo package mainimport "github.com/gin-gonic/gin"func main() {r := gin.Default() // 创建一个默认的路由引擎r.GET("/pin…...
【VUE】pinia持久化存储
前言:状态持久化存储的意义在于它能够确保用户在与应用程序交互时,其操作状态、用户偏好、应用数据等关键信息在页面刷新、浏览器关闭或重新启动后依然得以保留,从而提供连贯、无缝的用户体验,避免因状态丢失导致的不便和重复操作…...
【Java基础】泛型
文章目录 泛型一、概述二、泛型的使用1、类2、方法3、接口 三、泛型通配符1、<?>2、<? extends T>3、<? super T> 四、泛型的擦除1、泛型的擦除2、泛型边界的擦除3、无法实例化泛型类型 泛型 一、概述 泛型(Generic)是一种机制&a…...
STL-vector练习题
118. 杨辉三角 思路: 杨辉三角有以下性质使我们要用到的: ● 每行数字左右对称,由 1 开始逐渐变大再变小,并最终回到 1。 ● 第 n 行(从 0 开始编号)的数字有 n1 项,前 n 行共有 2n(n1)个数。…...
Leetcode 165. 比较版本号(Medium)
给你两个 版本号字符串 version1 和 version2 ,请你比较它们。版本号由被点 . 分开的修订号组成。修订号的值 是它 转换为整数 并忽略前导零。 比较版本号时,请按 从左到右的顺序 依次比较它们的修订号。如果其中一个版本字符串的修订号较少,…...
Android 12 Launcher3 去掉Hotseat
1.概述 在12.0 产品定制化开发中 由产品需求Launcher3 页面布局的原因,要求Launcher3 需要去掉Hotseat 不显示Hotseat下面几个图标,而做满屏app的显示,从而达到美观的效果,下面就来分析去掉Hotseat从而实现这个功能 2.Launcher3 …...
Nginx实用篇:实现负载均衡、限流与动静分离
Nginx实用篇:实现负载均衡、限流与动静分离 | 原创作者/编辑:凯哥Java | 分类:Nginx学习系列教程 Nginx 作为一款高性能的 HTTP 服务器及反向代理解决方案,在互联网架构中扮演着至关重要的角色。它…...
python | Python中的类多态:方法重写和动态绑定
本文来源公众号“python”,仅用于学术分享,侵权删,干货满满。 原文链接:Python中的类多态:方法重写和动态绑定 多态(Polymorphism)是面向对象编程的核心特性之一,它允许同一接口在…...
Rust编写Windows服务
文章目录 Rust编写Windows服务一:Windows服务程序大致原理二:Rust中编写windows服务三:具体实例 Rust编写Windows服务 编写Windows服务可选语言很多, 其中C#最简单。本着练手Rust语言,尝试用Rust编写一个服务。 一:Win…...
MATLAB 从 R2024B 开始支持树莓派 5
树莓派(Raspberry Pi)系列是一系列基于单板计算机的微型电脑,由英国的树莓派基金会于 2012 年开始发布。它的目标是提供一个低成本、易于学习和玩耍的平台,用于教育和初学者学习计算机科学和编程。 目前市面上,最新最…...
MiniBlogum项目简介
MiniBlogum项目简介 文章目录 MiniBlogum项目简介一、引言二、技术栈与开发环境三、主要功能(一)用户注册与登录(二)查看当前登录用户/作者头像、昵称、Gitee仓库地址(三)查看博客列表(四&#…...
如何用 OBProxy 实现 OceanBase 的最佳路由策略
引言 OBProxy,即OceanBase Database Proxy,也简称为ODP,是 OceanBase数据库的专属服务代理。通过应用OBProxy,由后端OceanBase集群的分布式特性所带来的复杂性得以屏蔽,从而使得访问分布式数据库的体验如同访问单机数…...
new/delete和malloc/free到底有什么区别
new和malloc 文章目录 new和malloc前言一、属性上的区别二、使用上的区别三、内存位置的区别四、返回类型的区别五、分配失败的区别六、扩张内存的区别七、系统调度过程的区别总结 前言 new和malloc的知识点,作为一个嵌入式工程师是必须要了解清楚的。new和malloc的…...
Flutter启动无法运行热重载
当出现这种报错时,大概率是flutter的NO_Proxy出问题。 请忽略上面的Android报错因为我做的是windows开发这个也就不管了哈,解决下面也有解决报错的命令大家执行一下就行。 着重说一下Proxy的问题, 我们看到提示NO_PROXY 没有设置。 这个时候我…...
CSS调整背景
一、设置背景颜色 通过 background-color 属性指定,值可以是十六进制 #ffffff,也可以是rgb(0, 255, 255),或是颜色名称 "red" div {background-color: red; /* 通过颜色名称设置 */background-color: #ff0000; /* 通过十六进制设…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
