2020总结与2021展望 郝伟, 2020/12/31 [TOC]

1. 1 主要成果回顾

1.1. 1.1 理论研究

理论研究主要涉及深度学习, 机器学习, 强化学习, 自然语言处理, 知识图谱 等,主要包括以下核心技术要点: (以下链接均为原创内容,加粗表示推荐内容)

1.2. 1.2 技术研究

在工程实现层面主要有以下研究内容:

1.3. 1.3 工程应用

在通理论研究和实际的需求分析后,进行设计和并编写代码进行验证40余项,其中与公司产品直接相关的内容有23项,具体如下所示,由于代码比较多,只列出比较有代表性的几个验证代码和运行结果(直接点击表中的链接即可)。

1.3.1. F项目验证

在F项目中,提出算法,解决问题,优化模型,功能和性能模拟评估。 主要内容如下所示(以下项目均有代码,时间关系仅列表部分仅供参考)。

ID 日期 内容 语言 介绍
1 2020/04/11 多节点嵌套加密 Java 用于多节点的消息嵌套加密
2 2020/04/12 加密测试 Java 对称加密功能测试
3 2020/04/26 图像学习工具 C# 用于节点算法分析
4 2020/05/04 DH加密算法模拟验证 Java 用于密钥交换
5 2020/05/22 使用图片隐藏加密信息。 C# 用于消息隐藏
6 2020/05/27 基于超奇偶性的高速对称加密算法 Java/C# 可以达到3GB/S的加密速度,30倍于标准的AES算法。
7 2020/05/29 基于三角函数测试查表性能 Java 1)查表法提高速度几百倍;
2)三角函数在2pi以内会计算更快,因为不用考虑求余计算。
8 2020/06/04 模拟简单的KAD算法 Java 模拟成功,用于组网算法
9 2020/06/07 节点路径搜索算法 Java 用于模拟组网算法
10 2020/06/07 字符串拼接测试速度 Java 用于提高字节加密的性能
11 2020/06/09 基于MD5的IP地址隐藏算法 Java 实现对IP隐藏的算法
12 2020/06/11 节点曝光度风险模拟 Java 可以使用公式计算资产的曝光度
13 2020/06/15 登陆验证算法验证 Java 节点登陆验证过程验证实验
14 2020/06/18 Tomcat字节流测试 Java 使用Tomcat进行字节流的操作。
15 2020/06/23 ECDS密钥交换验证 Java 测试ECDSA算法
16 2020/07/05 根据RSA算法的原理编写的算法。 Java 算法模拟验证
17 2020/07/20 使用Cmakefile编译第三方库 C++ 测试第三方库的调用编译测试
18 2020/08/21 F项目框架第3版 - 系统整体架构设计
19 2020/08/27 多线程资源共享性能问题。 C++ 每秒可以做到千万次进程切换。
20 2020/09/15 SSH免密钥登陆 bash 通过RSA密钥配置实现无密钥登陆服务器
21 2020/09/18 组网算法单机原型(C++实现) C++ 通过单机版C++代码演示组网算法
22 2020/10/12 一个线程会占用多少的内存?答:几百KB C++ 实验验证多线程程序中一个线程占用的内在大小
23 2020/10/13 双线程竞争资源产生的线程切换性能测试 C++ 验证双线程切换时的效率,结论是每秒百万次。
24 2020/10/15 GaspBerry嵌入式开发板测试报告 多语言 实验验证在GaspBerry中,默认自带的JDK/Python/gcc的运行情况。
25 2020/10/20 双线程竞争资源产生的线程切换性能测试 C++ 验证双线程切换时的效率,结论是每秒百万次。

1.3.2. 灵洞:资产与漏洞风险算法

初步建立了一套能够用于资产与风险评估的算法,并且经过3次迭代优化,初步达到预期目标。未来计划对收集到的数据进行机器学习,通过算法实现对参数的优化调整。

