at backyard

Color my life with the chaos of trouble.

【実際の画像あり】佐川急便を装った偽物の不在ショートメール(SMS)を開いてしまったので、諸々調べてみた

佐川急便を装った偽物の不在ショートメール(SMS)を開いてしまったので、諸々調べてみた

先日こんなSMSが私のiPhoneに届き、ついつい条件反射的にリンクに触れてしまい、ページを開いてしまいました!!

f:id:shinshin86:20200223092651j:plain

下記の佐川の公式サイトでも注意喚起されていますが、私が受け取ったのはこの "事例2"に該当します。

【佐川急便】|お知らせ

SMSの送信元が +81 90~ から始まる番号だったため、 日本の番号=問題なさそう と思い、普通にクリックしてしまいましたが、SMSに記載されているURLは明らかに佐川のものではありませんでした。

ちなみにこの番号についてはまだ、電話番号の口コミサイト的なところでは悪い口コミのようなものを見つけることは出来ませんでしたが、サイトによっては今年に入ってからすでにこの番号での検索が何度かされていたようなので、怪しい番号であることは間違いないようでした。

しかも このご時世、SMS内に記載されているURLが https じゃなかったので、まずは一旦そこで考えるべきでした。
(現在は基本的にサイトのURLは https が基本となっています。そのため http の段階で、一旦冷静になるべきだったと反省)

つい体が勝手に動いてしまい、、、日々の習慣って怖い。。。

ちなみにテキストに記載されているURLをしらべてみたところ、どうやら先週頃に取得されたドメインのようでした。
もちろん断定はできませんが、不正利用するために取得されたドメインということでしょうか?

といっても、URLに触ってしまえば後の祭り、iPhonesafariが起動し、リンク先に遷移します。
ちなみにこのリンク先に遷移する段階で一度リダイレクト処理が入り、別のURLに更に遷移しました。
〇〇.xyz という感じのドメインで、明らかに捨てドメインといった感じのネーミングそちらを検索してみると、すでにドメインは破棄されているようでした。

f:id:shinshin86:20200223092730j:plain

APP Storeアカウントは安全異常があるので、再度ログインしてください。

サイトにアクセスすると、APP Storeアカウントは安全異常があるので、再度ログインしてください。 というアラートが表示されます。
日本語がおかしいですね。後述しますが、ここでCloseを押すと、さらにリダイレクトが挟まり、また別のドメインに遷移します。
そのため、アラームの後ろで表示されているサイト内にログインリンクが有るかは分かりませんでしたが、フォーム内にログイン情報を入力させて情報を抜き取ろうという手口でしょうか?
これは想像ですが、Apple IDなどを入力させ、iTunesカードをだまし取ろうとするフィッシング系の手口かと思われます。

追記:アクセスしたスマートフォンAndroid端末だった場合は不正アプリのインストールが促される?

上のキャプチャを見た感じ、インストールという文言が見えますね。
(佐川の公式サイトを見た限り、本来ここには送り状NOを入力するためのフォームが設置されているようでしたが、インストールというボタンに置き換わっています。)
また、Androidの設定画面にて何らかの操作を促すようなキャプチャも見えます。
不正アプリのインストールを促そうとしていることがこれらの画像からわかります。

おそらくはページを開いたときにJavaScriptでアクセスしている端末を判定し、それによって挙動を変えているのかと思われます。

ユーザーエージェント文字列を用いたブラウザーの判定 - HTTP | MDN


上記のアラートを閉じると、上にも書いたとおり、更に別のドメインにリダイレクトされます。
ただし、そのリダイレクト先のページはすでに存在していないようで、Safari側でエラーメッセージが表示されます。

f:id:shinshin86:20200223092807j:plain

もしかしたらここでApple IDなどの入力画面が出てくる設計だったのかもしれません。
すでにもうこのドメイン自体は使われていないようでした。
なおドメイン名はこちらも〇〇.xyz という感じのドメインで、明らかに捨てドメインといった感じのネーミングです。

佐川急便を装った偽物の不在ショートメールはフィッシングをさせることが目的?

今回の挙動を整理するに、下記のような挙動となっていました。

  1. SMSのリンククリック
  2. 1つ目のドメイン(アクセスするとリダイレクト処理)
  3. 2つ目のドメイン(アクセスするとリダイレクト処理)
  4. 3つ目のドメイン(NOT FOUNDが表示。恐らくはここでApple IDなどを入力させてiTunesカードを買わせようと予想)

