かえるの井戸端雑記

開発日誌的な記事だったり備忘録だったり。まとめ記事と言うよりは、七転八倒の様子を小説みたいに読んで眺めてもらえればと。

DockerでC++環境を作った時のメモ

元々はC++でちょっとしたtoolを作っていたのだけれど、Mac上でのclangとboostのversion問題にぶつかってうまく解決出来なかったので、思い立ってDockerで開発環境組もうか、となった。

で、人に教えてもらいながら作ったものが以下。

github.com

ということで以下そのときの覚書。

続きを読む

Rの勉強

Rの勉強をしたときのメモ

環境構築

macでRのlibraryをいれようとしたらfortranのversionが違うとか言われて怒られた。 最新のRとgccのversion up中。 gccいれるのにめっちゃ時間がかかってる。

最終的になんとか入った。

勉強のための参考資料

ここを順々にやっていくだけでとりあえず触れるようになる。

結局Rってどういうものだった?

実のところ学生時代ちょっと触れて、どういう風に扱えばいいものなのかよくわかなくて投げたことがある。

うん、この懐かしい感覚はあれだ、中学生の頃、数学で関数というものが出てきて「これってつまり何がしたいものなの???」「数式が表現出来るけど、それで???」という疑問で行き詰まってテストですごい点数出してしまった頃のあれと同じだ。

それがそれでよしとするための納得を買うためには理解が必要で、人によっては理解が意味する言葉は、使い方であり、存在意義であり、設計思想であり、成立背景であったりとばらばらで。僕の場合は成立背景で、何をするための道具としてこれが生まれたのかということが説明されないと、いくらこういう使い方が出来るんだよと言われても頭の中にその知識の置き場がなくて、よく困っていました。

あの頃の自分に言えるのなら、関数というか数式は具体的な数値を書かずに計算を表現する言語体系の一種で、関数はその数式の表現で使うsyntaxの一つで、今後いろんな数式を表現する時に使うための共通の表現だよ、的なことを教えるのに。(それも一面的な見方だけど、こういう理解のとっかかりは一つでもあるのと一つも無いのとじゃ大違いなんだーい!)

今にして思うと僕の学校の勉強って、API Referenceばっと渡されてこういう使い方が出来るよってばばばばーって教わっていた感じがする。

最初に一言、国語の文法というのは文章を解析するために作られたとりあえずのタグであり、今後他の言語を理解するときの基礎となる知識としてある、とか(まあこれも自分なりの理解なのでcoverage低そう)、そういう説明があれば良かったのになぁ……。

ふう。閑話休題

で、Rは何かというと、これ結局は

  1. arrayなりmatrixなりに関数で変形したdataをいれる
  2. arrayなりmatrixなりから定められた記法で必要な部分のarrayやmatrixを抽出する

というそういう代物。 要約すると、arrayなりmatrixなりを変換し続ける構文を記述するための道具としてRがあるんだなあ、という理解。

行列と関数だけで成立しているあたり統計解析向けと言われて納得。

ということで一通りやった。

今日読んだ記事

Security

ZIPを少しセキュアに暗号化するツールを作った - Qiita

