جميع المقالات →

تصميم جداول تساعد محلّل الأمن في عمله

الموضوعات: التصميم · تجربة المستخدم · الجداول

يبحث محلّل الأمن عن قيمة ويستخدمها لتصفية النتائج، ويقارن بين توقيتات الأحداث، ثم يفتح التفاصيل ويعود إلى الصف الذي بدأ منه. إذا اضطر إلى إعادة هذه الخطوات كل مرة، أعاقه الجدول بدل أن يساعده.

لهذا لا أبدأ تصميم جدول أمني من شكل الأعمدة. أبدأ من السؤال الذي يحاول المحلل الإجابة عنه، ثم أرتب الشاشة حوله.

متى نحتاج إلى عرض بيانات أكثر؟

في التطبيقات العامة نحاول إعطاء كل عنصر مساحة واسعة. في شاشة تحقيق، المساحة نفسها قد تمنع المقارنة. إذا احتاج المحلل إلى رؤية 15 حدثًا معًا، فإن صفوفًا بارتفاع 64px تضطره إلى حفظ بعض التفاصيل أثناء التمرير للمقارنة بينها.

لا يعني ذلك ضغط كل شيء حتى يصبح غير مقروء. أستخدم ارتفاعًا مدمجًا للصف، ومسافة واضحة بين الأعمدة، وخطًا أحادي المسافة للوقت وعناوين IP وقيم hash. وأحتفظ باللون للحالة التي تستحقه. إذا كان كل عمود ملوّنًا فلن يبقى أي لون قادرًا على لفت الانتباه.

الخط أحادي المسافة مفيد هنا لسبب عملي: الأرقام والحروف تصطف رأسيًا، فيستطيع المستخدم تصفّح قيم العمود بسرعة بدل قراءة كل خلية منفردة.

رتّب الأعمدة حسب القرار

لا يوجد ترتيب واحد يناسب كل الجداول. في شاشة ما قد يبدأ القرار من مستوى الخطورة، وفي أخرى من الوقت أو المصدر أو القاعدة التي أطلقت الحدث. لذلك أسأل: ما أول معلومة ينظر إليها المحلل؟ وما القيمة التي تدفعه إلى فتح الصف؟

هذه الأعمدة تبقى في بداية الجدول. أما التفاصيل التي تدعم القرار فتأتي بعدها، ويمكن تمريرها أفقيًا أو إخفاؤها.

حتى مع إتاحة تخصيص الأعمدة، يجب أن يكون ترتيبها الافتراضي مناسبًا للعمل. معظم المستخدمين لن يعيدوا ترتيب الشاشة في أول يوم. يجب أن يعمل الترتيب الأساسي، ثم يستطيع من يحتاج إلى شكل مختلف أن يحفظه ويعود إليه.

ولا أثبّت نصف الجدول. عمود أو عمودان ثابتان قد يحافظان على هوية الصف أثناء التمرير. أكثر من ذلك يترك مساحة صغيرة لبقية البيانات ويصنع مشكلة جديدة.

لوحة المفاتيح جزء من العمل

عند التعامل مع عدد كبير من الأحداث، يساعد استخدام لوحة المفاتيح على إنجاز العمل بسرعة. لذلك يجب أن يستطيع المستخدم الانتقال بين الصفوف بالأسهم، وفتح التفاصيل من لوحة المفاتيح، وتصفية النتائج بحسب قيمة خلية من دون أن يرفع يده كل مرة.

المهم ليس الاختصار وحده، بل مكان التركيز بعده. إذا فتح المستخدم صفًا ثم أغلقه، يجب أن يعود إلى الصف نفسه. وإذا أضاف شرط تصفية، فلا ينبغي أن يضيع المؤشر في بداية الصفحة.

أفرّق بصريًا بين التركيز والتحديد. التركيز يعني أن الأمر التالي سيعمل هنا. التحديد يعني أن الصف داخل عملية جماعية. قد يجتمعان، لكنهما ليسا الشيء نفسه.

لا تجعل العودة تبدأ من الصفر

