ハッカーはgrauditでコード内のセキュリティ上の脆弱性を見つけます(Kali Linux)
grauditは Kali Linux 2024.3 リリース時に追加されたツールです。
grauditとは
grauditは、Kali Linuxに含まれているソースコード監査ツールの一つで、
ソフトウェアの脆弱性につながる可能性のあるものを含むプログラミングの欠陥を発見するために使われます。
特定のプログラミング言語に対して正規表現を使ってコードをスキャンし、セキュリティ上の問題(脆弱性)を検出するのが目的です。
このツールは、actionscript、android、asp、c、cobol、dotnet、eiffel、exec、fruit、go、ios、java、js、nim、perl、php、python、ruby、scala、secrets、spsqli、sql、strings、typescrip、xssなどに対応しています。
機能
grauditの主な機能は、開発プロセス中にコードのセキュリティを監査できます。
ツールの場所
メニューには"graudit"が登録されていない様子です。
直にターミナルから"graudit"を入力してください。
ツールと使用方法
graudit [opts] /path/to/scan
例:graudit /home/kali/work
デフォルトの設定で、"home/kali/work"にある"sqli.c"ファイルの脆弱性を確認します。
“sqli.c"のファイルの内容(抜粋)
このファイルはSQLインジェクションの脆弱性が含まれたファイルで、ユーザー入力を不適切に処理することで、データベースに不正なSQLクエリを実行される脆弱性です。特に、ユーザー入力が直接SQLクエリに組み込まれるコードが問題です。
このコードでは、$usernameや$passwordの入力が直接SQLクエリに埋め込まれているため、攻撃者がSQLインジェクションを利用してデータベースの操作を行う可能性があります。
結果
オプション(Options)
-h
prints this help screen
ヘルプ画面を表示する
-d <dbname>
database to use or /path/to/file.db (uses default if not specified)
使用するデータベースまたは/path/to/file.db (指定しない場合はデフォルトを使用)
-A
scan unwanted and difficult (ALL) files
不要なファイルや困難なファイル(ALL)をスキャンします。
-x
exclude these files (comma separated list: -x *.js,*.sql)
これらのファイルを除外する (カンマ区切りリスト: -x *.js,*.sql)
-i
case in-sensitive scan
大文字小文字を区別しないスキャン
-c <num>
number of lines of context to display, default is 2
表示するコンテキストの行数、デフォルトは2です。
-B
supress banner
バナーを抑制する
-L
vim friendly lines
vimフレンドリー行
-b
colour blind friendly template
色覚異常者用テンプレート
-z
supress colors
色を抑える
-Z
high contrast colors
ハイコントラストカラー
-l
lists databases available
利用可能なデータベースを表示
-v
prints version number
バージョン番号を表示する
grauditのまとめ
grauditは、直接攻撃には使えませんが、作成したプログラムの脆弱性の確認や、もし対象のサイトのソースにアクセスできれば、脆弱性を確認することができます。
脆弱性の可能性があるソースコードは、ユーザー入力の取り扱いやアクセス制御が適切でない場合が多く、攻撃者に悪用される恐れがあります。ホワイトハッカーは、こうした脆弱性を発見するために、Grauditを活用し、脆弱なパターンを洗い出していきます。