月曜日, 5月 12, 2025
No menu items!
ホーム ブログ ページ 2326

Steam -Rec Roomで利用可能になりました



Rec Room Steamで利用可能になりました!
RECルームは、一緒にゲームを構築してプレイするのに最適な場所です。チャット、たむろしたり、何百万もの部屋を探索したり、私たちと共有する新しいものを構築してください!クラブに参加してください!


フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

次のitch.ioの作成者の日は、今年の11月24日金曜日です!


このブラックフライデーのいくつかの取引を盛り上げる準備をして、あなたがそれをしている間、あなたのお気に入りの開発者に感謝してください。うん、今週の金曜日は次のitch.ioの作成者の日です! 24日金曜日の真夜中(太平洋時間)まで(太平洋時間)まで、サイトでの売り上げが削減されていません!

しかし、それは割引については何でしたか?まあ、何百ものゲーム、卓上RPG、資産、本などが週末を通して割引されます。クリエイターデイは24時間の24時間のみであることに注意してください。ただし、割引は28日火曜日の真夜中まで走ります。

クリエイターをサポートしてくれてありがとう!

この投稿をサポートしてください

この投稿は好きでしたか?教えてください

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

「Amazon ダブルポイント祭り」が明日スタート。Ankerのイヤホン/プロジェクターがお得に



「Amazon ダブルポイント祭り」が明日スタート。Ankerのイヤホン/プロジェクターがお得に

Amazonは、明日4月5日(土)0時から翌日6日(日)の23時59分まで、ポイント2倍還元になるキャンペーン「ダブルポイント祭り」を開催する。

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

高速SSD「Samsung SSD 9100 PRO」のヒートシンク付きモデルが登場、PS5でも使えるぞ!



高速SSD「Samsung SSD 9100 PRO」のヒートシンク付きモデルが登場、PS5でも使えるぞ!

 PCIe5.0 x4対応のNVMe SSD「Samsung SSD 9100 PRO」シリーズから、ヒートシンク付きモデル「9100 PRO with Heatsink」が発売された。ラインナップと価格は1TB「MZ-VAP1T0C-IT」(2万9980円)、2TB「MZ-VAP2T0C-IT」(4万6980円)、4TB「MZ-VAP4T0C-IT」(8万6980円)の3モデル。秋葉原では、パソコンショップアーク、オリオスペック、パソコン工房 秋葉原パーツ館、ツクモパソコン本店、TSUKUMO eX.で販売中だ。

「Samsung SSD 9100 PRO」シリーズから発売された「9100 PRO with Heatsink」

 発売されたヒートシンクなしモデルに続く、「Samsung SSD 9100 PRO」シリーズの新製品。最大読み出し速度1万4800MB/秒、最大書き込み速度1万3400MB/秒の高速スピードを誇るPCIe5.0×4インターフェースに対応するNVMe M.2 SSD。薄型のヒートシンクを備えるためPlayStation 5でも利用できる。

1TB、2TB、4TBの3モデルが販売中。PlayStation 5でもそのまま利用できる

 その他、基本スペックは変わらずSamsung製5nmプロセスコントローラーおよびSamsung V NAND TLC(V8)を搭載。ランダム読み出しと書き込み速度は2200K/2600K IOPSとなっている。



フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

tj-actions のインシデントレポートを読んだ


先日起きた tj-actions や reviewdog のセキュリティインシデントのレポートを読みました。

https://unit42.paloaltonetworks.com/github-actions-supply-chain-attack/

その内容を個人的な検証結果や感想を挟みつつかいつまんで書きたいと思います。
詳細は原文を読んでください。

なお、侵害された repository 及び tag は全て修正され、盗まれた Personal Access Token (PAT) も revoke されているはずです。

攻撃の流れ