主要是资产与漏洞评估算法 | ID | 日期 | 内容 | 语言 | 介绍 | |:----:|:----:|:----|:----:|:----| | 1 | 2020/04/14 | 资产与漏洞风险评估算法模块 | Java | 算法功能测试 | | 2 | 2020/10/26 | 弱密码随机生成算法 | Java | 根据输入15个输入参数和生成个数,生成随机的弱密码。|

1.3.3. 灵刃:智能化渗透

通过基于强化学习的算法,实现对渗透过程的智能化控制,并能够动态响应控制变化。

ID 日期 内容 语言 介绍
1 2020/03/31 强化学习攻击演示 Python 基于强化学习的智能化测试
2 2020/06/10 强化学习攻击性能测试 Python 可以使用机器学习选择最优结果

1.3.4. 其他

其他一些相关的模拟演示

ID 日期 内容 语言 介绍
1 2020/12/03 两台机器间数据通信的几种方法 Python 调研机器横向穿透的方法。
2 2020/12/27 设备名称与版本提取方案设计 Python 基于正则的信息提取方法。
3 2020/12/28 nmap抓取的数据的匹配方案设计 Python 基于距离计算的文本相似度计算方法。

1.4. 1.4 工程管理文档

以下文档是为了F项目而编写,并保存在合肥研发中心的内部服务器的Confluence上。 | ID | 名称 | 分类 | 作者 | 介绍 | |:----:|:----|:----:|:----:|:----| | 201001 | 系统联调测试方案设计 | 方案设计 | 郝伟 | 联调方案设计的三个阶段和各阶段测试设计及安排等相关内容。 | | 201002 | F项目章程 | 项目管理 | 郝伟 | 项目章程,对项目各方面相关内容约定的基本文档。 | | 201003 | tomcat硬件资源占用测试 | 测试报告 | 郝伟 | 对tomcat占用CPU和内存资源的情况进行测试报告。 | | 201004 | 关于非链路通信的的设计方案 | 方案设计 | 郝伟 | 对非链路设计的设计的相关内容。 | | 201005 | 关于监控中心信息采集的约定和设计 | 方案设计 | 郝伟 | 对监控中心信息采集的数据格式和方式等的方案设计。 | | 201006 | 上下层通信协议 | 方案设计 | 郝伟 | 对上下层的通信命令进行的详细设计。 | | 201007 | 组网算法(C++版) | 技术文档 | 郝伟 | 使用C++实现的单机版的组网算法的原型代码。 | | 201008 | 自动化测试说明文档 | 方案设计 | 郝伟 | 从测试人员角度编写的对自动化测试的一些约定。 | | 201009 | 一个线程会占用多少的内存?答:几百KB | 测试报告 | 郝伟 | 对Windows和Linux的线程性能尤其是内存占用情况进行的测试。 | | 201010 | 使用别名简介ssh和scp操作 | 技术文档 | 郝伟 | 介绍如何使用别名进行SSH和SCP的操作。 | | 201011 | SSH免密钥登陆 | 技术文档 | 郝伟 | 介绍在Linux系统下如何进行免密登陆。 | | 201012 | 双线程竞争资源性能测试 | 测试报告 | 郝伟 | 使用C++测试双线程切换时的性能。 | | 201013 | 网关接入注册节点认证流程 | 设计文档 | 郝伟,朱黎明 | 介绍开发人员、终端和网关三种认证的设计原理 | | 201014 | CLion远程开发配置 | 技术文档 | 郝伟 | 以图文的形式介绍如何配置CLion的远程开发配置过程。 | | 201015 | 项目整体设计框架 | 设计文档 | 郝伟 | 整个系统的框架性设计说明文档。 | | 201016 | Confluence使用常见问题 | 技术文档 | 郝伟 | 介绍Confluence的一些使用中的常见问题。 | | 201017 | 代码管理 | 项目管理 | 郝伟 | F项目中代码管理的一些基本要求。 | | 201018 | 文档编写基本要求 | 技术文档 | 郝伟 | 介绍技术文章编写时,内容和格式上的一些基本要求。 | | 201019 | 公司服务器和相关服务启动流程 | 项目管理 | 郝伟 | 介绍公司服务器管理流程。 | | 201020 | 项目输出程序清单及说明 | 设计文档 | 郝伟 | 对整个项目输出的程序和使用方法进行相关说明。 | | 201021 | 问题记录列表 | 项目管理 | 郝伟 | 记录项目设计和开发中遇到的一些问题。 | | 201022 | 如何使用CMake导入第三方开源库 | 技术文档 | 郝伟 | 以zlib演示如何在项目中添加第三方开源库。 | | 201023 | 各节点存储数据定义 | 设计文档 | 郝伟 | 定义各节点存储的数据内容和格式。 | | 201024 | 代码评审记录 | 项目管理 | 郝伟 | 对代码质量进行评审并记录评审结果。 | | 201025 | 使用CMake建立可配置交叉编译框架 | 技术文档 | 郝伟 | 设计了一种可配置的指定库或预定义变量的交叉编译框架。 | | 201026 | 在CLion项目中设置多个main函数入口 | 技术文档 | 郝伟 | 在CLion项目中添加多个main,从而方便测试。 | | 201027 | 嵌入式Linux调研问题汇总 | 调研报告 | 郝伟 | 对嵌入式Linux系统的一些问题进行的调研。 | | 201028 | 公司C++代码规范 V1.0 | 项目管理 | 郝伟 | 对C++代码进行规范性约束。 | | 201029 | 新员工入职必读 | 项目管理 | 郝伟,吴建峰 | 向新员式介绍了公司和项目开发相关事宜。| | 201030 | 使用函数指针数组代替switch语句 | 技术文档 | 郝伟 | 介绍如何将过长且格式类似的switch语句进行大幅简化。 | | 201031 | 网关接入四种情况说明 | 设计文档 | 郝伟 | 介绍网关在接入时的四种情况。 | | 201032 | GaspBerry嵌入式开发板测试报告 | 测试报告 | 郝伟 | 对GaspBerry嵌入式开发板进行简单的功能和性能测试。 | | 201033 | 公司服务器数据备份管理办法 | 项目管理 | 郝伟 | 初步规定了一些数据备份管理办法。 | | 201034 | Git版本控制模型 | 项目管理 | 郝伟 | 定义了Git版本控制的方法。 | | 201035 | IP地址伪装设计 | 技术文档 | 郝伟 | 设计了一种用于将IP地址伪装成MD5的算法。 |

