MS「C言語は脆弱だな。改良してやんよ」→標準化!アーカイブ最終更新 2017/01/16 02:081.login:PenguinTpQvp0+p知らんかったわー、Linuxを構成している言語とも言えるC言語の標準ライブラリをマイクロソフトが改良してたんだな伝統的な関数をばっかり切り捨てて、マイクロソフトが作った関数に置きかえられてたお前ら、C言語を安全にしてくれたマイクロソフトに感謝するんだなhttps://ja.wikipedia.org/wiki/Gets> gets は、C言語における標準入力から1行分の文字列を取り出す関数である。> この関数はバッファオーバーランを防ぐことが不可能という致命的な脆弱性を持っており、> 2011年の改定のC11の標準CライブラリやC++14の標準C++ライブラリより廃止された[1]。https://www.jpcert.or.jp/sc-rules/c-str07-c.html> C 標準の附属書 K (規定) "Bounds-checking interfaces" [ISO/IEC 9899:2011] は、> 既存の標準文字列処理関数に代わり、より安全に利用できるように設計された代替関数を規定している。> たとえば、strcpy()、strcat()、strncpy() および strncat() の代替関数として、> それぞれ strcpy_s()、strcat_s()、strncpy_s() および strncat_s() 関数を定義している。>> 附属書 K の関数は、過去 10 年間に起きた広く知られている多数のセキュリティインシデントに対応して、> レガシーコードの改善に役立てる目的で Microsoft によって作成された。これらの関数はその後、> プログラミング言語 C の国際標準化ワーキンググループ(ISO/IEC JTC1/SC22/WG14)へ、標準化のために提案された。https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c910.html> 第10章 著名な脆弱性対策> C11:2011年以降のC言語仕様> 2011年に発行された C言語仕様には対策が含まれている。> > ISO/IEC 9899: 2011> Information technology -- Programming languages -- C> > この「Annex K」に「Bounds-checking interfaces」が規範的(normative)な付録として規定されている。> > あふれ対策> バッファオーバーフロー(あふれ)対策が施された strcpy_s 関数をはじめとする 37の関数が導入された。出典 https://mao.5ch.net/test/read.cgi/linux/14845000932017/01/16 02:08:131すべて|最新の50件
【政治】「ストレスで吸う本数が増えた。やめられへん」高市首相の健康不安…「喫煙でリウマチの薬の効果が低下」「睡眠不足に加えて食が細い」ニュース速報+3191911.72026/03/25 11:59:32
【野球】「ロウキを日本へ送り返せ!」ドジャース佐々木朗希が最終登板も炎上で防御率15.58に悪化するもロバーツ監督が第4戦先発方針変えず ファン激怒ニュース速報+251721.12026/03/25 11:58:21
【速報】センター池田瑛紗さらに終わる。順調に推移せず『最駆け』3日目MV累計再生数が近年最低の78万でぶっちぎり最下位を記録!!!!!!!!乃木坂467661532.22026/03/25 11:59:22
C言語の標準ライブラリをマイクロソフトが改良してたんだな
伝統的な関数をばっかり切り捨てて、マイクロソフトが作った関数に置きかえられてた
お前ら、C言語を安全にしてくれたマイクロソフトに感謝するんだな
https://ja.wikipedia.org/wiki/Gets
> gets は、C言語における標準入力から1行分の文字列を取り出す関数である。
> この関数はバッファオーバーランを防ぐことが不可能という致命的な脆弱性を持っており、
> 2011年の改定のC11の標準CライブラリやC++14の標準C++ライブラリより廃止された[1]。
https://www.jpcert.or.jp/sc-rules/c-str07-c.html
> C 標準の附属書 K (規定) "Bounds-checking interfaces" [ISO/IEC 9899:2011] は、
> 既存の標準文字列処理関数に代わり、より安全に利用できるように設計された代替関数を規定している。
> たとえば、strcpy()、strcat()、strncpy() および strncat() の代替関数として、
> それぞれ strcpy_s()、strcat_s()、strncpy_s() および strncat_s() 関数を定義している。
>
> 附属書 K の関数は、過去 10 年間に起きた広く知られている多数のセキュリティインシデントに対応して、
> レガシーコードの改善に役立てる目的で Microsoft によって作成された。これらの関数はその後、
> プログラミング言語 C の国際標準化ワーキンググループ(ISO/IEC JTC1/SC22/WG14)へ、標準化のために提案された。
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c910.html
> 第10章 著名な脆弱性対策
> C11:2011年以降のC言語仕様
> 2011年に発行された C言語仕様には対策が含まれている。
>
> ISO/IEC 9899: 2011
> Information technology -- Programming languages -- C
>
> この「Annex K」に「Bounds-checking interfaces」が規範的(normative)な付録として規定されている。
>
> あふれ対策
> バッファオーバーフロー(あふれ)対策が施された strcpy_s 関数をはじめとする 37の関数が導入された。