tj-actions/changed-files が侵害されるまでに複数の PAT の流出及びリポジトリの侵害が連鎖的に起こっています。
つまり tj-actions/changed-files が直接的にいきなり侵害されたというより、複数のリポジトリをいわば踏み台のようにして侵害したという感じでしょうか。
攻撃者は PAT が盗まれたりした GitHub Account とは別に複数の GitHub Account を使って攻撃を行っています。
ちなみに今回見つかった悪意のあるユーザーは全て削除されているようです(それはそう)。
まぁインシデントと同時期にアカウントが削除されているので調査で怪しいアカウントとして目をつけられたというのもあるでしょう。

  1. spotbugs/sonar-findbugspull_request_target workflow が悪用され、 secrets に登録していた PAT が流出
  2. PAT を悪用して spotbugs/spotbugs に悪意のあるユーザー jurkaofavak を招待
  3. jurkaofavak が spotbugs/spotbugs にブランチ hewrkbwkyk を一瞬作成し、即削除。その push event で悪意のある workflow が実行され、 secrets に登録していた spotbugs/spotbugs のメンテナの PAT が流出。流出した PAT は reviewdog/action-setup の write 権限を持っていた
  4. reviewdog/action-setup の Fork を作成し、 Fork に悪意のある commit を作成
  5. reviewdog/action-setupv1 tag を書き換え、 Fork repo の悪意のある commit に向ける
  6. tj-actions/eslint-changed-files が内部的に侵害された reviewdog/action-setup@v1 を実行しており、 tj-actions/changed-files のリポジトリで tj-actions/eslint-changed-files が使われていたため、侵害されたコードが tj-actions/changed-files で実行され、 Machine User tj-bot-actions の PAT が盗まれる
  7. tj-actions/changed-files の Fork を作成し、悪意のある commit を作成
  8. tj-bot-actions の PAT を使って tj-actions/changed-files の全タグが Fork の悪意のある commit に書き換えられる

攻撃者は tj-actions/changed-files に依存する coinbase/agentkit を標的にしたと思われますが、幸いにも agentkit から secret が流出したりすることはなかったようです。

Our team also discovered that the initial attack targeted Coinbase.
The payload was focused on exploiting the public CI/CD flow of one of their open source projects (agentkit) probably with the purpose of leveraging it for further compromises.
However, the attacker was not able to use Coinbase secrets or publish packages.

pull_request_target の悪用

Surprise! Pull_request_target

pull_request_target は GitHub Actions の Workflow をトリガする event の一つですが、 public repository で使うにはセキュリティ的に非常に注意が必要です。

https://securitylab.github.com/resources/github-actions-preventing-pwn-requests/

https://owasp.org/www-project-top-10-ci-cd-security-risks/CICD-SEC-04-Poisoned-Pipeline-Execution

通常、 pull_request event では Fork からの pull request の場合 workflow 実行時に secret が渡りませんし、 GitHub Actions token も read only になります。
しかし、 pull_request_target では secret が渡りますし GitHub Actions token にも write 権限を付与できます。
workflow 自体は default branch を参照するので改竄できませんが、 workflow で実行しているリポジトリ内のスクリプトは pull request で改竄できるので、悪意のあるコードが実行できてしまいます。

そのため、 public repository では基本 pull_request_target は使わない、 使う場合は workflow 以外のリポジトリのコードを参照しないものに限定するべきでしょう。

なお、自分は以前 pull_request_target を活用してセキュリティを改善する記事を書いていますが、これはあくまで private repository を前提としているため、今回のような問題はないと思います。

https://zenn.dev/shunsuke_suzuki/articles/secure-github-actions-by-pull-request-target

reviewdog の auto invite の悪用

Adnan also pointed out that reviewdog uses an auto-invite mechanism.

reviewdog organization では contributor を自動で organization に invite し write 権限を付与する仕組みがありました。
インシデント後は止められています。

https://github.com/reviewdog/reviewdog/issues/2079#issue-2929729316

Disabled automated inviter workflow.

なお、自動 invite では reviewdog 本体への write 権限は付与されず、 reviewdog 本体が直接的に攻撃されることはなかったようです。

Note: Those contributors do not have write access to the main reviewdog repository or related core repositories (e.g., errorformat).

reviewdog は非常に人気のある OSS ですし、非常に多くの Action があります (執筆時点で 52 個の public リポジトリ)。

https://github.com/orgs/reviewdog/repositories

これらのリポジトリをメンテするのは大変ですし、メンテを継続するために積極的に write 権限を渡したくなるのも理解できます。
ただ、今回はそこを悪用されてしまった形であり、今回のインシデントによってコントリビューターに write 権限を付与するハードルが更に上がってしまったかと思います。

ユーザーからしたらインシデントが収束し自動 invite が止められたらめでたしめでたしという感じですが、メンテナからしたら今後のメンテをどうしていくのかという問題は残っており、これは難しい問題です (reviewdog どうこうというより、一般論として) 。

OSS Project を如何に持続的にメンテしていくかは常に難しい問題ですね。

Fork network の悪用

After a user forks a repository in GitHub, they can add their commits to the fork.
These commits are added to the “fork network” and can be referenced from the original repository.

元のリポジトリとその Fork は Fork network と呼ばれ、それらのリポジトリのcommitは Fork network の他のリポジトリからも参照できます。
今回の検証のためにリポジトリを 2 つ作りました。

  1. https://github.com/szksh-lab/test-action : Original
  2. https://github.com/szksh-lab-2/test-action : Fork

commit a0728ffde5a5f398ff82357930f5ad5145bdba6f は Fork repo の commit ですが、 original repo からも参照できます。

多分この黄色い警告を皆さんも見たことがあるかと思います。

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Original の action のバージョンとして Fork の commit を指定できます。

- uses: szksh-lab/test-action@a0728ffde5a5f398ff82357930f5ad5145bdba6f

しかも、 original repo に fork repo の commit を指定して tag も作れます。

https://github.com/szksh-lab/test-action/releases/tag/v0.1.0-compromised

もっとも、 tag を作れるなら original repo に commit を push することもできるので態々 fork の commit に向ける必要もないようにも思えますが、 original に commit を push する必要がなくなるのでより痕跡を残さずに済みます。
tag の書き換えは free plan では audit log に残らないらしく、そのため fork の commit に向けるようにすれば audit log に何も残さずに改竄ができます。

Fork repo を消しても Fork network に Fork repo の commit は残るので SHA を指定すれば参照できますし、どの repo の commit なのか trace するのが難しくなります。

なので、例えば Fork から action を update する PR が来てしかも version が full length commit hash で固定されているような場合、本当にその SHA がその action の安全な SHA なのか確認する必要があります。

一見 v4.2.2 のように見えて実は危険な SHA

uses: actions/checkout@> 

これを手作業で確認するのは大変ですが、 pinact には –verify option があります。 (突然の宣伝)

https://github.com/suzuki-shunsuke/pinact

--verify option をつけるとコメントに書かれた version と SHA が一致しない場合エラーになります。

無効な Email を設定して User を隠蔽

Hiding GitHub Users

攻撃者は valid なメールアドレスでアカウントを作成し、悪意のあるcommitを生成した後、 GitHub の Policy で禁止された匿名の email に変更することでその後の行動を trace できなくした可能性があるようです。
匿名の email が使われると GitHub はそのユーザーを public からは見えなくするそうです。
攻撃者はこれを悪用し、 trace を困難にしたと推測しています。

ただ、引用された Policy を見ても public から見えなくするとは書いてないですし、実際にどういう挙動になるのかは自分には良くわかりません。

https://docs.github.com/en/site-policy/acceptable-use-policies/github-acceptable-use-policies#4-spam-and-inauthentic-activity-on-github

commit impersonation

We assume that although the attacker had a GitHub token with write permission to the repository, they preferred to disguise their malicious commit by impersonating a valid user in a valid pull request — a technique called “commit impersonation.”

攻撃者は commit impersonation というテクニックを使って valid な他のユーザーになりすましてcommitを生成したようです。
まぁ今回の攻撃を見る限りなりすまさなくても攻撃は成立している気がしますが、後から気づかれにくくする意図があったのでしょうか?

追記: 良く考えたら後から調べたときにユーザーと紐づかない commit や deleted account と紐づく commit は怪しいし、 Renovate になりすますのは妥当な気もしてきました。まぁ Renovate でも不自然ですけど

