试用清华Chatglm智能体

清华AI平台,感觉在见过的国内AI平台中做的是比较优秀的,目前该平台提供的智能体功能感觉更智能或者说更傻瓜式一些。定义可以定义专属智能体,这些智能体是自己想要的网络上的汇集处理后的信息,或者是绘画或者是编写某个方面的代码等等,简单理解是上述这样。那现在软件安全威胁情报收集有很多公司在做,还有一些公司提供威胁情报服务,那借助AI平台是否可以实现该功能呢?

要创建专属智能体,你需要做的就是提供智能体的描述,越详细针对性越强。例如:我想了解一下最近的软件安全漏洞情报信息,你能帮我收集汇总一下吗?输入后,AI平台会分析我们想要得到信息,则AI平台会根据我们的输入,给出所创建智能体的描述:

这些描述看起来还是比较专业,当然我们也可以修改这些描述,让AI生成的智能体更符合我们的需要。平台会给出推荐问题,我们也可以在后面添加常见的推荐问题。同时可以上传自己的知识库,可以让AI平台从自己的知识库中提炼数据。

我们先看平台自动生成的智能体,不提供自己的数据文件。我输入问题:最近除了微软暴漏出的安全漏洞之外,还有那些比较重要的安全漏洞呢?

这个描述还不错,但是似乎并不是我想要的问题,我把问题改成:最近软件安全漏洞有哪些呢,我要一份安全漏洞情报。则输出如下:

接着问:除了微软的安全漏洞情报之外,还有没有其它软件的漏洞情报。

还是以微软的安全漏洞比较多,回答并不是太准确。那我使用创建智能体时,给出的推荐问题呢? 看看是否更准确和全面一些。

还是以微软的问题为主。我换个角度再问:2024年初,给我一份完整的全球软件安全漏洞情报吗?

感觉这次回答还是比较好。接着一步问:针对7-card Fakabao漏洞,有对应的POC吗?

我百度了一下,该安全漏洞检索信息非常少,因为智能体是从网络获取的搜索结果的聚合,应该是没有POC,也就是算零day漏洞。

平台上面有一个发布按钮,但是应该是还没有实现对外发布功能。整个平台功能还是比较全面,使用也没有门槛和过多要求。例如,我试用了一下威胁建模:针对软件登录功能,你能帮我做威胁建模吗?其回答是长文本,非常全面。

当然可以。威胁建模是一种系统的安全分析方法,它可以帮助我们识别和评估针对软件系统的潜在威胁。在进行威胁建模时,我们通常使用一些特定的框架和方法,例如STRIDE、Mitre ATT&CK等。下面我将使用STRIDE威胁建模方法来对软件的登录功能进行威胁建模。

STRIDE威胁建模

STRIDE是一个用于识别软件安全威胁的框架,它代表了以下七个威胁类别:

Spoofing(欺骗):攻击者可能会试图冒充合法用户。

Tampering(篡改):攻击者可能会试图修改数据或组件。

Repudiation(抵赖):攻击者可能会试图否认他们的行为。

Information Disclosure(信息泄露):敏感信息可能会被未授权的访问。

Denial of Service(服务拒绝):攻击者可能会试图阻止合法用户访问服务。

Elevation of Privilege(权限提升):攻击者可能会试图获取超出他们权限的访问权限。

Destruction(破坏):攻击者可能会试图破坏系统或数据。

针对登录功能的威胁分析

Spoofing(欺骗):

攻击者可能会尝试使用被盗或伪造的凭证登录系统。

测试用例:使用错误的用户名和/或密码尝试登录。

Tampering(篡改):

攻击者可能会尝试篡改登录表单或数据库中的用户信息。

测试用例:在登录过程中修改表单数据或直接篡改数据库。

Repudiation(抵赖):

用户可能会否认他们进行了某些登录操作。

测试用例:检查登录日志,验证操作的可追溯性。

Information Disclosure(信息泄露):

敏感信息(如用户名、密码、会话令牌)可能在传输过程中被截获。

测试用例:使用抓包工具监控登录过程中的数据传输。

Denial of Service(服务拒绝):

攻击者可能会尝试通过多次登录尝试或恶意流量来淹没登录服务器。

测试用例:模拟大量的登录请求,检查系统的响应能力和稳定性。

Elevation of Privilege(权限提升):

攻击者可能会尝试利用登录功能来获取更高的权限。

测试用例:尝试使用普通用户的凭证执行管理员操作。

Destruction(破坏):

攻击者可能会尝试通过登录功能破坏系统或数据。

测试用例:尝试进行非法操作或执行恶意代码。

防御措施