このような事例として、不正アプリをインストールさせるということが目的のパターンもあるようでしたが、今回の一連の挙動を見るにはおそらくはiTunesカードを買わせようというフィッシング目的のもののように感じました。
(追記で書きましたが、私の端末がiPhoneだったため、こういう挙動をしていた可能性がありそうです)

スマートフォン上では触ってしまえばリンクは開いてしまいます。
リンクに触れる前に一呼吸置くよう意識しなければと痛感した今日このごろでした。

SUNTORYの天然水スパークリング(無糖うめ)が結構美味しい

下書きフォルダに入れたまま忘れ去られていたパターン。

というわけで、今更ながら公開します。

ちなみに今でも時折飲んでいます。結構お気に入り。


タイトルの通りで、SUNTORYの天然水スパークリング(無糖うめ)が結構美味しい。
味の感じとしては、昔から売っている梅ジュースの無糖版といった感じ。よく知っているあの梅ジュースの味、だけど甘くない、といったニュアンスが好みである。
(ちなみに"無糖"とあるが、原材料を見ると、果汁だったりはちみつだったりローストシュガーだったりが使われており、最近よくある香りだけがついた純粋な炭酸水、というわけではないので、そこのところだけ注意)

ちょっとAmazonで買うと割高かもしれない。

国産南高梅果汁を使用した、飲みやすい甘くて爽やかな香りが特徴です。こだわり素材を使用し、ひと手間かけた製法により、飲み応えのある味わいにしました。 素材由来の美しい色味で、視覚的にも“嗜好性”をお楽しみいただき、飲用時にも味の厚みがより感じられるように仕上げました。 今回、新型ペットボトルを採用しました。先端をシャープな形状にすることで従来品よりも飲用中の最大流量が上がり、炭酸の体感刺激の向上が実現しました。 原材料:ナチュラルミネラルウォーター、果汁(有機ぶどう、梅)、はちみつ、ローストシュガー、食塩、梅エキス/炭酸、香料、酸味料、酸化防止剤(ビタミンC)

コトリンゴの悲しくてやりきれない、がとても染みるそんな夜

music.apple.com

風呂から出たらGoogle Homeコトリンゴの悲しくてやりきれないを流していた。

コトリンゴの囁くようないつもの歌い方、リバーブがかかったピアノの音色、同じくリバーブとディレイのかかった小気味良いギターのカッティングが、家族が寛ぐリビングの中を満たしていく。

赤の他人の絶望を他人事のように眺めている気分、この曲を聞くとそんな気分になる。

それは冬の午後の日差しのように優しくも切ないものだ。そして少しだけ懐かしい。

自分はいったいなぜそんなふうに感じるのかを少しばかり自問自答してみる。悲しくてやりきれない、と歌われているのに優しくも切ないとはなんだ?ちょっと残酷なんじゃないか、と。だが、そういうわけではない気がする。

我々は常になんらかの悲しみとともに生きている気がする。私が少々ニヒリスティックなだけかもしれないが。悲しくてやりきれない事はたくさんある気がする。だが不思議と思い出せない。悲しくてやりきれない気持ちを常にどこかでクシャクシャと潰して生きているからではないだろうか?

私が二十代の頃、音楽を作る大きな原動力は負の感情だった。生きるのは楽しいことではない。この世界を多少マシなものにするために曲を書いていた。悲しいことがあった時、それを癒す過程が必要だった。その1つのプロセスに音楽があった。

悲しくてやりきれない気持ちが音楽に変わり、それは何処かへと昇華された。

悲しくてやりきれないをきくと、そんな当時の心境が蘇る。優しくも切なく、そして懐かしく感じていたのはそんな当時の自分をこの歌の先に見ているのかもしれない。

今日も穏やかな冬晴れだった。

自宅で仕事をしていると1日の移り変わりをしっかりと感じられる。仕事は忙しく1日はあっという間だが、1日のリズムを失わずに1日を過ごすことができるのは、とても幸せなことだ。

決まった時間帯に近所の子供達が公園で遊んでいる声が聞こえる。洗濯物越しに少しばかりそんな光景をぼんやりと眺める。冬の午後の優しくも切ない日差しが差し込む時間帯。

さて、少々感傷的な文章を書いてしまった。

妻は風呂に入り、娘はいつしか眠りに落ちた。 私は布団の中で駄文を書き連ねながら眠りに落ちようとしている。

