cppcheckでMozilla Firefoxのソースコードを静的チェックしてみる
Mozilla Firefoxのソースコードを読んでバグを探していたのですが、ふと、ツールを使って脆弱性を検出できないかなと思って、cppcheckを使ってみることにしました。
他のソースコード静的解析ツールもいずれ使ってみたいのですが、Mozilla FireFoxはC++で記述されているので、とりあえず、cppcheckを使ってみます。
CLionとか、eclipseとかでも使えるみたいですが、とりあえず今日は、Macのターミナルでやってみることにします。
まず、cppcheckと、Mozilla Firefoxのソースコードを展開する必要があるので、ある程度の容量が使えるフォルダにターミナルで移動します。
Firefoxのダウンロードで使うので、Mercurialを事前にインストールしてください。
$mkdir cppcheckExecute
$cd cppcheckExecute
$git clone https://github.com/danmar/cppcheck.git
$hg clone https://hg.mozilla.org/mozilla-central
$cd cppcheck/
$make
これで、cppcheckをコンパイルできます。
$./cppcheck --enable=all /Users/daisuke/Documents/cppcheckExecute/mozilla-central
/Users/daisuke/Documents/cppcheckExecute/mozilla-centralについては、現在Mozilla Firefoxのソースコードを展開しているフォルダに読み替えてください。
実行してみると、全部チェックするのにものすごく時間がかかるはずです。とりあえず一個警告を見つけて、その警告をtrue positiveかfalse positiveかをチェックして、脆弱性だったらBug bounty programで報告してお金ゲットする目的なので、適当なところで中断します。
Control + Cで中断できます。
こんなのがありました。
(error) Uninitialized variable: xxxxxxxxx
xxxxxxxxxは変数が入ります。未初期化変数ですね。一応脆弱性とかだったらまずいので、伏字にしておきます。
該当するソースコードを読んでみると、確かに未初期化変数みたいですね。
これが脆弱性だったら、然るべき対処をした後、公開してもいい状態になったら公開します。
お楽しみに。
Author And Source
この問題について(cppcheckでMozilla Firefoxのソースコードを静的チェックしてみる), 我々は、より多くの情報をここで見つけました https://qiita.com/daisukeokaoss/items/1b252d3d788e7ada0610著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .