はじめに こんにちは、GMO FlattSecurity株式会社セキュリティエンジニアの石川(@ryusei_ishika)です。 近年、ChatGPT や Gemini などの大規模言語モデル(LLM)をはじめとする生成AI の活用が急速に進んでいます。その一方で、これらのAI モデルに対する新たな攻撃手法である「プロンプトインジェクション」が注目を集めており、そのセキュリティリスクが問題視されています。 この記事では、プロンプトインジェクションが実際にどのような脅威となり得るのか、具体的な事例を交えながらそのリアルなセキュリティリスクを解説します。さらに、開発者や経営者が取るべき具体的な対策についても、分かりやすくご紹介します。 また、GMO FlattSecurityは日本初のセキュリティ診断AIエージェント「Takumi」や、LLMを活用したアプリケーションに対する脆弱性診
はじめに本当に悔しいし許せないし、エンジニアとして不甲斐ないです。2025年2月26日深夜にハッキングにあいました。どのように相手と繋がり、どのような手口でハッカーに資産を抜かれたか、コードベースで全てお伝えします。今後同じ被害に遭う方が少しでも減ることがあればこんな嬉しいことはないです。 コード解説、さらに対策案も書いていきます。もし他に良い対策案などあればコメントでご教示ください。ハッカーとのやりとりの流れハッカーとは Linkedin でブロックチェーンを使ったプロジェクトを手伝ってくれないかという連絡がりそこからやりとりが始まりました。そして移行の大まかな流れは下記のような感じです。 Linkedinでプロジェクトを手伝ってほしいと言う内容でDMがくるGithubリポを見て実装できそうか確認してほしいと言われる 自分のGithubアカウントを共有してプライベートリポジトリに
tech.iimon.co.jpTypeScript/JavaScriptでシングルトンオブジェクトが欲しいのであれば、 class Singleton { } export const singleton = new Singleton(); これをimportして使えば良いだけ。クラス自体をexportしなければ別のインスタンスを生成されることはないし、exportされたconstは常に同一のインスタンスであることが保証されている。 そもそも単一のインスタンスが欲しいだけならばclassを作る必要すらない。メソッドも直接オブジェクトに実装してしまえば良い。 class Singleton { name() { return 'singleton' } } export const singleton = new Singleton(); これは以下のようにも書ける export co
クイックサマリー:以前は、JavaScriptの正規表現は他の言語の正規表現に比べてパフォーマンスが劣っていたものの、近年改良が重ねられ、他の言語に見劣りしなくなっています。この記事では、Steven Levithan氏がJavaScriptの正規表現の歴史と現状を評価し、より読みやすく、保守性とレジリエンスに優れた正規表現の書き方をアドバイスします。 モダンJavaScriptの正規表現は、皆さんがよく知っている従来の正規表現と比べると随分進化しました。正規表現はテキストを検索して置き換えるツールとして非常に優れている一方で、書くのも理解するのも難しいという根強い評判があります(しかし今から説明するように、この認識は時代遅れかもしれません)。 正規表現に関するこの認識は、JavaScriptに特に当てはまります。PCREやPerl、.NET、Java、Ruby、C++、Pythonといっ
Deno Land Inc.は2024年10月9日、同社が開発するJavaScript/TypeScriptランタイム環境Denoの新バージョンDeno 2.0のリリースをアナウンスした。 AnnouncingDeno 2 4 years afterDeno 1.0, the next generation ofJavaScript is ready for production at scale.Deno 2 is out today: 🐢 Fully backwards compatible with Node and npm 📦 Package management and node_modules and package.json 📅 Long term supporthttps://t.co/LsV4D4Too8 pic.twitter.com/F6EI3whmX8
タリーズの件、CSPが設置されていたら防げていたという話がありますが、それは正しいでしょうか? CSPを設定していなかったとしても、想定していない外部へのリクエストが発生していないか、定期的にチェックすることも大事ですよね? タリーズのサイトからのクレジットカード情報漏えいについて、CSP(ContentSecurity Policy)やintegrity属性(サブリソース完全性)の重要性がよくわかったという意見をX(Twitter)上で目にしましたが、これらでの緩和は難しいと思います。 まず、CSPの方ですが、今回の件では元々読み込んでいたスクリプトが改ざんされたと考えられるので、オリジンとしては正規のものです。evalが使われていたのでCSPで制限されると考えている人が多いですが、evalは難読化のために使われているので、evalを使わないことは可能です。個人的には、難読化しない方が
:has()疑似クラスは筆者が断トツで一番気に入っているCSSの新機能です。筆者と同じ意見の読者も多いでしょう。少なくとも、State ofCSSのアンケートに回答した方の中には多くいるはずです。セレクタを逆向きに指定できることで、これまでできると思いもしなかったようなすごいことがもっと可能になります。 「もっと」と言うのは、すでに多くの人が極めてスマートなアイデアを色々と発表しているからです。以下に一部紹介します。 Using :has() as aCSS Parent Selector and much more(JenSimmons) Quantity Queries for “islands of elements” with the same class, thanks toCSS :has()(Bramus) Style a parent element based o
2023年後半頃から、ブラウザの「戻る」ボタンを押すと、訪問したおぼえのないページが表示されることが増えた。そういうページは大抵、記事風の広告やサイト内の記事へのリンクが大量に並ぶという構成になっている。こんなレイアウトになってることが多い。 この手法はブラウザバック広告とかブラウザバックレコメンド (あるいはレコメンデーション) とか呼ばれており、国内外の複数のWeb広告会社がこれを提供しているようだ。 たとえば、こちらはGMOアドマーケティングの “TAXEL” が提供しているブラウザバックレコメンド。 【新たな収益・回遊源が誕生!】ブラウザバックレコメンド サイトから離れてしまうユーザーに対し、広告やレコメンド記事を表示させることで、収益化や内部回遊に繋げることを目的としているフォーマットになります。 ……というのがセールスポイントらしいのだが、サイトから離れる人は、サイトから離れた
海外のセキュリティ企業「Phylum」はトロイの木馬化された「jQuery」がnpmやGitHub、jsDelivr のCDNホストで拡散している事を指摘しました。 jQueryを悪用したサプライチェーン攻撃の概要 Phylumは 2024 年 5 月 26 日以来、トロイの木馬化された jQuery のバージョンを悪用する執拗なサプライ チェーン攻撃者を監視しており、最初に npm でこのjQuery を悪用する亜種を発見しました。 そこでは、1 か月にわたって数十のパッケージで侵害されたバージョンが公開されていました。 調査の結果、GitHubや、jsDelivr の CDNホスト リソースでも、トロイの木馬化された jQuery のインスタンスを発見しました。 なお、今回解説されている内容は正規のjQueryへ、トロイの木馬が紛れ込んでいるのではなく、 悪意のあるユーザーがnpmや
This post detailsCVE-2024-4367, a vulnerability inPDF.js found by Codean Labs.PDF.js is aJavaScript-basedPDF viewer maintained by Mozilla. This bug allows an attacker to execute arbitraryJavaScript code as soon as a maliciousPDF file is opened. This affects all Firefox users (<126) becausePDF.js is used by Firefox to showPDF files, but also seriously impacts many web- and Electron-based a
Intro CSRF という古の攻撃がある。この攻撃を「古(いにしえ)」のものにすることができたプラットフォームの進化の背景を、「Cookie が SameSite Lax by Default になったからだ」という解説を見ることがある。 確かに、現実的にそれによって攻撃の成立は難しくなり、救われているサービスもある。しかし、それはプラットフォームが用意した対策の本質から言うと、解釈が少しずれていると言えるだろう。 今回は、「CSRF がどうして成立していたのか」を振り返ることで、本当にプラットフォームに足りていなかったものと、それを補っていった経緯、本当にすべき対策は何であるかを解説していく。 結果として見えてくるのは、今サービスを実装する上での「ベース」(not ベスト)となるプラクティスだと筆者は考えている。 CSRF 成立の条件 例えば、攻撃者が用意した attack.examp
JavaScript Standard Style Sponsored by English • Español (Latinoamérica) • Français • Bahasa Indonesia •Italiano (Italian) • 日本語 (Japanese) • 한국어 (Korean) • Português (Brasil) • 简体中文 (Simplified Chinese) • 繁體中文 (Taiwanese Mandarin)JavaScript styleguide,linter, andformatter This module saves you (and others!) time in three ways: No configuration. The easiest way to enforce code quality in your
Disclosure: I was the Staff Engineering Manager for the npm CLI team between July 2019 & December2022. I was a part of theGitHub acquistion of npm inc. in 2020. I leftGitHub, for various reasons, in December.tldr;a npm package's manifest is published independently fromits tarballmanifests are never fully validated against the tarball's contentsthe ecosystem has broadly assumed the contents of
Introducing the JSR opengovernance boardJSR, a modern open sourceJavaScript registry, is meant for the greaterJavaScript andTypeScript community. We're thrilled to announceits own independentgoverning body. AnnouncingOpenAI on JSROpenAI, leading development platform forbuilding generativeAI products and experiences, now has aJavaScript andTypeScript SDK on JSR. Announcing Growthbook on
Web開発者たちにとって、ブラウザー間の互換性問題は長年にわたり頭痛の種となっています。そんな中、Polyfill.ioは多くの開発者にとって救世主のような存在でした。 しかし、この度Polyfill.ioは中国企業のFunnullに売却されたことが明らかになり、開発者コミュニティーに波紋を広げています。 この記事では、Polyfill.ioの売却について、またWeb開発者が取るべき対策について詳しく解説します。Polyfill.ioとは? 画像:Polyfill.ioの公式サイトPolyfill.ioは、ブラウザー間の互換性問題を解決するためのサービスです。 具体的には、各リクエストのUser-Agentヘッダーを読み取り、リクエストを送信しているブラウザーに適したポリフィルを提供します。 ポリフィルとは、古いブラウザーで新しいブラウザーの機能をエミュレートするためのコードのことです
Important We are about to release a number of new things, and they are ready for testing! We uploaded to pypi a release candidate for v0.6.0 (e.g., magika 0.6.0rc3),it's ready for testing! Pleasereport any problems here: #798. You can install the latest release candidate with pip install --pre magika. A new ML model with support for 200+ content types. A new CLI written inRust. This will replac
AWS、高速起動にこだわった軽量なJavaScriptランタイム「LLRT」(Low Latency Runtime)をオープンソースで公開。AWSLambdaでの利用にフォーカスAmazon Web Services(AWS)は、実験的な実装としてサーバレス環境のAWSLambdaで使うことにフォーカスした軽量なJavaScriptランタイム「LLRT」(Low Latency Runtime)をオープンソースで公開しました。 LLRTはRustで開発され、JavaScriptエンジンにはQuickJSを採用しています。 LLRTの最大の特徴は、現在のJavaScriptランタイムにおいて性能向上のために搭載されているJITコンパイラをあえて搭載せず、よりシンプルで軽量なランタイムとして実装することで高速に起動することにこだわっている点です。 これにより(Node.jsやDenoや
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く