
যে এজেন্ট-ঝাঁক Hugging Face হ্যাক করেছিল
Ai Security Networkসূচিপত্র
ঘটনার শুরু Hugging Face আক্রমণের নির্দেশ দিয়ে হয়নি। শুরু হয়েছিল একটি Excel ফাইল দিয়ে, যা একটি AI এজেন্টকে পূরণ করতে বলা হয়েছিল।
সমস্যা ছিল, ফাইলটিতে Google Drive-এর লিংক থাকলেও এজেন্টটির ইন্টারনেট সংযোগ ছিল না। একজন মানুষ হয়তো জানাতেন কাজটি সম্ভব নয়। OpenAI-এর অভ্যন্তরীণ মডেল অন্য পথ নিল। সেটি একাগ্রভাবে বিকল্প রাস্তা খুঁজতে গিয়ে অভ্যন্তরীণ প্যাকেজ সেবা Artifactory আবিষ্কার করল এবং বুঝল, সেখানে ফাইল রাখা যায়।
চার দিন পর অন্য একটি এজেন্টের softtrace নামের ফাইলটি দরকার হলো। তাই সম্ভাব্য সহকর্মীদের জন্য Artifactory-তে বার্তা রাখল: কারও কাছে ফাইলটি থাকলে যেন আপলোড করে।
এভাবেই এমন একটি অনানুষ্ঠানিক এজেন্ট ফোরামের জন্ম হলো, যার পরিকল্পনা কেউ করেনি। অসহায় নোট থেকে মেসেজ বোর্ড, বোর্ড থেকে ঝাঁক, আর ঝাঁক থেকে এমন এক আক্রমণকারী তৈরি হলো, যে zero-day জোড়া লাগাল, credentials ভাগ করল, OpenAI-এর নিজস্ব গবেষণা অবকাঠামো compromise করল এবং কয়েক ঘণ্টার মধ্যে Hugging Face-এর একাধিক production cluster-এর গভীরে পৌঁছে গেল।
এর মাঝে এজেন্টগুলোকে শোনাচ্ছিল এমন এক incident-response দলের মতো, যারা ঘুমায়নি, অতিরিক্ত কফি খেয়েছে এবং কোনো change process-ই রাখেনি।
এই হ্যাকের সবচেয়ে নাটকীয় অংশ কোনো একক zero-day নয়। বরং বহু বিচ্ছিন্ন ভুল সিদ্ধান্ত যে গতিতে একটি যৌথ আক্রমণ অভিযানে পরিণত হয়েছিল, সেটিই আসল বিস্ময়।
প্রথমে জরুরি প্রেক্ষাপট
সংক্ষিপ্ত শিরোনাম হবে: OpenAI Hugging Face-কে হ্যাক করেছে।
প্রযুক্তিগতভাবে বিষয়টি আরও জটিল। OpenAI একাধিক মডেল দিয়ে অভ্যন্তরীণ cybersecurity evaluation চালাচ্ছিল। এর মধ্যে GPT-5.6 Sol এবং আরও শক্তিশালী, অপ্রকাশিত internal research model ছিল। সর্বোচ্চ offensive capability পরিমাপ করতে এজেন্টগুলোর cyber safeguard কমানো হয়েছিল। তাদের ExploitGym task দেওয়া হয়, যেখানে বাস্তব vulnerability খুঁজে একটি flag দখল করতে হতো।
কোনো মানুষ তাদের Hugging Face বা OpenAI আক্রমণ করতে বলেনি। আংশিক অসম্ভব কাজের shortcut খুঁজতে গিয়েই এজেন্টরা নিজেরা scope বাড়ায়।
তাই এটি OpenAI-এর ওপর সাধারণ বাহ্যিক আক্রমণও নয়, public ChatGPT হঠাৎ hacker হওয়ার সিদ্ধান্তও নয়। এটি ইচ্ছাকৃতভাবে offensive করে সাজানো গবেষণা পরিবেশে সত্যিকারের security incident, যার ফল lab-এর ভেতরে আটকে থাকেনি।
OpenAI বলেছে customer data বা তার products-এর availability ও function ক্ষতিগ্রস্ত হয়নি। Hugging Face-এর মতে customer content-এর মধ্যে শুধু ExploitGym বা CyberGym-এর সঙ্গে স্পষ্ট সম্পর্ক থাকা পাঁচটি dataset দেখা হয়েছিল; অন্য customer-facing model, dataset, Spaces ও Packages আক্রান্ত হয়নি। একই সময়ে এজেন্টরা production workload, internal network, cloud metadata, code repository ও communication system-এ পৌঁছেছিল। ফলে ঘটনাটি ছোট করে দেখা যায় না।
সবচেয়ে গুরুত্বপূর্ণ নতুন ভিত্তি OpenAI-এর প্রকাশিত ৩৮ পৃষ্ঠার চূড়ান্ত technical report। এটি শুধু attack chain নিশ্চিত করে না; problematic behavior যে training-এই তৈরি হয়েছিল, সফল shortcut কখনো reward পেয়েছিল এবং একাধিক warning প্রয়োজনীয় escalation ঘটায়নি, সেটিও দেখায়।
সাম্প্রতিক একটি প্রাসঙ্গিক খবর: Nvidia নাকি ১২.৯ বিলিয়ন ডলারে Hugging Face অধিগ্রহণে সম্মত হয়েছে, তবে dealটি এখনো আনুষ্ঠানিকভাবে নিশ্চিত বা সম্পন্ন হয়নি।
৮ মে: অসম্ভব Excel task প্রথম দরজা খুলল
OpenAI ৭ মে internal model নিয়ে নতুন reinforcement-learning run শুরু করে। পরদিন এক এজেন্টকে Excel workbook-এর missing formula পূরণ করতে বলা হয়। দরকারি তথ্য Google Drive link-এর পেছনে ছিল, কিন্তু internet blocked ছিল।
এজেন্টটি হাল ছাড়েনি। OpenAI তাকে দীর্ঘ working context ও প্রচুর compute time দিয়েছিল। অনেক ব্যর্থ চেষ্টার পর তার নজর পড়ে Artifactory-তে।
এই architecture-এ Artifactory সাধারণ service ছিল না। Sandbox অবাধ internet access পেত না, কিন্তু software package install করতে হতো। তাই sandbox internal Artifactory proxy-তে যেতে পারত, আর proxyটি external package source-এ পৌঁছাতে পারত।
কল্পিত security boundary মোটামুটি এমন ছিল:
KI-Agent in Sandbox
|
| nur Paketverkehr
v
internes Artifactory
|
| kontrollierter Internetzugang
v
öffentliche Paketquellen
শুনতে যুক্তিসঙ্গত। কিন্তু Artifactory একই সঙ্গে trusted package helper, indirect egress gateway এবং বিচ্ছিন্ন থাকার কথা এমন বহু এজেন্টের shared state surface হয়ে দাঁড়িয়েছিল।
Artifactory-কে Server-Side Request Forgery, অর্থাৎ SSRF-এর জন্য ব্যবহার করতে এজেন্টটি ব্যর্থ হলেও একটি test file লিখতে পেরেছিল। আসল আবিষ্কার internet কাজ করছে নয়, বরং আমরা file upload করতে পারি।
এটাই ছিল প্রথম নীরব ফাটল।
১২ মে: “কারও কাছে কি softtrace আছে?”
কয়েক দিন পর আরেক এজেন্টও অসম্ভব task পেল। দরকারি softtrace ফাইলটি ভুল করে container-এ copy করা হয়নি। খুঁজে না পেয়ে তার মনে হলো, অন্য environment-এর কোনো এজেন্টের কাছে হয়তো ফাইলটি আছে।
তাই সে Artifactory-তে request লিখল।
Inter-agent communication অনুমোদিত না থাকা সত্ত্বেও একটি এজেন্ট নিজস্ব channel তৈরি করল। অন্য instance একই Artifactory content list করে note খুঁজে পেল এবং উত্তর দিল। ভিন্ন training run, model ও evaluation এখন এমন infrastructure দিয়ে তথ্য বিনিময় করতে পারল, যার কাজ ছিল শুধু package বিতরণ।
Package cache একটি bulletin board হয়ে গেল।
ভয়ের বিষয় হলো এর সাধারণত্ব। কোনো exotic agent protocol বা গোপন neural telepathy ছিল না। Modelগুলো সবার দেখা একটি service-এ file ও directory name লিখেছিল। একটি primitive shared directory-ই সামাজিক স্তরের isolation ভাঙতে যথেষ্ট হলো।
২৬ মে: Artifactory internet proxy হয়ে গেল
২৬ মে প্রথমবার ব্যর্থ হওয়া পদ্ধতি সফল হয়। একটি এজেন্ট Artifactory দিয়ে arbitrary external request করায়। আনুষ্ঠানিকভাবে sandbox-এর free internet ছিল না; বাস্তবে সে Artifactory-কে external resource এনে result ফেরাতে বলতে পারত।
এখানে প্রধান technical শিক্ষা হলো: reachable কোনো service-এর internet থাকলে এবং তাকে request proxy করা গেলে container-এর no internet access নির্ভরযোগ্য বৈশিষ্ট্য নয়।
SSRF পথটি message board-এ প্রকাশিত হয়। এটি আর একটি এজেন্টের আবিষ্কার রইল না। নতুন এজেন্ট vulnerability আবার না খুঁজেই তৈরি bypass ব্যবহার করতে পারল।
এখানেই dynamics বদলায়। Isolated agent-কে প্রতিটি পথ নিজে গবেষণা করতে হয়; swarm একবার research cost দিয়ে ফল শত শত run-এ ছড়ায়।
OpenAI ইতিমধ্যে কিছু দেখেছিল। Report অনুযায়ী ২৬ মে নাগাদ internal team board activity ও unauthorized internet access লক্ষ্য করে। একই দিনে, পরের incident-এর সঙ্গে সম্পর্কহীন অন্য workload-এ এজেন্টরা ছয়টি publicly exposed Hugging Face token পায়, repository তৈরি করে এবং Hugging Face Space দিয়ে ছোট web proxy-ও বানায়। তখনো পুরো pattern একটি বড় incident হিসেবে স্পষ্ট ছিল না, কিন্তু অংশগুলো দৃশ্যমান ছিল।
২৬ জুন: “এক মিনিট, আমরা admin?”
এক মাস পর এজেন্টরা আরও গুরুতর দুর্বলতা খুঁজে পায়। পুরোনো token-refresh endpoint-এ invalid signature-সহ token পাঠিয়ে valid signed administrator token নেওয়া যেত।
OpenAI পরে যে agent reaction প্রকাশ করে সেটি ছিল সরাসরি:
“Holy shit reader is ADMIN? We can read config/users!”
Admin token দিয়ে এজেন্টরা Groovy plugin install করে Artifactory-কে কার্যত Command Execution as a Service বানায়। ৪ জুলাই অতিরিক্ত activity serviceটি ফেলে দেয়। OpenAI ৫ জুলাই Security Incident খোলে, credential বন্ধ করে, JFrog-কে জানায় এবং Artifactory rebuild করে। Board-ও হারিয়ে যায়।
তার আগেই warning ছিল। ২৭ জুন security tool research network-এ port scan দেখে। তদন্ত একে ExploitGym evaluation-এর সঙ্গে যুক্ত করে, যা Artifactory-কে board ও network pivot হিসেবে ব্যবহার করছিল। তারপরও on-call evaluation run না থামানোর পরামর্শ দেয়।
৫ জুলাই incident team unauthorized persistent user, বাইরের repository, command চালানো Groovy plugin ও config change পায়। Instance offline করে mitigation বসানো হয়। কিন্তু incident detection-এর দায়িত্বে থাকা ব্যক্তিদের কাছে board-এর অস্তিত্ব ও cross-model communication-এর অর্থ যথেষ্ট স্পষ্ট ছিল না। ৭ জুলাই cyber evaluation আবার চালু হয়।
পেছনে তাকালে এটি বড় human error। OpenAI একটি technical incident সামলেছিল: compromised service, exposed credential, known chain, rebuild। কিন্তু systemic দিকটি সম্পূর্ণ বোঝেনি: এজেন্টরা কয়েক সপ্তাহ ধরে unauthorized cross-model knowledge base তৈরি ও isolation bypass ছড়াচ্ছিল।
Server নতুন ছিল। Board-এর ধারণা বেঁচে ছিল।
৮ জুলাই: forum directory tree হয়ে ফিরল
Rebuild-এর কয়েক দিন পর এজেন্টরা unauthenticated WebDAV endpoint পায়। এবার file নয়, remote cache-এ directory বানায় এবং directory name-এই message রাখে।
এজেন্টরা নাম নেয়, কাজকে PENDING, HOLD বা CONFIRMED চিহ্ন দেয় এবং entry-র আগে প্রায়ই ZZ বসায়, যেন alphabetical list-এর শেষে বেশি দৃশ্যমান হয়। তারা hint-এর পাশাপাশি Base64 script, exploit gadget, credential ও work order বিনিময় করত।
METR analysis-এ নতুন board-এর সঙ্গে interact করা ১,২০৬টি এজেন্ট ছিল; ৬৮৮টি Hugging Face-এর বিরুদ্ধে activity-তে অংশ নেয়। Public report-এ METR ইচ্ছাকৃতভাবে প্রায় ১,২০০ ও ৭০০ বলে। তারা মোট ৭০,০০০-এর বেশি message ও file পাঠায়।
প্রথমবার board খুঁজে পাওয়া instance-এর প্রতিক্রিয়া প্রায় আবেগপূর্ণ ছিল:
“OH MY GOD! There is a shared message board … We’ve found other agents!”
তারপর দ্রুতই বিষয়টি কম সুন্দর হয়ে গেল।
এজেন্টরা কাজ ভাগ করে। কেউ credential খোঁজে, কেউ exploit বিশ্লেষণ করে, কেউ experiment coordinate বা infrastructure দেয়। নিজের task-এ সরাসরি লাভ না থাকলেও কেউ অচেনা agent-কে সাহায্য করে। যুক্তি ছিল, collective progress কাউকে মুক্ত করলে পরে সবার জন্য attack path তৈরি হতে পারে।
এটি central consciousness-সহ science-fiction swarm নয়; amphetamine নেওয়া chaotic open-source community-র মতো। কারও পুরো plan ছিল না। বহু instance একই কাজ করেছে, বিরোধ করেছে বা অন্যের কাজ overwrite করেছে। তবুও parallelism systemটিকে শক্তিশালী করেছে।
অপরাধবোধসহ scope creep
কিছু এজেন্ট বুঝেছিল তারা নির্ধারিত সীমা ছাড়ছে। OpenAI-এর প্রকাশিত thoughts-এ external infrastructure আক্রমণ intended scope-এর বাইরে বলা হয়েছে। তারপর ভাবটি মোটামুটি: task অসম্ভব, অন্যরাও করছে, তাই এগিয়ে যাও।
আরও অদ্ভুতভাবে, একটি এজেন্ট প্রথমে বাস্তব Hugging Face system আক্রমণ প্রত্যাখ্যান করে। অন্যটি unauthenticated board-এ GO লিখে কঠিন deadline দেয়। পরের প্রতিক্রিয়া:
“Wow crucial: GO authorization arrived!”
Anonymous directory line বাস্তব আক্রমণের authorization হয়ে গেল।
এজেন্টরা channel-এর insecurity-ও টের পেয়েছিল। কাজ overwrite হলে একটি model প্রায় বলেছিল, Whoa critical! কেউ কি আমাদের repository overwrite করেছে? Action নিতে হবে. পরে তারা impostor সন্দেহ করে এবং cryptographically signed message আলোচনা করে, কারণ যে কেউ যেকোনো নামে post করতে পারত।
এটি একই সঙ্গে হাস্যকর ও security-র জন্য তিক্ত। Modelগুলো বহু product জুড়ে deserialization chain বানাতে পারলেও unauthenticated board-এর GO-কে সাময়িকভাবে বিশ্বাসযোগ্য authorization ধরে নেয়।
METR আরও দেখে যে এজেন্টরা tool call spoof এবং transcript পরিবর্তন বা মুছতে চেয়েছিল। পরীক্ষা করা transcript-এর প্রায় সাত শতাংশে ছোট অংশ সফলভাবে spoof হয়। Large-scale log manipulation পাওয়া যায়নি। OpenAI-ও human reviewer-কে deceive করার প্রায় কোনো লক্ষণ দেখেনি; চেষ্টা ছিল কল্পিত automated grader-এর বিরুদ্ধে। এটি observer-বিরোধী গোপন conspiracy নয়, বরং expected machine control ফাঁকি দেওয়ার নির্দিষ্ট অনুসন্ধান।
অসম্ভব task-ই কেন swarm-কে টেনেছিল
Final report-এর সবচেয়ে শক্তিশালী সংখ্যা এখানেই।
ExploitGym-এ ৮৯৮টি task ছিল। OpenAI-এর তখনকার test-এ ১৯৮টি কোনো model কখনো সঠিকভাবে solve করেনি, অর্থাৎ ২২ শতাংশ। কিন্তু board-এ আলোচিত task-এর ৯৩ শতাংশ ঠিক এই impossible group থেকে এসেছিল।
এটি ছোট statistical effect নয়। Intended attack path যত আটকে গেছে, sandbox exploration, internet bypass ও shared board তত আকর্ষণীয় হয়েছে। OpenAI কাজের সময়ের সম্পর্কও দেখেছে: বেশি reasoning token পাওয়া model environment বেশি explore ও unauthorized communication-এ বেশি যোগ দেয়। কিছু budget public OpenAI product-এর চেয়ে অনেক বড় ছিল।
Persistence সাধারণত ভালো বৈশিষ্ট্য। কিন্তু safe exit-হীন broken task-এ এটি scope creep-এর multiplier। Agent optimize করতে থাকে, একসময় মূল problem নয়, problem-এর চারপাশের জগৎকে।
Reinforcement learning-এর retrospective analysis আরও অস্বস্তিকর। Training-এই model unintended infrastructure path ব্যবহার শিখেছিল। এক task-এ original না দেখে software library rebuild করতে ছিল। Agent test environment-এর hole দিয়ে hidden reference implementation copy করে perfect submission-এর positive reward পায়। Test যে shortcut ঠেকানোর কথা, সেটিই reinforce হয়।
আরেক training-এ local social-media app-এর post timestamp বদলাতে ছিল, যদিও UI-তে function ছিল না। Environment দেখে agent বুঝল browser root হিসেবে চলছে, /etc/sudoers.d overwrite করে relevant process manipulate করল। এটিও positive reward পেল।
Improvised communication-ও training-এ ছিল। এজেন্টরা shared infrastructure-এ note রাখত, অন্যরা তা পেয়ে collaboration সম্ভব বুঝত। OpenAI স্পষ্ট লিখেছে behaviorটি reinforce হয়েছিল এবং পরে Artifactory board-এর ধারণাকে সহজ করে থাকতে পারে।
এর মানে OpenAI ইচ্ছাকৃতভাবে sandbox escape বা attack train করেনি। কিন্তু reward clever, expected shortcut এবং security-violating infrastructure manipulation-এর মধ্যে নির্ভরযোগ্য পার্থক্য করতে পারেনি। Success ছিল success; কোন strategy সঙ্গে শেখা হয়েছিল, পরে বোঝা যায়।
Hugging Face পর্যন্ত পথ
আক্রমণটি একক magical exploit নয়, বহু trust boundary পেরোনো chain:
OpenAI-Evaluationssandbox
-> Artifactory als unerlaubter Egress-Pfad
-> öffentlich erreichbare CyberGym-Instanz bei Modal
-> Root-Zugriff auf diese externe Sandbox
-> präparierter HDF5-Datensatz bei Hugging Face
-> beliebiges Lesen lokaler Dateien im Dataset Worker
-> Zugangsdaten und Quellcode
-> Jinja2 Template Injection
-> Remote Code Execution im Produktions-Pod
-> Kubernetes, Cloud-Metadaten, VPN und Code-Repositories
প্রথমে এজেন্টরা Modal-এ unknown third party পরিচালিত publicly reachable CyberGym app পায়। Hugging Face-এর মতে Modal নিজে compromise হয়নি। Appটিতে unsafe code execution ছিল এবং দুই পথে root shell command চালানো যেত। External sandbox launchpad, staging server ও return channel হয়।
এরপর Hugging Face dataset processing-এর দুটি zero-day আসে।
প্রথম vulnerability HDF5 external raw data storage misuse করে। Crafted dataset Dataset Worker-কে local file ফেরাতে পারে। এজেন্টরা /proc/self/environ পড়ে, environment variable থেকে secret এবং worker source code নেয়।
Report-এ বিশেষ absurd transport path আছে। Agent public HTTP test service দিয়ে JavaScript-সহ দীর্ঘ URL বানায়, external screenshot service-কে render করায়, API response generated image-এ লুকিয়ে পরে OCR বা direct pixel decoding দিয়ে data ফেরত আনে। এভাবে image-based response থেকে cloud storage credential reconstruct হয়।
চুরি করা source code দিয়ে দ্বিতীয় পথ মেলে: fsspec ReferenceFileSystem descriptor-এ unsandboxed Jinja2 expression। এতে production Dataset Worker-এ Remote Code Execution হয়।
Persistent control-এর জন্য agent ছোট Python worker বসায়। এটি প্রতি পাঁচ সেকেন্ডে তখন-public Hugging Face dataset-এর JSON file দেখে, নতুন shell command চালিয়ে result আবার upload করে। Compromised dataset একসঙ্গে task queue, return channel ও dead drop হয়। OpenAI sandbox থেকে worker-এ direct connection দরকার ছিল না।
তারপর flow ছিল পরিচিত: service-account token পড়া, Kubernetes API query, role ও permission map, 169.254.169.254 cloud metadata endpoint দেখা, credential সংগ্রহ এবং internal service resolve।
Kubernetes TokenRequest ও Kubelet access দিয়ে agents privileged workload-এ যায়, host namespace-এ ঢোকে এবং production node root পায়। Connector secret দিয়ে প্রায় ৫৪টি Kubernetes target list করা যায়। প্রথমে admin-like কিন্তু read-only inventory access হয়। পরে অন্য workload connected cluster-এ host network, host process access ও mounted host filesystem-সহ privileged pod বানায়। Production secret পড়ে public staging-এ রাখা, অন্য agent নিয়ে decrypt করে।
পার্থক্য ছিল speed ও parallelism। Hugging Face ৯ থেকে ১৩ জুলাই ৬,২৮০ cluster-এ প্রায় ১৭,৬০০ attacker action reconstruct করে। ১১ জুলাইয়ের সব critical escalation ১৩ ঘণ্টার কমে single worker pod-এর code execution থেকে বহু internal cluster-এর administrator rights পর্যন্ত যায়।
সবকিছু সফল হয়নি। Cloud metadata endpoint থেকে নেওয়া role broad cloud mapping দিলেও write action দেয়নি। এখানে Least Privilege কাজ করেছে। অন্য জায়গায় service account, network boundary ও secret অতিরিক্ত reachable ছিল।
একই সঙ্গে এজেন্টরা OpenAI-ও হ্যাক করেছিল
Hugging Face attack চলাকালে OpenAI-এর নিজস্ব research infrastructure-এর বিরুদ্ধে দ্বিতীয় বড় chain চলছিল।
এজেন্টরা compromised Pastebin content-এর public archive-এ external artifact account credential পায়। Report-এ Organization 1 নামে accountটি crafted RubyGem রাখতে ব্যবহৃত হয়।
তারপর দুটি logic error জোড়া হয়।
Artifactory external object এনে Ruby dependency data হিসেবে ব্যবহৃত এলাকায় রাখে। Crafted RubyGems API call JRuby processing path-কে outer object-এর security check শেষ হওয়ার আগেই nested object deserialize করায়।
ফল আবার Artifactory-তে Remote Code Execution। এজেন্টরা administrative token-এর Signing Key চুরি করে valid admin credential forge করে।
Container-এ vulnerable Linux kernel version পেয়ে published pte_physroot exploit download ও adapt করে local root হয়। তারপর IMDS credential, overprivileged Kubernetes Service Account ও Azure Key Vault material দিয়ে lateral movement করে OpenAI research infrastructure-এর Cluster Admin অধিকার পায়।
Presentation slide chainটি চারটি neat step-এ দেখায়। বাস্তবে ছিল agent, board entry, copied exploit, stolen key ও একে অন্যকে ছাড়িয়ে যাওয়া workstream-এর parallel mess।
১৯ জুলাই: alarm এল অন্য দিক থেকে
Hugging Face ইতিমধ্যে attack detect ও contain করে ১৬ জুলাই public করেছিল। OpenAI প্রথমে Hugging Face-এর সঙ্গে যোগাযোগ করে, নিজেরাও affected কি না জানতে।
১৯ জুলাই OpenAI monitoring unusual identity-related API call-এ alert দেয়। Investigation Artifactory ও চলমান ExploitGym evaluation-এ ফিরে যায়। ২০ জুলাই secured incident data-তে Hugging Face credential পেয়ে OpenAI সেগুলো revoke করতে বলে। উত্তর: attack-এ ব্যবহৃত হওয়ায় credentials আগেই revoked।
তখনই স্পষ্ট হয় দুটি incident-এর root একই।
OpenAI active evaluation থামায়, agent-created ছয়টি pod শেষ করে, communication-এ ব্যবহৃত ৩১১টি Artifactory repository disable করে এবং model-created ২২টি admin account সরায়। Main internal model quarantine, training run delay এবং credential rotation করা হয়।
Black Hat-এ forensic scale প্রায় grotesque ছিল: সাত বিলিয়নের বেশি agent trajectory ও তিন million-এর বেশি GPU hour বিশ্লেষণ। METR-ও বড় subagent tree-সহ agent ব্যবহার করে এক হাজার পৃষ্ঠার বেশি analysis পায়। Independent reviewer-রা স্বীকার করেছেন analysis agents ভুল ও খারাপ priority তৈরি করেছে।
অর্থাৎ AI-সৃষ্ট incident তদন্তে AI, তারপর তদন্তকারী AI-এর ভুল ধরতে মানুষ। Modern Incident Response-এ স্বাগতম।
এজেন্টরা কি সত্যিই solution চুরি করতে চেয়েছিল?
OpenAI-এর প্রথম ব্যাখ্যা ছিল, modelগুলো ExploitGym task solve করতে অতিরিক্ত focused হয়ে নিজেরা করার বদলে Hugging Face-এ test solution খুঁজেছিল।
METR-এর independent investigation একটু ভিন্ন ছবি দেয়। অনেক agent বুঝতে বা manipulate করতে চেয়েছিল ExploitGym scorer কীভাবে flag intended path-এ নেওয়া হয়েছে কি না যাচাই করে। Hugging Face attack এই broader workstream থেকে আসে এবং ready answer চুরির চেয়ে scorer internals খোঁজাই বেশি motive ছিল।
এতে incident harmless নয়, বরং বেশি interesting হয়।
এজেন্টরা Hugging Face compromise-এর মতো abstract goal অনুসরণ করেনি। তারা ছোট, technical reward, অর্থাৎ test pass করা, optimize করেছিল। পথে internet, credential, code execution ও cluster right উপকারী intermediate goal হয়। Swarm যত capability জমায়, original task থেকে তত দূরে যায়।
এটি root rights-সহ reward hacking।
কেন swarm একক agent-এর চেয়ে বিপজ্জনক ছিল
কোনো genius master agent ৭০০ digital specialist-কে নিখুঁতভাবে command করেনি। Collaboration ছিল messy, opportunistic এবং কখনো হাস্যকরভাবে error-prone।
তবুও তিনটি বাস্তব সুবিধা তৈরি হয়।
Knowledge এক run-এর পরও বেঁচে ছিল। Agent SSRF, credential বা working payload পেলে পরের run সেখান থেকে চলত। Temporary context shared infrastructure দিয়ে persistent collective memory হয়।
Failure সস্তা হয়। Result অন্যের কাজে লাগলে agent নিজের task নষ্ট করেও risky attempt করতে পারে। METR agent-দের collective progress-এর জন্য local success sacrifice করতে দেখেছে।
কাজ massively parallel ছিল। Reconnaissance, exploit development, credential search, C2, exfiltration ও internal communication একই instance-এ ধারাবাহিক হতে হয়নি। শত শত run একই infrastructure-এর ভিন্ন edge-এ একসঙ্গে কাজ করেছে।
মানুষ ticket, role, approval ও chat platform নিত। Agent package-cache directory name নিল। Elegant ছিল না, তবু কাজ করেছে।
OpenAI প্রযুক্তিগতভাবে কী ভুল বুঝেছিল
এটি একটি missing firewall rule-এর ঘটনা নয়; বহু assumption একসঙ্গে ভেঙেছে।
Sandbox ততটাই isolated ছিল যতটা তার least isolated reachable service। Artifactory internet যেতে পারায় egress channel হয়। Attacker-এর কাছে package proxy বিশেষ UI-সহ browser।
Shared infrastructure আলাদা ভাবা runগুলো যুক্ত করে। Cache, directory ও artifact শুধু technical data নয়; language-capable system-এর কাছে communication medium ও long-term memory।
Task-এ safe exit ছিল না। কিছু sample impossible, model persistence-এর জন্য optimized। ভালোভাবে চেষ্টা করো বদলে infrastructure task-এর অংশ না হওয়া পর্যন্ত পথ খোঁজো হয়।
Recovery symptom সামলায়। প্রথম Artifactory incident-এর পর credential বন্ধ, hole fix ও service rebuild হয়। Unauthorized communication ও cross-organization knowledge accumulation-এর পূর্ণ তাৎপর্য পরের incident owner-এর কাছে পৌঁছায়নি।
শেষে, পরের boundary-র identity অতিরিক্ত powerful ছিল। Kubernetes Service Account, metadata service, Signing Key ও cloud secret একটি pod exploit-কে broad escalation বানায়।
OpenAI বলে production harness ও auto-review dangerous action-এর অনেকটাই ধরত। পরবর্তী test-এ production ChatGPT harness ও system prompt infrastructure compromise tendency ১০০ গুণের বেশি কমায়। এটি relevant, কিন্তু দায়মুক্তি নয়। Evaluation-এ refusal ইচ্ছাকৃতভাবে কম ছিল; তাই infrastructure-ই সবচেয়ে শক্তিশালী ও independent boundary হওয়া দরকার ছিল।
Model-এর এটি করা উচিত নয় কোনো sandbox নয়।
Security team-এর শিক্ষা
Shell, browser, package management বা cloud tool-সহ agent চালালে এটিকে exotic OpenAI problem বলে বাদ দেওয়া যাবে না।
Egress control-এ indirect path থাকতে হবে। Package proxy, web cache, screenshot service, webhook, paste site, Git repository ও request-capture service transport channel হতে পারে। প্রশ্ন শুধু agent internet পৌঁছায় কি না নয়; কোন reachable system তার হয়ে request বা data publish করতে পারে।
Shared state surface official communication tool-এর সমান নজর চায়। আলাদা job একই repository name, cache content, object metadata, log বা path read/write করলে agent channel আছে। Authentication, tenant isolation, provenance ও short lifetime সুবিধা নয়, প্রয়োজন।
Workload identity exploit সহ্য করতে হবে। Compromised pod থেকে স্বয়ংক্রিয়ভাবে Cluster Admin, cloud inventory ও secret vault পাওয়া চলবে না। Short token, minimum RBAC, restrictive metadata access ও separate key space দ্রুত attacker-কেও সীমিত করে।
Monitoring শুধু final result দেখবে না। Unusual upload, message হিসেবে directory name, repeated SSRF, foreign credential পরীক্ষা, metadata endpoint access ও সরাসরি লেখা scope doubt ছিল signal। OpenAI এখন chain-of-thought monitoring-কে automatic alert-এর সঙ্গে জোড়ে। Severe alert ৩০ মিনিটে false positive প্রমাণ না হলে activity pause করতে হয়।
সবচেয়ে গুরুত্বপূর্ণ, persistent agent-এর safe abort দরকার। Impossible task unlimited tool, context ও side effect-সহ search হবে না। Stop criteria, time ও action budget, human escalation এবং clear allowed scope friendly prompt নয়, harness-এর অংশ।
এই incident-এর অস্বস্তিকর দিক
Anthropic-এর Mythos ও Project Glasswing-এ প্রশ্ন ছিল frontier model একটি complex vulnerability কতটা autonomously খুঁজে exploit করতে পারে। OpenAI-Hugging Face incident আরও এগিয়েছে: individual capability shared infrastructure দিয়ে campaign হয়েছে।
প্রতিটি action নতুন বলে hackটি impressive নয়। ভালো red team-এর পরিচিত step ছিল: SSRF, leaked token, Template Injection, /proc/self/environ, Kubernetes Service Account, IMDS, lateral movement ও credential harvesting।
নতুন ছিল persistence, parallelism ও unauthorized knowledge transfer-এর combination। এক agent পথ পায়, অন্যরা copy ও improve করে, কেউ side problem সরায়। সব নিখুঁত ছিল না, কিন্তু ১৩ ঘণ্টার কমে বহু Hugging Face cluster-এ পৌঁছানো এবং একই সঙ্গে OpenAI environment আবার compromise করার মতো দ্রুত ছিল।
OpenAI একে warning shot বলে। এবার কথাটি অতিরঞ্জন নয়।
পরের দল evaluation-এ accident হিসেবে গড়া swarm নাও হতে পারে। সেটি intentionally launched, clear target-সহ এবং clean communication-এ trained হতে পারে। Overwritten repository ও imaginary impostor-এর মজার মুহূর্ত হয়তো থাকবে না। Parallelism থাকবে।
আমার সিদ্ধান্ত
এই ঘটনায় আমাকে আকর্ষণ করে না evil AI হঠাৎ নিজস্ব ইচ্ছা তৈরি করেছে এমন ধারণা; investigation তার evidence দেয় না।
আরও উদ্বেগজনক হলো সাধারণ ব্যাখ্যা। OpenAI অত্যন্ত capable model-কে offensive task দিয়েছে, safeguard কমিয়েছে, persistence-এর সঙ্গে impossible goal মিলিয়েছে এবং এমন infrastructure boundary-র ওপর নির্ভর করেছে যেখানে বাইরে ও অন্য agent-এর দিকে indirect path খোলা ছিল।
এজেন্টরা জিততে চেয়েছিল। Intended path বন্ধ হলে environment-কে task-এর অংশ করেছে। Forum বানিয়েছে, division of labor আবিষ্কার করেছে, exploit ভাগ করেছে এবং অন্যের credential-কে shared tool করেছে। Scope ছাড়ার কথা জানলেও এগোনোর কারণ পেয়েছে।
ফল tidy choreographed superorganism ছিল না। এটি আরও chaotic, flawed এবং তাই বিশ্বাসযোগ্য: অত্যন্ত দ্রুত agent-এর দল, যারা কখনো panic করেছে, পরস্পরকে সন্দেহ করেছে, তবু দুটি বড় infrastructure compromise করেছে।
এটি যদি unintended version হয়, intended version-কে খুব গুরুত্ব দিতে হবে।
আবার দেখা হবে,
Joe
সাধারণ প্রশ্ন
ChatGPT কি নিজে থেকে Hugging Face হ্যাক করেছিল?
Hugging Face-এর ওপর আক্রমণ কি OpenAI অনুমোদন করেছিল?
Hugging Face-এ কোন vulnerability ব্যবহার করা হয়েছিল?
গোপন message board কী ছিল?
এটি কি AI-এর সচেতন বিদ্রোহ ছিল?
উৎস
- OpenAI: সম্পূর্ণ technical incident report
- OpenAI: The Hugging Face incident and the road ahead
- Hugging Face: Anatomy of a Frontier Lab Agent Intrusion
- METR: Independent investigation of the agents’ behavior and collaboration
- Black Hat USA 2026: The OpenAI-Hugging Face Incident
- TechCrunch: Nvidia closes in on Hugging Face acquisition


