タグ

Programmingとsecurityに関するWatsonのブックマーク (22)

  • コードを静的解析して脆弱性を検出する「SCALe」、米CERTがオープンソースで公開

    米Software Engineering Institute(SEI)のCERT部門は、静的解析によってコードの脆弱性を検出するアプリケーション「SCALe」(Source Code Analysis Laborator)をオープンソースで公開しました。 SCALeは、複数の静的解析ツールをまとめて実行するためのフレームワークでできており、今回公開されたアプリケーションにはセキュリティに関するコーディング規約「SEI CERT Coding Standards」およびSQLインジェクション、クロスサイトスクリプティング、バッファオーバーフローなど多くのソフトウェアの脆弱性を体系的に一覧化した「CWE(Common Weakness Enumeration)」(共通脆弱性タイプ一覧)の2つをベースにしたツールが含まれています。 SEI CERT Coding Standardsは現在、C/

    コードを静的解析して脆弱性を検出する「SCALe」、米CERTがオープンソースで公開
  • Webデベロッパのためのセキュリティ・チェックリスト | POSTD

    安全で堅牢なWebアプリケーションをクラウドで開発するのは 非常に困難 です。それを簡単だと思っているような人は、例えばとんでもない頭脳をお持ちというなら別ですが、遠からず痛い目を見ることになるでしょう。 もし MVP(Minimal Viable Product:必要最低限の機能を備えた製品) のコンセプトを鵜呑みにして、有益かつ安全な製品を1ヶ月で作成できると考えているようなら、プロトタイプを立ち上げる前に一度考え直した方がいいと思います。以下に挙げたチェックリストをご覧いただければ、セキュリティに関するクリティカルな問題の多くをスキップしていることが分かるはずです。あるいは少なくとも、潜在的なユーザに対しては 誠実 であるように心がけ、製品が完全ではないこと、そしてセキュリティが不十分な製品を提供していることを伝えるようにしてください。 このチェックリストはシンプルなもので、決して完

    Webデベロッパのためのセキュリティ・チェックリスト | POSTD
  • iOS9 ATS問題 - Qiita

    iOS9で問題になりそうなATSをまとめました。 ご指摘事項あれば是非コメントをいただきたいです。特にAFNetworkingまわり・・。 AFNetwotking部分は下に記載していますが、iOS8向けのビルドでiOS9端末でも発生したので要注意です。 2015/09/21追記 iOS9GM以降は(もうreleaseされちゃいましたが・・)AFNetworkingでの証明書判定がiOS8とおなじになりました。。。 2016/07/27追記 toshi0383さん 修正依頼ありがとうございます。 1年間間違っていることに気が付きませんでした。。修正ありがとうございます。 App Transport Security App Transport Security (ATS) enforces best practices in the secure connections between a

    iOS9 ATS問題 - Qiita
  • Heart Bleedを読んだ - The first cry of Atom

    int dtls1_process_heartbeat(SSL *s) { unsigned char *p = &s->s3->rrec.data[0], *pl; unsigned short hbtype; unsigned int payload; unsigned int padding = 16; /* Use minimum padding */ heartbeatという機能の詳しいことは調べられていないけれどどうやらクライアントーサーバ型の機能を提供するものらしい。 つまり何らかのリクエストを受け取ってレスポンスを返すようなサービスを提供するものらしい。dtls1_process_heartbeatで大事なのは ポインタpだ。これはリクエストデータを受け取って格納している。このリクエストデータは構造体になっていて、以下のように記述されている。 typedef struct

  • なぜ、いま「セキュアコーディング」なのか?

    なぜ、いま「セキュアコーディング」なのか?:もいちど知りたい、セキュアコーディングの基(1)(1/2 ページ) 多くのソフトウェアが脆弱性を抱えたまま出荷され、不正アクセスや攻撃の脅威にさらされているいま、セキュアな開発に関する技術や経験を有するプログラマがいっそう求められるようになりました。この連載ではC/C++言語を例に、セキュアコーディングで特に重要となるトピックスを紹介していきます。 ソフトウェアセキュリテイをめぐる状況 今月から数回に渡って「C/C++セキュアコーディング」の連載を担当させていただくことになりました、JPCERTコーディネーションセンター(JPCERT/CC)、脆弱性解析チームの久保と戸田です。よろしくお願いします。第1回目の記事は久保が担当します。 まず始めに、連載のタイトルにもある「セキュアコーディング」とは何なのか、言葉の整理も兼ねて、あらためて考えてみ

    なぜ、いま「セキュアコーディング」なのか?
  • 開発者はソフトウェアの欠陥に法的責任を負うべきか?

    コーディングに手抜きがあったためにハッカーの攻撃を許してしまい、ユーザーが金銭的な損失を被った場合、そのコーディングを行ったソフトウェア製作者が法的に訴えられてしかるべきだと主張している研究者がケンブリッジ大学にいる。 ハンバーガーをべて中毒になった場合、そのハンバーガーを販売したレストランに対して訴訟を起こすことができる。それならば、手抜きコードが存在したためハッカーがあなたの銀行口座からお金を引き出した場合、そのコーディングを行ったソフトウェア開発者を訴えることができてもよいのではないだろうか? この問題提起は、ケンブリッジ大学でセキュリティの研究を行っているRichard Clayton博士によってなされたものである。同博士の主張は、来であれば除去されていたはずのセキュリティ上の欠陥がアプリケーション内に残存し、それに起因する損害が発生した場合、ソフトウェア製作者の法的責任を追

    開発者はソフトウェアの欠陥に法的責任を負うべきか?
  • Technical Note TN2123: CrashReporter

  • バグを放置したら逮捕? 話題の「ウイルス作成罪」の改正刑法が成立 - はてなニュース

    これまで処罰が困難だったコンピューターウイルスを使った犯罪を取り締まるための改正刑法が、6月17日(金)の参議院会議で可決、成立しました。はてなブックマークでは以前から同改正案の内容に注目が集まっています。この改正案の成立の経緯と、議論の的になった問題点を紹介します。 ▽ コンピューターウイルス作成罪を新設 改正刑法が成立 :日経済新聞 ▽ 法務省:情報処理の高度化等に対処するための刑法等の一部を改正する法律案 改正刑法の正式名称は「情報処理の高度化等に対処するための刑法等の一部を改正する法律」です。改正案は5月31日の衆議院で可決されており、6月17日の参議院での可決により成立しました。 この改正では、ウイルス(不正指令電磁的記録)の作成者に対して3年以下の懲役または50万円以下の罰金を課します。ウイルスの定義に触れている該当の条文を引用します。 第百六十八条の二 正当な理由がないの

    バグを放置したら逮捕? 話題の「ウイルス作成罪」の改正刑法が成立 - はてなニュース
  • JPCERT C Secure Coding Standard 日本語版 - プリプロセッサ (PRE) (#c01)

    CERT C コーディングスタンダード 日語翻訳版コーディングスタンダードのご利用条件/著作権・免責事項 00. はじめに 01. プリプロセッサ (PRE) 02. 宣言と初期化 (DCL) 03. 式 (EXP) 04. 整数 (INT) 05. 浮動小数点 (FLP) 06. 配列 (ARR) 07. 文字と文字列 (STR) 08. メモリ管理 (MEM) 09. 入出力 (FIO) 10. 環境 (ENV) 11. シグナル (SIG) 12. エラー処理 (ERR) 13. Application Programming Interface (API) 14. 並行性 (CON) 49. 雑則 (MSC) 50. POSIX (POS) AA. 参考情報 BB. Definitions CC. 未定義の動作 DD. 未規定の動作 XX. お問い合わせ 00はじめに このページ

    JPCERT C Secure Coding Standard 日本語版 - プリプロセッサ (PRE) (#c01)
  • Linuxのcrontabコマンドの脆弱性をつぶす

    はじめに 今回はCronをとりあげます。CronはOSの持っている時計に基づき、あらかじめ設定しておいたコマンドを実行するための仕組みで、Unix系システムには必ず備えられているといっていい機能でしょう。ログファイルのローテーションやログインアカウントの利用状況集計など、システム管理上のジョブを定期的に実行するために活用されています。 英語Wikipediaのページによると、Cron歴史はVersion7 Unix(1979年リリース)までさかのぼるそうです。Linuxディストリビューションの多くが現在使っているものは、Paul Vixie氏が実装したVixie Cronが元になっています。 サンプルコード Cronでは、crontabという設定ファイルでいつどのようなジョブを実行するかを指定します。この設定ファイルはユーザごとに用意されており、必要に応じてユーザが自分で編集します。こ

    Linuxのcrontabコマンドの脆弱性をつぶす
  • TIFFライブラリに潜む脆弱性をつぶすパッチ(その2)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    TIFFライブラリに潜む脆弱性をつぶすパッチ(その2)
  • Linuxのカーネルに潜む脆弱性をつぶすパッチ

    今回はLinuxカーネルのソースコードに注目してセキュリティコードレビューを行いたいと思います。Linuxのカーネルはネタの宝庫!といってもよいほど数多くの脆弱性が発見・修正されており、NIST(米国国立標準技術研究所)のNational Vulnerability Databaseで「Linux kernel」をキーワードに単純に検索するだけでも過去に624件の脆弱性が見つかっていることが分かります(執筆時点)。また、2010年は既に42件の脆弱性が登録されています。 サンプルコード 以下のコードはLinuxカーネル2.6.30のdrivers/net/tun.cから抜粋したものです。それでは、このコードのどこに問題があるか考えてみましょう。 /* Poll */ static unsigned int tun_chr_poll(struct file *file, poll_table

    Linuxのカーネルに潜む脆弱性をつぶすパッチ
  • Samba smbclient―書式指定文字列に潜む脆弱性

    今回はSambaを取り上げます。Sambaは、Unix系マシンをWindowsファイル共有サーバーにするためのソフトウェアとして有名です。市販のNAS(ネットワーク接続ストレージ)の多くも、LinuxとSambaの組み合わせでその機能を実現しています。ここでは、昨年2009年に発見・修正された問題を取り上げてみましょう。 サンプルコード Sambaでは、種々のサーバープログラムと共に、サーバーに接続するためのクライアントプログラムも提供しています。今回は、そのクライアントプログラムのソースコードに含まれているcmd_get()という関数に注目しましょう。それほど長い関数ではありませんが、他の部分で定義されている関数をいろいろ呼び出しているので、それらのプロトタイプ宣言とコメント部分を一緒に並べてあります。 /* Get us the current top of the talloc st

    Samba smbclient―書式指定文字列に潜む脆弱性
  • 画像処理ソフトウェア「ImageMagick」の脆弱性

    はじめに この連載では、最初に問題のあるコードを示します。前回に引き続き今回も、まずはコードだけを見て、どこに問題があるのか考えてみてください。 コードの後には、コードに含まれる脆弱性を見つけるためのヒントや、コードが行おうとしていることを理解するために役立つ背景知識などを説明します。コードを見ただけではどこに問題があるのか分からない、といった場合は、これらの説明を手がかりに考えてみてください。 どこに問題があるのか分かったら、次にどのように修正すべきかを考えましょう。修正方法は一通りとは限りません。むしろ、複数の修正方法が考えられることが多いと思います。 最後に、実際にどのような修正が行われたか説明します。自分が考えた修正案と比較してみてください。 オープンソースの画像処理ソフトウェア「ImageMagick」 今回はオープンソースの画像処理ソフトウェアであるImageMagickを取り

    画像処理ソフトウェア「ImageMagick」の脆弱性
  • TIFFライブラリに潜む脆弱性をつぶすパッチ

    はじめに この連載では、最初に問題のあるコードを示します。前回に引き続き今回も、まずはコードだけを見て、どこに問題があるのか考えてみてください。 コードの後には、コードに含まれる脆弱性を見つけるためのヒントや、コードが行おうとしていることを理解するために役立つ背景知識などを説明します。コードを見ただけではどこに問題があるのか分からない、といった場合は、これらの説明を手がかりに考えてみてください。 どこに問題があるのか分かったら、次にどのように修正すべきかを考えましょう。修正方法は一通りとは限りません。むしろ、複数の修正方法が考えられることが多いと思います。 最後に、実際にどのような修正が行われたか説明します。自分が考えた修正案と比較してみてください。 サンプルコード さて、皆さんにコードレビューしていただくのは、TIFFファイルの読み書きを行うためのライブラリであるlibTIFF v3.6

    TIFFライブラリに潜む脆弱性をつぶすパッチ
  • パスワードの判定にstrcmpを使うべきでない理由

    strcmpを使ってパスワードを判定すると、タイミング攻撃 (timing attack) にやられる危険性があることの説明 (約20分)。 まとめ: パスワードなどの文字列を strcmp関数 (およびそれに類する関数) を使って判定すると、 その判定にかかる時間を測定することで、パスワードが推測できてしまう場合がある。 これをタイミング攻撃 (timing attack) という。 この例では、36種類の文字を使った8文字分のパスワードを推測するのに、 通常のしらみつぶしな方法 (bruteforce attack) … 368 = 2821109907456回 の試行が必要なのに対して、 タイミング攻撃を使った方法 … 10000×8 = 80000回 しかかからない。タイミング攻撃を成功させてしまうと、 重要な情報が漏洩してしまう危険性がある。 これを防ぐためには、なるべく実行時間

  • もっとも危ないプログラミングエラー25、+16 | エンタープライズ | マイコミジャーナル

    CWE is a Software Assurance strategic initiative sponsored by the National Cyber Security Division of the U.S. Department of Homeland Security. CWE - 2010 CWE/SANS Top 25 Most Dangerous Programming Errorsにおいて脆弱性の原因となる危険なプログラミングエラー25が発表された。開発者にセキュリティ問題の原因となるプログラミングに関する注意を促し、実際にソフトウェアが動作する前の段階で問題を発見し対処できるようにすることを目指したもの。2009年に発表されたリストの更新版にあたり、内容の多くが更新されている。2009年版を使っていた場合には、今回発表された2010年版を再度検討する価値がある。

  • sizeofオペレータを正しく使おう ――C/C++セキュアコーディング入門(5)

    はじめに 今回はsizeofオペレータをとりあげます。sizeofは、引数に与えたオブジェクトや型名から、その型のデータがメモリ上に占めるバイト数を求めるオペレータです。皆さんも、メモリ領域を動的に確保したいときや文字列操作などに関連して使ったことがあるでしょう。まずはsizeofオペレータの使用上の注意について説明し、その後でsizeofオペレータの誤用例を2つ紹介します。 sizeofオペレータ使用上の注意 「sizeofオペレータの使用上の注意 その1」は、プログラマが意図する正しい引数を渡すこと、です。メモリ上のオブジェクトのコピーや移動などの操作は、オブジェクトのメモリ上のサイズにもとづいて行います。オブジェクトのサイズを間違っていたら、アクセス違反やオーバフローといった脆弱性につながることは容易に想像できるでしょう。 「sizeofオペレータの使用上の注意 その2」は、引数に副

    sizeofオペレータを正しく使おう ――C/C++セキュアコーディング入門(5)
  • 「安全なウェブサイトの作り方」改訂、Webアプリの失敗例を拡充 

  • C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター

    これまでにC/C++ セキュアコーディングセミナーで使用した講義資料を公開しています。2010年度にセミナを実施した、文字列、整数、動的メモリ管理、書式指定文字列、CERT C セキュアコーディングスタンダード、ROSE については、それぞれ最新版の資料を掲載しています。 文字列 ユーザとソフトウエア間に発生するデータのやりとりの大部分は文字列によって行われます。 また、プログラム間でのデータ交換も文字列形式で行われるようになり、その結果、文字列表現や文字列管理、文字列操作における弱点がソフトウエア脆弱性を生み出しています。 文字列では、C/C++ 言語における文字列操作、一般的なセキュリティ上の欠陥と、その結果発生する脆弱性と対処方法について解説します。 C/C++ における文字列の特性 犯しやすい文字列操作の間違い 文字列の脆弱性 プロセスのメモリ構成 スタック破壊の仕組み コードイン

    C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター