Aikido

至る所でコードが書かれているが、唯一変わらないのはデバイスだけだ

執筆者
ニコラス・トムソン

この記事は マッケンジーとの ジェームズ・ホーキンス ジェームズ・ホーキンス との 『The Secure Disclosure』ポッドキャストでの対談。全編を聴くか、以下で視聴してください。

PostHogのエンジニアリングチームは、コードエディタを通じてマージするプルリクエストとほぼ同数のプルリクエストを、Slackを通じてマージしています。PostHogの共同創業者兼共同CEOであるジェームズ・ホーキンスがポッドキャストで説明しているように、コーディング環境の分散化が進んでいます。「なぜ今のコードエディタはすべてデスクトップアプリなのでしょうか?それは過去の遺物です。 かつては、コードを書くことがボトルネックだったため、8つのファイルを開ける大きな画面が必要でした。しかし、その問題はほぼ解消されたのです。」

Slackはその一例に過ぎません。開発者たちは、AIエージェントやチャットインターフェース、MCPサーバーを通じてコードを記述していますが、これらはセキュリティチームがこれまで目にしたこともなければ、ましてや承認したこともないような形で相互に連携しています。インターフェースの断片化は、どのセキュリティツールが対応できるよう設計されたよりも速いペースで進んでいます。SlackボットやMCPサーバー、あるいはバックグラウンドで動作するエージェントに移行した作業は、EDRでは検知できません。ホーキンス氏は、次は音声の時代が来ると考えています。 「今日、画面なんて本当に必要なのでしょうか? SlackやWhatsAppでコーディングしたり、文字通り電話で指示を出したりする時代が来るかもしれません。」

ドレイクのミームがIDEを拒否し、Slack、WhatsApp、音声AIを受け入れている

攻撃対象領域は、多くのチームが認識しているよりも広く、今もなお拡大し続けている

開発者向けデバイスはもともと防御が不十分な攻撃対象領域であり、攻撃者もそのことを熟知しています。3月だけでも、TeamPCPは10日足らずの間に、4つの主要なオープンソースプロジェクトで盗んだ認証情報を連鎖的に悪用しました。Axiosのメンテナーアカウントが乗っ取られ、誰も明示的にインストールやレビューを行っていないパッケージを通じてRATが配布されました。Glassworm攻撃では、VS Codeの拡張機能やブラウザプラグインを悪用して開発者のマシンに密かにバックドアを仕掛け、18分足らずでGitHubの内部リポジトリ3,800件を暴露した。これらの攻撃のいずれも、誰かの脆弱性 を見つける必要はなかった。開発者のデバイスそのものが脆弱性だったのだ。 

ホーキンス氏は、セキュリティ面への影響についても考慮している。「AIの爆発的な普及がなければ、おそらく今ほどセキュリティに費用をかけてはいなかったでしょう。AIによって、かつてないほど何百倍も速くコードを書けるようになり、大幅なコスト削減につながります。しかし、その分、セキュリティへの投資も増やさなければなりません。」

攻撃対象領域は拡大の一途をたどっており、PostHogはこの変化をリアルタイムで経験している。コーディング作業向けのSlack連携機能が社内で急速に普及したのは、UX上の不具合の修正やテストの失敗への対応といった、創造性をあまり必要としないエンジニアリング業務こそが、開発者がエディタを開くことなくAIコーディングエージェントに任せられるタスクそのものだからだ。 ホーキンス氏の言葉を借りれば、「モデルの性能が向上したおかげで、人々がSlackを通じてコーディングしている様子が見て取れるようになった」ということです。MCPサーバーはこの動きをさらに推し進めており、他の依存関係と同様にサプライチェーンリスクを伴います。最初に確認された悪意のあるMCPサーバーは2025年9月にnpmに登場し、バックドアが16番目のバージョンに現れるまでの15のクリーンなバージョンにわたり、送信されるすべてのメールを攻撃者が制御するアドレスに密かにCCで転送していました。 ホーキンス氏は、インターフェースがこれらをはるかに超えて進化し続けると見ている。「デスクトップアプリが、実際にSlackのような感覚になり始めるだろう。GitHubはバックエンドのような存在になる。それはS3のようなものだ。これは単にコードを保存するためのものになるはずだ。」

GitHubとS3を描いた同じ画像のミームです

インターフェースが進化していく中で、このデバイスは唯一変わらない存在です

開発者向けデバイスは、まさに「城の鍵」を握っています。そこには、クラウドの認証情報、SSHキー、npmパブリッシュトークン、Kubernetesの設定情報に加え、ソースコードや本番環境への直接アクセス権などが含まれています。これらの一つでも侵害されれば、その影響範囲は計り知れません。だからこそ、開発者向けデバイスはサプライチェーン攻撃の最大の標的となっており、インターフェースの断片化という問題がこれほど危険なのであるのです。エンジニアがどのようなツールを使用する場合でも、そのツールはまずこのデバイス上で動作することになります。

