投稿者: manualmaton Page 3 of 281

統率者メモ:2026/01/10

かなり久しぶりに統率者デッキをいじりました。

霊気走破の構築済みなどからも入れ替え。

統率者

  • 《高名な者、ミシュラ/Mishra, Eminent One(BRC)》

デッキ

クリーチャー

  • 《K-9 マークI型/K-9, Mark I(WHO)》
  • 《湖に潜む者、エムリー/Emry, Lurker of the Loch(BRC)》
  • 《発明の領事、パディーム/Padeem, Consul of Innovation(BRC)》
  • 《練達の変成者/Master Transmuter(BRC)》
  • 《オートンの兵士/Auton Soldier(WHO)》
  • 《無情な屍技術師/Ruthless Technomancer(NEC)》
  • 《ゴブリンの溶接工/Goblin Welder(C14)》
  • 《ゴブリンの修繕屋スロバッド/Slobad, Goblin Tinkerer(BRC)》
  • 《ゴブリンの技師/Goblin Engineer(MH2)》
  • 《大胆な再製者/Audacious Reshapers(BRC)》
  • 《爆発炉のヘルカイト/Blast-Furnace Hellkite(BRC)》
  • 《歩行格納庫の自動機械/Stridehangar Automaton(DRC)》
  • 《クルーグの災い魔、トラクソス/Traxos, Scourge of Kroog(BRC)》
  • 《ワームとぐろエンジン/Wurmcoil Engine(SOM)》
  • 《飛行機械の組立工/Thopter Assembly(MOC)》
  • 《サイバーマン軍団/Cybermen Squadron(WHO)》
  • 《金属製の巨像/Metalwork Colossus(BRC)》
  • 《求道の達人、サイラス・レン/Silas Renn, Seeker Adept(BRC)》
  • 《ウェザーライトの艦長、ジョイラ/Jhoira, Weatherlight Captain(BRC)》
  • 《テルカーの技師、ブルーディクラッド/Brudiclad, Telchor Engineer(BRC)》
  • 《増殖されし者、マスター/The Master, Multiplied(WHO)》

インスタント

  • 《知識の渇望/Thirst for Knowledge(BRC)》
  • 《発明品の唸り/Whir of Invention(AER)》
  • 《シンクロ解除/Desynchronization(ACR)》
  • 《削剥/Abrade(BRC)》
  • 《ラクドスの魔除け/Rakdos Charm(EOC)》
  • 《魔性/Bedevil(BRC)》

ソーサリー

  • 《加工/Fabricate(M10)》
  • 《ロリアンの発見/Lorien Revealed(LTR)》
  • 《テリシアの終焉/Terisiare's Devastation(BRC)》
  • 《大群への給餌/Feed the Swarm(BRC)》
  • 《冒涜の行動/Blasphemous Act(BRC)》
  • 《消却/Delete(WHO)》
  • 《財宝発掘/Trash for Treasure(C16)》

エンチャント

  • 《武器製造/Weapons Manufacturing(EOE)》
  • 《鏡割りの寓話/Fable of the Mirror-Breaker(NEO)》

アーティファクト

  • 《太陽の指輪/Sol Ring(PIP)》
  • 《虚無の呪文爆弾/Nihil Spellbomb(BRC)》
  • 《旅人のガラクタ/Wayfarer's Bauble(BRC)》
  • 《改良式鋳造所/Retrofitter Foundry(DRC)》
  • 《ディミーアの印鑑/Dimir Signet(BRC)》
  • 《ラクドスの印鑑/Rakdos Signet(BRC)》
  • 《忘却の偶像/Idol of Oblivion(BRC)》
  • 《順応する万能工具/Adaptive Omnitool(DRC)》
  • 《精神石/Mind Stone(BRC)》
  • 《マイコシンスの水源/Mycosynth Wellspring(BRC)》
  • 《胆液の水源/Ichor Wellspring(BRC)》
  • 《スカイクレイブの秘宝/Skyclave Relic(ZNR)》
  • 《ソニック・ドライバー/Sonic Screwdriver(WHO)》
  • 《忘却石/Oblivion Stone(BRC)》
  • 《溶鉄の大桶/Smelting Vat(BRC)》
  • 《スランの発電機/Thran Dynamo(BRC)》
  • 《石成エンジン/Lithoform Engine(BRC)》
  • 《面晶体の記録庫/Hedron Archive(BRC)》
  • 《ゴンティの霊気心臓/Gonti's Aether Heart(AER)》
  • 《イシュ・サーの背骨/Spine of Ish Sah(BRC)》
  • 《身代わり合成機/Simulacrum Synthesizer(BIG)》
  • 《税血の刃/Tithing Blade(LCI)》
  • 《呪われた鏡/Cursed Mirror(WHO)》
  • 《時の篩/Time Sieve(2XM)》

