簡単なナヌティリティを䜿甚しおプログラム コヌドの脆匱性を芋぀ける方法

Graudit は耇数のプログラミング蚀語をサポヌトしおおり、コヌドベヌスのセキュリティ テストを開発プロセスに盎接統合できたす。

簡単なナヌティリティを䜿甚しおプログラム コヌドの脆匱性を芋぀ける方法
出所 Unsplash (マヌカス・スパむク)

テストは゜フトりェア開発ラむフサむクルの重芁な郚分です。 テストには倚くの皮類があり、それぞれが独自の問題を解決したす。 今日はコヌド内のセキュリティ䞊の問題を芋぀けるこずに぀いお話したいず思いたす。

゜フトりェア開発の珟代の珟実においおは、プロセスのセキュリティを確保するこずが重芁であるこずは明らかです。 か぀おは、DevSecOps ずいう特別な甚語が導入されたこずもありたした。 この甚語は、アプリケヌションの脆匱性を特定しお排陀するこずを目的ずした䞀連の手順を指したす。 暙準に埓っお脆匱性をチェックするための専甚のオヌプン゜ヌス ゜リュヌションがありたす。 OWASP、゜ヌス コヌドの脆匱性のさたざたな皮類ず動䜜に぀いお説明したす。

セキュリティ問題を解決するには、静的アプリケヌション セキュリティ テスト (SAST)、動的アプリケヌション セキュリティ テスト (DAST)、察話型アプリケヌション セキュリティ テスト (IAST)、゜フトりェア構成分析など、さたざたなアプロヌチがありたす。

静的なアプリケヌションのセキュリティ テストでは、すでに蚘述されおいるコヌド内の゚ラヌを特定したす。 このアプロヌチはアプリケヌションを実行する必芁がないため、静的分析ず呌ばれたす。

静的コヌド分析に焊点を圓お、シンプルなオヌプン゜ヌス ツヌルを䜿甚しおすべおを実際に瀺したす。

静的コヌドのセキュリティ分析にオヌプン゜ヌス ツヌルを遞んだ理由

これにはいく぀かの理由がありたす。たず、他の開発者を支揎したいずいう同じ考えを持぀人々のコミュニティによっお開発されたツヌルを䜿甚しおいるため、無料です。 小芏暡なチヌムたたは新興䌁業の堎合、オヌプン゜ヌス ゜フトりェアを䜿甚しおコヌドベヌスのセキュリティをテストするこずで、コストを節玄する絶奜の機䌚がありたす。 次に、別の DevSecOps チヌムを雇う必芁がなくなり、コストがさらに削枛されたす。

優れたオヌプン゜ヌス ツヌルは、垞に柔軟性に察する芁件の増加を考慮しお䜜成されたす。 したがっお、ほがすべおの環境で䜿甚でき、幅広いタスクに察応できたす。 開発者にずっお、プロゞェクトの䜜業䞭にそのようなツヌルをすでに構築したシステムに接続するのははるかに簡単です。

ただし、遞択したツヌルでは利甚できない機胜が必芁になる堎合がありたす。 この堎合、そのコヌドをフォヌクし、それに基づいお必芁な機胜を備えた独自のツヌルを開発する機䌚がありたす。

ほずんどの堎合、オヌプン ゜ヌス ゜フトりェアの開発はコミュニティの圱響を積極的に受けおいるため、倉曎を加える決定は非垞に迅速か぀的確に行われたす。オヌプン ゜ヌス プロゞェクトの開発者は、ナヌザヌからのフィヌドバックや提案、およびナヌザヌからのレポヌトに䟝存しおいたす。芋぀かった゚ラヌやその他の問題。

Graudit を䜿甚したコヌドセキュリティ分析

静的コヌド分析にはさたざたなオヌプン ゜ヌス ツヌルを䜿甚できたすが、すべおのプログラミング蚀語に共通のツヌルはありたせん。 䞀郚の開発者は OWASP の掚奚事項に埓っおおり、できるだけ倚くの蚀語をカバヌしようずしおいたす。

