Dragonfly: GitLab は Fortify を組み合わせてコード監査の自動化を実現します

1. 背景

当事者 A でセキュリティに取り組む学生は、コード監査の仕事をしている場合があります。通常、gitlab からコードを取得し、コード監査ツールを使用してスキャンし、結果を手動で確認する必要があります。

このプロセスで行う必要があることは面倒で、gitlab でトークンを設定する方法、コードを自動的にローカルにプルする方法、バッチ スキャンを実現するために Fortify を呼び出す方法、その他多くの面倒な問題があります。

この記事では、当事者 A のセキュリティ コードのセキュリティ構築を主軸とし、コード監査ツールで gitlab ウェアハウス内のコードを自動的にスキャンする方法を共有します。誰もがテストできる便利な実験環境を提供します。

この記事の実験では、さまざまなコード監査ツール (semgrep、fortify、Murphy、Hippo など) を使用しましたが、このうち、Fortify ソフトウェアは商用の性質を持っているため、この記事ではソフトウェアを提供できません。このソフトウェアを準備してホストの /data/share/fortify ディレクトリに保存します)、テストの完了後、各コード監査ツールの効果の比較を確認できます。

2. 環境を整える

みんなの便宜を図るため、私は実験用 gitlab のアドレスを直接共有し、誰でも最初にこの共有環境を使用できるようにします。

URL:http://123.249.6.139:1880/
用户名:root
密码:qingtingtest
token:glpat-SMsSWy6xzB4x8B6rFryB

gitlab環境を構成する

gitlab ウェアハウスのコードの強化スキャンを実際にシミュレートするには、gitlab ウェアハウスを手早く構築する必要があります。ここで、docker を試す最も簡単な方法は、次のコマンドを実行することです。

docker run --detach --hostname gitlab.thinkpad --publish 8443:443 --publish 880:80 --publish 222:22 --name gitlab --restart always --volume /data/gitlab/config:/etc/gitlab --volume /data/gitlab/logs:/var/log/gitlab --volume /data/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

コマンドが実行されると、docker は自動的に docker イメージを取得し、gitlab コンテナーを作成します。サービスが開始されると、root ユーザーのパスワードがランダムに生成されます。root ユーザーの初期化パスワードは、次のコマンドで確認できます。

docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

コマンドを実行すると、以下のようにターミナルにパスワードが表示されます。

Password: UnSoOs7l8YN6dYDQRP/1/dzpKswF7dq7fpyhKBey95A=

これで、ブラウザを使用して gitlab ページにアクセスできるようになります。アクセス アドレスは ですhttp://x.x.x.x:880/。次の図に示すように、ブラウザは自動的にログイン ページにジャンプします。

ログイン ページで、ユーザー名として root を入力し、パスワードとして先ほど取得したパスワードを入力します。ログインに成功すると、次の図に示すように、ワークベンチのホームページに自動的にジャンプします。

APIアクセス用のトークンを作成する

为了让fortify能够访问到gitlab仓库的代码,我们需要创建一个token,用于API访问;在头像位置展开下拉菜单,选择preferences->Access Tokens ,填下相关参数,界面如下所示

创建完成,把生成的token复制出来,后续要用到

glpat-ggjo6Z6aQXWCZ2FNJcsz

gitlab搭建完后,默认里面有一个空项目,fortify无法扫除有价值的漏洞,为了方便测试,需要在新建项目的位置导入项目进去,打开URL地址http://10.1.1.140:880/projects/new#import_project,然后选择Repository by URL,然后填入一个可以被拉取的仓库地址,这里我提供一个供大家实验,如下图所示

https://gitee.com/songboy/QingScan

导入项目之后,gitlab会自动拉取代码到服务器,如下图所示

三、配置参数

现在已经有了gitlab的实验环境,可以正式开始做实验,首先打开蜻蜓的市场页面,URL地址如下

http://qingting.starcross.cn/scenario/store

可能会提示要求登录,如果是首次进入蜻蜓安全控制台,扫描登录之后会自动注册

然后需要在服务器执行添加节点的shell命令,按照提示进行操作即可,如下图所示

现在回到市场页面,找到快速挖掘0day漏洞,在下方有个按钮,添加到工作流,如下图所示

添加到工作流之后,会看到工作流的信息,这里可以把gitlab的配置信息填写进去,需要点击进入编排流程,如下图所示

在编排工作流页面,上方有一个设置全局变量的小图标,按照提示配置必要参数,如下图所示

四、运行程序

运行全局变量完成之后,可以右键点击第一个节点,再次点估运行选项,就可以运行这个工作流,运行过程中节点状态会发生变化

节点会按照自上而下运行,运行过程中状态图标会一直旋转,当运行完成时,可以看到成功的小图标

运行完成之后,可以去数据中心查看运行结果,可以根据节点和任务ID等方式筛选,如下图所示

我选中fortify代码扫描节点,筛选出来的列表页面如下所示

在列表页面只展示了一小部分数据,可以点击查看按钮,在详情页查看详细的漏洞信息,用于审计标注,如下图所示。

上面节点的代码已经在GitHub中开源,有需要的小伙伴也可以在GitHub

https://github.com/StarCrossPortal/QingTing

GitHub地址:https://github.com/StarCrossP...

おすすめ

転載: blog.csdn.net/u013431141/article/details/128617392