プレインズウォーカー

  • 《屑鉄の学者、ダレッティ/Daretti, Scrap Savant(C16)》

基本土地

  • 3《島/Island》
  • 3《沼/Swamp》
  • 3《山/Mountain》
  • 《教議会の座席/Seat of the Synod(BRC)》
  • 《囁きの大霊堂/Vault of Whispers(BRC)》
  • 《大焼炉/Great Furnace(BRC)》
  • 《モリアの坑道/Mines of Moria(LTR)》
  • 《血の墓所/Blood Crypt(DIS)》
  • 《湿った墓/Watery Grave(RAV)》
  • 《轟音の滝/Thundering Falls(MKM)》
  • 《硫黄泉/Sulfurous Springs(M10)》
  • 《Underground Sea(3ED)》
  • 《闇滑りの岸/Darkslick Shores(SOM)》
  • 《黒割れの崖/Blackcleave Cliffs(SOM)》
  • 《竜髑髏の山頂/Dragonskull Summit(M12)》
  • 《水没した地下墓地/Drowned Catacomb(M10)》
  • 《銀色険の橋/Silverbluff Bridge(BRC)》
  • 《霧霊堂の橋/Mistvault Bridge(BRC)》
  • 《鉱滓造の橋/Drossforge Bridge(BRC)》
  • 《燻る湿地/Smoldering Marsh(BRC)》
  • 《窪み渓谷/Sunken Hollow(BRC)》
  • 《崩れゆく死滅都市/Crumbling Necropolis(BRC)》
  • 《風変わりな果樹園/Exotic Orchard(BRC)》
  • 《ザンダーの居室/Xander's Lounge(SNC)》
  • 《統率の塔/Command Tower(SNC)》
  • 《産業の塔/Spire of Industry(DRC)》
  • 《血染めのぬかるみ/Bloodstained Mire(ONS)》
  • 《汚染された三角州/Polluted Delta(ONS)》
  • 《フォモーリの宝物庫/Fomori Vault(BIG)》
  • 《アカデミーの廃墟/Academy Ruins(DRC)》
  • 《ヨーグモスの墳墓、アーボーグ/Urborg, Tomb of Yawgmoth(PLC)》
  • 《灰のやせ地/Ash Barrens(BRC)》

相も変わらず「ブラケット4に近い3」。身内卓だから許されるデッキです。ウルザデッキと違って使って楽しいデッキなので回している形。

先行首府戦略とラウンド行動。(ガイアプロジェクト:イタル人チャレンジ)

様々なメリットがある強力な種族であるイタル人。特に学院の知識量が+3という他と一線を画す能力持ちではありますが

「それを一切建てない」

戦略で乗り切りました。

マジョリティは

  • 施設数
  • 衛星数

特に、この、施設数が厄介です。

なので、勝負所を3R目の「ガイア入植」を軸として、

  1. 1R目に首府を先行する
  2. 2R目に知識タイルを2つ得て経済基盤をもうける

という、溜めのラウンドを作りました。また、ラウンドブースターに得点系が多数あったので、それを多様。

この手の戦略での鍵となる「ガイア入植3点」を敢えて序盤に取らずC4を優先。

研究トラックも

  • 航法
  • ガイア
  • QIC

に絞ります。そして、隙あらば「パワートークン3個」のパワーアクションを優先。

そうした中の最終図はこの通り。

研究トラックはガイアと航法、予想通り。特に、ガイアゴールの13点もしっかり狙いました。