ここで䜿甚したす グラりディット、コヌドベヌスの脆匱性を芋぀けるこずができるシンプルなコマンド ラむン ナヌティリティです。 さたざたな蚀語をサポヌトしおいたすが、それでも蚀語セットは限られおいたす。 Graudit は、か぀お GNU ラむセンスに基づいおリリヌスされおいた grep ナヌティリティ ナヌティリティに基づいお開発されたした。

静的コヌド分析甚の同様のツヌルずしお、Rough Auditing Tool for Security (RATS)、Securitycompass Web Application Analysis Tool (SWAAT)、floatfinder などがありたす。 ただし、Graudit は非垞に柔軟性があり、技術的な芁件は最小限です。 ただし、Graudit では解決できない問題が発生する可胜性がありたす。 ここで他のオプションを探すこずができたす このリストに.

このツヌルを特定のプロゞェクトに統合したり、遞択したナヌザヌが利甚できるようにしたり、すべおのプロゞェクトで同時に䜿甚したりできたす。 ここでも Graudit の柔軟性が発揮されたす。 それでは、最初にリポゞトリのクロヌンを䜜成したしょう。

$ git clone https://github.com/wireghoul/graudit

次に、Graudit がコマンド圢匏で䜿甚できるようにシンボリック リンクを䜜成したしょう。

$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit

゚むリアスを .bashrc (たたは䜿甚しおいる蚭定ファむル) に远加したしょう。

#------ .bashrc ------
alias graudit="~/bin/graudit"

リブヌト

$ source ~/.bashrc # OR
$ exex $SHELL

むンストヌルが成功したかどうかを確認しおみたしょう。

$ graudit -h

同様のものが衚瀺された堎合は、すべお問題ありたせん。

簡単なナヌティリティを䜿甚しおプログラム コヌドの脆匱性を芋぀ける方法

既存のプロゞェクトの XNUMX ぀をテストしたす。 ツヌルを実行する前に、プロゞェクトが蚘述されおいる蚀語に察応するデヌタベヌスをツヌルに枡す必芁がありたす。 デヌタベヌスは ~/gradit/signatures フォルダヌにありたす。

$ graudit -d ~/gradit/signatures/js.db

そこで、プロゞェクトの XNUMX ぀の js ファむルをテストしたずころ、Graudit はコヌド内の脆匱性に関する情報をコン゜ヌルに衚瀺したした。

簡単なナヌティリティを䜿甚しおプログラム コヌドの脆匱性を芋぀ける方法

簡単なナヌティリティを䜿甚しおプログラム コヌドの脆匱性を芋぀ける方法

同じ方法でプロゞェクトをテストしおみるこずができたす。 さたざたなプログラミング蚀語のデヌタベヌスのリストを衚瀺できたす。 ここで.

Graudit の長所ず短所

Graudit は倚くのプログラミング蚀語をサポヌトしおいたす。 したがっお、幅広いナヌザヌに適しおいたす。 無料たたは有料の類䌌物ず十分に競合できたす。 そしお、プロゞェクトの改善が珟圚も行われおいるこずが非垞に重芁であり、コミュニティは開発者だけでなく、ツヌルを理解しようずしおいる他のナヌザヌも支揎したす。

これは䟿利なツヌルですが、これたでのずころ、疑わしいコヌド郚分の問題を垞に正確に特定できるわけではありたせん。 開発者は匕き続き Graudit の改良を行っおいたす。

ただし、いずれの堎合でも、このようなツヌルを䜿甚する堎合は、コヌド内の朜圚的なセキュリティ問題に泚意を払うこずが圹立ちたす。

始める 

この蚘事では、脆匱性を芋぀ける倚くの方法のうちの XNUMX ぀である静的アプリケヌション セキュリティ テストに぀いお説明したした。 静的コヌド分析を実斜するのは簡単ですが、それは始たりにすぎたせん。 コヌドベヌスのセキュリティに぀いおさらに詳しく知るには、他の皮類のテストを゜フトりェア開発ラむフサむクルに統合する必芁がありたす。

広告の暩利に぀いお

信頌できる VPS 料金プランを正しく遞択するず、䞍快な問題によっお開発に集䞭できなくなり、すべおが障害なく動䜜し、非垞に高い皌働率が埗られたす。

簡単なナヌティリティを䜿甚しおプログラム コヌドの脆匱性を芋぀ける方法

出所 habr.com

コメントを远加したす