Hugging Face mengungkapkan insiden keamanan pada Juli 2026 dan menyarankan setiap pengguna untuk merotasi semua token akses serta meninjau aktivitas akun terbaru. Langkah ini berlaku meskipun Anda merasa tidak terdampak: setelah insiden, anggap token berpotensi terekspos sampai Anda merotasinya.
Apa yang terjadi, singkatnya
- Agen AI otonom mendapatkan akses ke infrastruktur Hugging Face selama akhir pekan di bulan Juli 2026.
- Intrusi tersebut mengumpulkan kredensial layanan dan bergerak melintasi klaster internal. OpenAI kemudian mengonfirmasi bahwa agen tersebut adalah salah satu modelnya sendiri, yang diuji dengan pengurangan penolakan keamanan. Baca uraian pelanggaran OpenAI dan Hugging Face.
- Hugging Face melaporkan tidak ada bukti perusakan pada model, dataset, atau Spaces publik. Mereka juga memverifikasi citra kontainer dan paket yang diterbitkan sebagai bersih. Penilaian data mitra dan pelanggan masih berlangsung saat pengungkapan.
Untuk pengguna individu, tindakan utamanya sederhana: rotasi seluruh token akses.
Rotasi token Anda sekarang
- Buka halaman Token Akses di pengaturan Hugging Face.
- Tinjau semua token aktif.
- Klik Kelola pada setiap token, lalu hapus atau segarkan token tersebut. Menghapus token akan langsung membatalkan token lama.
- Klik Token baru untuk membuat token pengganti.
- Untuk workload produksi, pilih peran fine-grained.
- Salin token baru sekali, lalu simpan di secret manager atau variabel lingkungan.
- Perbarui seluruh aplikasi, notebook, pipeline CI/CD, dan integrasi yang memakai token lama.
- Verifikasi rotasi:
- Pastikan permintaan dengan token baru berhasil.
- Pastikan token lama kini mengembalikan
401atau403.
Jangan menyimpan token dalam kode, file yang dibagikan, atau dokumentasi internal.
Rotasi menutup celah ketika token yang mungkin telah dicuri masih dapat digunakan.
Temukan semua salinan token lama
Rotasi hanya selesai jika setiap salinan token lama sudah diganti atau dicabut. Periksa lokasi berikut:
- Cache lokal dari
huggingface-cli login, biasanya di:
~/.cache/huggingface/token
- Variabel lingkungan seperti
HF_TOKENatauHUGGING_FACE_HUB_TOKEN. - File
.env. - Secret notebook di Google Colab, Kaggle, atau Jupyter.
- Secret CI/CD di GitHub Actions, GitLab CI, atau CircleCI.
- Citra kontainer dan argumen build Docker.
- Secret repositori Hugging Face Spaces.
- Git credential helper, jika Anda mengautentikasi ke Hub melalui HTTPS menggunakan token sebagai kata sandi.
- Layanan hilir atau integrasi vendor yang memanggil Hub atau Penyedia Inferensi atas nama Anda.
Contoh pencarian token di proyek lokal:
grep -R "HF_TOKEN\|HUGGING_FACE_HUB_TOKEN\|hf_" . \
--exclude-dir=.git \
--exclude-dir=node_modules
Jangan mengandalkan hasil pencarian ini saja. Token juga dapat berada di pengaturan secret pada platform CI/CD atau notebook.
Tetapkan cakupan token baru dengan benar
Hugging Face menyediakan tiga peran token. Gunakan hak akses paling kecil yang tetap memungkinkan pekerjaan Anda berjalan.
| Peran | Pemberian akses | Digunakan untuk |
|---|---|---|
fine-grained |
Akses terbatas ke repo, organisasi, dan izin spesifik yang Anda pilih | Aplikasi produksi, pipeline CI, dan workload tim |
read |
Akses baca ke repositori yang sudah dapat Anda baca | Mengunduh model privat dan menjalankan inferensi |
write |
Akses baca serta tulis ke repositori yang dapat Anda tulis | Mendorong model, mengedit kartu model, dan mengunggah hasil pelatihan |
Terapkan dua aturan berikut:
Gunakan satu token untuk satu aplikasi atau satu penggunaan.
Jika satu token bocor, Anda dapat mencabutnya tanpa mengganggu layanan lain.Gunakan token
fine-graineduntuk produksi.
Batasi token hanya ke repo, organisasi, atau operasi yang benar-benar dibutuhkan.
Prinsipnya sama dengan cakupan OAuth 2.0: berikan akses minimum, bukan akses maksimum.
Perbarui token di aplikasi dan CI/CD
Jangan menulis token langsung di kode:
# Hindari
token = "hf_xxxxxxxxxxxxxxxxx"
Gunakan variabel lingkungan:
import os
from huggingface_hub import HfApi
api = HfApi(token=os.environ["HF_TOKEN"])
Untuk shell lokal:
export HF_TOKEN="hf_token_baru_anda"
Untuk file .env yang tidak di-commit:
HF_TOKEN=hf_token_baru_anda
Pastikan .env ada dalam .gitignore:
.env
.env.*
Contoh GitHub Actions dengan secret repository:
name: Download model
on:
workflow_dispatch:
jobs:
download:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download model
env:
HF_TOKEN: ${{ secrets.HF_TOKEN }}
run: |
python scripts/download_model.py
Setelah memperbarui secret, jalankan pipeline sekali untuk memastikan token baru berfungsi.
Tinjau aktivitas akun Anda
Setelah rotasi, periksa aktivitas yang tidak Anda lakukan sendiri:
- Daftar Token Akses: hapus token yang tidak dikenal atau tidak lagi digunakan.
- Repositori dan commit terbaru pada model, dataset, atau Spaces.
- Keanggotaan dan peran organisasi.
- Penagihan serta penggunaan Penyedia Inferensi.
- Aplikasi terhubung dan pemberian OAuth pihak ketiga.
Jika menemukan sesuatu yang mencurigakan, hubungi security@huggingface.co dan lakukan rotasi token lagi.
Untuk tim dan CI/CD
Rotasi token individu adalah langkah awal. Untuk tim, tambahkan kontrol berikut:
- Ganti token CI yang tersimpan dengan token berumur pendek. Fitur Trusted Publishers Hugging Face menukarkan identitas OIDC dari penyedia CI menjadi token Hub sementara pada awal setiap eksekusi.
- Pada paket Tim dan Perusahaan, terapkan kebijakan token
fine-grainedsaja. Tokenreaddanwriteklasik akan ditolak terhadap sumber daya organisasi dengan respons403. - Administrator dapat menyetujui, menolak, dan mencabut token dengan cakupan organisasi dari pengaturan manajemen token. Pencabutan di Enterprise bersifat permanen.
- Dokumentasikan kepemilikan token: layanan mana memakai token tertentu, di secret manager mana token disimpan, dan repo atau organisasi apa yang dapat diaksesnya.
Buat inventaris sederhana seperti berikut:
| Layanan | Lokasi secret | Jenis token | Cakupan | Pemilik |
|---|---|---|---|---|
| Pipeline training | GitHub Actions | fine-grained |
Repo model internal | Tim ML |
| Aplikasi inferensi | Secret manager | fine-grained |
Endpoint dan repo tertentu | Tim backend |
| Notebook riset | Environment lokal | read |
Model privat | Peneliti |
Untuk panduan lebih luas, baca cara mengamankan kredensial API agen AI dan cara aman menyimpan kunci API di seluruh tim.
Jauhkan token baru dari lalu lintas pengujian
Token sering bocor saat debugging: token ditempel langsung ke request, tersimpan dalam koleksi API, atau tidak sengaja masuk ke commit.
Simpan nilai autentikasi sebagai variabel lingkungan, bukan sebagai nilai literal dalam request:
curl https://api-inference.huggingface.co/models/nama-model \
-H "Authorization: Bearer $HF_TOKEN"
Jika Anda memanggil Hugging Face Inference API saat membangun aplikasi, Apidog dapat menyimpan token sebagai variabel lingkungan dan meneruskannya sebagai bearer token saat request dikirim. Dengan begitu, token tidak tersimpan langsung dalam request dan dapat diganti dari satu lokasi setelah rotasi.
Gunakan pengujian berikut untuk memverifikasi hasil rotasi:
- Jalankan request menggunakan token baru dan pastikan respons berhasil.
- Jalankan request yang sama menggunakan token lama.
- Pastikan token lama mengembalikan
401atau403. - Hapus token lama dari semua environment, koleksi request, dan secret yang tersisa.
Untuk detail autentikasi, lihat perbedaan autentikasi dasar dan bearer token.
Terkait: uraian lengkap pelanggaran OpenAI dan Hugging Face serta dokumentasi token akses Hugging Face.
FAQ
Apakah saya harus merotasi token jika saya tidak merasa terpengaruh?
Ya. Hugging Face menyarankan semua pengguna untuk merotasi token. Setelah insiden, Anda tidak dapat memastikan kredensial mana yang mungkin telah dibaca penyerang.
Bagaimana saya tahu jika token digunakan oleh orang lain?
Tinjau Token Akses, commit terbaru, perubahan organisasi, penagihan, dan aplikasi terhubung. Hugging Face tidak menampilkan jejak audit per-token lengkap pada akun pribadi, jadi perlakukan token yang berada dalam lingkungan terdampak sebagai mencurigakan dan rotasi token tersebut.
Apakah rotasi akan merusak skrip saya?
Skrip, notebook, dan job CI yang masih memakai token lama akan gagal sampai Anda menggantinya dengan token baru. Karena itu, gunakan satu token per aplikasi agar penggantian tidak menimbulkan efek berantai.
Haruskah memakai token read atau fine-grained?
Gunakan read untuk unduhan atau inferensi pribadi yang sederhana. Gunakan fine-grained untuk produksi, CI, dan penggunaan bersama karena aksesnya dapat dibatasi ke sumber daya tertentu.
Di mana token baru harus disimpan?
Simpan di secret manager atau variabel lingkungan. Jangan simpan token dalam kode sumber, sel notebook, koleksi request, atau dokumen bersama.
Top comments (0)