韦智凯

电话:13821628363 邮箱:[email protected] 求职意向:Golang开发工程师 性别: 年龄: 27

  • Github neepoo | 个人博客: neepoo.dev

​ 具备扎实的 Golang 和 Python 开发经验,对 Golang 内部机制有深入理解,能够从底层优化代码性能。在流程管理和安全领域积累了丰富的项目经验。项目管理平台 workflow 中,主导了多个核心模块的开发与性能优化,包括任务、缺陷和工作单的全流程管控、人力资源管理和管线管理,显著提升了系统的用户体验和管理效率。此外,还参与开发堡垒机、沙箱、漏洞扫描、渗透测试和态势感知系统,具备复杂系统架构设计和技术方案实施能力。

​ 熟悉常见数据结构与算法以及操作系统原理,能够高效解决后端开发中的复杂问题。在中间件技术应用方面经验丰富,熟练使用 MySQL、PostgreSQL、MongoDB、Redis、Kafka、Prometheus 和 Elasticsearch 等,能够有效支持高并发和高可靠性的系统开发与运维。熟悉函数式编程概念,具备良好的英文文档阅读与学习能力,能够快速掌握新技术并将其应用于实际项目中。

Golang后台开发 - 成都光恒互动科技有限公司

2024.04 - 至今
  • 项目管理平台workflow: 负责任务流转、管线管理、人力排期和工作台等核心模块的设计与实现,全面支持项目管理流程的自动化与高效管理。与 QA、前端和 PM 紧密协作,确保每周准时发布新版本,不断优化系统功能和用户体验。

后台研发工程师 - 北京安天网络安全技术有限公司成都分公司

2018.08 - 2023.10
  • 堡垒机系统开发:主导公司内部堡垒机系统的后端架构设计,完成资产管理、会话管理、权限管理和日志审计等核心模块的开发,显著提升企业内部资源的安全管理能力。
  • 态势感知系统:设计并实现多探针数据的归一化处理和日志检索功能,支持海量安全事件的高效存储与快速分析;搭建后端数据处理管道,提供实时威胁预警能力,强化企业安全运营的技术支持。
  • 漏洞扫描与渗透测试平台优化:参与漏洞扫描系统和渗透测试平台的二次开发与优化,增强系统隐蔽性与扩展性,开发技术栈识别、文件管理和状态监控等模块功能,提升扫描覆盖率、检测效率及平台适用性。

workflow 是一个一站式项目管理平台,涵盖流程管理、进度管理、版本管理、缺陷管理、人力资源管理以及内部应用集成等功能。平台为不同角色提供了多样化的视角,帮助团队成员全面掌握项目进展。

技术栈: Golang, Gin, MongoDB, Redis, MySQL

主要贡献:

  • 工作台

    • 开发了用户工作台界面,整合用户关注的,持续跟进的,即将达到的,当前待办的任务、管线、工作单和缺陷,提供全方位的项目进度概览。
    • 通过优化 MongoDB 聚合查询,减少查询响应耗时,大幅提升了系统的响应速度和用户体验。
  • 人力管理

    • 实现了基于甘特图的人力资源展示模块,动态展现工单排期和资源占用情况,为项目经理提供了直观的排期和资源分配工具,提升了项目管理效率。
  • 任务管理

    • 设计并开发了支持树状展开、折叠的任务管理界面,实现了复杂的任务筛选与检索功能,帮助用户高效地浏览和管理任务或工单。
  • 关联关系

    • 提供了父子任务,关联任务,关联缺陷,前置任务等功能,用于更好的表达系统内部对象之间的层次,依赖关系。

​ 网络任务作业平台(pps)的核心功能提供虚拟机管控,通过浏览器直接访问虚拟机进行作业。在此基础上提供审计,日志外发等功能。