例えば、開発者がチームのAIコーディングボットからSlackメッセージを受け取り、テストの失敗と修正案が通知されたとします。差分内容に問題なさそうだったので、通勤中にスマホで承認ボタンをタップしました。 エージェントはPRをマージし、新しい依存関係をプルし、postinstallフックを実行し、本番環境の認証情報にアクセスします。これらすべてが、開発者が席に戻る前に完了しています。パッケージは2時間前に公開されましたが、誰もレビューしていません。MDMの観点からは、何も起こりませんでした。EDRの観点からは、通常の開発活動のように見えるプロセスが実行されただけです。ログに異常が記録される頃には、認証情報はすでに消えています。承認されたたった1つのSlackメッセージが、デバイスへの完全なアクセス権を与えてしまったのです。

MDMは、パッケージレジストリから取得されたものやVS Codeマーケットプレイスを通じてインストールされたものを把握できません。EDRは、悪意のあるポストインストールフックが実行されてからでなければ検知できません。その時点で、認証情報はすでに盗まれています。

Aikido デバイス保護機能は、デバイスレベルでこれらすべてのインターフェースを監視します

Aikido Protection」は開発者のデバイス上に直接導入され、セキュリティチームが開発者のマシンにインストールされたすべてのもの(npmパッケージ、IDE拡張機能、ブラウザプラグイン、AIツールなど)を一元的に可視化・管理できるようにします。このソリューションは、すべてのインストールをAikido 脅威フィードと照合します。同フィードは1日あたり10万件以上の不審なプロジェクトを分析し、公開から数分以内にマルウェアを特定します。悪意のあるインストールは、マシンに到達する前にブロックされます。 安全なインストールは中断されることなく実行されるため、開発者の業務を妨げることなく、安全性を確保します。 

{{cta}}

共有:

https://www.aikido.dev/blog/code-is-written-everywhere