ラウンドブースターも研究所×3をしっかりと建てた上でパスしたため、学院を建てる必要は無く。(そもそも14施設なので、3同盟は保証されています)

結果は169点の、150点止まりから脱却できました。

  • Pros
    • ラウンド行動で37点
    • ラウンドブースターで25点
    • ガイアゴールに至っては13点
  • Cons
    • ガイア3点のタイミングを少し早めれば+10点はいけそうだった
    • 衛星数の見誤り

いずれにしても、快勝と言えるプレイングでした。

SSH不正アクセス元の傾向(geoiplookupの使い方)

「取り敢えず乗っ取れそうなサーバがあるなら攻撃する」ぐらいの勢いでSSHに接続する輩。その数は浜の真砂のなんとやらです。

そこでふと思ったのが「どこの国からの不正攻撃が多いのか」という興味。これを調べてみます。

環境

  • Ubuntu 24.04
  • 公開鍵認証
  • fail2ban導入済み

まず、現在のBANリストの傾向を見る

以下を使って調べます。

 sudo fail2ban-client status sshd | grep "Currently banned"

結果

   |- Currently banned: 8473

なんと、8500にも及ぶIP群。これらをnslookup / digで調べるのは非効率。そして、それらを一覧してシェルスクリプトを組むのもDNSのクエリーを食い潰します。

geoiplookupによる調査

そこで、geooplookupを用います。

インストールは以下の方法で。(筆者は好みでaptitudeを用いています)

sudo aptitude install geoip-bin geoip-database

インストール後、

geoiplookup 8.8.8.8

を入力。

GeoIP Country Edition: US, United States

が帰ってくればOKです。

では、GeoIPで実際に、fail2banが検知したものを見てみます。

sudo fail2ban-client status sshd | grep "IP list" | sed 's/.*IP list: \+//' | tr ' ' '\n' | while read ip; do geoiplookup "$ip" | cut -d: -f2; done | sort | uniq -c | sort -rn | head -n 20

こちらの結果は

   1716  CN, China
   1134  US, United States
    498  CA, Canada
    487  SG, Singapore
    476  VN, Vietnam
    394  ID, Indonesia
    344  HK, Hong Kong
    327  DE, Germany
    314  IN, India
    229  RU, Russian Federation
    212  KR, Korea, Republic of
    175  BR, Brazil
    167  GB, United Kingdom
    164  IR, Iran, Islamic Republic of
    149  NL, Netherlands
    124  FR, France
     95  JP, Japan
     86  TH, Thailand
     71  IT, Italy
     69  ES, Spain

ここから分かること

組織的なスキャンの存在:

上位10カ国だけで、全体の半分近く(約5,700件)を占めています。特定の地域に設置されたデータセンターやクラウドプロバイダーのIP群から、システマチックに攻撃が来ていることが推測できます。

「日本国内」がランク外の安心感:

上位10カ国に日本(JP)が入っていないことから、ターゲットを絞った攻撃というよりは、「世界中を無差別に絨毯爆撃しているボット」に私のサーバーが見つかり、それをFail2Banがコツコツと捕獲し続けている状況です。

まとめ

「vps一本でサーバを公開する」という宣言は自由ではありますが「これだけの悪意と戦う自由」との隣り合わせ。

こちらの記事を再掲しますが、

鍵交換認証にする理由
  • パスワードが送信されない
  • パスワード認証では、パスワード自体がネットワーク上を流れるため盗聴リスクがあります。
  • 鍵認証では、秘密鍵が署名を生成し、署名のみが送信されるため、秘密情報が直接送られることはありません
  • 総当たり攻撃に強い
  • パスワードは文字数が少ないと短時間で破られる可能性があります。
  • 鍵認証では、2048ビット以上の鍵が使われることが多く、現在の一般的なサーバの計算能力では事実上破ることが不可能です。
  • 盗聴されても再利用できない
  • 鍵認証では毎回異なるチャレンジに対して署名を行うため、録音や再送信による攻撃(リプレイ攻撃)が通用しません。
  • フィッシング耐性が高い
  • パスワード認証は偽サイトに入力してしまうリスクがあります。
  • 鍵認証では秘密鍵がローカルに保管されており、外部に送信されないためフィッシングに強いです。