こう暗号化周りの話ってなんとなく格好いい気がする(印象

OWASP Top10 2017の日本語版公開! | OWASP Japan Blog 〜I can blog a little〜

Open Web Application Security ProjectのReport、日本語版。しばらく前からCSRFが抜けたというので話題になってた。

攻撃者の行動を追跡せよ -行動パターンに基づく横断的侵害の把握と調査- by 朝長 秀誠, 六田 佳祐

Lateral Movementってなんぞや、と早速思ったけれど、

世界のセキュリティ・ラボから - APT攻撃対策、ネットワーク内を動き回る脅威を検出するには:ITpro

Lateral Movementは、最初に入り口となるコンピュータのセキュリティを侵害(Attack)し、マルウエアが攻撃者との通信を確立(Command & Control)したあとの段階を指す。Lateral Movementでは、攻撃者は通常、コンピュータの標準機能を使って、気づかれないようにネットワーク内を動き回る。

ということらしい。

3つの事件で振り返る「何をやったらウイルス罪で捕まるか2017」 - Tetsu=TaLowの雑記(はてブロ版)

有名どころの事件をざっくり逮捕の理屈を話していた。

MySQLが統計情報を計算するタイミングで再起動してしまう - Qiita

おう、大変やな……。

Others

AlminのサイトをOSSドキュメントツールのdocusaurusで作り直した | Web Scratch

お、そういうツールもあるのか。試してみよっと。

「人工知能」と「データサイエンティスト」の2つのブームの関係性をGoogleトレンドのデータから眺めてみる - 六本木で働くデータサイエンティストのブログ

たまにこういうデータを探ってみる系はやるよね。

PostgreSQLの監視 ~ mackerel-plugin-postgresを読み解く - そーだいなるらくがき帳

DB使い始めると運用を考えるようになって運用を考えるとこういうparameterもちまちま気になってくるけれどやはりいつも見ているのはつらいのであった まる

今日読んだ記事

Security

The End of Support for Older TLS Versions in Office 365 – Cloudy Happy People

古いものをきっていく話。そういやgameの世界でも古いというかspecの低いandroid端末をきっていく話とかが出ていたなあ。

いつまでも使えるものって最近だと工芸品くらいでしか見ない気がする。少なくともprogrammingの世界では常にupdateがかかり続けるからいつまでも使える、一度そうすれば二度と考えない、というのは難しいのかも

PHPプログラマのためのXXE入門 | 徳丸浩の日記

ちょくちょくlibxml2ってupdateかかると思っていたけど、こういうattackもあるのね。

WannaCryの概要・使用された脆弱性 #ssmjp /ssmjp1710-2 // Speaker Deck

出来事の大きな流れから実際の振る舞いの概略まで。まとまった記事。

Others

中〜大規模なSPAを開発する時に抑えておきたい10のポイント - KAYAC engineers' blog

やり方が固まってきたなあ感ある。次はどんな構成が生まれてくるんだろう。

一端のゲームエンジニアが"エレベータ"について本気出して考えてみた - KAYAC engineers' blog

ほうほう。結構いろんな種類の処理があったのね……。

ChromiumにおけるJavaScriptのコードキャッシュについて - Qiita

具体的には、現在(Chrome 63)のところ、下記のタイミングでキャッシュを作成しています。

  1. HTTPCacheに入っているJavaScriptファイルのコードキャッシュは、72時間以内に2回読み込まれた場合に作成。
  2. Service WorkerのJavaScriptファイルのコードキャッシュは、Service Workerのインストール時に作成。
  3. CacheStorageに入っているJavaScriptファイルのコードキャッシュは、Service Worker経由でページに初回ロードされた時に作成。

へぇ。

Rmarkdownでポスター発表用のポスターを作成する · NAKAJIMA, Yukihiro

そもそもrmarkdownというのを初めて聞いた。

markdwon記法の中でRが使えるマークアップ言語です。 RstudioでNew Fileの際に適宜選択をするとサンプルが表示され、htmlやPDF, webスライドなどが簡単に書けます。

ああそういえば、R言語でさらっと書けた気がするなあ。

今日読んだ記事

忙しくなると読めなくなる。おのれ。 最近はAWSどっぷりな日々。s3 selectとか楽しいよ。まだpreviewだけど。

機械学習

AlphaGo Zeroの動作方法と理由 | コンピュータサイエンス | POSTD

ほへーと見ている状態。見ているだけじゃなくて自分でもいじってみないとなぁ……。

Chainerの可視化・実験管理を支援するChainerUIを公開

これは素晴らしい。

Web Application

CSS Transform に関する Tips - KAYAC engineers' blog

うわぁ。勘違いしそうなネタたくさん。

Network

将来のQUICをデプロイしやすくするための取り組みと議論 - ASnoKaze blog

ずっと議論されているなQUIC。なおQUICというのはProtocolのこと。

TCPに変わってUDP上で信頼性のある暗号化されたHTTP/2通信を行おうというネタ。

このあたり詳しいのはどこかな……。このあたりかな。

Security

Internet Infrastructure Review(IIR) | セキュリティ・技術レポート | IIJ

お、新刊だ。

Mailsploit: メールの送信元を詐称する新しい悪用コード | Symantec Connect

Mailsploit の悪用に成功すると、攻撃者はメールの送信元アドレスを詐称できるようになります。RFC-1342 は、メールヘッダーで非 ASCII 文字を表示する際の推奨として 25 年前から使われていますが、悪用されるのはその実装における欠陥です。攻撃者は、from(送信元)欄にさまざまなバイトを挿入し、真の送信元を隠すことができます。

こうなると、攻撃者は悪質なメールを標的に送りつけることに成功する確率が大きくなります。受け取ったユーザーは、送信元が信頼できると考えて開封してしまう可能性が高くなるからです。

メールヘッダーの詐称は、以前は簡単に実行できましたが、DMARC(ドメインベースのメッセージ認証、報告および適合)などの新しい安全策が登場して以来、あまり使われなくなりました。Mailsploit を使うと、攻撃者はこの DMARC をすり抜ける詐称メールを作成することができます。

それだけでなく、影響を受ける一部のメールクライアントでは、Mailsploit によるコードインジェクションやクロスサイトスクリプティングXSS)攻撃を許してしまいます。該当するのは、MacOSiOS のメールクライアント Spark、MacOS のメールクライアント Polymail と Airmail、モバイルアプリの TypeApp と AquaMail などです。