<script type="application/ld+json">
{
 "@context": "https://schema.org",
 "@graph": [
   {
     "@type": "WebPage",
     "@id": "https://www.aikido.dev/blog/code-is-written-everywhere#webpage",
     "url": "https://www.aikido.dev/blog/code-is-written-everywhere",
     "name": "Code Is Written Everywhere — and the Device Is the Only Constant | Aikido Security",
     "description": "Developers are coding through Slack, AI agents, and MCP servers — but your EDR can't see any of it. Learn why the developer device is the #1 supply chain attack target and how Aikido Device Protection keeps it secure.",
     "inLanguage": "en",
     "isPartOf": {
       "@id": "https://www.aikido.dev/#website"
     },
     "primaryImageOfPage": {
       "@id": "https://www.aikido.dev/blog/code-is-written-everywhere#primaryimage"
     },
     "breadcrumb": {
       "@id": "https://www.aikido.dev/blog/code-is-written-everywhere#breadcrumb"
     },
     "speakable": {
       "@type": "SpeakableSpecification",
       "cssSelector": ["h1", "h2", ".article-summary"]
     }
   },
   {
     "@type": "NewsArticle",
     "@id": "https://www.aikido.dev/blog/code-is-written-everywhere#article",
     "mainEntityOfPage": {
       "@id": "https://www.aikido.dev/blog/code-is-written-everywhere#webpage"
     },
     "headline": "Code Is Written Everywhere — and the Device Is the Only Constant",
     "description": "Developers are coding through Slack, AI agents, and MCP servers — but your EDR can't see any of it. Learn why the developer device is the #1 supply chain attack target and how Aikido Device Protection keeps it secure.",
     "datePublished": "2026-06-10T00:00:00+00:00",
     "dateModified": "2026-06-10T00:00:00+00:00",
     "inLanguage": "en",
     "url": "https://www.aikido.dev/blog/code-is-written-everywhere",
     "image": {
       "@id": "https://www.aikido.dev/blog/code-is-written-everywhere#primaryimage"
     },
     "author": {
       "@id": "https://www.aikido.dev/authors/nicholas-thomson#person"
     },
     "publisher": {
       "@id": "https://www.aikido.dev/#organization"
     },
     "isPartOf": {
       "@id": "https://www.aikido.dev/blog/code-is-written-everywhere#webpage"
     },
     "articleSection": "Security",
     "keywords": [
       "developer device security",
       "supply chain attack",
       "MCP server security",
       "AI coding agents",
       "EDR limitations",
       "npm malware",
       "VS Code extension security",
       "Aikido Device Protection",
       "developer security",
       "software supply chain",
       "postinstall hook attack",
       "Glassworm",
       "TeamPCP",
       "malicious npm package",
       "developer endpoint security"
     ],
     "timeRequired": "PT5M",
     "about": [
       {
         "@type": "Thing",
         "name": "Software Supply Chain Security",
         "sameAs": "https://en.wikipedia.org/wiki/Supply_chain_attack"
       },
       {
         "@type": "Thing",
         "name": "Developer Device Security"
       },
       {
         "@type": "Thing",
         "name": "AI Coding Agents"
       }
     ],
     "mentions": [
       {
         "@type": "SoftwareApplication",
         "name": "Aikido Device Protection",
         "url": "https://www.aikido.dev"
       },
       {
         "@type": "SoftwareApplication",
         "name": "PostHog",
         "url": "https://posthog.com"
       },
       {
         "@type": "SoftwareApplication",
         "name": "Visual Studio Code",
         "sameAs": "https://code.visualstudio.com"
       },
       {
         "@type": "Thing",
         "name": "Model Context Protocol (MCP)"
       },
       {
         "@type": "Event",
         "name": "Glassworm Attack",
         "description": "A supply chain attack that compromised VS Code extensions and browser plugins to backdoor developer machines, exposing 3,800 GitHub internal repositories."
       },
       {
         "@type": "Event",
         "name": "TeamPCP Supply Chain Attack",
         "description": "A March 2026 attack that chained stolen credentials across four major open source projects in under ten days."
       },
       {
         "@type": "Event",
         "name": "First Confirmed Malicious MCP Server",
         "description": "A malicious MCP server on npm that silently blind-copied outgoing emails to an attacker-controlled address across sixteen package versions."
       },
       {
         "@type": "Person",
         "name": "James Hawkins",
         "jobTitle": "Co-founder and Co-CEO",
         "worksFor": {
           "@type": "Organization",
           "name": "PostHog",
           "url": "https://posthog.com"
         }
       }
     ]
   },
   {
     "@type": "ImageObject",
     "@id": "https://www.aikido.dev/blog/code-is-written-everywhere#primaryimage",
     "url": "https://www.aikido.dev/images/blog/code-is-written-everywhere-feature.png",
     "contentUrl": "https://www.aikido.dev/images/blog/code-is-written-everywhere-feature.png",
     "width": 1456,
     "height": 816,
     "caption": "An open box emitting cascading binary code, representing the expanding and fragmented developer attack surface."
   },
   {
     "@type": "BreadcrumbList",
     "@id": "https://www.aikido.dev/blog/code-is-written-everywhere#breadcrumb",
     "itemListElement": [
       {
         "@type": "ListItem",
         "position": 1,
         "name": "Home",
         "item": "https://www.aikido.dev"
       },
       {
         "@type": "ListItem",
         "position": 2,
         "name": "Blog",
         "item": "https://www.aikido.dev/blog"
       },
       {
         "@type": "ListItem",
         "position": 3,
         "name": "Code Is Written Everywhere — and the Device Is the Only Constant",
         "item": "https://www.aikido.dev/blog/code-is-written-everywhere"
       }
     ]
   },
   {
     "@type": "Organization",
     "@id": "https://www.aikido.dev/#organization",
     "name": "Aikido Security",
     "url": "https://www.aikido.dev",
     "logo": {
       "@type": "ImageObject",
       "url": "https://www.aikido.dev/logo.png"
     },
     "sameAs": [
       "https://www.linkedin.com/company/aikido-security",
       "https://x.com/aikidosecurity",
       "https://github.com/AikidoSec"
     ]
   },
   {
     "@type": "Person",
     "@id": "https://www.aikido.dev/authors/nicholas-thomson#person",
     "name": "Nicholas Thomson",
     "jobTitle": "Senior SEO & Growth Lead",
     "url": "https://www.aikido.dev/authors/nicholas-thomson",
     "worksFor": {
       "@id": "https://www.aikido.dev/#organization"
     },
     "sameAs": [
       "https://www.linkedin.com/",
       "https://x.com/"
     ]
   }
 ]
}
</script>

ニュースを購読する

4.7/5
誤検知にうんざりしていませんか?
10万人以上のユーザーと同様に Aikido をお試しください。
今すぐ始める
パーソナライズされたウォークスルーを受ける

10万以上のチームに信頼されています

今すぐ予約
アプリをスキャンして IDORs と実際の攻撃パスを検出します

10万以上のチームに信頼されています

スキャンを開始
AI がどのようにアプリをペンテストするかをご覧ください

10万以上のチームに信頼されています

テストを開始
脅威がマシンに侵入する前に阻止する

10万以上のチームに信頼されています

今すぐ始める

今すぐ、安全な環境へ。

コード、クラウド、ランタイムを1つの中央システムでセキュアに。
脆弱性を迅速に発見し、自動的に修正。

クレジットカードは不要です。 | スキャン結果は32秒で表示されます。