は、心に留めておくべきSSHの運用です。

先行首府戦略(ガイアプロジェクト:イタル人チャレンジ)

かなり久しぶりのガイアプロジェクト投稿。

今回は

  • マジョリティ(最終目標)
    • ガイア
    • 宙域
  • 4番手で以下が先行されていました。
    • 地球人
    • バルタック
    • マッドアンドロイド

また、ラウンドブースターにパワートークンがあったので「イタル・先行首府戦略」を取ります。

第1R

この手法は「+2トークンのラウンドブースターがとれていること」も重要です。

能動パワーにより、パワー2エリアに8個のパワートークンがたまってる初期配置

というのも重要ですが

  1. 先行して交易所→首府へと改良。
  2. このとき、パワー2エリアに8個のトークンが出るよう、受動パワーを上げていきます。
  3. 鉱石2やクレジット7、知識2などと言った強力なパワーアクションは可トークンを燃やして(というよりガイアエリアに送って)おきます。
  4. 適当なところで研究でガイア惑星に配置。

このとき、他に鉱山を建てることができたら儲けものぐらいの勢いで、

「ガイアエリアに8以上のトークンがある」

状態でパスをします。

2R目以降

ガイアフェイズでパワートークンが戻ってくる…… のではなく、イタル人の首府解放で「このフェイズで破棄したパワートークン4個につき、研究タイルがもらえる(つまり、研究トラックが1つ進む)」を得ているため

「破棄したパワートークン8個で研究タイルがもらえる」を意味します。

ここでは

  • 1鉱石+1QIC
  • ガイア入植ごとに3点

を選択。あとは手なりで進め

ガイア惑星10個、宙域トップタイ。

ほぼまんべんなく同盟を使い切り

152点で終えられました。

地球人にガイアのゴールを取られたものの、研究所プラス3点の上級タイルがもらえたのでよしとします。

ProとCon

  • Pro
    • 先行首府戦略というギャンビットがハマった
    • 3同盟がとれた
  • Con
    • ガイアのゴールが間に合わず。
    • 首府を同盟に組めなかった

Growiのsystemdと起動スクリプトの修正。

以下の環境でGrowiを利用。

  • Growi v7.4.1
  • node v20.10.2
  • Ubuntu 24.04
  • Growi実行環境 /home/www-data/growi
  • Growi実行ユーザ:root

v7.4.1で以下の問題点にぶつかったため、growiのスタートアップスクリプトとsystemdで対処したときのメモです。

問題点

  • daemon-reload の遅延: 設定反映に約5分を要していました。
  • 起動プロセスの停滞: サービス開始から実際にアクセス可能になるまで約6分かかっていました。(以前は数秒)
  • 不安定な運用: 異常終了時の自動再起動設定がなく、ログも標準出力のみで追跡が困難でした。

旧設定

  • /etc/systemd/system/growi.service
[Unit]
Description = growi
After=network-online.target mongod.service
After=network.target elasticsearch.service
ConditionPathExists=/home/www-data/growi

[Service]
ExecStart=/home/www-data/growi/growi-start.sh
Restart=no
Type=simple

[Install]
WantedBy=multi-user.target
  • /home/www-data/growi/growi-start.sh
#!/bin/bash

# NVM environmentをロード (NVM_DIRを直接指定)
export NVM_DIR="/root/.nvm" # $HOMEの代わりに直接パスを指定
if [ -s "$NVM_DIR/nvm.sh" ]; then
  \. "$NVM_DIR/nvm.sh"  # nvmをロード
  # 次の行でスクリプト実行時のnodeとnpmのバージョンをログに出力
  echo "NVM for GROWI startup script loaded. Using Node version: $(node -v), npm version: $(npm -v)" > /tmp/growi_nvm_load.log
else
  # NVMが見つからない場合もログに出力
  echo "NVM_DIR ($NVM_DIR) not found or nvm.sh not found for GROWI startup script." > /tmp/growi_nvm_load.log
fi