https://github.com/0xdead8ead/gitfraud

なりすましはかなり簡単で commit 時に email を @users.noreply.github.com としてしまえばその commit は指定したユーザーに紐づいてしまいます。

git config user.email ユーザー名>@users.noreply.github.com

今回の攻撃では攻撃者は Renovate になりすましたようですが、 Renovate のような App でも renovate[bot]@users.noreply.github.com とすればなりすませてしまいます。

この対策としては Branch Ruleset で commit への署名を必須にするのが有効です。
自分の場合、ほぼ全てのリポジトリの全ての branch で commit への署名を必須にしました。

GitHub API を使えば一括で Branch Ruleset を設定できます。

https://github.com/suzuki-shunsuke/batch-task/tree/main/require-all-branches-sign

また、 Pull Request の CI で sign されているか check し、されていない場合は PR にコメントすることでコントリビューターに署名を強制しています。

https://github.com/szksh-lab-2/test-github-action/pull/305#issuecomment-2775492280

自分で「署名してください」っていうのはストレスなので CI で自動化しています。

ちなみにこの workflow では例外的に pull_request_target を使っていますが、リポジトリ中のコードは参照していませんしリスクは低いと思っています。

攻撃者は攻撃の機会を伺っていた?

For instance, there is a three-month gap between when the attackers leaked SPTBGS_MNTNR’s PAT and when they abused it.

one possible hypothesis is that the attackers monitored the projects dependent on the tj-actions/changed-files and waited for an opportunity to compromise a high-value target.

攻撃者が spotbugs のメンテナの PAT を奪取してからそれを悪用するまで 3 ヶ月空いています。
これは仮説ですが、攻撃者は tj-actions/changed-files に依存するリポジトリのリストをウォッチし、攻撃する価値の高いリポジトリが tj-actions/changed-files を使うまで機会を伺っていたのかもしれません。

参考

https://github.com/reviewdog/reviewdog/issues/2079

https://www.wiz.io/blog/new-github-action-supply-chain-attack-reviewdog-action-setup

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

クリスコーナー:CSSに近づく – Codepen


Codepenで最近、CSSでカスケード層を使用しています。かなり明確な非複雑なユースケースは、1つのクラスを物に適用する傾向があることです。 「ライブラリ」コンポーネントが含まれます。したがって、プロトタイプのボタンを想像してください .button スタイリングを適用するセレクター。しかし、このライブラリコンポーネントも 受け入れます クラスだから 使用法 必要に応じて、コンポーネントが独自のスタイルを適用できます。

このような:

Reactコンポーネントを構築しているため、次のように表現しています。

そのため、特異性がまったく同じ2つのセレクターがあります。どちらが勝ちますか?注文の供給に帰着します。そして、正直に言うと、コンポーネントをCodepenで使用できるすべてのシナリオで、それがどのように再生されるかは本当にわかりません。スタイルは、時にはバンドルされるかもしれません 違う プロセスをビルドし、CSSファイルを組み合わせた、または動的にロードすることもあります。それは、私たちが通過するクラスセレクターの特異性を人為的に増やしたとき、確実に勝つために時折状況につながりました。 .myClass.myClass、 例えば。それは愚かです。

代わりに、ライブラリコンポーネントに、カスケード層を介して意図的に強力なスタイルを持たせることができます。したがって、私たちの「ルート」スタイルは次のようになります。

@layer library {
  .root {

  }
}

単独で、それはうまくいきます。それはを意味します .myClass ものは常に勝ちます そして階層化されたスタイルは、レイヤードスタイルよりも常に強力です。しかし、私たちを正直に保つために、私たちは今後の予想される方法で物事をスロットできるように注文をセットアップしました:

@layer library, root, page, component;

それは私たちのグローバルなCSSにあり、私たちが階層化を使用したいが、特定のレベルの強度で、それらのレベルを突くようなものです。