Hootsuiteの無料プランでのアカウント作成方法と、無料でどこまでできるか?(2022年追記あり)

この記事は2020年に書いたものだが、2022年になって久しぶりに使う機会が出てきたので、最新の料金プランについても下の方に追記で書いている。

またいくつかの項目について書かれているので目次を下記に載せておく

目次

[序文] 2020年、Hootsuiteを久しぶりに使うことになった

久しぶりにHootsuiteを使うことにした。
Hootsuiteとはなんぞや、という方はググってみると色々と記事が出てくるので、そちらを見ていただくとして、ざっくりと書くと、ソーシャルメディアを一括管理できるプラットフォーム・ツールである。

hootsuite.com

Hootsuiteには無料プランがあるが、意外と登録フローが分かりにくい作りになっているような気がしたので、備忘録として登録した際の手順をこちらに書き残しておく。

Hootsuiteの無料プランでの登録方法

HootsuiteでFree Planでアカウントを作る方法だが、
公式のトップから Signup を選択して作ろうとすると、プランがProfessionalで選択されていた。

下記のURLから Sign Up For Free Plan を選択して登録することで無料プランでアカウントが作成できるようだったので、こちらのURLにアクセスして登録を行う。
(もちろんサイト上のプランページからも遷移できるようになっている)

Hootsuite Free - Plans and Pricing

ちなみに次のページでも、本当にフリープランでいいの?的なことを聴かれるので、No Thanks~の方を選択

更に登録をすすめると、会社名やあなたの会社規模について聞かれたので、下記のように答えた。

会社名は個人利用なのでPersonalと入力し、後はキャプチャの通り

ここまで入力することで、Hootsuiteのダッシュボードが表示される。
そういえばアカウントセットアップのところで最低2つはSNSと連携させる必要があったり(でなければ、次に進めないようになっていた)、前使っていたときよりも、ちょっと登録しづらい感じになっていた。。。
Hootsuite側としても色々と試行錯誤しているかもしれない、、、などと勝手に考えてみる。

追記: 2022年のHootsuiteの無料プランについて

2022年、また久々にHootsuiteを使おうと思い、そもそも無料プランでどこまでできるのだっけ?と気になったので調べたので追記。

Hootsuiteのpricingについては下記のページから確認が可能

Hootsuite Free - Hootsuite

こちらを参照する限り、無料プランでは

  • 一人のユーザのみ作成可能
  • 2つのソーシャルアカウントまで利用可能
  • 5つのスケジュールメッセージまで予約可能

という形らしい。

長風呂と、はてなブログのiPhoneアプリ

最近は娘も大きくなり沐浴では少々狭くなってきたので、毎日お風呂に入れている。

娘のお風呂を済ませた後は大抵一人で長風呂をしながらYouTubeを見たりKindleで読書したりしながら、1人の時間を楽しんだりしている。

思い返せば、毎日お風呂に入るというのは何年ぶりだろうか?実家を出てからというもの、いつのまにかシャワーで済ませるようになっていたが、やはり風呂というものは良いものだ。

暖かい湯に浸かり長い時間過ごしていると、体の芯から温まるというのがどういうものかというのが手にとるように理解できる。

そんな暖まった体で風呂から出ると体はリラックスモードになっており、PCを開く気分にはなれなくなっていたりする。そのため風呂後はなるべくiPhoneだけで完結させたいと感じるようになった。

例えばこのブログもそうだ。時折このブログは風呂上りのリラックスタイムに乗じて駄文を連ねる時がある。まさに今がそうだが、そういうときPCではなくiPhoneで完結させたいと思う。

そんな時、はてなブログiPhoneアプリを使う。最初にインストールした時に比べてだいぶ使い勝手も良くなってきており、ストレスなく使えるようになってきた。

しかも先ほど気づいたのだが、キーボードを出した状態で画面中程をスワイプすることでメニューを切り替えることができた。

Yuki Shindo on Twitter: "はてなブログのiPhoneアプリ、すごく今更ながら、スワイプさせると色々とできることに気づいた。なんで気づかなかったんだ、自分。。。… "

まだあまり使いこなしていないが、例えばリンクを貼りたい時など予めURLをコピーした状態でリンクボタンを押すと勝手にそのURLを挿入しようとしてくれるので、かなり使い勝手は良さそうだ。

これから長風呂の後のリラックスタイムにブログ投稿の機会が増える、、、かもしれない。

FFTBattlegroundが楽しい!