للحفاظ على تقدم التحقيق، يحتاج الجدول إلى تذكّر عدة تفاصيل:

  • عوامل التصفية؛
  • ترتيب النتائج؛
  • الأعمدة الظاهرة؛
  • الصف المفتوح؛
  • موضع التمرير.

إذا فتح المحلل صفحة التفاصيل ثم عاد، يجب أن يجد الشاشة كما تركها. وإذا حدّث الصفحة أو أرسل الرابط إلى زميله، فمن المفيد أن يعيد URL بناء الاستعلام نفسه.

أضع عوامل التصفية والترتيب والمدى الزمني في URL عندما يكون ذلك ممكنًا. أما حالة الواجهة المؤقتة، مثل عرض لوحة جانبية، فيمكن أن تبقى محلية. ليس المطلوب وضع كل شيء في الرابط؛ المطلوب ألا تضيع خطوات البحث التي أوصلت المستخدم إلى النتيجة.

هذا يفيد فريق التطوير أيضًا. بدل رسالة تقول «اختر أمس، ثم المصدر الفلاني، ثم رتّب العمود»، يصل رابط يفتح الحالة نفسها.

حافظ على موضع الصفوف عند وصول بيانات جديدة

إذا كان الجدول حيًا ويضيف صفوفًا باستمرار، فهناك فرق بين مستخدم يتابع آخر حدث ومستخدم صعد لقراءة حدث أقدم. الأول يريد أن يبقى عند النهاية. الثاني لا يريد للصف الذي يقرأه أن يتحرك.

أميّز بين الحالتين في الواجهة. عندما يترك المستخدم النهاية، تتجمع الأحداث الجديدة ويظهر عداد صغير. يستطيع العودة إليها عندما ينتهي، من دون أن تقفز الشاشة أثناء قراءته.

وهنا يجب حفظ موضع التمرير بهوية الصف، لا بعدد البكسلات فقط. الصف الذي يقرأه المستخدم هو نقطة الارتكاز.

لا تخلط بين ثلاث حالات

التركيز والتحديد وفتح التفاصيل ثلاث حالات مستقلة. استخدام لون واحد لها يجعل الجدول غامضًا:

  • التركيز يحدد مكان أمر لوحة المفاتيح التالي؛
  • التحديد يحدد الصفوف الداخلة في إجراء جماعي؛
  • فتح التفاصيل يعرض معلومات صف واحد.

هذا الفصل مهم لقارئ الشاشة أيضًا. إذا كانت البيانات جدولية فعلًا، أستخدم عناصر الجدول وعلاقة واضحة بين رأس العمود والخلايا. وأعلن حالة الترتيب والتحديد، ولا أجعل virtualization يخفي معنى عدد الصفوف وموقع الصف الحالي.

لا تمسح الشاشة أثناء التحميل

عند تغيير خيارات التصفية، قد يوحي استبدال الجدول كله بمؤشر تحميل بأن النتائج والاختيارات السابقة ضاعت. أفضل إبقاء النتائج السابقة مرئية مع إشارة واضحة إلى أن التحديث جارٍ، ثم أستبدلها عند وصول الرد.

وينطبق الشيء نفسه على الخطأ. رسالة «حدث خطأ» وحدها لا تكفي. يجب أن يبقى الاستعلام ظاهرًا، وأن يعرف المستخدم هل يعيد المحاولة على الحالة نفسها أم على حالة جديدة.

في الاتصال الحي، أعرض وقت آخر تحديث وحالة الاتصال بعيدًا عن الصفوف. بيانات عمرها دقيقة مع توقيت واضح أفضل من شاشة فارغة لا تقول إن الاتصال انقطع.

الجدول ليس نهاية التحقيق

سيحتاج المحلل إلى نسخ عنوان IP أو hash، أو إرسال رابط، أو تصدير النتائج المفلترة. يجب أن تخرج البيانات من الجدول بسهولة. واجهة تمنع النسخ أو تصدّر كل السجلات بدل النتائج الحالية تهدر العمل الذي سبقها.

أقيس جودة الجدول بقدرته على تسهيل عمل المحلّل: يحفظ موضعه، ويساعده على المقارنة، ويتيح له متابعة التحقيق من حيث توقف.