私が歌川です

@utgwkk が書いている

地震についてのNHKの配信を見ていたら、揺れる映像を見て酔ってしまったのだろうか、調子が悪くなってきた。3D酔いしやすい体質だけど、ゲームだけでなく実写の映像でも酔うのは厳しい。

シャワーを浴びたらだいぶましになった。


2018年6月の大阪の地震のときは、ちょうど震源地の近くにいたのだけれど、そんなに被害を被ったという感じでもなかったと思う。大阪の友だちの家に泊まっていたら揺れて目が覚めて、コンビニからは飲料水が消えていた。阪急と京阪を乗り継いで京都まで帰ってきたのを覚えている。家はとくに荒れていなかった。

家に飲料水の備蓄はあるけど、食料がぜんぜんないことに気づいたので、明日にでも買ってこようかしら。

理科系の作文技術

理科系の作文技術(リフロー版) (中公新書)

理科系の作文技術(リフロー版) (中公新書)

  • 作者:木下是雄
  • 発売日: 2016/10/14
  • メディア: Kindle版

ものをはっきり言う、とか、事実と意見を区別する、という章が一番いろいろな人にとってためになると思う。どこまでが事実でどこからが意見なのかがはっきりしないまま進行する事例をよく耳にする。自分でも気をつけたい。

英語圏でも受動態を使うのを避ける運動があるのが興味深かった。Grammarlyで英文を添削してもらうと、ひたすらに受動態を修正させられる、という話をどこかで聞いたことがある。

作文技術はこの本を読むだけでは定着せず、文章を書く機会がなければ磨かれないと思う。私はこのブログに毎日のように記事を投稿しているが、それらのうち分かりやすい文章に仕上がったものがどれくらいあるだろうか。ブログは気軽な気持ちで書きたいけど、誤解を招くような表現はできる限り使いたくない。

書いた文章をいろいろな人に読んでもらうのが結局よいみたいな話もあった。自分が書いたものをレビューしてもらえるのはありがたいことである。

GitHub Actionsを使ったDDoSに巻き込まれた

事例集です。

きのう、GitHubの通知を見たら、個人のリポジトリに My First PR というタイトルのPRが来ているのに気づいた。PR出すところを間違えたのかな、と思って見てみたがどうも様子がおかしい。

  • prog という名前のバイナリファイルを置いている
  • .github/workflows/ci.yml*1の中身をガッと書き換えている
    • on: [pull_request] でworkflowを起動している
    • 20並列でjobが走るようにmatrixを設定している
      • fail-fast: false なので、どれか1つのmatrixが失敗しても他のジョブは続行される
    • base64 encodeした文字列をdecodeしてevalしている
      • ドメインの名前解決を行ったあと ./prog を実行するコマンドにdecodeされた
  • PRをめちゃくちゃな回数closeしてreopenしている
  • PRを出したユーザーではなく、リポジトリのオーナーがcommitしたかのようにcommit logを偽装している

走ってるworkflowリストを見にいったらめっちゃenqueueされている!! ひとまず当該PRを出してきたユーザーをブロックして、enqueueされたworkflowを全部キャンセルした。

当該ユーザーのリポジトリ一覧を見ると、めちゃくちゃforkして同様のPRを出しまくっている*2。これはいかんなーと思ってabuse reportを書いて送信した。

他の人は認識してないのか、とちょっとTwitterを検索してみると、GitHub ActionsがDDoSに使われているという @github へのメンションがあった。

これに対してGitHubの中の人が反応していた。

どうやら状況を認識されたようで、中の人の反応から数十分ぐらい待ったら当該ユーザーのアカウントが消えた。

リプライツリーには、このリポジトリのスクリプトを使って攻撃を仕掛けているという報告もあった。片っ端からpublicなリポジトリを見つけてはforkしてPRを作りまくるというのをやっていたようだ。


GitHub Actionsについてちょっと考えてみると、任意コードをいくらでも並列に実行できる環境があちこちに転がっているということになって、攻撃者にとっては魅力的ではありそう。そういう使い方をしないでほしい。

しかし、生きてるといろいろありますね。

*1:テストを走らせるworkflow YAML

*2:最後に見たときは250個ぐらいforkしてた

ゲーミングアイコン

無彩色ベースだと思ったよりゲーミング感が出ない。

f:id:utgwkk:20201201150532p:plain

.gaming {
  animation: 0.5s infinite gaming;
}

@keyframes gaming {
  0% {
    filter: hue-rotate(0deg);
  }
  50% {
    filter: hue-rotate(180deg);
  }
  100% {
    filter: hue-rotate(360deg);
  }
}