下書きフォルダに置いたまま完全に忘れてしまっていたポスト...
今更ながらですが、公開します

なお、今でも時折見ますが、当時ファイナルファンタジータクティクスをやっていた自分としては懐かしさも相まって、ついつい見ちゃうものです。


数日前にAUTOMATIONでこんな記事を見つけた

automaton-media.com

実際にアクセスして見てみるとこれがなかなか面白い。

https://www.twitch.tv/fftbattleground

実際に参加してみなくとも、見ているだけでどんどん時間が溶けてしまうので、要注意だ。
それにしても、私はあまりこのようなAI同士がゲームを進行させていくコンテンツというものに疎いが、こういうのを見ているとAIが人間向けのコンテンツを量産する時代も近くなってきたなというのを感じる。
(といってもこれは人間が仕組みを作っているわけで、全てAIが作っているというわけではないが。)

Fitbit APIを使って、本日のActivityを取得するかんたんなサンプルを書いてみた(Node.jsとGoとPython)

以前から気になっていたFitbit APIを試してみた。

セットアップなどについては下記の記事がとても参考になった。

qiita.com

目次

Node.jsを用いて本日のActivityを取得するサンプル

ひとまずはtokenを取得して、APIを叩けるところまで準備し、下記のコードで本日のactivityが取得できることを確認した。

const fetch = require('node-fetch');
const config = require('config');
const moment = require('moment');

(async() => {
    const today = moment().format('YYYY-MM-DD');
    const url = `https://api.fitbit.com/1/user/-/activities/date/${today}.json`;
    const option = {
        method: "GET",
        headers: {'Authorization': `Bearer ${config.token}`}
    };

    const response = await fetch(url, option).then(r => r.json());
    console.log({response});
})();

上のコードを実行するには、下記コマンドでライブラリを導入の上、 config/default.jsonに下記の記述を追加する必要がある。

yarn add config node-fetch moment
{
    "token": "取得した自身のtokenを設定"
}

ちなみにactivity取得APIに関するドキュメントは下記にあった

dev.fitbit.com

Node.js(.mjs)を用いて本日のActivityを取得するサンプル、その2

久しぶりにFitbit APIを使った際に、この記事を読み返したのだが、自身のJSサンプルが冗長な気がしたので、書き直してみた。
なお、mjs で書いているので、top level awaitを利用している。

あと、上のサンプルでは ライブラリをいくつか利用しているが、今回は node-fetch のみとしている。

import fetch from 'node-fetch';

// 取得したtokenをセット
const TOKEN = "";

// 本日の日付
const date = new Date();
const today = date.getFullYear() + 
  "-" +
  String(date.getMonth() + 1).padStart(2, '0') +
  "-" +
  String(date.getDate()).padStart(2, "0");

// 本日のactivityを取得
const url = `https://api.fitbit.com/1/user/-/activities/date/${today}.json`;
const option = {
  method: "GET",
  headers: {'Authorization': `Bearer ${TOKEN}`}
};

const response = await fetch(url, option).then(r => r.json());
console.log(response);

Goを用いて本日のActivityを取得するサンプル

Goで同様の内容のサンプルを書いてみたので、こちらもサンプルとして残しておく。

package main

import (
    "io/ioutil"
    "log"
    "net/http"
    "time"
)

func main() {
    today := time.Now().Format("2006-01-02")
    url := "https://api.fitbit.com/1/user/-/activities/date/" + today + ".json"

    // 取得したtokenをセット
    token := ""
    bearer := "Bearer " + token

    req, err := http.NewRequest(http.MethodGet, url, nil)
    if err != nil {
        log.Println("Error new requst: ", err)
    }

    req.Header.Add("Authorization", bearer)

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        log.Println("Error response: ", err)
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        log.Println("Error while reading: ", err)
    }

    log.Println(string([]byte(body)))
}

Pythonを用いて本日のActivityを取得するサンプル

Pythonで同様の内容のサンプルを書いてみたので、こちらもサンプルとして残しておく。
ライブラリとして requests を利用している。

from datetime import datetime
import requests


def main():
    # 本日の日付
    today = datetime.now().strftime('%Y-%m-%d')

    url = "https://api.fitbit.com/1/user/-/activities/date/" + today + ".json"

    # 取得したtokenをセット
    token  = ""

    headers = {
        "Authorization": "Bearer {}".format(token)
    }

    r = requests.get(url, headers=headers)
    print(r.json())



if __name__ == "__main__":
    main()