Pemantauan Informasi Sensitif dan Rahasia Secara Otomatis pada Slack

oleh Amar Shinde, Mohammad Febri Ramadlan

Di Halodoc, Slack berfungsi sebagai platform komunikasi dan kolaborasi yang sangat berguna bagi banyak tim yang bekerja bersama. Dengan antarmuka yang mudah dimengerti dan fitur-fitur yang lengkap, Slack memungkinkan tim-tim tersebut untuk berbagi informasi, berdiskusi, dan bekerja sama dengan lebih efektif. Terlepas dari apakah mereka perlu berkomunikasi dalam obrolan publik yang terbuka untuk semua anggota tim, mengirim pesan pribadi secara langsung, atau bahkan melakukan percakapan multi-conversation dalam konteks tertentu, Slack menyediakan alat yang diperlukan untuk menghubungkan orang-orang tersebut dengan mulus. Dengan kata lain, Slack adalah alat yang sangat membantu dalam menjembatani komunikasi antar tim di Halodoc.

Namun, meskipun Slack adalah alat yang berguna untuk berkomunikasi dan berkolaborasi, kami perlu mengingat beberapa hal yang penting ketika menggunakan platform ini. Salah satu pertimbangan utama adalah bahwa Slack tidak selalu memiliki tingkat pemantauan keamanan yang cukup ketika tidak dikonfigurasi dengan benar. Akibatnya, ada risiko bahwa beberapa channel atau saluran komunikasi di dalamnya dapat menjadi lebih rentan terhadap berbagai masalah keamanan yang berpotensi merugikan data dan reputasi organisasi.

Ketika berbicara tentang risiko keamanan di Slack, salah satu keprihatinan yang perlu dihadapi adalah kemungkinan terbukanya dan bocornya informasi sensitif atau rahasia. Ini bisa terjadi secara tidak sengaja ketika anggota tim berbagi informasi yang seharusnya tidak terlihat oleh semua orang. Misalnya, informasi seperti identitas pribadi (Personal Identifiable Information/PII), data pelanggan atau pasien (Protected Health Information/PHI), data perusahaan yang rahasia, atau bahkan informasi penting lainnya yang jika berada di tangan yang salah dapat menyebabkan pelanggaran data yang serius dan pelanggaran privasi yang merugikan. Oleh karena itu, penting bagi kami untuk selalu mempertimbangkan dan menerapkan langkah-langkah keamanan yang sesuai ketika menggunakan Slack agar semua tim dapat menjaga keamanan data dan reputasi organisasi dengan baik.

Karena itu, salah satu tujuan utama dari tulisan ini adalah untuk lebih mendalamkan pemahaman tentang risiko yang terkait dengan berbagi informasi penting seperti kata sandi, informasi data pribadi (PII), data pasien, serta kredensial dan data sensitif lainnya. Sementara itu, tulisan ini juga akan membahas bagaimana pemantauan yang tepat dalam penggunaan Slack bisa menjadi solusi yang efektif untuk melindungi organisasi dari potensi ancaman, memperkuat privasi data, dan menciptakan lingkungan kerja digital yang lebih aman dan terjamin bagi semua pengguna Slack.

Apa yang dimaksud dengan “Pemantauan Informasi Sensitif dan Rahasia pada Slack?

Pemantauan informasi sensitif dan rahasia pada Slack adalah suatu program menggunakan bahasa Python yang dirancang untuk memantau secara eksklusif semua informasi sensitif dan rahasia khususnya semua channel publik yang ada di Slack. Mengapa hanya channel publik, tidak dengan privat? Karena kami ingin tetap menjaga aspek privasi dimana orang yang berada pada channel privat tetap dapat mengirim pesan dengan aman dan nyaman kepada penerima yang sah melalui mekanisme approval. Sebaliknya, pesan yang berada di channel publik dapat dikonsumsi oleh semua orang, termasuk orang yang tidak bergabung kepada channel tersebut. Ini menjadi resiko tersendiri dimana insider threat sangat mungkin terjadi. Selain itu program ini secara proaktif memeriksa berbagai elemen dalam Slack, termasuk pesan, potongan kode, dan file yang dibagikan.

