タグ

Programmingとgccに関するMonMonMonのブックマーク (3)

  • IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:バッファオーバーフロー: #4 あふれを検出するデバッグ

    第10章 著名な脆弱性対策 バッファオーバーフロー: #4 あふれを検出するデバッグ 領域あふれの問題の検出については、ロジックが複雑に入り組んでいる場合、ソースコードから見いだすのは容易でない。そのような場合、デバッガ等のツールの下で対象のプログラムを動かして、問題を見つけ出すことになる。 スタックおよびヒープにおけるあふれを検出するためのコンパイラのオプションやデバッグ・ツールがいくつか存在する。 次にその主なものを紹介する。 あふれの検出等に使うことのできるデバッグ・ツール ヒープにおける領域あふれやダブルフリー等の問題を検出できるツールをふたつ紹介する。ひとつは独立したツール、もうひとつは統合開発環境の中の機能である。 (1) Valgrind [GNU/Linux] ヒープデバッガを中心とした GNU/Linux 専用のツールスイートである。割当領域外への書き込みや、メモリリーク

  • 革命の日々! __attribute__(alloc_size) を使わないと_FORTIFY_SOURCE を活かせないよ。という話

    _FORTIFY_SOURCEというバッファーオーバーフロー攻撃を防ぐのにとても有用なマクロがある。 知らなかった人は以下のmanでもまず見てください http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/feature_test_macros.7.html _FORTIFY_SOURCE (glibc 2.3.4 以降) このマクロを定義すると、文字列やメモリの操作を行う様々な関数を 使用する際にバッファオーバーフローを検出するための軽めのチェックが 実行されるようになる。すべてのバッファオーバーフローが検出される わけではなく、あくまでよくある例についてだけである。 現在の実装では、以下の関数にチェックが追加されている: memcpy(3), mempcpy(3), memmove(3), memset(3), stpcpy(3),

  • オーバーシー・パブリッシング - GNU開発ツール

    GNU Development Tools 著者:西田 亙 ※PDFでのダウンロード販売は終了しました。 C言語の入門書でお馴染みのhello.cは、gcc hello.c という簡単なコマンドで実行可能ファイル a.out に生まれ変わります。多くの教科書はここで立ち止まることなく、次のページへと進んでしまうのですが、皆さんは「a.outはどこからやってきたのか」、「#include にはどういう意味が隠されているのか」、疑問に思われたことはないでしょうか。書は、これらの疑問に真正面から取り組み、自らの力で答えを見つけ出そうとする方々のための指南役として誕生しました。 プログラムが誕生するまでには、4つのビルド工程が必要ですが、普段はgccコマンドが裏方でこっそりと処理しているため、私達の目に触れることはありません。その挙動は、-vオプションを与えることで明らかになります。 gcc -

  • 1