Pemantauan Informasi Sensitif dan Rahasia Secara Otomatis pada Slack
oleh Amar Shinde, Mohammad Febri Ramadlan
Last updated
oleh Amar Shinde, Mohammad Febri Ramadlan
Last updated
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.
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.
Di bawah ini adalah flowchart dari program pemantauan informasi sensitif dan rahasia pada Slack yang dibangun.
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.
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.
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.
3. Deteksi informasi sensitif dan rahasia.
Terdapat dua pendekatan dalam melakukan identifikasi kata kunci:
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:
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:
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.
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.
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.
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.
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.
Demikian pula pesan peringatan akan dikirim ke saluran tim keamanan, pesan peringatan akan terlihat seperti berikut
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.
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.
https://slack.com/
https://api.slack.com/