タグ

ブックマーク / jovi0608.hatenablog.com (17)

  • Node.jsにおけるプロトタイプ汚染攻撃とは何か - ぼちぼち日記

    1. はじめに 最近わけあってNodeのセキュリティ調査をしているのですが、今年の5月に開催された North Sec 2018 でセキュリティ研究者の Olivier Arteau 氏による 「Prototype pollution attacks in NodeJS applications」という面白い発表を見つけました。 この発表の論文や発表資料、デモ動画などもgithubで公開されていますし、ちょうどタイミングよくセッション動画も最近公開されました。 github.com Olivier Arteau -- Prototype pollution attacks in NodeJS applications この発表で解説されているのは、悪意のある攻撃者が、JavaScript言語固有のプロトタイプチェーンの挙動を利用して、Webサーバを攻撃する方法です。 発表者は、npmからダ

    Node.jsにおけるプロトタイプ汚染攻撃とは何か - ぼちぼち日記
    coppieee
    coppieee 2018/10/19
    一番の対策は脆弱性対応したライブラリにアップデートするでいいな
  • 新しいTLSの暗号方式ChaCha20-Poly1305 - ぼちぼち日記

    Disclaimer エントリは、近々IETFで標準化される予定の新しいTLSの暗号方式 ChaCha20-Poly1305 について解説したものです。 来なら、新しい暗号方式を紹介するいうことは、その暗号の安全性についてもちゃんと解説しないといけないかもしれません。しかし一般的に暗号の安全性評価はとても難しく、専門家でない者が暗号の安全性について軽々しく書くわけにはいかないなとも思いました。いろいろ悩みましたが、結局無用な誤解を避けるため、エントリーでは ChaCha20-Poly1305 の安全性に関する記載を最小限に留めています。 今回紹介する ChaCha20-Poly1305 は、これまでも様々な暗号研究者の評価を受けている暗号方式ですが、まだNISTの標準や某国の推奨暗号リストに掲載されるといった、いわゆる特定機関のお墨付きをもった暗号方式ではありません。記載内容が中途半

    新しいTLSの暗号方式ChaCha20-Poly1305 - ぼちぼち日記
    coppieee
    coppieee 2016/04/04
  • io.jsのTechnical Committeeに推薦されました - ぼちぼち日記

    1. はじめに 「こんな私がXXXに!?」の宣伝文句ではありませんが、こんな私がio.jsプロジェクトTechnical Commitee(TC)に推薦されました。 Nominating Shigeki Ohtsu @shigeki to the TC まずは見習いとして数週間オブザーバーとしてTC meetingに参加、その後TCメンバーの投票を経て晴れてTCメンバーです。favや応援メッセージをいただいた方、ありがとうございました。 TC meetingは毎週木曜の早朝朝5時、Googleハングアウトで行います。会議の様子はライブ配信され、youtubeで録画公開されてます。議事録も随時公開されています。https://github.com/iojs/io.js/tree/master/doc/tc-meetings コミュニケーションは当然全部英語。大変です。昨日の早朝に初めて参加

    io.jsのTechnical Committeeに推薦されました - ぼちぼち日記
    coppieee
    coppieee 2015/04/26
  • 華麗なる因数分解:FREAK攻撃の仕組み - ぼちぼち日記

    1. はじめに ちょうど今朝 OpenSSLをはじめとした様々なTLS実装の脆弱性の詳細が公表されました。 この InriaとMSRのグループは以前からTLSのセキュリティに関して非常にアクティブに調査・検証をしているグループで、今回も驚きの内容でした。 このグループは、TLSのハンドシェイク時の状態遷移を厳密にチェックするツールを開発し、様々なTLS実装の脆弱性を発見・報告を行っていたようです。 特にFREAKと呼ばれるOpenSSLの脆弱性(CVE-2015-0204)に関しては、ちょうど修正直後の1月初めに Only allow ephemeral RSA keys in export ciphersuites で見ていましたが、具体的にどのように攻撃するのかさっぱりイメージできず、あのグループだからまた超絶変態な手法だろうが、まぁそれほど深刻じゃないだろうと見込んでいました。 今回

    華麗なる因数分解:FREAK攻撃の仕組み - ぼちぼち日記
    coppieee
    coppieee 2015/03/04
  • ES6時代のGoogle的Good Parts: V8のstrong modeを試す - ぼちぼち日記

    1. 新しいGoogleのV8実験プロジェクト 巷ではIEの asm.js サポートのアナウンスが話題を集めていますが、実は先月末のTC39の会合でGoogleが今年新しくV8に2つのJavaScript機能の試験実装を進めていることがプレゼンされていました(すっかり見落としてた)。 Experimental New Directions for JavaScript, Andreas Rossberg, V8/Google このV8実験プロジェクトは、資料によると SaneScript (strong mode) より安全なセマンティクスと性能向上が図れるよう一部機能を削減したJSサブセット。 SoundScript*1 TypeScriptをベースとしたより堅固で効率的な型システムの導入。 の2つです。ちょうど今朝知ったのでV8のソースを見てみると、今まさに strong mode の

    ES6時代のGoogle的Good Parts: V8のstrong modeを試す - ぼちぼち日記
    coppieee
    coppieee 2015/02/19
    SoundScriptってそんなのあるんか。strongモード使うと、varしか使えないブラウザと条件分岐して実装しないといけなくなるなぁ。
  • GoogleによるOpenSSLのfork、BoringSSLを試す。 - ぼちぼち日記

    1. はじめに、 先日、Chrome で 「Issue 401153002: Switch to BoringSSL. (Closed)」 という変更が行われました。これは、従来の Android向け Chrome では OpenSSL を利用していたのですが、今回これをGoogleがOpenSSLをforkしたBoringSSLに切り替えたことになります。 BoringSSLの発表からわずか1か月ぐらいですが、何回か Revert された末ようやく切り替えが成功したようです。 今回 BoringSSL を試しに少し使ってみましたので、そのレポートしてみたいと思います。 2. BoringSSLとは何か BoreingSSLがどういうもので、なぜOpenSSLをforkしたかは、GoogleセキュリティExpert agl さんのブログ「ImperialViolet - BoringSS

    GoogleによるOpenSSLのfork、BoringSSLを試す。 - ぼちぼち日記
    coppieee
    coppieee 2014/07/29
    なんかこの騒動デジャウ感じてたんだけど、あれか。MariaDBとMySQLとおんなじようにみんな乗り換える感じと似てる。
  • Node.jsにPromiseが再びやって来た! - ぼちぼち日記

    tl;dr サンプルコードを付けたら記事がかなり長くなってしまったのでご注意下さい。 Node.jsの current master で V8がアップデートされ ES6の Promise が使えるようになりました(要オプションですが)。Promise を使うと Node.jsの非同期処理がどのようになるのか、Stream と Promise を組み合わせた使い方なども含めて紹介します。 1. はじめに Nodeの次期安定版 v0.12は、すぐ出ると言われながら既に v0.10のリリースから1年が過ぎてしまいました。 現在、v0.12の主要な新機能の実装は完了していますが、まだ安定版のリリースに向けて手当できていない部分が残っている感じです。そんな残っている部分の一つだった V8 のアップデートが先週末に行われました。 deps: update v8 to 3.24.40 (3/19現在は

    Node.jsにPromiseが再びやって来た! - ぼちぼち日記
    coppieee
    coppieee 2014/03/19
  • 隠れていたNode.jsの4バイトメモリリーク、Walmart問題の解決 - ぼちぼち日記

    この記事は、 Node.js Advent Calendar 2013 - Adventar の12日目です。 1. ありがとう Ben Nodeの情報に普段アンテナを張っている人は既にご存じでしょうが、Nodeコア開発の中心的エンジニア Ben Noordhuis がNodeのコアチームから離れました。Node.jsの公式ブログに「Ben Noordhuis's Departure」としてアナウンスされています。 なぜ彼がNodeの開発を止めなければならなかったのかその経緯をここで述べることは控えますが、彼のこれまでの貢献なしでは今のNodeは存在し得なかった、と言えるほど彼は重要な存在でした。Benは、Nodeやlibuvのコードの開発だけでなく、github の issue の回答やPRのレビュー、 MLの質問の返答などNodeコミュニティにも精力的に対応し、去年来日した isaac

    隠れていたNode.jsの4バイトメモリリーク、Walmart問題の解決 - ぼちぼち日記
    coppieee
    coppieee 2013/12/12
  • Node.js-v0.10リリースアナウンスの簡単な解説と感想など - ぼちぼち日記

    1. はじめに、 昨年6月末に node-v0.8がリリースされて8か月半ほど経って node-v0.10 がリリースされました。私もいくつかパッチがこのリリースに採用されていまして、ちょっと感慨深いです。 当初1月末のリリース予定でしたが、やっぱり今日まで延びました。安定版リリース直前のゴタゴタはもうNodeの風物詩なんですね。 今回、Node-v0.10のリリースにあたり、 isaacs から次のリリース文 http://blog.nodejs.org/2013/03/11/node-v0-10-0-stable/ がポストされています。英語かつ長文なので内容をちゃんと読み切れな方もいらっしゃるかと思いますので、リリース文の項目にあわせて私の視点で簡単な解説と感想などを書いてみます。(ちゃんとリリース文を理解された方はわざわざお読みにならなくても大丈夫です。) 尚、このリリースはこれ以

    Node.js-v0.10リリースアナウンスの簡単な解説と感想など - ぼちぼち日記
    coppieee
    coppieee 2013/03/13
  • Googleが仕掛ける新プロトコルQUICとは何か - ぼちぼち日記

    まずは免責事項。 1.Disclaimer ブログの記載内容は、筆者が独自に QUIC に関する Chromium のソースを分析し、検証した結果です。 QUICに関するGoogle からの公式な技術資料は現状公開されていません。 今後、QUICの技術仕様の公表でブログの記述内容が不十分だったり、誤っている可能性があります。ご理解の上お読みください。 (注: 2013年6月27日に Google は正式に QUIC 仕様を公開しました。「Experimenting with QUIC 」 ブログの内容は大筋では間違っていませんが、当時の解析漏れやその後の開発等により、細かいところで異なっていたり、説明が大きく不足している部分もあります。お読みになる際はご注意ください。) 2. はじめに、 Googleがまたまた新しいプロトコルの実装を始めました。Web表示の高速化を目指した SPDY

    Googleが仕掛ける新プロトコルQUICとは何か - ぼちぼち日記
    coppieee
    coppieee 2013/02/28
  • GmailがハマったSPDYの落とし穴 - ぼちぼち日記

    1. SPDYブーム到来 おかげさまで、ここ数日 SPDY が私の周りで非常にブームになってきています。 前回案内したSPDY&WS勉強会は既に200名以上の申し込みがあり、今ではSPDYネタでブログを書くと非常に注目されるうれしい状況です。時代はまさに、 SPDYはハイプサイクルを順調に駆け上がっている 状況だと思います。 図1:2012年のハイプサイクル: 図はガートナー社のプレスリリース http://www.gartner.co.jp/press/html/pr20120906-01.html から引用 SPDYが、まだ黎明期に入ったばかりなのか、それとも既にピーク期に入ったのか、それは歴史が証明してくれるでしょう。 ということで勉強会までSPDY熱が冷めないよう、私もいろんなSPDYネタを出していきたいと思います。 2. GmailがハマったSPDYの落とし穴とは 先日、 Goo

    GmailがハマったSPDYの落とし穴 - ぼちぼち日記
    coppieee
    coppieee 2013/02/01
    iframeを使った最適化って、Googleがよくやっているというのは聞くけど、実際どう実装しているのか知らない。
  • FacebookがSPDYを始めました! - ぼちぼち日記

    1. SPDYが熱いです! ちょうど先週末CROSS2013の 次世代Webセッション(プロトコル編) にパネラーとして参加させていただきました。 次世代Webの鍵となるWebSocket・SPDY・HTTP/2.0について熱い話ができとても満足しています。会場は満員で皆さんがとても興味を持って聞いていただいているのも十分感じることができました。 参加していただいた方、当にありがとうございました。 2. LINEがSPDYを使っている セッションでは、つい最近 LINE が SPDY を使っているという発表( http://tech.naver.jp/blog/?p=2381 )について紹介し、その有用性についていくつかコメントをしました。 SPDYは、 Google が2011年より2年近くほとんどのGoogleサービスで実運用していますが、Google以外で世界的にメジャーな大規模の

    FacebookがSPDYを始めました! - ぼちぼち日記
  • 次世代JavaScriptでデータバインディング: Object.observe() を試す - ぼちぼち日記

    1. はじめに、 記事は、HTML5 Advent Calendar 2012の参加(6日目)エントリーです。 当初は昨年のアドベントカレンダーでテーマにしたマイナーAPIをネタにして書こうかと考えていたのですが、探してもあまりピンとくるものがなく、いつものごとく新技術ネタに飛びついてしまう習性がでてしまったので今回次世代JavaScript(ES.harmony)ネタ(Object.observe)を書かせていただきます。 現時点では直接HTML5とは関係ありませんが、標準で利用できるようになったら皆さんがお世話になる機会が必ず増えると予感しています。今の時点で知っておいてもらっても絶対損はないと思いますのでどうかご了承ください。 (_O_) 2. Object.observe() とは何か? 先日のHTML5勉強会でも取り上げられましたが、最近 JavaScript の MVC フレ

    次世代JavaScriptでデータバインディング: Object.observe() を試す - ぼちぼち日記
    coppieee
    coppieee 2012/12/06
  • GREEが悩むNode.jsの問題を考えるヒント - ぼちぼち日記

    先日 GREEを支える大規模インフラテクノロジー」-GREE Platform Summer Conference 2012 という記事が公開され、GREEのCTOの藤さんが、 javascriptをサーバーサイドでも使うケースが多くなってきていて、必然的にnode.jsを使うことになるが、大きく3つの問題がある。 ひたすらすごい勢いでバージョンアップしているので安定しない。コストを払ってついていく覚悟を持って取り組んでいる。 メモリリークがあるので、サーバを起動しっぱなしにするとメモリがいつぶされる。 コードをデプロイしても再起動しないと読み込まれない。 (中略) これで絶対大丈夫という解決策がなくて、node.jsで一番悩んでいる。これでバッチリ解決するというものがあれば、是非教えて欲しい。 といった話が掲載されていました。 GREEさんに限らず一般的に Node に対して同じ問題

    GREEが悩むNode.jsの問題を考えるヒント - ぼちぼち日記
    coppieee
    coppieee 2012/08/09
    へー
  • node-0.7.x の新機能: GYPによる Node.js のビルド - ぼちぼち日記

    ちょうど先ほど Node.js の新しい unstable ブランチである 0.7.0 がリリースされました。(パチパチ) 年末からの hash collision 問題や、 core dump など安定性を脅かす問題も 0.6.x である程度片付いたので、これからは新機能開発・改良に重点を移していくのではないかと思われます。 この新しい node-0.7.0 変更点の一つとして、Node.js のビルドが WAF から GYP に変わったことが挙げられます。 WAFを止める Node.js から WAF をなくすことは以前からの Ryan Dahl の念願で、インタビューでは http://bostinno.com/2011/01/31/node-js-interview-4-questions-with-creator-ryan-dahl/ BostInno: Is there any

  • Node.js でマルチスレッド: isolate を使ってみた。 - ぼちぼち日記

    (注意: Isolates 機能の開発は中止になりました。 参考 https://groups.google.com/d/topic/nodejs/zLzuo292hX0/discussion ) Nodeの次期バージョンの新機能として予定しているマルチスレッド対応については、先日の「東京Node学園3時限目」で @koichik さんが 東京Node学園#3 Domains & Isolates の講演をされていましたが、今朝ちょうどその実装が master に上がりましたので、ファーストインプレッションとしてisolateを使った Node のマルチスレッドをチト試してみました。 (以下 Disclaimer: ここで紹介したAPIの実装や仕様は今後変わる可能性があります。特に Node はリリース直前でも大きく変わることもありますので、) 現時点で Node の isolate は、

    Node.js でマルチスレッド: isolate を使ってみた。 - ぼちぼち日記
  • node-v0.6.18からエラー表示がわかりやすくなります。 - ぼちぼち日記

    今まである程度 Node.js を使ったことがある方は、以下のエラーメッセージを1度や2度目にしたことがあるのではないでしょうか。 node.js:201 throw e; // process.nextTick error, or 'error' event on first tick これは以前の記事 Node.js のエラーメッセージの謎 でも解説しましたが、私がよく見るのは存在しないスクリプトファイルを指定して Node を起動した時に現れるエラーとしてです。その他、 // error.js if(true) { throw new Error('hoge'); } などスクリプトやモジュール内でエラーを throw した時にも、 $ node ~/error.js node.js:249 throw e; // process.nextTick error, or 'error'

    node-v0.6.18からエラー表示がわかりやすくなります。 - ぼちぼち日記
    coppieee
    coppieee 2012/05/10
    これはデバックが捗るな
  • 1