针对上述威胁,可以采取以下防御措施:

使用强认证机制,如双因素认证。

对所有登录尝试进行日志记录和监控。

使用HTTPS协议来保护数据传输的安全。

对用户输入进行验证和清理,以防止SQL注入等攻击。

实现速率限制和异常检测机制,以防止暴力破解和拒绝服务攻击。

对敏感数据进行加密存储和传输。

通过上述威胁建模分析,我们可以更好地理解登录功能可能面临的安全风险,并采取相应的防御措施来提高系统的安全性。

这些的回答我感觉到这平台语料非常丰富。那我再问一个深入一点的问题:针对银行某核心业务系统软件的网上支付功能,你能帮我做威胁建模吗?

针对网上支付功能的威胁分析

Spoofing(欺骗):

攻击者可能会尝试冒充合法用户进行支付。

测试用例:使用伪造的用户账户尝试支付。

Tampering(篡改):

攻击者可能会尝试篡改支付请求或修改交易数据。

测试用例:在支付过程中修改表单数据或直接篡改数据库。

Repudiation(抵赖):

用户可能会否认他们进行了某笔支付操作。

测试用例:检查支付日志,验证操作的可追溯性。

Information Disclosure(信息泄露):

敏感支付信息可能在传输过程中被截获。

测试用例:使用抓包工具监控支付过程中的数据传输。

Denial of Service(服务拒绝):

攻击者可能会尝试通过大量支付请求或恶意流量来淹没支付服务器。

测试用例:模拟大量的支付请求,检查系统的响应能力和稳定性。

Elevation of Privilege(权限提升):

攻击者可能会尝试利用支付功能来获取更高的权限。

测试用例:尝试使用普通用户的凭证执行管理员操作。

Destruction(破坏):

攻击者可能会尝试通过支付功能破坏系统或数据。

测试用例:尝试进行非法操作或执行恶意代码。

完全按照STRIDE建模方法论建模的结果,感觉非常强大了。

那代码审计功能呢?上篇文章中的代码审计功能,我看看是否同样强大。

bool Vars_ActivePatch_AddData(char* name, void* data, UINT data_size)

