Vấn đề không còn là “developer có dùng AI không”. Vấn đề mới là bất kỳ ai trong công ty cũng có thể tạo một app nhỏ.

Sales tạo CRM mini. HR tạo form review. Ops tạo dashboard booking. Finance tạo tool reconcile. Marketing tạo portal campaign. Không cần sprint, không cần ticket, không cần dev environment. Chỉ cần một vibe coding tool và một buổi chiều.

Đó là sức mạnh thật. Nhưng nó cũng là shadow IT phiên bản AI: phần mềm nội bộ xuất hiện trước khi IT, security, legal, hoặc data owner kịp biết nó tồn tại.

Khi internal tool được tạo quá nhanh, câu hỏi nguy hiểm nhất là: nó đang public cho ai?

Internal không tự nhiên là private

Người dùng hay nghĩ “tôi làm tool nội bộ” nghĩa là tool private. Nhưng privacy không đến từ ý định. Privacy đến từ cấu hình.

Một app có thể leak vì:

  • Link preview public.
  • Project setting để public by default.
  • Search engine index được page.
  • File upload nằm ở bucket public.
  • Database rule cho anonymous read.
  • App dùng sample config nhưng data thật.
  • User paste spreadsheet nhạy cảm vào prompt hoặc tool builder.

Không có hacker phức tạp nào ở đây. Chỉ là app được publish như website bình thường trong khi người tạo nghĩ nó là notebook cá nhân.

Data nhạy cảm thường đi vào app trước khi có policy

Internal tool có điểm hấp dẫn: nó giải quyết đúng pain thật. Vì vậy người dùng nhanh chóng đưa data thật vào:

  • Danh sách khách hàng.
  • Lead pipeline.
  • Invoice.
  • Email khách.
  • Tài liệu nội bộ.
  • Medical hoặc education record.
  • Meeting transcript.
  • Access token để gọi API công ty.

Nếu tool chưa qua review, bạn vừa đưa data thật vào một system chưa ai kiểm kê.

Vibe coding không tạo ra vấn đề data governance từ số không. Nhưng nó làm đường vòng quanh governance ngắn hơn rất nhiều.

Nhiều người phân biệt “prototype” và “production” bằng mức độ hoàn thiện UI. Với security, cách phân biệt khác hơn:

Nếu nó chứa dữ liệu thật và người ngoài có thể truy cập, nó đã là production risk.

Không quan trọng app còn xấu hay đẹp. Không quan trọng bạn gọi nó là test. Không quan trọng nó chỉ là link tạm. Nếu data thật leak, đó là incident thật.

Vì vậy với internal tool, câu hỏi đầu tiên không phải “feature xong chưa?” mà là:

Who can see this?
What data is inside?
Can it be indexed, copied, or shared?

Checklist trước khi share internal app

Trước khi gửi link cho team, kiểm:

  1. App có bắt login không?
  2. Login là real company login hay fake login?
  3. Link có mở được bằng incognito không?
  4. App có đang dùng customer/internal data thật không?
  5. Data upload có nằm ở storage public không?
  6. Có ai ngoài workspace truy cập được không?
  7. Search engine có index được không?
  8. Có secret/API key trong frontend bundle không?
  9. Có log chứa dữ liệu nhạy cảm không?
  10. Có owner chịu trách nhiệm khi cần gỡ link không?

Nếu không trả lời được, chưa share rộng.

Công ty cần inventory, không chỉ policy

Policy kiểu “đừng leak data” không đủ. Khi vibe coding phổ biến, công ty cần biết app nào đang tồn tại.

Các control thực dụng:

  • Approved AI builders list.
  • Workspace/domain allowlist.
  • Rule: app chứa data nội bộ phải private by default.
  • Review gate trước khi dùng customer data.
  • Periodic scan public apps theo company domain/name.
  • Data classification: cái gì không được paste vào AI tool.
  • Kill switch: ai có quyền gỡ app khi phát hiện leak.

Mục tiêu không phải cấm hết. Mục tiêu là không để phần mềm nội bộ mọc trong bóng tối.

Prompt cho non-tech trước khi publish

Trước khi bấm share/deploy, hỏi agent:

Audit this app for accidental public exposure.
List every place where internal, customer, financial, medical, school, or employee data is stored, displayed, logged, uploaded, or sent to a third party.
Tell me whether the app can be opened by someone without login.
Do not change settings yet.

Sau đó tự test incognito. Đừng chỉ tin câu trả lời.

Chốt lại

Vibe coding làm internal tools rẻ và nhanh hơn. Đây là cơ hội lớn cho công ty: nhiều workflow nhỏ trước đây không đáng dev time giờ có thể được tự động hóa.

Nhưng khi ai cũng build được app, ai cũng có thể vô tình publish data.

Ranh giới mới không phải “ai được code”. Ranh giới mới là “ai được đưa dữ liệu thật vào app nào, app đó private ra sao, và ai chịu trách nhiệm khi nó public nhầm”.

Nếu không có ranh giới đó, shadow AI sẽ không chỉ tạo tool. Nó sẽ tạo incident.

Tham khảo