yuriの日記: ソフトウェアセキュリティについて開発者が知っているべきこと 10
日記 by
yuri
という本を読んでいる。
以前、sprintf()はアブねーからsnprintf()に置き換えましょうね、
という話をチームのみんなに振ったところ猛反対された経験がトラウマな私は
自分がコミットするコードだけで、禁忌関数に気をつけています。
良かれと思った提案が猛反対されるのは
・言い方が悪い(正論チック or 癇に障る とか)
・タイミングが悪い(この忙しいときにコノヤロー)
・嫌われている
・上記の複合技
こんなところでしょうね…
最も重要な理由が抜けてるんじゃない? (スコア:1)
もっとも、ローカルで動かすだけの奴ならsscanf使っても問題ないと思ってますけどね。
# ローカルで動かせるという事は動かすための権限を既に持ってるわけで、自分をクラックしても意味がない。また、権限奪取はシステムの問題であってライブラリやユーザーアプリの責任ではない。というのがその理由。
Re:最も重要な理由が抜けてるんじゃない? (スコア:1)
そうそう!
半数くらいはそんな感じで、残りは「すでに作ったコードを直す労力は払えない」
って感じです。。
お客様からは「セキュリティ大丈夫だろーね(しっかりしろよゴルァ)」と言われてるのに何この板挟みorz
#弱ってます(^^;;
sprintfな部分からシェル起動して見せてあげれば、ちょっとは本腰を入れて修正を
手伝ってくれるかもしれませんね。。
Re:最も重要な理由が抜けてるんじゃない? (スコア:1)
それにデータを拾い食いしなければそもそもそんなクラックデータを食う危険はないのでそういう用途ならコード修正のコストを負担できないというのはわかる。でも逆にネットワークアプリ、特にtheNetに繋ぐような何食わされるかわかったもんじゃない場合とか、ライブラリみたいに何に使われるかわからない場合は直すのが順当だと思う。
何にしても禁忌だけじゃ説得力はないから最低でもメカニズムレベルで理由を説明する必要があると思う。カラクリがわかればたとえ今のコードを直してくれなくても次に書くコードからは配慮してくれるんじゃないかなー。
Re:最も重要な理由が抜けてるんじゃない? (スコア:1)
まあsnprintfがない環境ではたいていlocaleもないのでsprintfでも文字数が計算できたりするのですが。あーもー面倒だから全部自分で書いてやる!(そしてまた車輪を発明するダメ人間)
-- Takehiro TOMINAGA // may the source be with you!
Re:最も重要な理由が抜けてるんじゃない? (スコア:1)
有志の賛同者がsnprintfのラッパーを作ってくれたので
それに置き換える、せめて新規作成関数はそれを使ってね☆
というキャンペーンを繰り広げたのですが
挫折したお!
オットの談によると昨夜酔っ払って帰って来た私は
もー脱サラする!と連呼していたそうです。あちゃ〜痛たたた。。
Re:最も重要な理由が抜けてるんじゃない? (スコア:0)
Re:最も重要な理由が抜けてるんじゃない? (スコア:1)
# パッケージでもネットモノでもなければ大抵そんな感じ。
料理と同じ (スコア:0)
人間関係重要 (スコア:0)
こいつはあんまし笑い事ではないですよ。
これが原因(の一つ)で脆弱性が残っちゃって、日本中を騒がせる情報漏えい事件になったこともあるのですから。
Re:人間関係重要 (スコア:1)
実はいまもまだ何件か温めているので、今後は気をつけます。
アドバイスありがとうございます。