cd /home/www-data/growi
NODE_ENV=production \
AUDIT_LOG_ENABLED=true \
FORCE_WIKI_MODE=private \
MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
REDIS_URI=redis://localhost:6379 \
PASSWORD_SEED=password \
npm run app:server

原因分析

以下、分析はGemini。

  1. systemdの過負荷: ConditionPathExists が大規模なディレクトリ(growi)をチェックする際、OSレベルでスキャン待ちが発生していた可能性。
  2. NVMの初期化コスト: 起動のたびに nvm.sh を読み込んでいた。これは数百行のシェルスクリプトを実行する処理であり、本番環境のサービス起動としては非常に重い。
  3. プロセスの二重管理: シェルスクリプトが npm プロセスを「子プロセス」として抱えていたため、systemdからの制御効率が悪かった。

何が問題だったのか(ボトルネックの正体)

今回の事象で最大の問題は、「本番環境のサービス起動に、開発環境のような動的な初期化プロセスを組み込んでいたこと」にありました。

具体的には、以下の3つの「待ち」が連鎖していました。

  1. システムチェックによる停滞 (ConditionPathExists) systemdのユニットファイルでGROWIのインストールディレクトリをチェックしていましたが、node_modules を含む膨大なファイル群をOSレベルでスキャンしに行った際、I/O待ちやカーネルレベルのオーバーヘッドが発生し、daemon-reload や起動そのものを著しく遅延させていました。
  2. シェルスクリプトによる二重起動のオーバーヘッド 起動のたびに nvm.sh をロード(source)し、Node.jsのバージョン判定を動的に行っていました。これは開発時には便利ですが、本番サービスとしては数百行のシェルスクリプトを毎回実行することになり、CPUリソースと時間を無駄に消費していました。
  3. プロセスの「親子関係」の不備 systemdから見ると、管理対象が「GROWI本体」ではなく「起動用のシェルスクリプト」になっていました。このため、GROWIが内部でハングアップしてもsystemdが検知できず、再起動もかからないという「運用上の死角」が生まれていました。

これを是正した設定ファイル

設定の前に!

  • 設定ファイルのバックアップ
sudo cp -pi /etc/systemd/system/growi.service /path/to/backup/growi.service.$(date +%Y%m%d)
sudo cp -pi /home/www-data/growi/growi-start.sh /path/to/backup/growi-start.sh.$(date +%Y%m%d)
  • diffによるバックアップ確認
sudo diff -u /path/to/backup/growi.service.$(date +%Y%m%d) /etc/systemd/system/growi.service 
sudo diff -u /path/to/backup/growi-start.sh.$(date +%Y%m%d) /home/www-data/growi/growi-start.sh

新しいファイル本体

  • /etc/systemd/system/growi.service
[Unit]
Description=GROWI Service
After=network-online.target mongod.service elasticsearch.service redis.service
Wants=network-online.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/home/www-data/growi
ExecStart=/bin/bash /home/www-data/growi/growi-start.sh
Restart=always
RestartSec=10
StandardOutput=append:/var/log/growi.log
StandardError=append:/var/log/growi-error.log

[Install]
WantedBy=multi-user.target
  • /home/www-data/growi/growi-start.sh
#!/bin/bash

# Node.jsバイナリへのパスを直接追加 (nvm.shのロードを回避して高速化)
export PATH="/root/.nvm/versions/node/v20.19.2/bin:$PATH"
GROWI_DIR="/home/www-data/growi"

cd $GROWI_DIR

# 環境変数の設定
export NODE_ENV=production
export AUDIT_LOG_ENABLED=true
export FORCE_WIKI_MODE=private
export MONGO_URI=mongodb://localhost:27017/growi
export ELASTICSEARCH_URI=http://localhost:9200/growi
export REDIS_URI=redis://localhost:6379
export PASSWORD_SEED=password

# execにより、このシェル自体をnpmプロセスに切り替える
exec npm run app:server

※このpasswordは、旧設定をそのまま利用します。でない場合、「Growiにログインできない」という地獄が待っています。

ファイル差し替え後の挙動

  • systemdリロード
sudo systemctl daemon-reload
  • growi再起動
sudo systemctl restart growi.service
  • growi再起動確認
systemctl status growi.service