1.5. 1.5 其他

  • 论文发表:EI检索国际会议1篇,VARA国内会议1篇;
  • 发明专利:提交14项,通过2项;
  • 团队组建:收到简历920,面试约200,发出Offer约25份;
  • 日常管理,如项目沟通,人员管理,绩效考核,技术指导等;
  • 项目申报,如参与电院项目、VKG项目和CAESARS项目等;
  • 项目管理:与北邮合作的Linux项目中期完成;
  • 市场调研:国外漏洞网站、市场发展、美方AI应用情况等调研;
  • 公司融资:参与公司融资访谈;
  • 数据采购:与2.8T数据提供方沟通接收数据相关工作;
  • 工具开发:独立开发图形化组网算法工具一套。

2. 2 主要问题与解决思路

2.1. 2.1 研究方向

主要问题:方向是过于分散 改进计划:根据公司2021发展方向,精选几个方向进行主要钻研。

2.2. 2.2 产品赋能

主要问题:与产品的结合程度不够高; 改进计划:所以以后要多去北京公司与马维士、李岩、刘加勇等人定期沟通,及时了解产品进展问题,及时将研究进展落实至产品中。

2.3. 2.3 方案设计

主要问题:在宏观层面给出设计以后,精细化程度有待提高, 改进计划:通过与项目管理人员沟通,对任务和安排进一步细化,进一步提高质量控制水平