レイヤーは、サブレイヤー化を行うことができる十分なAPIです。 @layerライブラリ{}すべてのライブラリコンポーネントをラッピングするのではなく、実際にボタンに対してこのようなことを行います。

@layer library.Button {

}

つまり、ライブラリレベルでまだスロットになっていることを意味しますが、ある時点で必要な場合は、コンポーネントの順序を宣言することができます。私たちはまだそれを必要としていませんが、それは正しい動きのように感じます。

私は人々がどのように考えることができるかを絶対に見ることができます カスケード層は役に立たない。 (マヌエル・マトゾヴィッチは実際にはこれを考えていませんが、彼は人々がどのようにできるかについてのコードでいくつかのポイントを挙げています。)彼らは、ここで自分のユースケースに出くわすまで、あなたがプロジェクトに「振りかける」ことができるものと同じくらいひどく役に立たなかった。ほとんどの場合、私はそれを「ブートストラップをレイヤーに入れ、自分のスタイルを解き放ちます」と考えました。しかし今、私は「具体的には一般的に平らに保ち、競合しているときは、特異性の向上の代わりにレイヤーを使用します」と考え始めています。


できるので、いくつかのボーナスCSSリンクを実行しましょう。

  • アンディ・ベル: 現代のCSSでテーマに近づいている方法。カスタムプロパティは重く、「テーマ」が限られたセット(「フレア」層)を上書きして最大限の影響を与えることができるようになります。
  • アンドリュー・ウォルポール: 良いCSSを書くための意見。基本的にベストプラクティスのリスト。私は最後のものが本当に好きです:「しないでください。貼り付け。CSS。」
  • クリスチャン・ドドフ: CSSはあなたを刑務所に入れることができます。ネタバレ、それはブラウザがネストされたリストでカウンターをレンダリングする方法についてです。法的文書では、潜在的なブラウザの違いをレンダリングするリスクを冒すことはできず、数字をハードコードする必要があります。
  • ジョシュ・コモー: CSSの秘密メカニズム。たった1つの素晴らしい引用: 「レイアウトアルゴリズムは関数のようなものであり、私たちが書くCSSはそれらの関数に渡す議論です」
  • (匿名?) `if/else`ロジックの代わりに、css ‘の唯一の子供`を使用します。時々、if/else logic for Viewは、CSSレベルよりもHTMLレベルでより理にかなっていると感じます。しかし、彼らはここでTailwindを使用しているため、そのロジックをHTMLレベルに置いています。
  • アダム・アーガイル: 頭のない、骨なし、肌のない、活気のないUI。 Adamが言うように、これらは誰もがUIフレームワークを説明するために積極的に使用している用語ではありませんが、おそらくそうすべきです。なぜなら、これらは非常に異なる理由で選択するかなり大きな区別であるからです。

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

色表現に優れた4Kモニター「Dell S2721QS」がAmazonにて17%オフで販売中



鮮やかな映像表現が特徴のIPSパネルを搭載
Dellの4Kモニター「S2721QS」がAmazonにて17%オフで販売中だ。

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

AWS MCPを使って公式ドキュメントからClaudeに回答してもらう #claude – Qiita



AWS MCPを使って公式ドキュメントからClaudeに回答してもらう #claude - Qiita

はじめに

awslabs の GitHub で awslabs/mcp が公開されました。

この中で AWS Documentation MCP Server が提供されていました。これを使えば、Cursor や Claude Desktop などのMCPクライアントから LLM が AWS の公式ドキュメントを探してきて、その情報を元に回答してくれそうです。実際に試してみた内容を共有します。

A server for accessing AWS documentation and best practices.

  • Search Documentation using the official AWS search API
  • Get content recommendations for AWS documentation pages
  • Convert documentation to markdown format
    (ドキュメントから引用)

以下の公式ドキュメントに従い設定します。

前提

環境

  • Mac OS 14.5
  • Claude Desktop (Claude 3.7 Sonnet)

準備

awslabs/mcp はPythonで書かれており、公式の手順ではパッケージマネージャーの uv が必要になります。

  • uv のインストール(Astral公式ドキュメントまたはGitHub参照)
  • Python 3.10 以上 (公式では uv python install が推奨されてますが asdf のPythonでも動きました)

設定方法

[1] Claude Desktop の「設定>開発者」から「構成を編集」

[2] claude_desktop_config.json に以下を記載して保存

{
  "mcpServers": {
    "awslabs.aws-documentation-mcp-server": {
        "command": "/Users/{username}/.local/bin/uvx",
        "args": ["awslabs.aws-documentation-mcp-server@latest"],
        "env": {
          "FASTMCP_LOG_LEVEL": "ERROR"
        },
        "disabled": false,
        "autoApprove": []
    }
  }
}

commanduvx へのフルパスを設定しています。
公式ではuvxのみですが、Claude Desktopでパスが通らないこともあるためです。

[3] Claude Desktopを再起動する

再起動後、図のようにアイコンが表示されていれば正しく設定されています。
クリックすると利用できるツールが表示されます。例としてread_documentation は AWS Documentation MCP Server から提供されているツールです。


設定は以上になります。

使ってみる

Claude 3.7 Sonnetが東京リージョンで使えるか聞いてみます。2025/4/4 時点では利用不可です。

聞いてみると以下のようにMCPサーバーがていkyするツールを使って調べ始めます。

ツールを使う際には以下のようなユーザーへの確認が行われます。JSONの設定でautoApproveを設定することも可能なようです。

最終的には以下のように正しい回答を出してくれました。

途中、クロスリージョン推論のことも調べ出したので少し時間がかかりましたが、公式ドキュメントをもとにした回答は安心感があります。

何が嬉しいのか

RAGとの違い

この例だけを見ると、RAGと同じように思われる方もいるかもしれません。

一般的なRAGの仕組みでは、検索モデルと対象のドキュメントを用意して、LLMに情報を与えて回答してもらう必要があります。そのため、検索精度によっては正しい情報を取得できず、LLMの回答が正しくない、あるいは回答するのに十分な情報が集まらず判断できないということもありました。
また、ドキュメントを用意するにも、スクレイピングなどのデータ整備が必要でした。

今回の方法では、MCPクライアントのLLMが、エージェントとして自律的に必要な情報をドキュメントから集めてきて、回答を生成してくれます。そのため、ユーザーからの質問に一度の問いで回答してくれる確率が高まります。また、複雑な問いに対してもエージェントによる思考プロセスが挟まるので、RAGよりも正しい回答が期待できそうです。

コスト

Claude Desktopは従量課金ではなく定額で利用できるのも嬉しいポイントです。
VSCode Insider も GitHub Copilot を使えば同様の恩恵が受けられそうです。

終わりに

簡単ですが、AWS MCPを使った方法をご紹介しました。
AWSの公式ドキュメントに触れる機会が多い方はぜひ試してみてください。

また、AWS MCPからは他にも複数のMCPサーバーが提供されていますので、興味がある方はそちらも試してみてください。



フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

【モンハンワイルズ小ネタ】今週のまとめ! 「タマミツネ」の攻撃モーションや飯テロな「焚き火料理」を紹介 – GAME Watch


 GAME Watchではカプコンのプレイステーション 5/Xbox Series X|S/PC(Steam)用ハンティングアクションゲーム「モンスターハンターワイルズ」に役立つ「小ネタ」を掲載している。

 今週(3/31~4/5)は、見た目が美味しそうな飯テロすぎる「焚き火料理」を掲載。また「モンハンワイルズ」で初登場となった「護竜」のフィールドにおける生態描写を紹介してきた。

 さらに4月4日12時に行なわれた無料タイトルアップデート第1弾より「タマミツネ」の攻撃モーションを紹介。「モンハンワイルズ」でのハンターライフに少しでもお役に立てれば幸いだ。



フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

『inZOI』発売初週で早くも販売100万本を突破。開発テストを兼ねた早期アクセス版ながら優れたグラフィックや積極的なフィードバックへの対応で期待を集める




開発テストを兼ねた早期アクセス版ながら優れたグラフィックや積極的なフィードバックへの対応で期待を集める

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0