معظم عمليات الاختراق لا تبدأ بثغرة ذكية. تبدأ بشخص يسجّل الدخول.
هذه الجملة تستحق التوقف عندها، لأنها تناقض الطريقة المعتادة في تعليم هذا الموضوع. المهاجم الذي يملك اسم مستخدم وكلمة مرور صالحَين لا يحتاج إلى ثغرة. هو لا يقتحم النظام، بل يدخل من الباب مباشرة، وكل إجراء بنيته لمنع تنفيذ الأكواد الخبيثة لا قيمة له أمامه.
ثلاثة أشياء يستطيع النظام التحقق منها
هناك ثلاثة أشياء يستطيع النظام التحقق منها بخصوصك. شيء تعرفه، وهو كلمة المرور. شيء تملكه، وهو هاتف أو مفتاح أجهزة. شيء أنت عليه، وهو بصمة الإصبع أو الوجه. كلمة المرور وحدها أضعف هذه الثلاثة، وهي مع ذلك ما يزال يُعتمد عليها افتراضيًا في معظم الأنظمة.
سبب أهمية مشكلة إعادة استخدام كلمات المرور هو حسابي بحت، لا أخلاقي. الشخص العادي لديه ربما مئتا حساب وربما أربع كلمات مرور فقط. وعندما يُخترق أحد هذه الحسابات — وسيُخترق واحد منها حتمًا — لا يحصل المهاجم على حساب واحد فقط. يحصل على قائمة كاملة، ويعيد استخدامها في كل مكان. يسمى هذا "حشو بيانات الاعتماد" (credential stuffing)، وينجح لأن الحساب في صالح المهاجم.
كيف تبدو عملية الحشو
عملية حشو بيانات الاعتماد تبدو واضحة في سجلات تسجيل الدخول بمجرد أن تراها مرة واحدة: عدد المحاولات الفاشلة يرتفع بشكل حاد ومفاجئ، بينما عمليات الدخول الناجحة بالكاد تتحرك. النمط واضح جدًا بمجرد أن تلاحظه. حجم هائل من المحاولات، أسماء مستخدمين متفرقة، وفشل شبه كامل — لأن المهاجم يختبر قائمة حصل عليها من مكان آخر تمامًا.
A night of sign-ins. Count by result first, then by account. The shape of a stuffing run is in the first; which account it reached is in neither, and that is the point — you have to read a line.
02:12:17 a.hassan failed 198.51.100.23 02:13:50 d.ibrahim failed 198.51.100.23 02:15:36 h.qadir failed 198.51.100.23 02:16:52 j.salih failed 198.51.100.23 02:18:20 k.aziz failed 198.51.100.23 02:18:58 m.taha failed 198.51.100.23 02:19:36 n.barzan failed 198.51.100.23 02:20:00 r.othman failed 198.51.100.23 02:21:49 s.rashid failed 198.51.100.23 02:23:20 z.karim failed 198.51.100.23 02:23:48 a.hassan failed 198.51.100.23 02:24:13 d.ibrahim failed 198.51.100.23 02:24:42 h.qadir failed 198.51.100.23 02:25:17 j.salih failed 198.51.100.23 02:26:04 k.aziz failed 198.51.100.23 02:27:35 m.taha failed 198.51.100.23 02:28:28 n.barzan failed 198.51.100.23 02:28:52 r.othman failed 198.51.100.23 02:30:39 s.rashid failed 198.51.100.23 02:31:57 z.karim failed 198.51.100.23 02:33:33 a.hassan failed 198.51.100.23 02:34:47 d.ibrahim failed 198.51.100.23 02:35:21 h.qadir failed 198.51.100.23 02:36:22 j.salih failed 198.51.100.23 02:38:08 k.aziz failed 198.51.100.23 02:39:25 m.taha failed 198.51.100.23 02:40:19 n.barzan failed 198.51.100.23 02:41:12 r.othman failed 198.51.100.23 02:41:42 s.rashid failed 198.51.100.23 02:42:51 z.karim failed 198.51.100.23 02:43:26 a.hassan failed 198.51.100.23 02:45:10 d.ibrahim failed 198.51.100.23 02:45:36 h.qadir failed 198.51.100.23 02:46:46 j.salih failed 198.51.100.23 02:47:56 k.aziz failed 198.51.100.23 02:49:09 m.taha failed 198.51.100.23 02:50:02 n.barzan failed 198.51.100.23 02:51:39 r.othman failed 198.51.100.23 02:52:59 s.rashid failed 198.51.100.23 02:54:31 z.karim failed 198.51.100.23 02:56:13 a.hassan failed 198.51.100.23 02:56:43 d.ibrahim failed 198.51.100.23 02:57:13 h.qadir failed 198.51.100.23 02:58:16 j.salih failed 198.51.100.23 02:58:38 k.aziz failed 198.51.100.23 02:59:25 m.taha failed 198.51.100.23 03:00:42 n.barzan failed 198.51.100.23 03:01:30 r.othman failed 198.51.100.23 03:03:04 s.rashid failed 198.51.100.23 03:04:36 z.karim failed 198.51.100.23 03:05:48 a.hassan failed 198.51.100.23 03:06:15 d.ibrahim failed 198.51.100.23 03:07:09 h.qadir failed 198.51.100.23 03:08:54 j.salih failed 198.51.100.23 03:09:17 k.aziz failed 198.51.100.23 03:11:02 m.taha failed 198.51.100.23 03:12:44 n.barzan failed 198.51.100.23 03:13:43 r.othman failed 198.51.100.23 03:14:47 m.taha ok 198.51.100.23 09:02:14 s.rashid ok 10.4.1.56 09:07:41 a.hassan ok 10.4.1.22
حشو بيانات الاعتماد لا ينجح إلا على نطاق واسع، حيث يكون إعادة استخدام كلمات المرور شائعًا والعامل الثاني للتحقق اختياريًا. لهذا السبب لا يكون الحل بإخبار الناس أن يختاروا كلمات مرور أفضل — بل بجعل العامل الثاني للتحقق إعدادًا افتراضيًا، لا خيارًا يبحث عنه المستخدم بنفسه.
بعد الباب
شيء أخير، لأنه الجزء الذي يغفل عنه الناس. بعد أن تتحقق من هويتك، يتوقف النظام عن التحقق من كلمة المرور ويبدأ بالوثوق برمز الجلسة (session token). فإذا سُرق هذا الرمز، يتخطى المهاجم عملية التحقق بالكامل — ولهذا فإن القول "لدينا نظام تحقق بخطوتين" ليس نهاية النقاش. يجب أن تنتهي صلاحية الجلسات، وأن تكون مرتبطة بجهاز معين، وقابلة للإلغاء، وإلا فهي مجرد كلمة مرور بخطوات إضافية لا أكثر.