韦智凯个人简历

韦智凯

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

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

​ 具备扎实的GolangPython开发经验,对Golang内部机制有深入理解。在安全领域担纲重要角色,参与开发堡垒机、沙箱、漏洞扫描、渗透测试和态势感知系统,具备出色的技术解决方案和项目实施能力。熟悉常见数据结构与算法,操作系统原理。并在中间件技术应用方面拥有丰富经验,包括MySQLPostgreSQLRedisKafkaPrometheusElasticsearch等,能够有效支持复杂系统的开发和运维。熟悉函数式编程概念,具备英文文档阅读能力。

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

2018.08 - 2023.10
  • 沙箱中,负责制造Windows8,Windows10沙箱,增强检测能力:PowerShell混淆,OLE检出,把沙箱从单机环境部署迁移到滴滴云。
  • 在堡垒机中,负责项目的整体架构,核心模块的编码工作。
  • 在态势感知系统中,负责对各个探针上报日志的归一化处理,提供检索。

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 库进行详细的错误处理,确保在解析和转换过程中出现的任何问题都能给出清晰的反馈信息,提升了用户体验。

​ 网络任务作业平台(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的健康状态和活动情况,为安全团队提供即时的情报信息。