GurukiranShiv/Cybersecurity-Training-System
GitHub: GurukiranShiv/Cybersecurity-Training-System
一套结合 Java 培训应用和 Python 机器学习模块的网络安全教育实验室,通过实践帮助学习者掌握常见安全威胁的检测与防御技术。
Stars: 0 | Forks: 0
# 网络安全培训系统
一个模块化的网络安全培训实验室套件,旨在通过实践示例帮助学习者了解常见的安全威胁、攻击模式和防御分析技术。
本项目结合了基于 Java 的培训应用程序、基于 Python 的机器学习模块、钓鱼 URL 分析、恶意软件分类以及 SQL 注入实践材料。目标是提供一个实用的意识和培训环境,让用户可以在受控的教育设置中探索网络安全概念。
## 项目概述
网络安全意识是降低组织风险的重要组成部分。许多安全事件都始于常见的攻击媒介,例如网络钓鱼、恶意文件、薄弱的应用程序安全性以及对用户输入的不当处理。本项目通过多个独立的模块演示了各种网络安全概念,可用于学习、培训和基础实验。
该系统包括:
- 网络安全意识和培训模块
- 入侵检测系统学习组件
- 使用机器学习进行恶意软件检测
- 钓鱼网站 / URL 特征提取和预测
- SQL 注入实践材料
- 使用 NetBeans 构建的基于 Java 的培训应用程序
- 用于安全分类任务的 Python 脚本和数据集
## 仓库结构
```
Cybersecurity-Training-System/
│
├── IDS_LMS/ # Java-based Learning Management System module
├── IDS_User/ # Java-based user-side IDS/training module
├── Left_over_food/ # Java web application module / supporting training app
├── ML-malware-detection/ # Machine learning malware detection scripts and datasets
├── PhishingWebsite/ # Phishing URL feature extraction and prediction module
├── ids_malware/ # Flask/Python malware detection module
├── sql_injection/ # SQL injection notebook and test outputs
├── files/ # Project abstract and documentation notes
├── final dbit malware/ # Combined/backup project components
└── .gitignore # Git ignore rules
```
## 主要模块
### 1. IDS LMS 模块
`IDS_LMS` 包含一个基于 Java/NetBeans 的学习管理模块。旨在支持网络安全培训内容和学习工作流。
**目的:**
- 提供结构化的学习界面
- 支持培训内容管理
- 帮助用户通过引导式系统理解安全概念
**使用技术:**
- Java
- NetBeans 项目结构
- Ant 构建文件
- `lib/` 文件夹中的支持库
### 2. IDS 用户模块
`IDS_User` 代表培训系统的面向用户模块。学习者可以使用它来访问网络安全意识内容或与培训活动进行互动。
**目的:**
- 提供用户端交互
- 支持学习者访问培训场景
- 与 LMS/管理类模块协同工作
**使用技术:**
- Java
- NetBeans
- Ant 构建系统
### 3. 恶意软件检测模块
该仓库包含两个侧重于恶意软件的领域:`ML-malware-detection` 和 `ids_malware`。
这些模块演示了如何使用机器学习根据提取的特征对文件进行分类。
**实现的概念:**
- PE/ELF 文件特征提取
- 恶意软件与合法文件分类
- 基于数据集的训练
- 使用 pickle/joblib 进行模型序列化
- 使用机器学习算法进行分类器比较
**算法 / 使用技术:**
- Decision Tree
- Random Forest
- Gradient Boosting
- AdaBoost
- Gaussian Naive Bayes
- 使用基于树的模型进行特征选择
- 混淆矩阵评估
**使用技术:**
- Python
- pandas
- NumPy
- scikit-learn
- pefile
- pickle/joblib
- `ids_malware` 中的 Flask 支持
### 4. 钓鱼网站检测模块
`PhishingWebsite` 包含用于从 URL 中提取特征并分类 URL 是否具有潜在恶意或合法的 Python 脚本。
**实现的概念:**
- URL 特征提取
- 数据集生成
- 模型训练
- URL 测试和预测
- 钓鱼检测工作流
**重要文件:**
```
PhishingWebsite/
├── FeatureExtraction.py
├── Main.py
├── Trainer.py
├── UI.py
├── predict.py
├── training.py
├── WebURL_Feature.csv
├── url_features.csv
└── clf.model / clf1.model
```
**使用技术:**
- Python
- CSV 数据集
- 机器学习模型文件
- URL 特征工程
### 5. SQL 注入实践模块
`sql_injection` 包含与 SQL 注入学习相关的 notebook/测试材料。
**目的:**
- 演示基于输入的 Web/数据库安全风险
- 帮助学习者在受控的实验室环境中了解 SQL 注入的工作原理
- 支持安全编码意识
**重要文件:**
```
sql_injection/
├── Untitled.ipynb
├── output.txt
└── test.txt
```
## 功能
- 模块化的网络安全培训结构
- 基于 Java 的培训和 LMS 组件
- 基于 Python 的恶意软件检测工作流
- 钓鱼 URL 特征提取和预测
- SQL 注入实践材料
- 机器学习模型训练和预测示例
- 适合网络安全意识演示的教育结构
- 适用于作品集、学术项目解释和面试讨论
## 技术栈
| 类别 | 技术 |
|---|---|
| 编程语言 | Java, Python, JavaScript |
| Web / UI | Java Web 组件, HTML/CSS, JavaScript |
| 机器学习 | scikit-learn, pandas, NumPy |
| 恶意软件分析 | PE/ELF 特征提取, pefile |
| 后端 / 应用支持 | Flask, Gunicorn, Jinja2 |
| IDE / 构建工具 | NetBeans, Ant |
| 数据库支持 | MySQL |
| Notebook | Jupyter Notebook |
## 前置条件
在运行项目之前,请根据您要运行的模块安装所需的工具。
### 对于 Java 模块
- JDK 8 或兼容的 Java 版本
- NetBeans IDE
- 如果使用数据库支持的功能,则需要 MySQL Server
- 模块 `lib/` 文件夹中所需的库
### 对于 Python 模块
- Python 3.x
- pip
- 建议使用虚拟环境
对于较旧的依赖文件,使用 Python 3.6 或 3.7 可能会更好,因为项目中的某些包使用的是较旧的版本。
## 安装和设置
### 1. 克隆仓库
```
git clone https://github.com/GurukiranShiv/Cybersecurity-Training-System.git
cd Cybersecurity-Training-System
```
### 2. 运行 Java / NetBeans 模块
在 NetBeans 中将以下文件夹作为现有项目打开:
```
IDS_LMS
IDS_User
Left_over_food
```
然后:
1. 打开 NetBeans。
2. 选择 **File > Open Project**。
3. 选择所需的模块文件夹。
4. 如果 NetBeans 提示缺少库,请解决库问题。
5. 如果模块需要 MySQL,请配置数据库连接。
6. 构建并运行项目。
### 3. 运行恶意软件检测模块
```
cd ids_malware
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txt
python predict.py
```
对于 Linux/macOS:
```
source venv/bin/activate
pip install -r requirements.txt
python predict.py
```
### 4. 运行钓鱼检测模块
```
cd PhishingWebsite
python Main.py
```
该模块提取基于 URL 的特征,并使用训练/预测工作流对 URL 进行分类。
### 5. 查看 SQL 注入实践文件
```
cd sql_injection
jupyter notebook
```
打开 notebook 文件并查看 SQL 注入实践材料的测试/输出文件。
## 推荐的作品集截图
在 `screenshots/` 文件夹中添加截图,并稍后将其包含在此 README 中。
推荐截图:
1. Java LMS/管理仪表板
2. 用户培训界面
3. 恶意软件检测预测输出
4. 钓鱼 URL 检测输出
5. SQL 注入 notebook/输出
6. 项目文件夹结构
7. 如果使用 MySQL,请提供数据库表
添加截图后的示例格式:
```



```
## 安全与道德使用
本仓库仅用于网络安全教育、意识和受控的实验室演示。
请勿在未经书面授权的情况下,使用本项目进行攻击、扫描、利用或测试系统。任何钓鱼、恶意软件或 SQL 注入示例只能在本地实验室环境中使用。
## 我学到了什么
通过这个项目,我实践了:
- 构建模块化的网络安全培训应用程序
- 了解钓鱼和恶意软件检测工作流
- 从 URL 和文件中提取与安全相关的特征
- 训练和比较机器学习分类器
- 使用基于 Java/NetBeans 的应用程序
- 了解 SQL 注入风险是如何在脆弱的输入中出现的
- 将网络安全概念组织到培训平台中
- 准备用于 GitHub 和作品集展示的项目
## 作品集总结
**网络安全培训系统** 是一个多模块的安全意识和培训平台,演示了核心网络安全主题,包括入侵检测学习、钓鱼 URL 分析、恶意软件分类和 SQL 注入实践。该项目将基于 Java 的培训应用程序与基于 Python 的机器学习模块结合在一起,创建了一个实践的网络安全学习环境。
## 未来改进
- 为所有模块添加统一的 Web 仪表板
- 添加适当的身份验证和基于角色的访问控制
- 改进数据库设置文档
- 添加截图和演示视频
- 添加带有明确来源信息的样本数据集
- 添加自动化测试用例
- 升级较旧的 Python 依赖项
- 添加 Docker 支持以便于设置
- 添加针对培训结果的报告生成功能
- 为故意包含漏洞的示例添加安全编码修复
## 仓库规范建议
在专业地展示此项目之前,请考虑删除不必要的文件,例如:
```
__pycache__/
*.pyc
desktop.ini
.ipynb_checkpoints/
old backup folders
installer files such as .exe files
```
此外,请验证仓库中是否不包含真实的凭据、数据库密码、私钥、API 密钥或敏感的个人数据。
## 作者
**Gurukiran Shivashankar**
网络安全研究生 | 专注于 SOC 分析师 / 网络安全分析师
GitHub: [GurukiranShiv](https://github.com/GurukiranShiv)
## 免责声明
本项目仅为学术学习、网络安全意识和受控的实验室培训而创建。对于本仓库中包含的任何代码、数据集或培训材料的滥用,作者概不负责。
标签:Apex, CISA项目, JS文件枚举, NoSQL, 域名枚举, 安全培训, 数据可视化, 机器学习, 网络安全, 逆向工具, 钓鱼检测, 隐私保护