Skip to content

Commit 20a6b83

Browse files
committed
Add: some files
1 parent 56c3f45 commit 20a6b83

File tree

6 files changed

+405
-0
lines changed

6 files changed

+405
-0
lines changed

5442a8ded68e6cf15077.md

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
自分のメアドから、「メアドがハックされたよ!」詐欺をうけた話
2+
hacked mail 詐欺
3+
4+
# TL;DR;
5+
- "<メアド> has been hacked, change your password ASAP"という題で、bitcoinを投げないとwebcamや画面録画ばら撒くぞという脅迫メールが来た
6+
- 実際のところ、メールのヘッダーを書き換えて、あたかもメアドがハックされているかのように装っていただけだった
7+
- `From:`は容易に書き換えられる。本当の送り元を見るには`Return-path`を見ると良いらしい。
8+
- メアドはGithubのスクレイピングをした第三者からの流出だったらしい
9+
10+
---
11+
12+
# 概要
13+
14+
つい先ほど迷惑メールフォルダを確認していた時、以下のようなメールを見つけました(`[email protected]`は私のアカウント)
15+
16+
[!pic]
17+
18+
中身を読んだところ、
19+
20+
> 君のPCはクラッキングされたよ!
21+
> webカメラで撮った映像とか画面の録画とかを知り合いに流されたくなかったら下記のアドレスにbitcoin送ってね(=´∀`)
22+
23+
といった内容でした(もっと堅い英語だったけど)
24+
まぁちょっと動揺したのですがとりあえず、このドメインを管理している知り合いと、技術者である父親に相談しました
25+
26+
27+
# 現状の分析
28+
29+
とりあえず現状がわからないのでPCをオフラインに。
30+
現状わかっているのは
31+
32+
- 自分のメアドからメールが来た
33+
- そのメールサーバーには度々繋がらなくなるor繋がるけどエラーが出る
34+
35+
36+
メールの内容を考えてみます。
37+
38+
## メール本文と会話する(会話なのでタメ口です)
39+
40+
> 君のメアドから送られてるでしょ?クラックしたんだよ
41+
42+
うんなるほど?そうっぽいね
43+
しかしどうやったのだろうか
44+
45+
> PCをクラックしてパスワードを盗んだよ(\*・ω・)ノ)
46+
47+
らしいのだが **PCからそのメアドにログインした覚えはない** (重要)
48+
49+
> Webcamで撮った映像とか画面録画とか、バラされたくなかったらbitcoin送ってね(ノ≧ڡ≦)☆
50+
51+
うん。嫌だね。でも送るのも嫌だ。
52+
53+
> 君のPCクラックングしてるから、このメール読んだのも気づいてるよ。48時間以内に払ってね、それじゃ☆(ゝω・)v
54+
55+
...にゅ〜...私の操作監視してるなんて暇かな...??(実際は ~~ちょっと~~ 焦った)
56+
57+
## 本文からの考察
58+
59+
とりあえず、たとえクラッキングされていたとして、 **PCからメアドにログインした覚えはない**のです。
60+
昔はログインしていたものの、現在はエラーで見れなくなっています。
61+
なので、 **少なくともクラッキングされてパスワードを盗まれたわけではない**だろうと考えました。
62+
63+
## 他の人に意見を聞いてみる
64+
65+
身近にいたので技術者な父に聞いてみました
66+
67+
> そもそも鯖に繋がりにくい状況なら、鯖側(y-modify.org側)がクラッキングされてたりしないか?
68+
> とりあえず管理者に聞くしかないが、PCのクラッキングではないだろう
69+
70+
とのこと。鯖の管理は私ではないので、とりあえず管理している友人に報告&相談することにしました。
71+
同じ団体の人に情報共有したところ、
72+
73+
> メアドが漏洩しているかどうか[haveibeenpwned](https://haveibeenpwned.com/)で調べてはどうか
74+
75+
との助言をもらったので調べたところ、`GeekedIn`からの流出が確認できました
76+
77+
[!pic]
78+
79+
どうやら、昔`GeekedIn`がスクレイピングしたGithubの公開プロフィールが流出し、そのメアドを使われたようです。
80+
多分2016年のその流出の際にGithub登録していた人はそれなりの確率で当てはまっているのではないかと思います。
81+
これでメアド流出についてはわかりました。が、それだけではまだログインできないはず。パスワードはリスト攻撃でも受けたのだろうか...
82+
83+
ここで、鯖管理者に聞いてみました。
84+
85+
> (メールの)生のヘッダを見て
86+
> 多分真の送信元は違うところ
87+
88+
## メールのヘッダを読む
89+
90+
スマホでは確認方法がわからなかったのでPCから確認してみます。
91+
そしてこの時**宛先(To)と実際に受け取ったメアドが違う**ことに気がつきました。確かに偽造されていそうだな...?
92+
そして実際に見たヘッダがこちら
93+
94+
[!pic]
95+
96+
注目するのは以下
97+
98+
99+
100+
> Return-Path: [email protected]
101+
102+
ここでの違和感は:
103+
- 受け取ったメアドが`[email protected]`ではないのに`To: <[email protected]>`
104+
- `From:``Return-Path:`の値が違う
105+
106+
前者は現状謎なので置いておきます。
107+
`Return-Path`について調べると、これは受信側でSMTPエンベロープから作成されるようで、本当の送信元を見分けるのに適しているようです。
108+
109+
- [エンベロープ From と Return-Path と Errors-To と](http://blog.smtps.jp/entry/2018/04/18/112026)
110+
- [IA japan 本当の差出人のメールアドレスを知ることはできますか?](https://salt.iajapan.org/wpmu/anti_spam/universal/measure/return-path/)
111+
112+
これにより、「別のメアドから送信元を偽造して送られていた」ということがわかりました。
113+
114+
# 結論とまとめ
115+
116+
- 実際にはメアドを乗っ取られたわけでもなく、送信元を偽造されていただけだった
117+
- メアドはGithubスクレイピングしていた企業から漏れていた
118+
- メールの送信元を確認するには**ヘッダーの`Real-Path`を確認すると良い**
119+
120+
---
121+
122+
# あとがき
123+
124+
自分のメアドから、「ハックされたよ!!」というタイトルのメールが来るのでITに疎い人は騙されそうだなと思い他の家族に話したところ、「そもそも送信元を見ないから大丈夫」「少しでも面倒と感じたら見ないから大丈夫」などと力強い言葉をいただきました。
125+
126+

583fa82805775cf17dd6.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
Haskellを始めてみた
2+
Haskell
3+
4+
# 動機
5+
6+
前Qiitaのトレンドに上がっていた[Lazy K プログラムを書く](https://qiita.com/zk_phi/items/acb821d298151a7b96d2)から関数型言語に興味を持ったのが発端でした。
7+
8+
コンビネータ計算に興味を持ち、そこから[SKI記法](https://ja.wikipedia.org/wiki/SKIコンビネータ計算)[不動点コンビネータ](https://ja.wikipedia.org/wiki/不動点コンビネータ)[ラムダ計算](https://ja.wikipedia.org/wiki/ラムダ計算)等を渡り読んで楽しくなったので関数型言語を学ぼうと思いました。
9+
ちなみになぜhaskellを選んだかというと、ただ単に勧められたからです。
10+
11+
# macで環境構築をする
12+
13+
今現在、Haskellをインストールする際に推奨されているのはstackを使う方法のようです。
14+
15+
## stackをインストールする(homebrew)
16+
homebrewで`stack`をインストールします
17+
18+
```bash
19+
$ brew install haskell-stack
20+
```
21+
22+
## HIE(haskell Ide Engine)をインストールする
23+
24+
HIEはhaskell用のLanguage Serverです。(language serverについては → [langserver.org](langserver.org))
25+
HIEはhomebrewではシステム上インストールできないため、個別にGithubレポジトリから作成してインストールします。
26+
27+
28+
```bash
29+
$ git clone https://github.com/haskell/haskell-ide-engine.git
30+
$ cd haskell-ide-engine
31+
$ stack ./install.hs hie-8.6.4
32+
$ stack ./install.hs build-doc-8.6.4
33+
```
34+
35+
これで実行可能ファイルが`~/.local/bin/`以下に作成されるので、`~/.local/bin``PATH`に追加すれば使用することができます。
36+
37+
## HIEをvim-lspと連携する
38+
39+
私はvimmerなので、vim-lspと連携させて使います。
40+
以下の設定を`vimrc`に追加します。
41+
以下は自分の他の言語用の設定をそのまま写して使っているものです。
42+
誤りもあるかもしれませんが一応使えています。
43+
44+
```vim
45+
augroup MyLsp
46+
autocmd FileType haskell setlocal omnifunc=lsp#complete
47+
48+
if executable('hie')
49+
au User lsp_setup call lsp#register_server({
50+
\ 'name': 'hie',
51+
\ 'cmd': {server_info->['hie']},
52+
\ 'whitelist': ['haskell'],
53+
\ })
54+
endif
55+
56+
au FileType haskell nmap <leader>R <plug>(lsp-rename)
57+
au FileType haskell nmap <leader>D <plug>(lsp-definition)
58+
au FileType haskell nmap <leader>r <plug>(lsp-references)
59+
au FileType haskell nmap <leader>d <plug>(lsp-document-symbol)
60+
au FileType haskell nmap <leader>w <plug>(lsp-workspace-symbol)
61+
augroup end
62+
```
63+
64+
## HIEをale.vimと連携する
65+
66+
補完等の`Language server`周りは`vim-lsp`に任せているものの、`lint`等は`ale`に任せているので`ale`の設定もします。
67+
68+
```vim
69+
let g:ale_linters = { 'haskell': ['hie'], }
70+
```
71+
72+
73+
# 学習資料について
74+
75+
本来なら、[公式のチュートリアル](https://wiki.haskell.org/tutorials)をやるのが良いと思うのですが、英語でとっかかりづらかったので[Haskell 超入門](https://qiita.com/7shi/items/145f1234f8ec2af923ef)シリーズを使っています。
76+
77+
書籍は今は何も使っていません。

a06fb46b309ded9c7ada.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
[ProjectNorthStar] LCDパーツ
2+
ProjectNorthStar
3+
4+
[![tipmona](https://img.shields.io/badge/tipme-%40tipmona-orange.svg)](https://twitter.com/share?text=%40tipmona%20tip%20%40Cj-bc%2039) [![monya/mona](https://img.shields.io/badge/tipme-%40monya/mona-orange.svg)](https://monya-wallet.github.io/a/?address=MBdCkYyfTsCxtm1wZ1XyKWNLFLYj8zMK3V&scheme=monacoin) [![tipkotone](https://img.shields.io/badge/tipme-%40tipkotone-orange.svg)](https://twitter.com/share?text=%40tipkotone%20tip%20%40Cj-bc%2039)
5+
6+
7+
現状確認できているレシピに使われているLCDパーツのリスト
8+
各レシピ毎に使用できるLCDが異なり、一部使用不可能なものもあるので気をつけてください。
9+
10+
# VS035ZSM-NW0
11+
12+
- 本家で使われているもの
13+
- 販売元のBOEは大口の注文に対してのみ販売を行うそうです。(exiii情報)
14+
15+
# 3.5-inch LCD
16+
17+
## 各種情報
18+
19+
- Amazon: https://www.amazon.co.jp/gp/product/B01N5HW3BP/
20+
- ラズベリーパイ用のディスプレイの流用。
21+
- 解像度は後述の3.81-inch AMOLEDに劣る...のかな?
22+
- 価格: ¥2,980(2019/02/14現在。上記amazonリンク)
23+
24+
## これを使用している記事
25+
26+
- [exiiiさんの最初のエントリ](https://exiii.jp/2018/07/19/project_north_star_jp-2/)
27+
- [showroom tech blogの@izmさんのエントリ](https://tech.showroom.co.jp/entry/2019/01/28/175438)
28+
29+
# 3.81-inch AMOLED
30+
31+
- Alibaba: https://www.alibaba.com/showroom/3.81-inch-amoled.html
32+
- いくつか種類があるが、どれのことを指してるのかはわからない...
33+
- (exiii v2では1080x1200のもののようです。)
34+
- 複数個でまとめうりが多く、バラ売りのものとなると以下のリンクから見れるぽいです。
35+
https://www.alibaba.com/trade/search?IndexArea=product_en&SearchText=3.81_inch_amoled&atm=&viewtype=G&f0=y&moqf=MOQF&moqt=MOQT1
36+
- 価格: USD 30~100?(2019/02/14現在。二番目のAlibabaリンクに掲載されているものより。)
37+
- 価格帯が上下しまくってるのでよくわからない。情報求(買わないけど)
38+
39+
## これを使用している記事
40+
41+
- [1-10/ProjectNorthStar_1-10_custom](https://github.com/1-10/ProjectNorthStar_1-10_custom)
42+
- [exiiiさんのv2エントリ](https://exiii.jp/2018/11/27/project-north-star-simplified-v2-jp/)
43+
44+
# sharp 2.89"
45+
46+
- これ以外の名前や詳細情報は不明
47+
- Discordにてexiii社の方が動画を投稿していた
48+

haskell-tutorial-list.md

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
初心者向けのhaskellのチュートリアルは何がいいのか
2+
haskell tutorial
3+
4+
最近関数型にはまり、`Haskell`を始めました。
5+
が、**良いチュートリアルがわからない...**
6+
普通に調べても数学の話とかが出てきて余計わからない...(筆者は数学が苦手)
7+
色々と漁ってみたので、独断と偏見に基づいてそれぞれについて書いてみます。
8+
9+
---
10+
11+
# Qiita: Haskell 超入門(@7shi)
12+
13+
| | |
14+
|:-:|:-:|
15+
| リンク | [Haskell 超入門](https://qiita.com/7shi/items/145f1234f8ec2af923ef) |
16+
| 最終更新日時 | `2017/01/11`(トップ記事) |
17+
| 言語 | 日本語 |
18+
19+
- Link:
20+
21+
個人的には一番わかりやすかったです。日本語なのも嬉しい。
22+
懇切丁寧に書いてくださっているので悩んだらおすすめです。
23+
シリーズ展開していますが途中まで作成されています。
24+
25+
26+
# haskell.org: Documentation
27+
28+
| | |
29+
|:-:|:-:|
30+
| リンク | [haskell.org documentation](https://www.haskell.org/documentation/) |
31+
| 最終更新日時 | 不明 |
32+
| 言語 | `English` |
33+
34+
- Link:
35+
36+
チュートリアルのページというよりは、ドキュメント一覧です。
37+
38+
39+
# wiki.haskell.org: learning resources
40+
41+
| | |
42+
|:-:|:-:|
43+
| リンク | https://wiki.haskell.org/Learning_Haskell |
44+
| 最終更新日時 | `2019/02/25` |
45+
| 言語 | `English` |
46+
47+
- Link:
48+
49+
HaskellのWikiの、チュートリアルまとめのページです。
50+
様々なチュートリアルが載っていますが各記事の更新日時に注意...
51+
52+
# wiki.haskell.org: Meta-tutorial
53+
54+
| | |
55+
|:-:|:-:|
56+
| リンク | https://wiki.haskell.org/Meta-tutorial |
57+
| 最終更新日時 | `2012/06/13` |
58+
| 言語 | `English/日本語` |
59+
60+
> The meta-tutorial aims to help you find the Haskell tutorials that you need.
61+
>
62+
> > Meta-tutorialは自分にあったHaskellチュートリアルを探すためにあります。(意訳)
63+
64+
用途別にチュートリアルの紹介がされています。
65+
ちなみにこのページについては[日本語版](https://wiki.haskell.org/Metaチュートリアル)があります。
66+
67+
## Hitchhikers guide to haskell
68+
69+
| | |
70+
|:-:| :-:|
71+
| リンク | https://wiki.haskell.org/Hitchhikers_guide_to_Haskell |
72+
| 最終更新日時 | `2014/05/04` |
73+
| 言語 | `English` |
74+
75+
> チュートリアルの進み方がゆっくりだったり、退屈だったり、意味不明になるのにうんざりだって?ヒッチハイカーのガイドを試してみてください。
76+
77+
> 本テキストは読者にHaskellの実用的な側面を基本のきから紹介することを目的としています。(まず最初にI/Oを説明し、次にdarcs、Persec、QuickCheck、プロファイリングとデバッグと続いた後に最後いくつか説明します)
78+
> 読者には前提としてHaskellの最低限の基本知識を必要としています。といっても、どのように "hugs" や "ghci" を起動するか、 このレイアウトは2次元である といったくらいのことです。
79+
> さらに本テキストの説明では一気に流れをとばしたりせず、一歩ずつ進めていき、読者が迷子にならないようにするつもりです。
80+
> だから「パニックに陥らないでください」。
81+
82+
ナップザック問題を使ったチュートリアルです。
83+
とはいえ数学苦手な筆者でも問題がなほどのレベルで解説されていました。
84+
**コードは途中から動かない**[^1]ですが、そこまではかなり勉強になりました。
85+
[日本語版](https://wiki.haskell.org/Haskellへのヒッチハイカーガイド)も一応ありますが翻訳途中のようです。
86+
**日本語版は英語版とコードが異なったりするため、バージョンが違うと思われます**
87+
88+
個人的には以下のようなことが勉強になりました:
89+
90+
- 一度英語で手順を考え、それをコードに落とし込んでゆく
91+
92+
```haskell
93+
main = read list of directories and their sizes
94+
decide how to fit them on CD-Rs
95+
print solution
96+
```
97+
98+
[^1]: `QuickCheck`を使うコードがコピペでも動かないです。

money-book-flask.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Flaskで家計簿を書く
2+
flask python
3+
4+
欲しい家計簿appがなかったので作成しようと思います。
5+
6+
# 動機
7+
8+
- 欲しい機能付きの家計簿がなかった
9+
- いろいろ挑戦してみたかった
10+
11+
# 欲しい機能
12+
13+
- マルチプラットフォーム
14+
- iPhone
15+
- Apple Watch
16+
- CLI
17+
18+
- 様々なサービスとの連携
19+
- Siri
20+
- Qfixhowm
21+
22+
# 構成
23+
24+
マルチプラットフォームにするために、サーバーを用意して問い合わせるようにします。
25+
26+
| service | 言語 |
27+
|:-:|:-:|
28+
| backend鯖 | Python |
29+
| iPhone App | Swift |
30+
| Apple watch | Swift |
31+
| CLI | python/Haskell? |

0 commit comments

Comments
 (0)