技术栈: Golang,gin,casbin,MySQL,qemu-kvm,libvirt,Prometheus,elasticsearch,asciinema

  • 用户管理和登陆认证授权模块

    • 安全性加固:采用Bcrypt算法对用户密码进行散列加密,增强存储安全性,有效抵御彩虹表攻击。
    • 权限控制:实现基于角色的访问控制(RBAC)策略,定义系统管理员、审计管理员和普通用户角色,通过Gin框架的middleware机制强化安全访问,未授权请求即时返回403禁止访问响应。
    • 会话管理:集成PASETO标准,实施有状态Token机制,优化用户会话管理,确保令牌过期后用户必须重新登录以获取新的访问令牌。
  • 虚拟机管控模块

    • 虚拟机生命周期管理:我负责设计并实施了虚拟机的自定义创建(mem, cpu, disk size)、销毁流程,以及启动和停止操作,细化了虚拟机的CPU和内存资源分配策略,通过动态调整资源配额,确保关键任务能够获得充足的计算资源,同时避免资源过度分配导致的系统负载问题。
    • 状态监控:实现了虚拟机的实时状态监控功能,能够追踪关键性能指标,如CPU和内存使用情况。这为系统管理员提供了强大的工具来监控虚拟机健康状态,并及时进行调整或故障排除。
    • 虚拟机镜像处理:在虚拟机镜像管理方面,我利用了qemu-img, resize2fs,cloud-init工具来处理虚拟机镜像,包括创建、编辑和配置。这一工具的高效应用简化了虚拟机的部署和维护流程,提高了工作效率。
  • 会话管理模块

    • 简介:实现了一个高效且安全的会话管理系统,提供了通过浏览器远程访问虚拟机的能力,并支持实时监控/中断、审计回放和高并发作业处理。
    • 远程访问与实时监控:通过使用对VNCRDPSSH协议的封装-Guacamole,实现了无需任何插件即可在浏览器中直接访问虚拟机的能力。此外,利用观察者模式,系统管理员现在能够实时监控正在进行的会话并在必要时关闭它们,从而提升了系统的安全性和管理的便捷性。
    • 会话回放与文件操作审计:为审计管理员提供了会话回放功能,使其能够复现用户的具体操作过程,包括文件的创建、修改和删除等活动。这一功能大大增强了作业的透明度和后期的审计能力。
    • 性能优化和并发处理:针对系统性能进行了深度优化。通过Golangpprof工具,对系统中的热点函数进行了识别和优化,改进了网络传输效率,并实现了批流一体化处理,同时通过sync.Pool减少了小对象的频繁创建,显著降低了GC压力。这些优化使得系统能够支持至少8个用户和64个在线作业同时进行,有效提升了系统的并发处理能力。

​ 一个基于模板的漏洞扫描系统,支持跨多个目标发送请求,能够快速扫描大量主机。该系统覆盖了包括TCPDNSHTTPSSLFileWhoisWebsocket等多种协议,旨在为安全研究人员和渗透测试人员提供一个快速、高度可定制的安全漏洞扫描工具,以自动化加速安全审计过程。

  • 技术栈识别:集成了Wappalyzer功能,增强了系统识别目标网站所用技术栈的能力,从而提升了漏洞识别的精确度和效率。
  • 模板化漏洞扫描:负责将公司现有的漏洞利用脚本(Exploit)转化为扫描模板,实现了漏洞扫描过程的高度定制化和自动化。
  • 协议支持:成功实现了对Raw HTTP协议的支持,扩展了系统的适用范围,使其能够处理更复杂的HTTP通信,从而提高了扫描的覆盖率和准确性。