Sistem pemantauan yang waspada ini diterapkan pada environment Continuous Integration / Continuous Development (CI/CD) yang berjalan 24 jam untuk memastikan pengawasan secara regular dan berkelanjutan. Singkatnya, program Python ini memainkan peran penting dalam menjaga keamanan channel publik Slack secara aktif dan mengidentifikasi potensi risiko serta meningkatkan integritas platform secara keseluruhan.

Implementasi 'Pemantauan Informasi Sensitif dan Rahasia pada Slack'

Di bawah ini adalah flowchart dari program pemantauan informasi sensitif dan rahasia pada Slack yang dibangun.

Gambar 1 - Flowchart dari program pemantauan informasi sensitif dan rahasia pada Slack

1. Membangun Koneksi ke Slack. Untuk membangun komunikasi dengan Slack dari program Python, kami perlu menggunakan token bot API Slack dan modul Python slack_sdk. Slack bot adalah aplikasi yang dibuat di lingkungan Slack dengan cakupan tertentu. Di bawah ini adalah cuplikan kode sampel untuk membangun komunikasi.

Gambar 2 - Membuat koneksi ke slack dengan API

2. Integrasi Slack bot ke channel publik. Untuk menjalankan pemindaian pesan di Slack, langkah pertama yang perlu kami lakukan adalah menghubungkan bot Slack dengan saluran Slack yang ingin diperiksa. Dalam skrip tersebut, sebuah fungsi yang dibuat akan secara otomatis memasukkan bot Slack ke semua saluran publik yang ada di ruang kerja Slack tersebut. Selain itu, jika ada saluran publik baru yang dibuat di masa depan, bot akan secara otomatis ditambahkan ke dalamnya saat program berjalan. Di bawah ini, kami menyediakan potongan kode yang dalam memasukkan channel_id dan bot_id agar bot dapat diundang ke saluran yang diinginkan.

Gambar 3 - Melakukan integrasi bot ke channel publik

Selain itu, kami akan mendapatkan ID saluran dari Slack dengan menggunakan metode conversation_list yang tersedia dalam API Slack. Berikut adalah potongan kode yang akan mengambil semua detail saluran publik yang ada di ruang kerja Slack. Kode ini akan mengambil 999 saluran publik terbaru dan akan mengabaikan saluran yang telah diarsipkan. Jika terdapat lebih dari 999 saluran publik di ruang kerja Slack, maka pada iterasi berikutnya, posisi cursor akan diubah dan akan mengambil 999 saluran berikutnya. Proses ini akan terus berlanjut hingga nilai kursor menjadi tidak ada lagi.

Gambar 4 - Mengambil semua detail informasi di channel publik

3. Deteksi informasi sensitif dan rahasia.

Terdapat dua pendekatan dalam melakukan identifikasi kata kunci:

Level - 1: Mengambil pesan berdasarkan pendekatan String Matching

API Slack memiliki metode yang memungkinkan mencari pesan berdasarkan kata kunci tertentu. Metode ini disebut search_messages() dan mengharuskan kami memberikan kata kunci yang ingin dicari. Setelahnya, metode ini akan mencari, menghitung, menyusun, dan mengembalikan pesan yang sesuai dengan kata kunci tersebut. Di bawah ini adalah potongan kode dari metode search_message() yang digunakan:

Gambar 5 - Mencari pesan berdasarkan string matching keywords tertentu

Fungsi search_messages() berfungsi dengan mengambil kata kunci yang ingin dicari, yang disebut query, sebagai argumen. kami juga dapat menentukan jumlah pesan yang ingin ditemukan dengan menggunakan argumen count. Jika pesan terbaru ingin dimunculkan pertama, maka perlu memberikan argumen sort dengan timestamp.

Sekarang, dalam konteks pemantauan kredensial, kami telah menyusun daftar beberapa kata kunci yang sering digunakan saat berbagi data berdasarkan pengamatan terhadap pesan yang telah dibagikan di workspace. Di bawah ini adalah beberapa contoh kata kunci yang umum digunakan:

Gambar 6 - Contoh beberapa keywords umum yang sering digunakan

Tentu, kata kunci tersebut dapat di evaluasi dan diperbaharui secara periodik dan terus ditingkatkan dari waktu ke waktu. Adapun kata kunci lainnya seperti informasi kartu kredit, npwp, rekam medik, data rahasia perusahaan dapat dibuat dalam satu file konfigurasi terpisah agar lebih mudah dalam melakukan maintenance.