2.4. 2.4 员工培训

主要问题:分享不足 改进计划:每月至少1场技术分享、经验分享和方法分享报告,以提高员工的技能水平。

2.5. 2.5 沟通

主要问题:沟通程度不够充分 改进计划:从以下三方面的提高沟通效果

  • 需求沟通:与一线人员多沟通,充分了解开发人员需求;
  • 管理沟通:与公司领导、中层和基层多沟通,充分了解各层面的想法;
  • 技术沟通:多与开发人员进行技术沟通,了解其技术能力情况。

3. 3 个人成长记录

3.1. 3.1 人工智能理论研究基本入门

人工智能是非常广泛的一个领域,其理论研究具有三个难点:

  • 范围广,大小几十个领域
  • 门槛高,需要良好的微积分、线性代数、概率论等专业基础
  • 难度大,对理解能力、计算能力等都有非常高的要求

所以自2019年底至今,经过一年的努力,基本达到了人工智能入门的程序,在自然语言处理、知识图谱和机器学习等方面,都有了一定的认识水平。

3.2. 3.2 工程技术能力显著提高

通过对F项目、灵洞和灵刃项目的核心模块的参与,显著地提高了工程技术能力,同时反过来,工程上的应用又让理论上的理解得到更加深化推进。

3.3. 3.3 人员沟通能力有效提高

从子公司成立开始,本人与其他人沟通大大增加了,如整个合肥团队的组建过程,F项目的进展过程,在公司的管理等,从过去的纯学术转为一定的管理者的角色,所以与人的沟通能力得到了一定的提高。

3.4. 3.3 管理能力进一步提高

通过F项目的历练,管理能力得到了进一步提高,主要包括:

  • 管理方法:通过查阅项目管理资料和实际参与F项目的管理,积累了一定的管理经验,对任务划分、进度检查、质量控制、人员管理等都积累了一定的经验;
  • 管理工具:使用甘特图、流程图等进行任务管理积累了一定经验;
  • 管理体制:编写了大量的项目管理文档,并在实践中推行,取得了一定成果,也遇到了一些阻力,都是难得的经验。

4. 4 2021年发展规划

4.1. 4.1 指导思想

  1. 加强与北京团队的沟通,增加现场沟通次数,并且每次来京前都有明确的工作目标;
  2. 研究以工程为导向,与马维士团队有清晰的任务分工,明确可量化的阶段性成果;
  3. 未来的研究方向以三个产品的技术赋能与项目落地为主要目标;
  4. 定期给员工进行技术培训和项目总结;
  5. 研究过程中尽量使用真实数据作为测试数据;
  6. 研究成果输出至工程是完全的黑盒模式,并辅助以文档说明和使用培训。

4.2. 4.2 技术研究路线

4.2.1. 4.2.1 自然语言处理与知识图谱

具体包括以下三个方面内容:

4.2.2. 4.2.2 基于机器学习的智能化渗透

4.2.3. 4.2.3 其他安全相关技术研究

4.3. 4.3 其他

更多请参考本人2021年发展规划

5. 5 关于从理论设计到工程落地的经验分享

以下内容都是在2020年几个项目中收获的。

5.1. 5.1 主要难点

  1. 理论到工程应用绝对不可能一蹴而就 从理论设计至工程应用,是这样的一定是一个困难的不断优化和改进的过程。
  2. 理论到实践的特殊性需要解决 理论代表一般性解决方案设计问题;实践代表具体应用根据不同的业务场景具有各种特殊性。研究人员给出方案,而工程人员进行代码实现,但是实际上两者之间有一道明显的沟,难以解决。所以对于具体问题中的特殊性,就需要有人去解决。
  3. 踩坑的过程不可避免 理论至实践的过程中存在很多坑,所以需要有一个摸索和排坑的过程。也就是说理论可以指向方向,但是在这个方向由于问题的特殊性造成的问题属于中间地带需要解决。
  4. 没有走过的路就没有捷径 除非是有先人的经验,否则不存在所谓的捷径,如果有,那么一定是先暂时性的实现了一些功能,然后把要踩的坑补上。
  5. 2-8理论 在项目初期可能用20%的时间可以完成了80%的功能,但是最后20%的功能往往需要80%的时间。