​ 作为核心开发团队的一员,我对既有的渗透测试平台进行了关键技术升级和功能扩展,显著提升了平台的易用性、隐蔽性和功能性。这些改进支持安全研究人员和渗透测试人员更高效地进行安全评估和后渗透活动。

  • HTTP协议交互支持:我成功集成了HTTP协议支持,突破了原有仅限于控制台(Console)交互的限制。这一改进极大地提升了平台的用户友好度和交互灵活性,使操作者能够通过Web界面执行命令和接收响应,简化了渗透测试流程。

  • 增强隐蔽性:通过集成garbleupx工具,我实现了对生成的Implant(植入软件)的混淆和压缩,有效提高了其逃避安全检测(如杀毒软件和入侵检测系统)的能力。这一措施显著增加了植入软件在渗透测试或红队活动中的隐蔽性和生存期。

  • 功能性扩展:为了进一步加强平台的实用性,我开发了一系列高级功能,包括但不限于:

    • Implant生成工具:提供了一个用户友好的界面,允许安全测试人员便捷地生成定制化的Implant,这些Implant可以根据不同的渗透测试需求进行个性化配置。

    • 文件管理能力:实现了一个高效的文件上传/下载机制,使得在控制的系统和操作者之间传输文件变得更加直接和安全。

    • 交互式Shell访问:开发了交互式Shell功能,进一步增强了对目标系统的控制能力,使用户能够执行实时命令并接收响应,仿佛直接登录到目标系统上。

    • 状态上报机制:构建了一个稳健的Implant状态上报系统,能够实时监控Implant的健康状态和活动情况,为安全团队提供即时的情报信息。

bitcask-go 是一个Golang实现的高性能的键值存储库,基于 bitcask(一种用于快速读写操作的日志结构哈希表存储模型)实现。该项目旨在提供一个简单、高效的键值存储解决方案,适用于需要高速读写、持久化存储的应用场景。

技术栈Golang

  • 实现:根据 bitcask 论文,实现了基本的 open、get、put、delete、close 和 sync 方法,支持基础的数据操作和持久化功能。
  • 优化:通过优化索引机制和数据结构,提高了数据访问的速度和效率。特别是在 get 和 put 操作上,通过内存索引加快访问速度,实现了低延迟的数据存取。
  • 持久化:实现了高效的数据持久化机制,确保数据的安全可靠存储
  • 控制:设计了线程安全的操作方法,支持多线程环境下的高并发数据访问和修改,保证了存储系统的稳定性和可靠性。

​ 一个轻量级的JSON解析器,旨在提供一种简洁且高效的方式来解析 JSON 数据,支持标准JSON格式的解析,包括对象、数组、字符串、数字及布尔值等类型。该项目不仅加深了我对 编译原理的理解,也提升了我的 JavaScript 编程技能。

技术栈:JavaScript

  • Token化处理:设计并实现了一个扫描器(Scanner),它能够遍历JSON文本,将其分解成标识符、数字、字符串等基本的Token,为解析过程提供了基础。
  • 解析逻辑:开发了解析器(Parse)核心类,使用递归下降解析技术,根据Token序列构建出相应的JavaScript对象。支持复杂的嵌套结构,如对象中嵌套数组,数组中嵌套对象等。
  • 错误处理:在解析过程中引入了错误处理机制,对于非法的JSON格式能够抛出明确的错误信息,提高了解析器的健壮性。
  • 性能优化:通过有效的字符串操作和内存管理,优化了解析性能,确保即使是大型的JSON文件也能快速解析。

​ 设计并实现了一个高效的配置文件转换器,支持 JSONYAMLTOML 三种流行的配置文件格式。该工具能够无缝转换这些格式之间的文件,提高了开发和运维过程中配置管理的灵活性和效率。

技术栈Rust, Serde, Clap

  • 格式解析与转换:利用 Rust 强大的类型系统和Serde库的序列化/反序列化能力,实现了三种格式之间的精确转换。包括从 JSON 转换到 YAML/TOML,从 YAML 转换到 JSON/TOML,以及从 TOML 转换到 JSON/YAML
  • 命令行接口:通过 Clap 库构建了用户友好的命令行接口,使用户能够指定输入/输出文件类型和路径,支持从标准输入读取配置,增加了工具的可用性和灵活性。
  • 错误处理与反馈:引入了 Anyhow 库进行详细的错误处理,确保在解析和转换过程中出现的任何问题都能给出清晰的反馈信息,提升了用户体验。