Level - 2: Validasi pesan berdasarkan pendekatan Regex

Setelah mencari pesan berdasarkan kata kunci, langkah selanjutnya adalah memastikan apakah pesan yang telah diambil mengandung data yang relevan atau hanya kata kunci. Untuk melakukan ini, kami menggunakan pola regex (regular expression) yang berfungsi untuk mengidentifikasi berbagai jenis data seperti alamat email, nomor ponsel, tanggal lahir, nomor paspor, dan sebagainya. Berikut adalah potongan kode yang digunakan dalam metode regex ini agar lebih mudah dipahami.

Gambar 7 - Melakukan validasi pada pesan yang didapat menggunakan regex

Method containsEmail() berfungsi untuk menentukan apakah pesan tersebut mengandung alamat email atau tidak. Demikian pula, contain_mobile_number() akan mengambil teks sebagai input dan mencari tahu apakah ada nomor ponsel di dalamnya. Kami juga telah menyediakan pola regex khusus untuk mendeteksi nomor ponsel yang sesuai dengan format Indonesia dan India. Sama halnya seperti menggunakan pola regex untuk mengenali tanggal lahir dalam teks pesan.

4. Mengirim Alert Kepada Tim Cybersecurity & Memperingatkan Pengguna.

Setelah mengidentifikasi pesan sebagai pesan yang berpotensi mengandung informasi sensitif dan rahasia atau kredensial, langkah selanjutnya adalah memberi tahu tim Cybersecurity melalui notifikasi di saluran Slack mereka. Selain itu, bot juga mengirimkan pesan langsung kepada pengguna yang bersangkutan. Untuk melakukan ini, kami menggunakan metode chat_postMessage(). Berikut adalah potongan kode yang digunakan untuk mengirimkan pesan. message_text_user adalah pesan peringatan yang dikirim langsung kepada pengguna, sedangkan message_text_team adalah pesan peringatan yang diteruskan ke tim keamanan.

Gambar 8 - Membuat skrip notifikasi alert untuk user dan tim cybersecurity

5. Contoh Alert.

Ini adalah contoh pesan peringatan yang dikirimkan kepada pengguna karena terdeteksinya informasi sensitif dan rahasia dalam pesan yang dikirim oleh pengguna di beberapa saluran publik, kami telah menyertakan nama saluran, stempel waktu, tautan ke pesan.

Gambar 9 - Contoh alert yang diterima oleh user

Demikian pula pesan peringatan akan dikirim ke saluran tim keamanan, pesan peringatan akan terlihat seperti berikut

Gambar 10 - Contoh alert yang diterima oleh tim cybersecurity

Apa Selanjutnya?

Tidak hanya berhenti sampai sini. Akan ada banyak area yang dapat dikembangkan kembali, salah satunya implementasi auto blocking terhadap kata kunci yang sesuai dengan policy internal. Ini telah menjadi bagian dari roadmap kami kedepan. Konsep ini hampir mirip dengan Data Leakage Protection, dimana script yang dikembangkan dapat mencegah user dalam melakukan sharing informasi sensitif atau rahasia baik disengaja ataupun tidak disengaja.

Kesimpulan

Implementasi pemantauan informasi sensitif dan rahasia pada Slack adalah langkah penting dalam menjaga keamanan data dan privasi dalam lingkungan kerja digital. Dengan demikian, implementasi pemantauan informasi sensitif dan rahasia pada Slack adalah tindakan yang proaktif untuk menjaga keamanan data dan melindungi privasi pengguna dalam lingkungan kerja digital. Ini adalah langkah yang sangat penting dalam menghadapi ancaman terkait keamanan informasi di dunia maya. Tentu, mengingat ini adalah tahap implementasi awal, konsep dan ide berikutnya dapat dikembangkan sesuai kebutuhan.

Referensi

  1. https://slack.com/

  2. https://api.slack.com/

Tentang Penulis

Amar Shinde, Software Development Engineer in Test, Halodoc
Mohammad Febri Ramadlan, Senior Engineering Manager, Halodoc

Last updated