5.2. 5.2 落地流程

根据以上的描述,理论到实现的过程是一个循序渐进不断优化的迭代过程。所以模型要不断打磨和优化,应该是这样的过程:

  1. 使用方给出需求设计方进行理解;
  2. 理论上设计模型+工程上代码实现
  3. 应用环节使用并发现问题
  4. 反馈给模型设计者
  5. 分析问题并对模型进行优化
  6. 工程上根据优化的模型进行代码改进
  7. 一切正常满足需求任务完成,否则回到第3步。

可以使用以下流程图来表示

graph LR
S1[收到问题]
S2[需求理解与分析]
S3[方案设计与改进]
S4[工程实现]
S5[实践验证]
S6[问题反馈]
CK(满足要求)
R[6.完成]
S1 ==> S2 ==> S3 ==> S4 ==> S5 ==> CK ==是==> R
CK ==否==> S6 ==n次迭代==> S3

根据不同的问题,n的值大小不同,比如有时候运气好,1次就成功了,也有极端的安全比如爱迪生在尝试了超过六千多次的实验后,终于发现了钨丝可以作为电灯材料。当然,不需要这么多次,利用计算机,只需要一定的时间编写了合适的算法,瞬间就可以进行千百万次的模拟计算,大大加快了这一过程。

5.3. 5.3 人员责任划分

  • 研究人员:给出模块、模块优化、说明模型的使用方法和注意事项;
  • 开发人员:提出需求、给出数据、反馈问题、说明实际中遇到的问题。

    5.4. 5.4 注意事项

    根据5.2的模型,提出以下建议:
  • 研究人员多与开发人中沟通,及时了解执行情况;
  • 开发人员能够及时准确详实地反馈项目开发中的实际问题;
  • 考虑到问题的特殊性,方案的推进一定要结合具体的实际情况;
  • 无论是设计还是技术难点都要充分沟通把要点讲清楚。

沈总建议: 1、多来北京与团队共同合作,来前务必明确工作任务; 2、要有非常明确的分工,尤其是项目的阶段性成果; 3、未来的研究方向一定要三个产品的落地为目标; 4、定期培训总结; 5、只使用真实数据测试;

加勇建议: 1、技术输出实现完全黑盒模式+文档说明+培训;

6. 6 总结

2020开局总体良好,在各方面基本实现0-1。2021继续努力,实现1-n的转变。

7. 其他

7.1. 关于合肥子公司名称

7.1.1. 官方名称

安徽华云网安信息技术有限公司,常用名称:合肥研发中心,华云安子公司

7.1.2. 主要职能

课题研究、技术调研、算法工程落地、实验验证等

7.1.3. 组织架构

graph TD
HYA[北京华云安信息技术有限公司]==>A
A[安徽华云网安信息技术有限公司 = 合肥研发中心]
B[郝伟 智能网络安全研究院]
B1[算法工程师1名]
B2[开发人员2名]
B3[实习生2名]
C[刘加瑞 F项目线]
D[陈勇 XX线]

A --> B
B --> B1
B --> B2
B --> B3
A ==> C
A ==>D

其中

  • 算法工程师1名,博士或硕士研究生,薪资 20K-30K,方向为自然语言处理、知识图谱与机器学习;
  • 高级程序员,本科学历,12K-20K,主要从事代码编写、功能和功能验证及相关文档编写;
  • 同时接收优秀的硕士或本科作为实习生,从事一些相关辅助工作,薪资3K左右,并作为人才储备。

沈总建议: 1、人员50%,薪资200%,再招3人的团队; 2、人才精英策略,杰出的博士和硕士研究生;

results matching ""

    No results matching ""