ニュース
Trend Micro CTF 2016 (1コメント)
今年も
セキュリティ技術の競技大会「Trend Micro CTF 2016」を開催
~全世界の技術者が、IoTや制御システム関連のセキュリティ技術を競う~
http://www.trendmicro.co.jp/jp/about-us/press-releases/articles/20160701042341.html
Trend Micro CTF 2016
http://www.trendmicro.co.jp/jp/sp/ctf2016_jp/index.html
しかしkatagaitai勉強会#6 - 関東|easyと被ってしまってるぅぅぅぅ。
うわぁああぁぁぁあああああああああああああああああ
シェル芸人のためのJupyter環境
Jupyter¶
シェル芸人のためのJupyter環境を構築しよう!!!11
スクリーンショット¶
Jupyterとは¶
スクリーンショットをご覧あれ。ブラウザでPython(Bashも)を実行出来る環境です。
- Markdown形式のメモと一緒にWeb上で実行&保存できちゃうステキ機能
- 書いた物は保存できて、いつでも再実行可。
- スライドやhtmlにも変換できます。
- GitHub Gistにエクスポートすれば、公開もできちゃう。
まさにPythonista(シェル芸人)のための環境ですねw
噂の買い切りVPSCloudAtCostに導入してみてもいいかもしれない。
Jupyter環境の構築¶
ググると幾つか出てきますが、minicondaを使用したインストール方法を以下にまとめます。
minicondaを利用する利点としては、こんな感じです。
- 一般ユーザの環境に導入できる(システムに深く食い込まないので、アンインストールが簡単)
- 既存のPython環境と別々に作ることができ、かつ、お互いに干渉しない環境が簡単に作れる
- 容量がanacondaより小さく、必要最小限。
minicondaは、主にPythonの数値処理系のライブラリを加えたanacondaというものの最小のセットになります。
想定する環境¶
以下を想定しています
- CentOS または RedHatLinux
実際にセットアップした環境は以下です。
CentOS Linux release 7.2.1511 (Core)
minicondaのインストール¶
以下からセットアップ用のファイルをダウンロードします。
python3用のセットアップファイルをダウンロードしてください。
miniconda
http://conda.pydata.org/miniconda.html
$ wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
余談ですけど、このシェルスクリプト、バイナリファイルと悪魔合体する黒魔術を使っているので、catしてみたりすると大変な事になりますw
実行。
途中、対話形式で入力を求められますが、以下のよう入力してください。
$ bash Miniconda3-latest-Linux-x86_64.sh [Enter] yes [Enter] # or 任意のインストール先を入力 no # システムに標準で入っているPython環境と使い分けをしたいため。.bashrcに追加されてもいい人は yes にしておく。
インストール時にnoを選択して .bashrc に追加しなかったので、以下の通り、任意に環境変数をセットするシェルスクリプトを作成しておきます。
これによって、こんな環境の切り替えができます。
- 通常は、システムに入っているPythonが使われる。
- このシェルスクリプトを実行して環境変数を取り込んだときだけ、miniconda環境が使われる。
環境変数(PATH)設定用のシェルスクリプトを作る。
$ vi setenv.sh #!/bin/bash PATH=[minicondaのインストールディレクトリ]/miniconda3/bin:$PATH export PATH
ドット実行する。
環境変数PATHの先頭に[minicondaのインストールディレクトリ]/bin が含まれていることを確認する。
$ . setenv.sh $ env |grep PATH PATH=[minicondaのインストールディレクトリ]/miniconda3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
Jupyterのインストール(minicondaインストール先にインストールされる)¶
$ conda install jupyter
Jupyter設定ファイルの生成。
$ jupyter notebook --generate-config
パスワードの作成(結果をメモしておく)
以下はパスワードを hoge にしているけど、適宜変更してね。
$ python Python 3.5.1 |Continuum Analytics, Inc.| (default, Dec 7 2015, 11:16:01) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from notebook.auth import passwd >>> passwd() Enter password: hoge Verify password: hoge 'sha1:86a104de86a2:d3f296d042d0be7c38df963b01670e51dd2ab081' >>> quit()
Jupyter設定ファイルの編集
- ローカルホストからしか接続を認めない→どこからでもOKに修正
- Jupyterで書いたファイルの保存先を指定
- 認証パスワードを設定(上記Pythonのpasswd()の事項結果をコピペ)
- 接続先ポート番号を指定(デフォルトは8888)
$ cd ~/.jupyter $ vi jupyter_notebook_config.py - # c.NotebookApp.ip = 'localhost' + c.NotebookApp.ip = '*' - # c.NotebookApp.notebook_dir = u'' + c.NotebookApp.notebook_dir = u'ファイルを保存する任意のディレクトリ' - # c.NotebookApp.password = u'' + c.NotebookApp.password = u'sha1:86a104de86a2:d3f296d042d0be7c38df963b01670e51dd2ab081' - # c.NotebookApp.port = 8888 + c.NotebookApp.port = 8883
httpsて通信するための設定
- Let's Encrypt サーバー証明書を取得しましょう。
- 詳細は、ServersManの Let's Encrypt サーバー証明書の取得と自動更新設定 を参照のこと。
- 証明書が準備できたら、Jupyter設定ファイルの編集します。
- サーバ証明書の所在を設定
- 秘密鍵の所在を設定
$ cd ~/.jupyter $ vi jupyter_notebook_config.py - # c.NotebookApp.certfile = u'' + c.NotebookApp.certfile = u'/etc/letsencrypt/live/<ドメイン名>/cert.pem' - # c.NotebookApp.keyfile = u'' + c.NotebookApp.keyfile = u'/etc/letsencrypt/live/<ドメイン名>/privkey.pem'
Jupyterに Bash のJupyterカーネルを導入する¶
Jupyterカーネルと呼ばれる以下を追加インストールすることで、
Bash版Jupyterになるのでありえん良さみが深い(Python3環境が前提、Python2だどダメ)。
A bash kernel for IPython
https://github.com/takluyver/bash_kernel
$ . setenv.sh $ pip install bash_kernel $ python -m bash_kernel.install
実は、他のいろんな言語も用意されているので、大半の言語はJupyter上で動かす事ができる。
参考:IPython kernels for other languages
Jupyterの起動¶
起動
$ jupyter-notebook
後はブラウザで、https://example.com:8883 にアクセスするべし。
minicondaでPython2環境も作って共存させる場合¶
同じ方法でpython2環境も起動できる。
ただし、python3とpython2のJupyter環境を同時に起動するには、
Jupyter設定ファイルのポート番号を別々にする必要がある
$ vi jupyter_notebook_config_for_python2.py - # c.NotebookApp.port = 8888 + c.NotebookApp.port = 8882 # python3の設定値とは別にする
起動は、作った設定ファイルを直接指定して起動できる。
$ jupyter-notebook --config=設定ファイルのパス
使い方¶
使い方はググると沢山出てくるので、そちらに譲ります。
(当ページ下部のMemoの所にもリンクを入れておきました)
シェル芸人のためのJupyterの使い方を説明します。
シェル芸人のためのJupyter使い方¶
まず、デフォルトのPythonカーネルでもシェル芸はできます。
行頭に%%bashと入力すればシェルを実行できます。
%%bash date;echo hoge;date
ただ、カーネルを Bash に切り替えることで、この%%bashが不要になります。
あとは……わかるね?
date;echo hoge;date
Memo¶
Jupyter関連で役立ちそうなリンクのメモ。
Jupyter (iPython) Notebookを使って技術ノート環境を構築する方法 - MyEnigma
http://myenigma.hatenablog.com/entry/2016/02/20/183423
Jupyter (iPython) Notebookを使って技術ノート環境を構築する方法 - MyEnigma
Jupyter (iPython) Notebookを使ってプレゼンテーション資料を作る方法 - MyEnigma
http://myenigma.hatenablog.com/entry/2016/05/22/160209
Jupyter (iPython) Notebookを使ってプレゼンテーション資料を作る方法 - MyEnigma
Qiita
Jupyter事始め - Qiita
http://qiita.com/taka4sato/items/2c3397ff34c440044978
extensionを追加してもっと快適なJupyter環境を構築する - Qiita
http://qiita.com/sasaki77/items/30a19d2be7d94116b237
Condaで作ってる仮想環境の切り替えをJupyter上で簡単に行う方法 - Qiita
http://qiita.com/yoppe/items/38005f415a5b8b884c7d
Jupyter Notebookでブログ書きたい - Qiita
http://qiita.com/patraqushe/items/49a990cbdfb51afed620
Jupyter notebook で HTML も自動作成 - Qiita
http://qiita.com/junkoda/items/011d44dcc1c8bd0a936a
Jupyterでコンテナーを入れ子の枠で表現(図式化)、とそれを作る過程で調べたこと - Qiita
http://qiita.com/argius/items/17710321c8225bfb7417
Jupyterで好きなHTMLを埋め込む - Qiita
http://qiita.com/xeno1991/items/65b7da476d6f89d06388
Qiitaの記事とJupyter notebokとの相互変換 - Qiita
http://qiita.com/Tsutomu-KKE@github/items/168400d2e3ea44a70022
iPython でスライド作り - Qiita
http://qiita.com/sosuke/items/e42b5b81878e361249b6
junpyter notebookをCUIで実行&保存 - Qiita
http://qiita.com/nzw0301/items/83814189bd93224b7c51
nbviewerでスライド表示もできるようになった!【Jupyter】 - Qiita
http://qiita.com/ssh0/items/de6cc6aacd004a2e57dd
データサイエンティストに向けたコーディング環境Jupyter Notebookの勧め - Qiita
http://qiita.com/y__sama/items/17aedf0c05187edd61c3
nbviewer - A simple way to share Jupyter Notebooks
http://nbviewer.jupyter.org/
once upon a time, - JupyterからSpark clusterを操作できるlivy + sparkmagicを試してみた
http://chezou.hatenablog.com/entry/2016/07/12/115000
Jupyter Notebook の Tips をまとめてみた
https://adtech.cyberagent.io/techblog/archives/2317
技術書典に行ってキマシタワー
技術書典に行ってきました。
技術書の同人誌販売な感じのイベント。
小生、コミケとかそういうの行ったことがないのだけれど、初めてそれっぽいイベントに行ってきました。早めに行ったから早めに入れたんだけど、めっちゃ並んでた。
初めて薄い本を買いました¶
めっちゃ人いる!これがコミケか…
以下を買いました。読むのが楽しみ。
O'Creilly - ソフトウェア技術書同人サークル supported by NCC
- KIJAK'SAY(きじゃくせい)
セキュリティ関係の本(うっすら変態仮・・・げふんげふん)
秋葉原は、ありえん肉みが深い。¶
久しぶりに秋葉原に来たら、肉度がかなり上がっている。
とんかつ - 商店 - ケバブ - 商店 - ラーメン - 商店
という感じである。異常事態である。何が起きたんだ。その中で会場にほど近い肉汁麺ススムに行ってきました。
味が濃いのだけれど癖になる。これでレベル2(レベル4まである)ありえん肉みが深い。完飲。
「シチズンフォー スノーデンの暴露」を見てきました (1コメント)
シチズンフォー スノーデンの暴露というエドワード・スノーデンを題材にしたドキュメンタリーを見てきました!
ここの記事を事前に読んでおくと更に楽しめます。
THE ZERO/ONE - 正義の告発者か買収されたスパイか スノーデンの素顔に迫るドキュメンタリー映画『シチズンフォー スノーデンの暴露』¶
正義の告発者か買収されたスパイか スノーデンの素顔に迫るドキュメンタリー映画『シチズンフォー スノーデンの暴露』
https://the01.jp/p0002479/
THE ZERO/ONE - ハッカーの系譜 エドワード・スノーデン¶
米国で繰り返される「諜報」と「内部告発」の歴史(1/6)
https://the01.jp/p0001924/
米諜報機関が生んだハッカーの葛藤(2/6)
https://the01.jp/p0001950/
闇に葬られないための入念な「告発準備」(3/6)
https://the01.jp/p0001968/
世界に衝撃を与えた米国の盗聴プログラム「プリズム」(4/6)
https://the01.jp/p0001998/
「世紀の告発者」への第一歩を踏み出す(5/6)
https://the01.jp/p0002027/
香港からの脱出、そしてロシアへ(6/6)
https://the01.jp/p0002038/
THE ZERO/ONE - ハッカーの系譜 ジュリアン・アサンジ¶
ウィキリークス「反骨」の原風景(1/6)
https://the01.jp/p0002395/
少年ハッカー「メンダックス」の冒険(2/6)
https://the01.jp/p0002414/
サイファーパンクスとの出会い(3/6)
https://the01.jp/p0002449/
少年ハッカーから国家と戦うハクティビストに(4/6)
https://the01.jp/p0002464/
※連載中(2016.6.18現在)
いちエンジニアとしての感想¶
当初より、エドワード・スノーデンさんのリークした情報の真偽が疑われたりしています。
また、現在に至るまで名だたるIT関連企業は、関与した事実を認めていません。
映画はドキュメンタリーでしたので、エドワード・スノーデンさん自身が、ものすごく、ものすご~く、情報の取り扱いに気を使っていたのを生で見ることが出来ました。(VOIP電話のコード抜いたり、スマホを冷蔵庫に入れたり、全てPGPで暗号化したり)
さてさて、信じられないような情報が数々がリークされた訳ですが、いちエンジニアとして、その真偽について感想を述べたいと思います。
まず、
- 技術的に矛盾した話は無かった。
- ちょっと、大げさに情報漏えいを恐れていたようにも感じたが、(VOIP電話のコード抜いたり、スマホを冷蔵庫に入れたり)、技術的には盗聴が可能という側面と、自分の命がかかってるので解る。
- 逆にそこまで気にしないといけないNSA怖い。
国家規模の盗聴に関して言うと、
- 実現するには、国家規模で、ものすごいリソースの用意が必要。(特にディスクとメモリが。どの位必要なのか想像もできない。)
- さらに、IT関連の複数の大企業の協力が必要(顧客のプライバシーを守ると声高に宣言している企業の協力が)。
- さらに、国家間で秘密裏に協定を結んだり、もしくは勝手に他国へもネットワークを広げることが必要。
という、普通なら実現不可能に思えました。
特に、「IT関連の複数の大企業の協力が必要」というあたりは、CEOだけが墓場まで持って行けばよいという訳でもなくて、そんな工事・作業するのにも複数人の関係者が必要になります。彼らの口を全て塞ぐのは難しいんじゃないんですかね。まさか
でも、でも、もしかしたら国が本気出せばできるのかもしれません。。
2016.6.21追記
と、思ったんだけど次のコンボで特に疑われずにNSAは動けるね。コメント欄に書いたTEDの動画見て思った。
米国には裁判所の命令があれば、合法的に盗聴できる。→それを理由に盗聴する仕組みを各IT企業に作る。→(本当は裁判所の命令がないと盗聴できないけど)後は、勝手に盗聴する。
盗聴されると、どうなるのかしら¶
そんな訳で、国家規模で盗聴されていると仮定すると何がどうなるか想像してみます。
まず日常的に使っている検索エンジンやメール、ネットショッピングの内容が全て筒抜けになります。
普通に生活している分には、データ収集されても、あまり影響がないような気もしますが、技術的には改竄も可能なので、
- 「検索語A」で検索したのに「検索語B」の結果が返ってきたり
- メールに書いてある待合せ場所と時間を書き換えられたり
- クレジットカードの番号を盗まれて勝手に買い物される
そんなリスクまで考えられます。国がやろうと思ったら、ですけど。
「自分ネットする時、絶対HTTPS(SSL/TLS)しか使わないんで大丈夫っすよ」
と思われる方もいるかもしれませんが、HTTPSは、みなさんのPCとサービスを提供する企業の入り口までを暗号化しているのであって、それ以降は筒抜けになります。ここから抜かれるとどうしようもありません。
┏━━━━━━━━━━ IT企業のデータセンタ ━━━━━━━━━┓ ┃ ┃ 自分のPC(ブラウザ) <---------->[HTTPSをHTTPに複合する機能]<---------->[ロードバランサ等]<---┃ HTTPS ┃ HTTP ┃ 暗号化して┗━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━┛ 安全な区間 │ この区間で盗聴されると平文 (普通の常識だとデータセンターの中なので、盗聴は無理)
個人でできる情報の秘匿 - PGPを使う¶
こんな情報筒抜けな世の中だとしても、誰にも内緒で情報を伝える手段は存在します。
エドワード・スノーデンさんも頻繁に使っておりましたが、公開鍵暗号方式で暗号化して送ればいいんですね。
映画ではPGPを使っておりました。
日常的に使うには、ちょっと面倒なんですが、届いた相手のPCでしか複合できない仕組みなので確実です。
余談ですが、PGPを使う際には鍵長は最大(恐らく2048bit)を設定しましょう。短い鍵長だと、計算能力が高いコンピュータで割り当てられてしまうかもしれません。ちなみに鍵破りコンテストが随時開催中で、640bitの鍵長までは破られています。
スノーデンさんの件に関しては、真偽についても賛否についても、ご意見ある方いらっしゃると思いますが、いちエンジニアとして技術的に大変興味深く拝見させて頂いた映画でした。
なんか書いてて怖くなってきた。
あれ、誰か来たみたい。
ニコナレで公開されているスライドをpdfでダウンロードするコマンド
niconare-dl¶
niconareは、2019年8月15日(木)をもってサービス終了とのことです。¶
niconareで公開されているスライドをpdfでダウンロードするコマンド
2019.2.18追記 ニコナレの仕様が変わちゃったので現状は動きません
Installation¶
ファイルダウンロードして実行権限をつけるだけ
$ wget https://raintrees.net/attachments/download/422/niconare-dl $ chmod u+x ./niconare-dl
動作環境¶
x86_64のLinuxで動作すると思われます。
以下で、動作確認しました。
- CentOS Linux release 7.2.1511 x86_64
- Kali GNU/Linux 2.0 (sana) x86_64
Debian系だと、若干表示がおかしくなることもあるみたいだけど(゚ε゚)キニシナイ!!
Usage¶
$ ./niconare-dl [URL]
例
$ niconare-dl http://niconare.nicovideo.jp/watch/kn1275 initializing.. downloading.. 59 slides converting.. 恐怖!シェルショッカーのPOSIX原理主義シェルスクリプト.pdf complete $ls 恐怖!シェルショッカーのPOSIX原理主義シェルスクリプト.pdf
URLは'(シングルコーテーション)で囲んでおいた方が無難。
URLの中に & が入っているとシェルがバックグラウンド実行の記号と解釈しちゃうので。。
Specification¶
一時作業領域として、コマンド実行中にカレントディレクトリに以下のディレクトリが作成されます。
コマンド実行後には、削除されます。
niconare-dl_temp_[プロセスID]
もし、なんらかの理由でこのディレクトリが残っていたら、不要ですので削除してかまいません。
注意事項¶
スライド形式はダウンロードできるんですが、動画形式(?)には対応していません。
許してつかぁさい。堪忍してつかぁさい。。
Background¶
何故作ったか¶
最近なんかSlide Share以外に、Speacker Deckとニコナレを使う人が出てきたみたい。(Speaker Deckは標準でPDFダウンロード機能がある)
Slide ShareとSpeacker Deckは、ダウンロードして、電車の中で読むというのをしておりまして。
ニコナレも・・・!と、思って気がついたら作ってた。
動的リンクの実行ファイルを静的リンクに変換する
statifierというのを使ってみました。
Statifier¶
経緯¶
とあるコマンドをインストールしようと思った・・・・が・・・・・ 駄目っ・・・・・!
パッケージの依存関係がすごい。つまり、1つコマンドを導入するのに、入れたくないパッケージを山のように入れなければならない。。
そのコマンド1つだけ実行したいだけなのに・・・
そこで思いつく悪魔の発想・・・っ!
1バイナリで動くようにすれば、他の環境に楽に持っていける。理論上は出来るはず・・・と思い、調べたら出てきた。
statifierというのを使えば可能であることがわかった。
メンテナンスはあまり活発ではないようだが、x86_64にも対応してくれているっぽい。
その他の案として、参照している動的リンクライブラリを全部洗い出してコピーし、LD_PRELOAD環境変数に突っ込んだ上で実行すればいけるかなぁ。とか、思ったんだけど、試してはいない。
概要¶
結局、なにがしたいかと言うと、
$ cat test.c #include <stdio.h> int main(){ printf("Helloworld"); return 0; } $ gcc test.c $ ldd a.out linux-vdso.so.1 => (0x00007fffc62d0000) libc.so.6 => /lib64/libc.so.6 (0x00007f886214a000) /lib64/ld-linux-x86-64.so.2 (0x00007f8862517000)
この単純なプログラムですら、3つの動的リンクライブラリを必要としている事がわかる。
このライブラリがシステムに存在しないと、プログラムは動かない。
だったら・・・プログラム(a.out)の中に、この3つの動的リンクライブラリを取り込んだらいいじゃない。
という発想。
Install¶
まず、自分はこのソフトのコンパイルのため、コンパイル用の仮想環境を用意した。
statifierを導入するために、依存関係となっている複数パッケージを導入する・・・のは本末転倒である。
コンパイル済みのものだけを目的の環境にコピーしてやればよいではないか。
という訳で、ここから最新版のtar.gzをダウンロードする。
自分が実施した時は、statifier-1.7.4.tar.gz でした。
適当なところに展開しておく。
$ tar xvfz statifier-1.7.4.tar.gz
コンパイル時に必要となるパッケージをインストール。
# yum install glibc.i686 glibc-devel.i686 libgcc.x86_64 libgcc.i686
makeする。
$ cd xvfz statifier-1.7.4 $ bash ./configure $ make
というのが、めんどうな方のために自分がコンパイルしたものをここに置いておく。
statifier-1.7.4_for_x86_64.tar.gz
実行環境について¶
さっそく動作確認してみる。
dateコマンドを静的リンクにしてみよう。
$ ldd /bin/date linux-vdso.so.1 => (0x00007fff3432f000) libc.so.6 => /lib64/libc.so.6 (0x00007f61fcf4f000) /lib64/ld-linux-x86-64.so.2 (0x00007f61fd31c000) $ cd statifier-1.7.4 $ setarch `uname -m` -R src/statifier.sh /bin/date /tmp/date2
これでstaticなdateコマンドが出来たはず。
$ setarch `uname -m` -R /tmp/date2 2016年 6月 5日 日曜日 17:30:56 JST $ ldd /tmp/date2 動的実行ファイルではありません
うん、たぶんうまく動いてるんだと思われる。
超注意:ASLRの怪¶
なんか、おまじないのようなコマンドがくっついているのが、おわかり頂けただろうか・・・
$ setarch `uname -m` -R
実は、これ、LinuxのASLRというセキュリティ機能を一時的に無効にするコマンドになります。
ASLRについては、ググるか、CTF_Pwnをみてね。
なんか、いろいろやってみたけど、動かなくてね~。
どうやら、「静的リンクの実行体に変換する時」と、「実際に動作させる時」にメモリアドレスが同じになってないといけないっぽい。
なので、必ず「setarch uname -m
-R」を頭につけて変換&実行しておくれ。
想定される使い方¶
よっしゃー。これで、1バイナリになって、どの環境でも動くぞイヤッッホォォォオオォオウ!
と、ならないのが世の定め。。
ちょっとLinuxディストリビューションの違うLinuxに持ち込んでみたが動かない。。
まぁ全部試した訳ではないのだけれど、
同じディストリビューションだと動いているっぽい。
たぶん、kernelのバージョンが違ってたりすると、取り込んだlibcでそれを吸収できないとか、そんな感じになっている気がする。
調べてないけど。
そう考えると1バイナリになるGo言語って結構考えられてますね。ファイルサイズが大きくなるだろうから、そこらへんトレードオフなんだろうけど。
なので、自分は同じLinuxディストリビューションで2環境用意して運用している。
- VMでコンパイル用環境を作る(足りない物は、なんでもかんでもyum install。使い捨て)
- 本番環境。できるだけパッケージを入れない。
補足¶
statifier には、こんな記述が
Recent Linux kernels introduced VDSO (Virtual Dynamic Shared Object) and stack randomization. Those things, while valuable features, don't play well with Statifier.
意訳:ASLRとVDSOを使うバイナリは上手く動かないぜ
この statifier を作った方達は、Ermine というソフトを販売しております。
Ermine works in a fashion similar to Statifier, creating self-contained executables from dynamically-linked >applications. But Ermine-packed applications are not snapshots: instead they can be thought of as small virtual machines.
And because of this an Ermine-packed application does not suffer from the problems created by VDSO/stack randomization意訳:Ermineなら問題ないんだぜ
Ermine
http://www.magicermine.com/
15日トライアルもできるらしい。
参考¶
bkブログ - statifier で動的リンクの実行ファイルを擬似的に静的リンクにする
http://0xcc.net/blog/archives/000089.html
ELF Statifierを使って実行形式ファイルをシステム間で移動する
https://osdn.jp/magazine/08/12/02/012255
WAFを知らない人に説明する試み
仕事で使うかもしれんのでまとめてみた。
WAFとIPSとFireWallとウィルス対策ソフトと何が違うの?
とか、確かに説明しづらい気がする。WAF知らない人に対しても、できるだけ簡潔に説明したい。
詳細は、Security#WAF参照。
WAF~><
Redmineにブログパーツを貼るには
Redmineプラグインを作った。
Redmineにブログパーツを貼るには、このプラグインの機能を使えば可能。
可能というか、HTMLとJavaScriptで出来ることなら、なんでもできてしまう。
Redmine RawHtml plugin¶
RawHtml plugin開発¶
概要¶
通常のRedmine(RubyOnRails)は、デフォルトで許可していないタグやスクリプトを表示・実行することができません。
これはセキュリティ上の仕様であり、正しい、あるべき姿です。
ただ、ただどうしても、貼り付けたいブログパーツとか、実行させたいJavaScriptとかがある場合があります。
それを可能にするWikiマクロになります。
使い方¶
{{rawhtml(ここにhtmlタグ等を書く)}}
例
{{rawhtml(<div style="color:#ff0000">あああ</div>)}}
実行例¶
SlideShareの貼り付け¶
PHOTOPRESSOの貼り付け¶
ブログカードの貼り付け(はてなブログ記事紹介ジェネレータを利用)¶
ブログカードの貼り付け(Embed Code Generatorを利用)¶
オシャレ定量化コマンドを作ってオシャレ評価してみた - A painter and a black cat
ダウンロード¶
このページに添付してあるやつをダウンロードします。
セットアップ¶
DBは使ってないので、rakeとかは必要ありません。
ダウンロードファイル解凍後、pluginsフォルダへ。
# mv -i ./rawhtml /opt/alminium/plugins
お使いの環境に合わせて、ファイルの所有者を変更してください。
# cd /opt/alminium/plugins # chown -R apache:apache rawhtml
注意事項¶
利用者のセキュリティに対する考慮について¶
このプラグインは 全てのタグ、全てのスクリプトを許容 します。
そのため、Redmineの登録ユーザは、 XSS や CSRF 等の攻撃を容易に仕込む事が出来ます。
まぁ…かなり気の知れた仲間内で使うとか、私みたいに自分用Redmineとして使ってる人向けだと思ってください。
特定のユーザだけ許可するとか、そんな機能を加えればいいんだろうけど。
混在コンテンツのブロックについて¶
HTTPとHTTPSが入り交ざってコンテンツを配信していることを、混在コンテンツと言います。
最近のほとんどのWebブラウザは混在アクティブコンテンツに対しては自動でブロックします。
これはWebブラウザのセキュリティを考慮した仕様です。
以下の条件で、表示されたり、表示されなかったりします。
ブログパーツがhttp | ブログパーツがhttps | |
---|---|---|
表示元のサイトがhttp | ○表示できる | ○表示できる |
表示元のサイトがhttps | ×表示できない | ○表示できる |
これはこのプラグインに限った話ではなく、ブログパーツ一般のお話になります。
うまく表示されないブログパーツについては、混在コンテンツになっていないか確認するのがよいでしょう。
ちなみにニコニコ動画のブログパーツがhttpのみで、このサイトをhttpsでアクセスしていると、うまく表示されないんや。。
オシャレ定量化コマンドを作ってオシャレ評価してみた (2コメント)
以下の記事に感動した。
Instagramでオシャレを定量化できると信じて疑わない彼氏の話
http://kuma-no-kara-age.hatenablog.com/entry/2016/02/01/003051
なるほど、、、一理ある。この方法でオシャレが定量化できそうだ。
さっそくコマンドを作ってみる。
getOshareFromInstagram.sh
#!/bin/bash # オシャレ定量化コマンド while [ "$1" != "" ] do # instagramからオシャレ指数を取得 #POINT=`curl -s curl -s https://www.instagram.com/explore/tags/${1}/|tr ',' '\n'|grep count|grep entry_data|awk -F':' '{print $NF}'` # 2017.11.05 動かないので直した POINT=`curl -s https://www.instagram.com/explore/tags/${1}/|tr ',' '\n'|grep count\" |grep -v likes|grep -v comments|cut -d' ' -f3` # 表示位置調整のための小細工 if [ `echo "${1}"|wc -m` -le 4 ] then WORD="${1} " else WORD="${1}" fi printf "%.15s\t%'10d oshare\n" "${WORD}" "${POINT}" shift done exit 0
実測¶
食べ物 で測定¶
思いつくままに、適当に食べ物を並べてみる。
$ ./getOshareFromInstagram.sh からあげ ハンバーグ パスタ パフェ ラーメン 蟹 パン ケーキ 沢庵 からあげ 76,194 oshare ハンバーグ 423,013 oshare 蟹 97,937 oshare パン 1,001,182 oshare ケーキ 1,168,795 oshare 沢庵 2,585 oshare
パンやケーキのオシャレ指数が、かなり高い事がわかる。
ケーキは、沢庵と比べ452倍オシャレであることがわかる。
飲み物 で測定¶
英名での評価も考えられるが、今回は日本固有のオシャレ感覚を考慮し、和名だけで調査した。
$ ./getOshareFromInstagram.sh 水 牛乳 青汁 ビール 焼酎 日本酒 カクテル ワイン 水 155,891 oshare 牛乳 71,144 oshare 青汁 25,258 oshare ビール 989,409 oshare 焼酎 93,936 oshare 日本酒 564,994 oshare カクテル 91,766 oshare ワイン 397,795 oshare
とりあえずビールを飲んでおけば、オシャレであることに疑いの余地はない。
日本酒も意外にオシャレである。
ファッションブランド で測定¶
ちょっとググッて見つけたブランドを並べてみる。
日本語と英字の両方が存在する場合は、その両方を記載している。
$ ./getOshareFromInstagram.sh ユニクロ UNIQLO GAP しまむら ZARA GU 無印良品 MUJI ユニクロ 495,885 oshare UNIQLO 1,207,245 oshare GAP 1,528,165 oshare しまむら 529,127 oshare ZARA 15,303,593 oshare GU 656,049 oshare 無印良品 443,495 oshare MUJI 468,137 oshare
ZARAの圧勝である。
ONE PIECE で測定¶
$ ./getOshareFromInstagram.sh ルフィ ゾロ ナミ ウソップ サンジ チョッパー ロビン フランキー ブルック ルフィ 26,365 oshare ゾロ 13,699 oshare ナミ 7,082 oshare ウソップ 4,670 oshare サンジ 11,418 oshare チョッパー 33,180 oshare ロビン 10,586 oshare フランキー 5,865 oshare ブルック 3,355 oshare
ゾロとサンジがいい勝負であるが、なんとチョッパーが一番オシャレ指数が高い。
これは、同時にカワイイ指数も含まれていると推察される。
山手線駅名 で測定¶
山手線駅名の駅名で検索してみる。
$ ./getOshareFromInstagram.sh 東京 有楽町 新橋 浜松町 田町 品川 大崎 五反田 目黒 恵比寿 渋谷 原宿 代々木 新宿 新大久保 高田馬場 目白 池袋 大塚 巣鴨 駒込 田端 西日暮里 日暮里 鶯谷 上野 御徒町 秋葉原 神田 東京 2,225,774 oshare 有楽町 72,929 oshare 新橋 82,467 oshare 浜松町 17,881 oshare 田町 13,631 oshare 品川 90,886 oshare 大崎 10,113 oshare 五反田 40,071 oshare 目黒 79,041 oshare 恵比寿 382,042 oshare 渋谷 1,177,357 oshare 原宿 1,317,258 oshare 代々木 82,567 oshare 新宿 941,782 oshare 新大久保 249,498 oshare 高田馬場 69,581 oshare 目白 19,243 oshare 池袋 492,544 oshare 大塚 12,218 oshare 巣鴨 20,336 oshare 駒込 11,560 oshare 田端 3,841 oshare 西日暮里 7,112 oshare 日暮里 21,986 oshare 鶯谷 4,889 oshare 上野 207,968 oshare 御徒町 19,407 oshare 秋葉原 107,962 oshare 神田 43,982 oshare
東京は、地名以外でもヒットしていると思われるので比較対象から除外する。
すると最もオシャレなのは原宿、次いで、渋谷となり、オシャレ指数の精度の高さを確認できる。
ワーストは田端であるが、原宿の1/342のオシャレ指数となり、東京都心でも格差が大きい。
考察¶
以上の結果から、かなり高い精度でオシャレ指数を測定できる事が確認できた。
ただし、ONE PIECEでの測定結果にみられるように、純粋なオシャレ指数ではなく「オシャレ指数+カワイイ指数」となっている疑いが残る。
カワイイ指数とオシャレ指数の分離については、今後の課題としたい。
Halvar Flake&PPPとローレイヤーな話をしよう に参加しました
Halvar Flake&PPPとローレイヤーな話をしように参加させて頂きました。
当日は、以下の錚々たる顔ぶれで御座いました。
- 中津留勇さん
- 黒米祐馬さん
- ucqさん
- inaz2さん
- Halver Flakeさん
お話面白かったです。すごい高度でございました。恐るべしローレイヤーの世界。
(ただ英語力がなくてHalver氏のプレゼンで死んだ。英語力が必要だ。。)
ぼっちで突入した私を気遣って対応して頂いたkanaさん、隣の席で私のお相手して頂いたお二方、ありがとうございました。
資料¶
inaz2さんは、当日のプレゼンスライドを公開されておりました。
ももいろテクノロジー - 「Self Introduction & The Story that I Tried to Make Sayonara ROP Chain in Linux」というタイトルで発表した
http://inaz2.hatenablog.com/entry/2016/04/28/012136
会場¶
« 前 1 ... 8 9 10 11 12 ... 16 次 » (91-100/153)
他の形式にエクスポート: Atom