{

    UINT name_size;

    UINT i;

    ACTIVE_PATCH_ENTRY* target = NULL;

    if (StrLen(name) == 0return false;

    for (i = 0;i < MAX_ACTIVE_PATCH;i++)

    {

        ACTIVE_PATCH_ENTRY* e = &ActivePatchList[i];

        if (e->Name != NULL && StrCmpi(e->Name, name) == 0)

        {

            target = e;

            break;

        }

        if (e->Name == NULL)

        {

            target = e;

            break;

        }

    }

    if (target == NULL)

    {

        return false;

    }

    name_size = StrSize(name) + 4;

    target->Name = malloc(name_size);

    memset(target->Name, 0, name_size);

    StrCpy(target->Name, name_size, name);

    target->Data = malloc(data_size + 4);

    memset(target->Data, 0, data_size + 4);

    Copy(target->Data, data, data_size);

    

    target->DataSize = data_size;

    return true;

}

这是结果:

在审核您提供的代码段时,我发现了几个潜在的问题,并提出了相应的解决方案:

空指针检查:在分配内存之前,应该检查malloc返回的指针是否为NULL。

内存泄漏:如果malloc失败,没有处理这种情况,可能导致内存泄漏。

数据复制函数:使用了Copy函数,但没有提供该函数的定义。应该使用memcpy或类似的函数来复制内存。

字符串长度计算:使用了StrSize和StrCpy函数,但没有提供这些函数的定义。应该使用标准C函数如strlen和strcpy。

大小计算:在计算name_size时,没有考虑name字符串末尾的 null 终止符。

代码可读性:代码中的一些条件判断可能需要更清晰的注释来提高可读性。

下面是修改后的代码,解决上述问题,并使用标准C函数替换了未定义的函数:

c

复制

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

// 假设这些是之前定义的宏或结构体

#define MAX_ACTIVE_PATCH 100

typedef struct {

    char* Name;

    void* Data;

    UINT DataSize;

} ACTIVE_PATCH_ENTRY;

// 假设这是一个全局数组

ACTIVE_PATCH_ENTRY ActivePatchList[MAX_ACTIVE_PATCH];

bool Vars_ActivePatch_AddData(char* name, void* data, UINT data_size)

{

    UINT i;

    ACTIVE_PATCH_ENTRY* target = NULL;

    if (name == NULL || data_size == 0) return false;

    for (i = 0; i < MAX_ACTIVE_PATCH; i++)

    {

        ACTIVE_PATCH_ENTRY* e = &ActivePatchList[i];

        if (e->Name == NULL)

        {

            target = e;

            break;

        }

        if (strcmp(e->Name, name) == 0)

        {

            target = e;

            break;

        }

    }

    if (target == NULL)

    {

        return false;

    }

    UINT name_size = strlen(name) + 1; // 包括末尾的 null 终止符

    char* new_name = malloc(name_size);

    if (new_name == NULL) return false; // 内存分配失败

    memset(new_name, 0, name_size);

    strcpy(new_name, name); // 复制字符串

    void* new_data = malloc(data_size + 4); // 分配足够的空间用于数据和 null 终止符

    if (new_data == NULL) { free(new_name); return false; } // 内存分配失败

    memset(new_data, 0, data_size + 4);

    memcpy(new_data, data, data_size); // 复制数据

    target->Name = new_name;

    target->Data = new_data;

    target->DataSize = data_size;

    return true;

}

int main()

{

    // 示例调用

    if (Vars_ActivePatch_AddData("test", "some data", 10))

    {

        printf("Data added successfully.\n");

    }

    else

    {

        printf("Failed to add data.\n");

    }

    return 0;

}

在这个修改后的版本中,我使用了strcpy和memcpy来复制字符串和数据,并且在分配内存失败时进行了适当的错误处理。此外,我还添加了对name参数的NULL检查,以及对data_size的零值检查。这些修改旨在提高代码的稳定性和安全性。

虽然给出了代码修复函数,但是对整个代码缺陷的分析没有ChatGpt 3.5分析的更准确。

今天清华Chatglm试用就到这里,下次我上传一个文件,看看是否回答问题更全面。

(结束)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/239395.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

23111 网络编程 day3

思维导图 tip协作服务 程序如下&#xff1a; #include<myhead.h> #define SER_PORT 69 #define SER_IP "192.168.125.180"int do_upload(int cfd,struct sockaddr_in sin) {//向服务器发送上传请求char buf[512]"";//组装请求数据short *p1(short*…

程序员接私活还不知道这几个平台?那你真的亏了!

程序员接私活现在已经是一个老生常谈的话题了&#xff0c;现在市面上各种程序员接单平台层出不穷&#xff0c;也参差不齐&#xff0c;有比较老牌的知名平台&#xff0c;也有比较好的新兴平台&#xff0c;如此多的平台就容易让人眼花缭乱&#xff0c;不知道该如何选择。 这期文…

推荐系统模型(一) DFN 详解 Deep Feedback Network for Recommendation

背景 在大多数的推荐系统中&#xff0c;往往注重于隐式正反馈(例如&#xff1a;点击)&#xff0c;而忽略掉用户的其他行为(例如大多数CTR模型只考虑用户的喜欢&#xff0c;而忽略了不喜欢)。腾讯在Deep Feedback Network for Recommendation 一文中&#xff0c;提出了一个新颖…

玩转ig之Instagram蓝勾认证教程与条件

蓝勾是 Instagram 用于身份验证的标志&#xff0c;它表明你的账号是真实且唯一的。拥有蓝勾的账号在 Instagram 上更容易引起关注。用户会比较倾向于信任与被认证的账号&#xff0c;因为他们认为这些账号具有更高的权威性和公信力。所以对于品牌来说&#xff0c;想要在 Instagr…

altair,一个超级厉害的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 数据可视化是数据科学和数据分析中不可或缺的一部分。它帮助我们以可视化的方式理解和传达数据&#xff0c;从而更好地发现数据中的模式、趋势和见解。在Python生态系统中&#xff0c;有许多优秀的数据可视化工具…

RViz成功显示多个机器人模型以及解决显示的模型没有左右轮

RViz显示机器人模型没有左右轮 一、RViz成功显示多个机器人模型机器人模型的左右轮无法显示 一、RViz成功显示多个机器人模型 在RViz中显示多个机器人模型需要设置好几个关键的参数 首先点击Add&#xff0c;找到RobotModel&#xff0c;添加进来 Fixed Frame&#xff1a;选择T…

MC使用Waterfall 跨服

前言 想弄一个跨服&#xff0c;目前这篇文章是边测试边写的&#xff0c;两个子服都是在同一个机器上运行的 如果两个子服在不同的网络&#xff0c;跨服的延迟就会比较高 两个子服 s1 和 s2 都是使用folia核心 版本1.20.1s1 端口: 25565s2 端口 : 25566 1.下载 Waterfall W…

【hcie-cloud】【21】容器详解【容器网络说明、容器存储说明、容器镜像说明、dockerfile详述、缩略词】【下】

文章目录 容器介绍&#xff0c;容器工作机制、容器常用命令说明容器网络容器网络简介容器常用网络类型 - Bridge容器常用网络类型 - Host容器常用网络类型 - None其他容器网络类型【Macvlan、Overlay、IPvlan】容器网络相关配置 容器存储容器中应用数据的存储容器持久化存储配置…

IaC基础设施即代码:Terraform 通过后端使用 alicloud的OSS 实现资源管理

目录 一、实验 1.环境 2.Windows创建Terraform后端项目 3.Windows实例化Terraform后端项目 3.Windows给Terraform项目添加alicloud阿里云OSS &#xff08;实现代码与资源分离&#xff09; 4.Windows给Terraform项目添加封装的模块 5.Terraform通过后端使用 alicloud阿里…

java数据结构与算法刷题-----LeetCode96. 不同的二叉搜索树

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 很多人觉得动态规划很难&#xff0c;但它就是固定套路而已。其实动态规划只…

OceanBase 4.2特性解读:Show Trace全链路跟踪,助力快速问题定位与精准诊断

在分布式数据库环境下&#xff0c;慢 SQL 诊断是运维人员面临的一大挑战。在无法及时发现问题根本原因的情况下&#xff0c;可能会严重影响用户体验&#xff0c;甚至会导致业务服务不可用。相对于单机数据库&#xff0c;分布式数据库系统涉及多个节点、多组件的协同工作&#x…

推荐VSCODE插件:为`package.json`添加注释信息

众所周知&#xff0c;JSON文件是不支持注释的&#xff0c;除了JSON5/JSONC之外&#xff0c;我们在开发项目特别是前端项目时&#xff0c;大量会用到JSON文件&#xff0c;特别是在编写package.json中的scripts时&#xff0c;由于缺少注释,当有大量的命令脚本时&#xff0c;就有了…

【Docker】在容器中管理数据数据卷挂载以及宿主机目录挂载

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是平顶山大师&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《【Docker】在容器中管理数据》。&#x1f3af…

Halcon提取亚像素轮廓edges_sub_pix算子

Halcon提取亚像素轮廓edges_sub_pix算子 最常用的提取亚像素轮廓的算子是edges_sub_pix算子&#xff0c;该算子同样提供了大量的提取方法&#xff0c;只需要在Filter 参数中设置方法的名字&#xff0c;就可以完成边缘的提取。该算子的输入是灰度图像&#xff0c;输出是XLD轮廓…

1491. 去掉最低工资和最高工资后的工资平均值

1491. 去掉最低工资和最高工资后的工资平均值 class Solution {public double average(int[] salary) {Arrays.sort(salary);salary[0] 0;for(int i 1;i < salary.length - 1;i){salary[0] salary[i];}return salary[0] * 1.0 / (salary.length - 2);} }

【C++】vector的使用及模拟实现

目录 一、vector的介绍及使用1.1 介绍vector1.2 vector的使用1.2.1 构造1.2.2 遍历访问1.2.3 容量空间1.2.4 增删查改 二、vector的模拟实现2.1 成员变量2.2 迭代器相关函数2.3 构造-析构-赋值重载2.3.1 无参构造2.3.2 有参构造12.3.3 有参构造22.3.4 拷贝构造2.3.5 赋值重载2.…

Docker部署Jira、Confluence、Bitbucket、Bamboo、Crowd,Atlassian全家桶

文章目录 省流&#xff1a;注意&#xff1a;解决方案&#xff1a; 1.docker-compose文件2.其他服务都正常启动&#xff0c;唯独Bitbucket不行。日志错误刚启动时候重启后查询分析原因再针对第一点排查看样子是安装的bitbucket和系统环境有冲突问题&#xff1f; 结论&#xff1a…

Ovtio不同版本下载

关注 M r . m a t e r i a l , \color{Violet} \rm Mr.material\ , Mr.material , 更 \color{red}{更} 更 多 \color{blue}{多} 多 精 \color{orange}{精} 精 彩 \color{green}{彩} 彩&#xff01; 主要专栏内容包括&#xff1a; †《LAMMPS小技巧》&#xff1a; ‾ \textbf…

VTK开发调试环境下载(VTK开发环境一步到位直接开发,无需自己配置编译 VS2017+Qt5.12.10+VTK)

一、无与伦比的优势 直接下载代码就可以调试的VTK代码仓库。 二、资源制作原理 这个资源根据VTK源码 编译出动态库文件 pdb lib dll 文件&#xff08; x64 debug &#xff09; 并将这两者同时放在一个代码仓库里&#xff0c;下载就能用。 三、使用方法&#xff08;vtk-so…

武理多媒体信息共享平台的架构设计与实现

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…