FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない ファイルストリームを操作する関数を使用するときには、テキストモードとバイナリモードの違いを正しく理解することが重要である(レコメンデーション「FIO14-C. ファイルストリームにおけるテキストモードとバイナリモードの違いを理解する」も参照)。 C99 [ISO/IEC 9899:1999] のセクション 7.19.9.2 は、バイナリモードでバイナリファイルを開いた場合の fseek() の特定の動作について次のように述べている。 バイナリストリームでは、whence が SEEK_END の値をもつ fseek の呼出しを意味あるものとしてサポートする必要はない。 さらに、セクション 7.19.3 の脚注 234 には次のように記載されている。 バイナリストリーム(ナル文字の詰め物が可能なた
strcmpを使ってパスワードを判定すると、タイミング攻撃 (timing attack) にやられる危険性があることの説明 (約20分)。 まとめ: パスワードなどの文字列を strcmp関数 (およびそれに類する関数) を使って判定すると、 その判定にかかる時間を測定することで、パスワードが推測できてしまう場合がある。 これをタイミング攻撃 (timing attack) という。 この例では、36種類の文字を使った8文字分のパスワードを推測するのに、 通常のしらみつぶしな方法 (bruteforce attack) … 368 = 2821109907456回 の試行が必要なのに対して、 タイミング攻撃を使った方法 … 10000×8 = 80000回 しかかからない。タイミング攻撃を成功させてしまうと、 重要な情報が漏洩してしまう危険性がある。 これを防ぐためには、なるべく実行時間
最近のエントリの総まとめ。適当なネットワークデーモンなどを手動でmakeする際におすすめのgccのオプション。ソフトウェアにbuffer overflowをはじめとするありがちな欠陥があった場合でも、攻撃者にプロセスを乗っ取られないよう、コンパイラやカーネルで精一杯防御するためのCFLAGSとLDFLAGS。とりあえずFedora5以降を想定しています。 # 2006/6現在で私が把握しているものです。どんどん変化(進化)しますのでご注意。特にFedoraは。。 # 自分でフォローしたい場合、Hardened Gentooのページや、Fedoraのここは役立つと思います 基本 上記のように、「多少遅くなってもセキュアなバイナリ希望」という場合、もともとのCFLAGS/LDFLAGSに加えて、 CFLAGS=-fstack-protector-all -O2 -fno-strict-alia
レースコンディションは、ある状態が成立しているという前提でプログラムが処理を行ったところ、実際には他のプロセスやスレッドによって状態が変更されていて、意図した処理が失敗してしまう問題のことである。 ファイルレースコンディションは、プログラムがファイルを取り扱う際に起こるレースコンディションである。Unix系およびGNU/Linux系のプラットフォームで標準的なファイル入出力APIを用いているプログラムで起こり得る。 ファイルのすり替え ファイルレースコンディションの典型的な例として、存在の有無や属性等の状況を確認した上でファイルをオープンするという場面で、確認とオープンの間の僅かな時間に対象がシンボリックリンクにすり替えられるというものがある。別の実体を指すシンボリックリンクに誘導されて想定外のファイルアクセスが起こり、被害が生じる。 これは次のようにして起こる。プログラムのアクセス先をシ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く