浅析开源项目的代码审计

简介: 浅析开源项目的代码审计

最近一段时间,在一个前端大佬那里了解到一个构建知识图谱的开源项目,激起了我的兴趣。我之前讨论过如何构建垂直搜索引擎,本质上也是想构建出独特的领域知识。

这个开源项目是https://github.com/AISHU-Technology/kweaver
以这个开源项目为例,我将一步步剖析如何读懂一个开源项目,以及利用各种方法尽可能的去了解这个项目

了解开源协议

什么是开源协议?
该项目的开源协议为
在这里插入图片描述

即保留著作权,使用者可以商用。
了解开源协议的目的是为了避免自己未来在使用里面的部分代码的时候,出现法务问题。

按说明进行部署

在关注一个开源项目并进行代码审计之前,必须要确保该项目是可以正常使用的,而不是一个空壳。
该项目提供了一个自动化构建部署的脚本,主要是需要自己安装docker和docker-compose,同时docker-compose的版本要求比较高,这也要求我们不要使用操作系统自带的命令进行安装,否则很有可能不满足其限定条件。
在这里插入图片描述

centos具体安装过程:
可以将以下内容放到一个脚本中:

yum update && yum install -y git && git clone https://github.com/AISHU-Technology/kweaver.git && rm -rf /var/lib/docker && yum install -y yum-utils device-mapper-persistent-data lvm2 && yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && yum install -y docker-ce && mkdir -p /etc/docke

然后执行:/bin/bash xxx.sh(centos)
再执行

curl -L https://github.com/docker/compose/releases/download/v2.10.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

执行docker-compose version验证安装,如果不是1版本,就证明成功了。
执行systemctl start docker启动docker守护进程,因为docker-compose是通过守护进程sock的方式跟docker进行连接的,所以必须要有此操作。
最后执行

cd kweaver/deploy/
./instash.sh

即可。
安装完成之后,利用docker ps指令查看开启的docker容器提供的服务如下:
image.png
圈出来的一系列是容器端口与外部端口的映射,避免出现使用的问题,需要在服务器厂商那里打开安全组。
最终的访问地址为:/home/graph-list
在这里插入图片描述

商业版的登录界面应该是:
在这里插入图片描述

厂家在商业版中应该有更全面的打算。但是,在同一些模块里面,代码应该都是同一份,所以,如果能审计出开源版的漏洞,那么商业版大概率也有类似的问题,不过这个就涉及漏洞审计的内容了,这里不深入讨论。

项目应该是可用的,那么,接下来我们就应该开始尽可能的多收集该开源项目的应用场景。

收集开源项目(和其商业版)的应用场景

基本信息

目前我们掌握的信息有:
开源地址:https://github.com/AISHU-Technology/kweaver
商业版名称:anyData
利用商业名称,我们可以找到部署了这个商业版的一些地址,比如
/login 2.0版本
/login 1.0版本
顺便找到了中文商业版的文档:
在这里插入图片描述

有了接口文档,将有利于我们理解项目的运行逻辑和系统架构。

ps:这一定是一个有趣的前端
在这里插入图片描述

可能使用到的框架

了解使用的框架有助于我们从更多层面了解项目,不至于看代码看不懂写的啥。
vuexy
在这里插入图片描述

brpc

更多信息

利用fofa,谷歌搜索等基本工具,我们可以获取到更多的信息,获取到的信息越多,越有利于我们对开源项目的代码审计。

下载开源项目的代码

git clone https://github.com/AISHU-Technology/kweaver.git

目录结构如下:
在这里插入图片描述

根据我的观察,studio部分是程序的界面部分,里面包含了前后端界面的代码。sdk应该是封装的远程过程调用的函数。engine目录中实现了图的相关api,以及api 的相关服务,这个api 的相关服务我感觉有点像是自动化测试的东西。deploy就是部署发布相关的准备文件。builder看起来像是构建相关的文件。

阅读源码

阅读前端源码

利用pycharm打开项目,然后用webstorm打开前端所在目录:
\anydata\kweaver\studio\webui

执行

yarn install
yarn serve

就可以将项目启动起来。后端的代码是利用go语言写的,可以考虑使用idea打开。
但是其实我想说,我们查看一个开源项目的代码其实不一定非要运行起来,还有一种方式叫静态代码审计,下一篇我将描写如何利用Java实现对前端代码的自动化静态代码审计

待更新,太晚了,感兴趣请收藏

目录
相关文章
|
安全 Java 测试技术
【代码审计篇】 代码审计工具Fortify基本用法详解
本篇文章讲解代码审计工具Fortify的基本用法,感兴趣的小伙伴可以研究学习一下,文中部分地方可能会有遗漏,麻烦各位大佬指正,深表感谢!!!
1511 1
|
6月前
|
SQL 云安全 安全
怎么做好代码审计
代码审计,顾名思义,是一种对软件源代码进行系统性的检查和分析过程,旨在发现源代码中的安全缺陷、性能问题以及其他可能存在的缺陷。这是一种重要的软件质量保障手段,尤其在安全领域中占据着举足轻重的地位。
|
6月前
【攻防世界】warmup (代码审计)
【攻防世界】warmup (代码审计)
【攻防世界】warmup (代码审计)
|
数据采集 安全 Java
[笔记]渗透测试工具Burpsuit《一》Burpsuit介绍
[笔记]渗透测试工具Burpsuit《一》Burpsuit介绍
211 0
|
存储 缓存 安全
4.1 探索LyScript漏洞挖掘插件
在第一章中我们介绍了`x64dbg`这款强大的调试软件,通过该软件逆向工程师们可以手动完成对特定进程的漏洞挖掘及脱壳等操作,虽然`x64dbg`支持内置`Script`脚本执行模块,但脚本引擎通常来说是不够强大的,LyScript 插件的出现填补了这方面的不足,该插件的开发灵感来源于`Immunity`调试器中的`ImmLib`库,因`Immunity`调试器继承自`Ollydbg`导致该调试器无法支持64位应用的调试,同时该调试器也长期没有开发者进行维护,正是在这种情形之下`LyScript`诞生。
77 0
4.1 探索LyScript漏洞挖掘插件
|
SQL 监控 安全
发卡系统代码审计
发卡系统代码审计
YzmCMS代码审计
YzmCMS代码审计
216 0
|
存储 安全 Shell
国外某cms代码审计实战
国外某cms代码审计实战
121 0
|
存储 安全 前端开发
代码审计系统 Swallow 开发回顾
做甲方安全建设,SDL是一个离不开的话题,其中就包含代码审计工作,我从最开始使用编辑器自带的查找,到使用fortify工具,再到后来又觉得fortify的扫描太慢影响审计效率,再后来就想着把fortify集成到自己的业务系统中去
143 0
|
安全 开发工具 git
开源 Swallow 代码审计系统体验
最近在哔哩哔哩看 到Swallow 代码审计系统的宣传,发现功能比较适合我目前的工作需要,安装使用了一下,简单做了一个笔记,分享给有需要的朋友.底层架构为蜻蜓编排系统,墨菲SCA,fortify,SemGrep,hema
192 0