active(running) を確認します。

その後、

  1. growiが起動する
  2. 新しいセッション(ゲストセッション)で管理者アカウントにログインできる
  3. 一通りの操作 (Wikiページの作成や編集)が行えればOKです。

設定の比較

■ systemd ユニットファイル (growi.service)

項目旧設定 (遅延の原因)新設定 (最適化済)
依存関係Afterが分散、Redisの指定なしAfter/WantsにRedis含め統合
パスチェックConditionPathExists (5分停滞の疑い)削除(高速化に寄与)
実行ユーザ指定なし (デフォルト)User=root / Group=root 明示
作業ディレクトリスクリプト内で cdWorkingDirectory で定義
再起動設定Restart=no (手動復旧が必要)Restart=always (10秒後に自動復旧)
ログ管理標準出力のみ (systemdログに混在)/var/log/growi.log に直接出力

■ 起動スクリプト (growi-start.sh)

項目旧設定 (遅延の原因)新設定 (最適化済)
Node環境構築source nvm.sh (数秒〜数十秒のロス)PATH を直接追加 (0秒)
環境変数\(バックスラッシュ)連結 (ミスしやすい)export 方式 (確実で読みやすい)
実行コマンドnpm run app:server (子プロセスとして実行)exec npm... (プロセスを置き換え)

4. 対処方法のポイント

  • 「動的な環境構築」から「静的なパス指定」へ: 本番サーバでは nvm を毎回読み込む必要はありません。パスを直接通すことが最速の解決策でした。
  • systemdの責務を明確にする: ディレクトリの存在チェックやパス移動はスクリプトではなく、ユニットファイルの WorkingDirectory 等に任せることで、systemdの管理サイクルが正常化しました。
  • プロセスの直結 (exec): OS (systemd) -> Bash -> npm となっていた階層を、exec で OS (systemd) -> npm に直結させたことで、シグナルの伝達やメモリ効率が改善しました。

今後のメンテナンス

Node.jsのバージョンを変更した際のみ、growi-start.sh 内の v20.19.2 というパス文字列を書き換えるだけで対応可能です。

【ログ記録】Next.js/Node.js環境を標的にしたサンドボックス脱出と情報窃取試行

2025年12月31日早朝に検知された攻撃ログ。前回の単純な破壊工作とは異なり、システムの内部情報(カレントディレクトリ等)を奪取し、それをクエリパラメータとして外部へ持ち出そうとする「偵察型RCE」の典型例だったのでメモをしておきます。

検知ログの概要(匿名化済み)

[Wed Dec 31 05:25:08 2025] [security2:error]
[ModSecurity: Warning] [ID "934100"] [Severity: CRITICAL]
[Message: Node.js Injection Attack 1/2]
[Matched Data: process.mainModule.require('child_process').execSync('pwd')]

攻撃ペイロードの構造解析

今回の攻撃者は、Next.jsのサーバーアクションや特定のSSR(サーバサイドレンダリング)の脆弱性を想定した、非常にテクニカルなコードを注入しています。

JavaScript実行環境への介入

var res = process.mainModule.require('child_process').execSync('pwd').toString().trim();
  • process.mainModule を経由して、サンドボックス化されている可能性のある環境から child_process(OS操作モジュール)を強制的に呼び出しています。
  • execSync('pwd') を実行することで、「現在、サーバのどのディレクトリでプログラムが動いているか」という、次なる攻撃(設定ファイルの奪取など)のための足がかりとなる情報を取得しようとしています。

Next.jsの内部挙動を悪用した情報の持ち出し

throw Object.assign(new Error('NEXT_REDIRECT'), {
    digest: `NEXT_REDIRECT;push;/login?a=${res};307;`
});

ここが非常に巧妙だと思った点。Next.jsがリダイレクトを処理する際の内部エラー NEXT_REDIRECT を意図的に投げ(throw)、そのエラーオブジェクトの中に、先ほど取得したディレクトリ情報(${res})を埋め込んでいます。

  • これにより、攻撃者のブラウザ(あるいはボット)は、/login?a=/home/www-data/... というURLに強制的に飛ばされます。
  • 攻撃者は自分のサーバのアクセスログを見るだけで、ターゲットサーバの内部パスを手に入れることができる仕組みです。