しばらく前から騒がれているな、mailsploitは。

New VMware Security Advisory VMSA-2017-0021 - VMware Security & Compliance Blog - VMware Blogs

VMWareは時々出てくる。関係しそうなのはこのあたりかな。

Issues (a) CVE-2017-4941 and (b) CVE-2017-4933 are stack overflow and heap overflow vulnerabilities respectively. Successful exploitation of these issues could result in remote code execution in a virtual machine via the authenticated VNC session. These issues affect VMware ESXi, Workstation, and Fusion. In order for exploitation to be possible in ESXi, VNC must be manually enabled in a virtual machine’s .vmx configuration file. In addition, ESXi must be configured to allow VNC traffic through the built-in firewall.

ハニーポット観察記録(37)「WebShellの探索」 at www.morihi-soc.net

今回は、前回と同様に WebShell に関する記事です。 自作のハニーポットである WOWHoneypot で、個人的にハイエナ手法と呼んでいる攻撃を検知しました。 この攻撃は誰かが設置した WebShell に対するコマンド実行の試みです。それでは紹介します。

Mirai 亜種関連

Mirai 亜種の感染活動に関する注意喚起

JPCERT/CC情報通信研究機構 (NICT) 、警察庁等の調査により、感染の拡大のメカニズムに、既知の脆弱性 (CVE-2014-8361) が悪用されていることが確認されています。また、調査の結果、感染に至っている機器の多くに、ロジテック株式会社製ブロードバンドルータの一部製品が含まれていることも確認されています。公開情報には、HUAWEI 社のルータ (HG532) が対象となっているとの情報もあります。

Mirai亜種が国内の最大2万4000ホストに感染、ロジテック製Wi-Fiルーターの脆弱性を悪用 -INTERNET Watch

NICTでは、10月31日ごろからTCPポート23番宛にMiraiの特徴を持ったパケットを送信するホストの増大や、UPnP用インターフェースであるTCPポート52869番に対するスキャンの増加を観測。後者は、Realtek SDKのMiniigdサービスにおけるコマンドインジェクション脆弱性「CVE-2014-8361」を悪用するものとみられるとのこと。

Others

Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog

この記事では、Microsoft検索エンジン Bing で採用された BitFunnel アルゴリズムを紹介します。 昨年のエンジニアアドベントカレンダーでは、文字列検索のアルゴリズム全般について紹介しました(文字列アルゴリズムの学びかた - Hatena Developer Blog)。今年はそのなかでも、インデックス(索引)を使った全文検索アルゴリズムについてのお話になります。

今日読んだ記事

いつもちまちまと記事を読んでるんだけど、その読んだ記事のリスト。

何も更新しない日々が続いたのでペースダウンしつつもできることをちょっとだけやってみることにした。

Security関連とAWS関連多め。

続きを読む