広範な言語サポートにより、Grauditは開発中のコードを安全に監査することができます。
テストは、ソフトウェア開発のライフサイクルの重要な部分であり、いくつかの段階があります。今日は、コード中のセキュリティ問題を発見する方法についてお話したいと思います。
ソフトウェアを開発している間、セキュリティを無視することはできません。そのため、DevSecOps と呼ばれる用語があり、アプリケーションのセキュリティ脆弱性を特定し、解決するという基本的な責任を担っています。 チェックするためのオープンソースのソリューションがいくつかあります。
静的アプリケーションセキュリティテスト、動的アプリケーションセキュリティテスト、対話型アプリケーションセキュリティテ スト、ソフトウェア構成分析など、セキュリティ問題に対処するためのさまざまなアプローチがあります。
静的アプリケーションセキュリティテストは、コードレベルで実行され、記述されたコードの誤りを発見することによって、アプリケーショ ンを分析します。このアプローチは、コードを実行する必要がないため、静的解析と呼ばれています。
静的コード解析に焦点を当て、オープンソースのツールを使って実践的な経験を積んでいきます。
コードのセキュリティをチェックするのに、なぜオープンソースのツールを使うのですか?
開発の一環としてオープンソースのソフトウェア、ツール、プロジェクトを選ぶ理由はたくさんあります。他の開発者を助けたいと願う、志を同じくする開発者のコミュニティによって開発されたツールを使うのですから、お金はかかりません。小規模なチームや新興企業であれば、コードのセキュリティをチェックするためのオープンソースソフトウェアを見つけることは素晴らしいことです。これによって、DevSecOpsチームを別に雇う必要がなくなり、コストを抑えることができます。
優れたオープンソースツールは、常に柔軟性を念頭に置いて設計されています。これにより、開発者はソフトウェアを既存のシステムに接続しやすくなります。
しかし、選択したツールにない機能が必要になることもあるでしょう。その場合、そのツールのコードを複製し、独自の機能を開発し、あなたのシステムで使用するという選択肢があります。
ほとんどの場合、オープンソースソフトウェアはコミュニティ主導であるため、ユーザーからのフィードバックや問題点、バグ報告に基づいてプロジェクトを反復していく中で、開発のスピードはツールのユーザーにとってプラスになることが多いのです。
Grauditでコードを保護
オープンソースの静的コード解析ツールはいろいろありますが、ご存知のように、ツールはコードそのものを解析するものなので、すべてのプログラミング言語に対応する万能ツールはありません。しかし、OWASPガイドラインに従い、できるだけ多くの言語をカバーしようとするものもあります。
ここでは、 OWASP使います。 Grauditはシンプルなコマンドラインツールで、コードベースのセキュリティ上の欠陥を見つけることができます。さまざまな言語をサポートしていますが、シグネチャのセットは決まっています。
Grauditは、GNUライセンスのツールであるgrepや、Rough Auditing Tool for Security、Securitycompass Web Application Analysis Tool、flowfinderなどの類似の静的コード解析ツールを使用します。Graudit は最も技術的要件が低く、非常に柔軟です。それでも、Grauditが満たせない要件があるかもしれません。その場合は、他の選択肢のGrauditチェックすることができます。
このツールは、特定のプロジェクトの下にインストールすることも、グローバルな名前空間にインストールすることも、特定のユーザーの下にインストールすることも、好きな場所にインストールすることもできます。リポジトリのクローンから始めましょう。
$ git clone https://.//it
ここで、Grauditへのシンボリックリンクを作成し、コマンドとして使用できるようにする必要があります。
$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit
.bashrc にエイリアスを追加します。
#------ .bashrc ------
alias graudit="~/bin/graudit"
砲弾を再装填してください:
$ source ~/.bashrc #
$ exex $SHELL
ツールが正常にインストールされているかどうか、次のコマンドを実行して確認してみましょう。
$ graudit -h
これと同じような結果が出れば、それで結構です。
私はこのツールをテストするために、既存のプロジェクトの一つを使っています。ツールを実行するには、適切な言語のデータベースを渡す必要があります。これらのデータベースはsignaturesフォルダにあります。
$ graudit -d ~/gradit/signatures/js.db
既存のプロジェクトにある2つのJavaScriptファイルでこれを実行したところ、コンソールに脆弱なコードが投げ込まれるのがわかります。
異なる言語をサポートするためのリスト長いリストを持っているプロジェクトで、これを実行することができます。
グラウディットの長所と短所
Grauditは多くの言語をサポートしているので、様々なシステムのユーザーにとって理想的です。その使いやすさと幅広い言語サポートにより、他の無料または有料のツールに匹敵します。何よりも、これらは開発中であり、コミュニティは他のユーザーもサポートしています。
これは便利なツールですが、特定のコード部分を「脆弱」であると特定するのは難しいと感じるかもしれません。おそらく開発者は、このツールの将来のバージョンでこの機能を追加するでしょう。しかし、このようなツールを使うことで、あなたのコードのセキュリティ問題を常に監視しておくことは良いことです。
要約すると
この記事では、多くの種類のセキュリティテストのうちの1つ、静的アプリケーション・セキュリティテストについて取り上げます。静的なコード分析から始めるのは簡単ですが、それは始まりに過ぎません。アプリケーション開発パイプラインに、他の種類のアプリケーショ ン・セキュリティテストを追加することで、全体的なセキュリティ意識を向上させることができます。