防御側の対応と結果

  • 検知: ModSecurity CRSの 934100(Node.js Injection)が、child_processexecSync といった危険な関数呼び出しを完全にパターンマッチング。
  • 阻止: 前回同様、アプリケーション層に到達する前に403遮断(設定により404応答)。
  • 分析: 攻撃者はRedmine(Ruby on Rails)に対し、あえてNode.js/Next.js用の高度なペイロードを投げています。これは「何で動いているか分からないが、とりあえず流行りの脆弱性コードを全部試す」という、 スキャンから自動攻撃までシームレスに移行するボット*の挙動です。

技術的考察:2025年を締めくくった「贈り物」

このログが示しているのは、攻撃側がいかに「多様な環境」を想定した多角的な攻撃を自動化しているかという事実です。

しかし、設置したModSecurityは、相手がRubyを狙おうがNode.jsを狙おうが、「外部から実行コードが注入される」という本質的な異常を逃しませんでした。

年始のお節群。

2026年も美味しい食事を味わいました。

日本海の味覚が詰まったお節。

お世話になっている方からの渾身のお節

など、今年は、いつになく美味しいものをいただけました。

年明けボードゲーム『大鎌戦役』ソロプレイ。

年明けのボードゲームとして選んだのは、物理の『大鎌戦役』

こちらが選んだのは『ザクセン帝国』。使ったマットはエンジニアリング。

「オートマ」の奥深さにやられました。

カードのオートマという気まぐれな意志決定機関に振り回され、私の思考回路が追いつかず、イージーでも辛勝した事実。

71-53で勝ってはいますが、オートマの星章獲得の速さで、終盤、なりふり構わず領土拡大にシフトしたため勝てた次第です。

そこで改めて思ったのが

Warhammerを嗜む友人の手によるキャラクターとメックの詳細なペイント」

の時点で神棚ではなく戦場の第一線で使うべきものです。

  • 海外から取り寄せたオーガナイザーによりセットアップと収納を劇的に楽にして
  • リアリスティックリソースとメタルコインという没入感

何よりも「物理的なコンポーネントを手にする満足感」。これは、面倒なアナログのセットアップを帳消しにするほどの楽しさです。

今年こそもう少し回したいと思った次第です。

年越しの組み立て。

「これをやらないとこの年は終わらない」と思った結果です。

2025年、プライムデーでしれっと手に入れていた『スリザリンの紋章/談話室レゴ』。

「巳の年の締めくくり」にこれ以上のものはない

思いつつ組み立て。

パーツの割に分厚いインストラクション。これは相当かかりそうだと思いながら

完成。映画1本分を消費する程度の組み立て時間でした。

展開することで、あの映画の談話室をイメージできるようになっているのが高ポイント。

きちんと壁掛けの強度もあるのも良かったです。

2025年のZENタイル。

今年は余裕ができたので、2025年の振り返りを改めてZENタイルで行おうと思います。

全体概要

前半が厳しく、後半に天気があり、加速したという形。

2025年前半の辛さ

年の前半は本当にキツかったです。仕事でもプライベートでも。

  • 150日の亡霊とのまっただ中で「いつまでこの課金は続くのか?」という不安
  • 猫の体調不良→虹の橋を渡るまでの辛さ

そんな中「絶対にこの結末は見届ける」という癸亥が生まれ、それを乗り切った中では

2025年後半の楽しさ

一番顕著だったのがThinkPadの購入により、行動範囲どころか思考回路が変わり

  • 散歩の習慣が復活
  • サーバ刷新という行動力

などが生まれ、仕事にも余裕が出てきたという次第。

  • 日記
  • WordPressの更新

も365日キチッと終えました。そんな中で、改めて思ったのが『アカギ』対市川戦

手段は選ばない
地獄を一度くぐっちまうことさ 南郷さん
ツキの女神はいつだって
その先にしゃがみ込んでいる

を体現した2025年でした。2026年はこの好調を維持できることを願うばかりです。

Page 3 of 281

Powered by WordPress & Theme by Anders Norén