タグ

セキュリティとC言語に関するmohnoのブックマーク (4)

  • 「ソフトウェアはメモリ安全でなければならない」との声明を発表、米ホワイトハウス

    米ホワイトハウス国家サイバー局長室(The White House Office of the National Cyber Director:ONCD)は、2024年2月26日(米国時間)、サイバー空間における攻撃対象領域(アタックサーフェス)を積極的に削減するよう技術コミュニティーに呼びかける報告書を発表した。 ONCDは、IT企業がメモリ安全なプログラミング言語を採用することで、あらゆる種類の脆弱(ぜいじゃく)性がデジタルエコシステムに侵入するのを防ぐことができると述べている。ONCDはまた、サイバーセキュリティの品質を測定するより優れた診断の開発を可能にするために、ソフトウェアの測定可能性の問題に取り組むことを奨励している。 関連記事 Google、「メモリ安全性」に関する見解と対策をまとめたホワイトペーパーを公開 Googleは、「セキュアバイデザイン:メモリ安全性に関するGoo

    「ソフトウェアはメモリ安全でなければならない」との声明を発表、米ホワイトハウス
    mohno
    mohno 2024/03/19
    「メモリの安全性を保つ特性を欠くプログラミング言語として「C」「C++」を挙げた」「「Rust」などのメモリ安全性の高いプログラミング言語の使用を推奨」/深く考察した上で言っているのか、短絡的思考なのか分からん。
  • 疑われる「C++」の安全性、今後の動きはどうなる

    C++」は非常に人気があるプログラミング言語だが、同言語の標準化に取り組んでいるグループが、C++の「メモリ安全性」を(新しいライバル言語である「Rust」のように)高めるための今後の道筋について議論する文書を発表した。 Rustは、MicrosoftAmazon Web Services(AWS)、Meta、GoogleAndroid Open Source Project、主にC++で書かれている「Chromiumプロジェクト(まだ始まったばかりだが)、Linuxカーネルなど、多くの企業やプロジェクトで採用されており、メモリ関連のセキュリティホールを減らすのに役立っている。最近では、米国家安全保障局(NSA)までが、開発者に対してC++からC#やJavaRubyRustSwiftへの戦略的な移行を促す事態になっている。 C++の生みの親であるBjarne Stroustr

    疑われる「C++」の安全性、今後の動きはどうなる
    mohno
    mohno 2023/01/30
    なんかさー、安全性とか、そういうのが必要なら、わざわざ“C++”を変質させなくても、別の言語に切り替えればいい話だと思うんだよね。それで互換性が犠牲になるなら“C++”(あるいはC)を選ぶ理由がないというか。
  • パスワードとmemset関数 - yohhoyの日記

    C言語プログラム上で高機密性情報(パスワード文字列など)を消去するケースで、memset関数の単純利用では機密情報がメモリ上に残存してしまい、セキュリティ上の脆弱性につながる可能性がある。 void secure_operation() { // パスワード文字列を取得 char passwd[128]; get_password(passwd, sizeof(passwd)); //... // メモリ上の高機密データを消去... memset(passwd, 0, sizeof(passwd)); // ?? } 上記コードではパスワード文字列が格納された変数passwdを使用後にゼロクリアしているが、コンパイル時の最適化によりmemset関数呼び出しが削除される可能性がある。この(プログラマの意図に反する)最適化は、C言語の言語仕様上も許容されるコンパイラの振る舞いとなっている。*1

    パスワードとmemset関数 - yohhoyの日記
    mohno
    mohno 2014/03/22
    「実際の処理系では、値が使用されないこと、及び(関数の呼出し又はボラタイルオブジェクトのアクセスによって起こる副作用を含め)副作用が必要とされないことが保証できる式は、評価しなくてよい」
  • PHP5.3.7のcrypt関数のバグはこうして生まれた

    昨日のブログエントリ「PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)」にて、crypt関数の重大な脆弱性について報告しました。脆弱性の出方が近年まれに見るほどのものだったので、twitterやブクマなどを見ても、「どうしてこうなった」という疑問を多数目にしました。 そこで、このエントリでは、この脆弱性がどのように混入したのかを追ってみたいと思います。 PHPのレポジトリのログや公開されているソースの状況から、PHP5.3.7RC4までこのバグはなく、PHP5.3.7RC5でこのバグが混入した模様です。RC5はPHP5.3.7最後のRelease Candidateですから、まさに正式リリースの直前でバグが入ったことになります。 バグの入る直前のソースは、ここの関数php_md5_crypt_rから参照することができます。以下に、おおまかな流れを図示します。まずはバ

    PHP5.3.7のcrypt関数のバグはこうして生まれた
    mohno
    mohno 2011/08/24
    「strncatとstrlcatでは、第3パラメータの意味が異なります」「GNU Cライブラリ (glibc) の開発者たちは、GNU Coding Standardsで禁じられている「長い行を黙って切り詰める」関数である…否定的な見解を示しており」
  • 1