x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
مجال الـ Blockchain Penetration Testing ابتدي يفرض نفسه علي الساحة بسبب انتشار استخدام ال Blockchain Technology في كل دول العالم و اغلبهم بنوك طبعاً و من الممتع ان ال Technology دي بدأت تنتشر بشكل كبير في ال MENA و دة واحد من اهم الاسباب الي خلتني اكتب البوست دة عشان الناس تبقي Aware دايماً بكل الجديد مش هنقعد طول حياتنا نتكلم في ال Web Penetration Testing الي كل الناس دلوقتي تقريباً بقت بتتكلم فيها....
اي Pentester في الدنيا قبل ما ييجي يشتغل ف اي حاجة في الدنيا لازم دايماً يعرف ال Scope بتاعه لازم يعرف الحاجة الي هو هيـ Penetrate عليها....يعني مثلاً لو هتعمل Penetration Testing علي ال Web Applications في غالباً ال Scope بتاعك بيبقي ال Front End الي هو ال Site الي انت شايفه قدام عينك و ال Backend الي فيها ال DNS و ال WAF و ال Firewall و ال Proxy و ال Load Balancer و ال Web Server و ال Mail System و ال FTP Server و غيرهم....دة كدة مبدأياً الـ Scope بتاع ال Web Application Penetration Testingطب ايه هو ال Scope بتاع ال Blockchain Penetration Testing ?!
الناس بعد ما درسوا ال Blockchain Technology و لقوا النجاح الكبير الي هي نجحته و كمية ال Applications الي بقت ليها في ال market فكروا في ال Threats و ال Vulnerabilities الي ممكن تكون موجودة في ال Blockchain لأنه زيها زي اي Digital System في الدنيا مش Secure 100% ف قالوا الناس ال Pentesters لازم يكون ليهم دور و يشاركوا معانا.....
فقالك احنا عشان نوضح الدنيا لازم نقسم ال Scope دة 3 أقسام عشان ال Pentester يعرف هو هيتحرك فين بالظبط و كل قسم من دول يتقسم لـ 3-4 اقسام تحتيه طب ايه هي الأقسام الرئيسية بتاعت ال Blockchain Penetration Testing ?!
- قالك عندك ال Nodes الي موجودة في ال Blockchain
- و عندك ال Shared Ledger الي هو ال Storage او ال database الي بيتخزن عليها ال Data بتاعت ال Nodes و بتاعت ال Chain كلها
- عندك ال API الي هو ال User بيستخدمه عشان يـ Interact مع ال Chain دي سواء كان ال API دة Mobile Application او Web Application
طب براحة و تعالي نشرح كل جزء لواحده كدة عشان الدنيا توضح للناس الي لسة مش Familiar اوي بالـ Blockchain Technology :
# أول_جزء ال Nodes :
ال Nodes هي العمود الفقري لاي Blockchain هي عبارة عن ال Devices و ال Wallets الي موجودة في ال Blockchain و هي ال Network الي بتقوم ال Chain كلها و الي مسؤولة عن ال Sync و ال Communication مع ال Ledger و اهم حاجتين في ال Nodes هما ال Sync و ال Redundancy :
ال Sync هو ان الي يحصل في Node لازم يسمع ف باقي ال Nodes علي طول سواء كان Data جديدة او Encryption او Hashing او Transactions او اي حاجة..
تاني حاجة ال Redundancy : معني ال Redundancy هي ان دايماً لازم يكون فيه Nodes زيادة في ال Chain و هنعرف ليه بعد كدة...
طب ايه الي المفروض اعمله في ال Nodes عشان اتأكد انه Secured ؟!
اول حاجة ال Vulnerability Assessment : لازم كل ال Servers الي شايلة ال Nodes دي كلها و كل ال Devices يتعملها ب استمرار Vulnerability Assessment و Structure Review و لازم دايماً ال Pentester يبص لكل Node لوحدها عشان ممكن تكون فيه Node مش Vulnerable و Node تانية Vulnerable و ييجي منها ال Exploit...
تاني حاجة ال Redundancy Test و دة بيبقي عن طريق ان ال Pentester بيوقع Node من ال Nodes الي موجودة في ال Chain و بيشوف ايه الي هيحصل....المفروض ال Chain تقوم مدخلة واحدة من ال Nodes الزيادة و تقوم بيها او تعمل load balance علي باقي ال nodes الموجودة لان المفروض ال Chain متكونش معتمدة علي Node واحدة او علي عدد Nodes معينة لأن معني كدة ان ال Attacker او ال Hacker هيبقي عارف انه لو عرف يوقع Node واحدة بس هيقدر يوقع ال Chain كلها فا ال Redundancy Test يعتبر من اهم ال Tests الي ممكن تتعمل في ال Blockchain Penetration Testing
تالت حاجة ال Sync Test لازم ال Pentester يتأكد من ان ال Nodes كلها بتـSync مع بعض و لما بيحصلهم Update كلهم بياخدوا ال Updates مع بعض و ان مينفعش تكون Node شغالة ب Version اقل من غيرها لان فيه Risk ان يبقي فيه Node تكون out dated ف تكون vulnerable عن غيرها ف يقدر ال Attackers يا اما يدخل ال Blockchain من خلالها او يقدر يوقع ال Blockchain كلها منها...
بعد كدة فيه نيجي للجزء المقعد شوية في الموضوع و نحاول نبسطه علي اد ما ينفع يتبسط...
ال Algorithms الي بتشتغل بيها ال Blockchain....دلوقتي انا عندي نوعين من ال Algorithms الي ممكن اي Blockchain تقوم بيهم و نوع ال Algorithm المستخدم بيتم تحديده بالاتفاق بين كل ال Nodes....ايه هي بقي ال Algorithms دي ؟!
# اول Algorithm هو ال PoW او الي اسمه Proof of Work بيشتغل ازاي ال Algorithm دة عشان نفهم ال Penetration Testing بتاعه ؟!
ال PoW بيشتغل عن طريق ان ال user او ال node عشان يقدر ي Submit ال Block او يعمل verify لل Transaction لازم يقدر يحل ال Mathematical Algorithm بتاعه
# تاني Algorithm هو ال PoS او الي اسمه Proof of Stake بيتم اختيار الشخص مش علي حسب طريقة حله لل Algorithm بيتم اختياره علي حسب حجم ال Wallet بتاعته يعني علي حسب عدد ال Coins او ال Currency الي معاه يعني من الاخر اغني شخص هو الي بيقدر ي create ال new blocks و validate علي ال transactions.
طب كدة عرفنا ال Blockchain Algorithms بتشتغل ازاي...ايه هي بقي ال Risks او ال vulnerabilities الي ممكن تيجي من عندهم الي لازم ال Pentester ياخد باله منهم....
اول حاجة ال PoW دة Vulnerable لحاجات كتير منهم ان ال Hacker ممكن يقدر يحل ال Mathematical Problems و يقدر ياخد Access علي ال nodes و بالتالي يقدر يغير من ال Blockchain عن طريق انه يا اما يعمل Blocks جديدة او يعمل Verification علي اي Transactions
تاني حاجة ال PoS دة Vulnerable عن طريق ان ال control كله بيبقي ف ايد واحد بس الي هو بيكون اغني واحد في ال Node ف الشخص دة لو حصل لل Node بتاعته Compromise او هو اصلا شخص مش كويس ف هيقدر ال Hacker ياخد Control علي ال Blockchain كلها...
حاجة كمان في ال Nodes لازم ال Pentester ياخد باله منها هي ال Wallets
ال Wallets بتبقي Application ليه Access علي كل Node لوحدها و بيشتغل عن طريق ان ال Public Key بيكون مع الناس كلها و ال Private Key بتاع كل Node بيبقي مع ال Wallet بس... فيه نوعين من ال Penetration Testing بيتعملوا علي ال Wallets :
اول نوع هو Password Strength Review :
زيها زي ال Domain Controller في ال Windows مثلا من ضمن ال Penetration Testing بتاعها اني لازم اشوف ال Password Strength Mechanism بتاعتها هل هي بتقبل Weak Passwords ولا لا هل هي اقل عدد من ال Digits بتاخده كام عشان اقدر اشوف هي Brute-Forcable ولا لا.....
تاني نوع من ال Penetration Testing الي بيتعمل علي هو ال Key Storage Review :
لازم ال Pentester يعمل Test علي ال Storage و ال Locations الي بيتخزن فيها ال Keys بتاعت ال Wallet لان ساعات بيحصل Insecure Storage بيقدر ال Attacker لل Private Keys بتاعت ال Wallet و يسرق كل فيها و دة حصل ف كتير من ال Cyber Attacks في 2017.
تاني جزء في Penetration Testing ال Blockchain هو ال Shared Ledger
ال Shared Ledger يعتبر من اهم ال Parts في ال Blockchain عشان هو بيعتبر ال Database الي بيتخزن فيها ال Data بتاعت ال Chain كلها.....فيه نوعين من ال Penetration Testing الي بيتعمل علي ال Shared Ledger عشان ال Pentester يتاكد انه Secure :
اول واحد هو Information Disclosure :
ال Blockchain بيشتغل عن طريق ان ال Data بتتحط في Blocks و ال Blocks بعد كدة بتتحط علي ال Application الي بيستخدمه ال User لازم ال Pentester يعمل Penetration Testing علي ال Blocks عشان يتاكد ان مبيحصلش منها اي Information Leakage لان كل ال Data الي فيه بتكون Sensitive.
تاني Test واحد هو Smart Contract Code Review
فيه كتير من ال Blockchains الي ال Blocks فيها بيبقي فيها حاجة اسمها Smart contract Code دة بتبقي زي Block of Code جاهز ينفذ اي Function زيه زي اي API مكتوب ب اي Programming Language ال Risk من ال Smart Contract Code انه بيبقي Code جاهز مش معمول عليه Review و دة بيخلي ال Blockchain تكون Vulnerable لل Logic Flaws الي ممكن تدي لل Hacker انه يكون عنده Full Control او Bypassing Techniques او حتي DDOS-Attack لل Chain كلها.
اخر جزء في ال Blockchain Penetration Testing هو ال Application الي ال User بيتسخدمه سواء كان Web Api ف دة هيتعمل عليه Penetration Testing زيه زي اي Web Application ال Pentester هيتعامل معاه بال OWASP TOP 10 عادي او يكون Mobile API سواء كان Android او IOS و دة برضو هيبقي Mobile Application Penetration Testing عادي .
اي Pentester في الدنيا قبل ما ييجي يشتغل ف اي حاجة في الدنيا لازم دايماً يعرف ال Scope بتاعه لازم يعرف الحاجة الي هو هيـ Penetrate عليها....يعني مثلاً لو هتعمل Penetration Testing علي ال Web Applications في غالباً ال Scope بتاعك بيبقي ال Front End الي هو ال Site الي انت شايفه قدام عينك و ال Backend الي فيها ال DNS و ال WAF و ال Firewall و ال Proxy و ال Load Balancer و ال Web Server و ال Mail System و ال FTP Server و غيرهم....دة كدة مبدأياً الـ Scope بتاع ال Web Application Penetration Testingطب ايه هو ال Scope بتاع ال Blockchain Penetration Testing ?!
الناس بعد ما درسوا ال Blockchain Technology و لقوا النجاح الكبير الي هي نجحته و كمية ال Applications الي بقت ليها في ال market فكروا في ال Threats و ال Vulnerabilities الي ممكن تكون موجودة في ال Blockchain لأنه زيها زي اي Digital System في الدنيا مش Secure 100% ف قالوا الناس ال Pentesters لازم يكون ليهم دور و يشاركوا معانا.....
فقالك احنا عشان نوضح الدنيا لازم نقسم ال Scope دة 3 أقسام عشان ال Pentester يعرف هو هيتحرك فين بالظبط و كل قسم من دول يتقسم لـ 3-4 اقسام تحتيه طب ايه هي الأقسام الرئيسية بتاعت ال Blockchain Penetration Testing ?!
- قالك عندك ال Nodes الي موجودة في ال Blockchain
- و عندك ال Shared Ledger الي هو ال Storage او ال database الي بيتخزن عليها ال Data بتاعت ال Nodes و بتاعت ال Chain كلها
- عندك ال API الي هو ال User بيستخدمه عشان يـ Interact مع ال Chain دي سواء كان ال API دة Mobile Application او Web Application
طب براحة و تعالي نشرح كل جزء لواحده كدة عشان الدنيا توضح للناس الي لسة مش Familiar اوي بالـ Blockchain Technology :
# أول_جزء ال Nodes :
ال Nodes هي العمود الفقري لاي Blockchain هي عبارة عن ال Devices و ال Wallets الي موجودة في ال Blockchain و هي ال Network الي بتقوم ال Chain كلها و الي مسؤولة عن ال Sync و ال Communication مع ال Ledger و اهم حاجتين في ال Nodes هما ال Sync و ال Redundancy :
ال Sync هو ان الي يحصل في Node لازم يسمع ف باقي ال Nodes علي طول سواء كان Data جديدة او Encryption او Hashing او Transactions او اي حاجة..
تاني حاجة ال Redundancy : معني ال Redundancy هي ان دايماً لازم يكون فيه Nodes زيادة في ال Chain و هنعرف ليه بعد كدة...
طب ايه الي المفروض اعمله في ال Nodes عشان اتأكد انه Secured ؟!
اول حاجة ال Vulnerability Assessment : لازم كل ال Servers الي شايلة ال Nodes دي كلها و كل ال Devices يتعملها ب استمرار Vulnerability Assessment و Structure Review و لازم دايماً ال Pentester يبص لكل Node لوحدها عشان ممكن تكون فيه Node مش Vulnerable و Node تانية Vulnerable و ييجي منها ال Exploit...
تاني حاجة ال Redundancy Test و دة بيبقي عن طريق ان ال Pentester بيوقع Node من ال Nodes الي موجودة في ال Chain و بيشوف ايه الي هيحصل....المفروض ال Chain تقوم مدخلة واحدة من ال Nodes الزيادة و تقوم بيها او تعمل load balance علي باقي ال nodes الموجودة لان المفروض ال Chain متكونش معتمدة علي Node واحدة او علي عدد Nodes معينة لأن معني كدة ان ال Attacker او ال Hacker هيبقي عارف انه لو عرف يوقع Node واحدة بس هيقدر يوقع ال Chain كلها فا ال Redundancy Test يعتبر من اهم ال Tests الي ممكن تتعمل في ال Blockchain Penetration Testing
تالت حاجة ال Sync Test لازم ال Pentester يتأكد من ان ال Nodes كلها بتـSync مع بعض و لما بيحصلهم Update كلهم بياخدوا ال Updates مع بعض و ان مينفعش تكون Node شغالة ب Version اقل من غيرها لان فيه Risk ان يبقي فيه Node تكون out dated ف تكون vulnerable عن غيرها ف يقدر ال Attackers يا اما يدخل ال Blockchain من خلالها او يقدر يوقع ال Blockchain كلها منها...
بعد كدة فيه نيجي للجزء المقعد شوية في الموضوع و نحاول نبسطه علي اد ما ينفع يتبسط...
ال Algorithms الي بتشتغل بيها ال Blockchain....دلوقتي انا عندي نوعين من ال Algorithms الي ممكن اي Blockchain تقوم بيهم و نوع ال Algorithm المستخدم بيتم تحديده بالاتفاق بين كل ال Nodes....ايه هي بقي ال Algorithms دي ؟!
# اول Algorithm هو ال PoW او الي اسمه Proof of Work بيشتغل ازاي ال Algorithm دة عشان نفهم ال Penetration Testing بتاعه ؟!
ال PoW بيشتغل عن طريق ان ال user او ال node عشان يقدر ي Submit ال Block او يعمل verify لل Transaction لازم يقدر يحل ال Mathematical Algorithm بتاعه
# تاني Algorithm هو ال PoS او الي اسمه Proof of Stake بيتم اختيار الشخص مش علي حسب طريقة حله لل Algorithm بيتم اختياره علي حسب حجم ال Wallet بتاعته يعني علي حسب عدد ال Coins او ال Currency الي معاه يعني من الاخر اغني شخص هو الي بيقدر ي create ال new blocks و validate علي ال transactions.
طب كدة عرفنا ال Blockchain Algorithms بتشتغل ازاي...ايه هي بقي ال Risks او ال vulnerabilities الي ممكن تيجي من عندهم الي لازم ال Pentester ياخد باله منهم....
اول حاجة ال PoW دة Vulnerable لحاجات كتير منهم ان ال Hacker ممكن يقدر يحل ال Mathematical Problems و يقدر ياخد Access علي ال nodes و بالتالي يقدر يغير من ال Blockchain عن طريق انه يا اما يعمل Blocks جديدة او يعمل Verification علي اي Transactions
تاني حاجة ال PoS دة Vulnerable عن طريق ان ال control كله بيبقي ف ايد واحد بس الي هو بيكون اغني واحد في ال Node ف الشخص دة لو حصل لل Node بتاعته Compromise او هو اصلا شخص مش كويس ف هيقدر ال Hacker ياخد Control علي ال Blockchain كلها...
حاجة كمان في ال Nodes لازم ال Pentester ياخد باله منها هي ال Wallets
ال Wallets بتبقي Application ليه Access علي كل Node لوحدها و بيشتغل عن طريق ان ال Public Key بيكون مع الناس كلها و ال Private Key بتاع كل Node بيبقي مع ال Wallet بس... فيه نوعين من ال Penetration Testing بيتعملوا علي ال Wallets :
اول نوع هو Password Strength Review :
زيها زي ال Domain Controller في ال Windows مثلا من ضمن ال Penetration Testing بتاعها اني لازم اشوف ال Password Strength Mechanism بتاعتها هل هي بتقبل Weak Passwords ولا لا هل هي اقل عدد من ال Digits بتاخده كام عشان اقدر اشوف هي Brute-Forcable ولا لا.....
تاني نوع من ال Penetration Testing الي بيتعمل علي هو ال Key Storage Review :
لازم ال Pentester يعمل Test علي ال Storage و ال Locations الي بيتخزن فيها ال Keys بتاعت ال Wallet لان ساعات بيحصل Insecure Storage بيقدر ال Attacker لل Private Keys بتاعت ال Wallet و يسرق كل فيها و دة حصل ف كتير من ال Cyber Attacks في 2017.
تاني جزء في Penetration Testing ال Blockchain هو ال Shared Ledger
ال Shared Ledger يعتبر من اهم ال Parts في ال Blockchain عشان هو بيعتبر ال Database الي بيتخزن فيها ال Data بتاعت ال Chain كلها.....فيه نوعين من ال Penetration Testing الي بيتعمل علي ال Shared Ledger عشان ال Pentester يتاكد انه Secure :
اول واحد هو Information Disclosure :
ال Blockchain بيشتغل عن طريق ان ال Data بتتحط في Blocks و ال Blocks بعد كدة بتتحط علي ال Application الي بيستخدمه ال User لازم ال Pentester يعمل Penetration Testing علي ال Blocks عشان يتاكد ان مبيحصلش منها اي Information Leakage لان كل ال Data الي فيه بتكون Sensitive.
تاني Test واحد هو Smart Contract Code Review
فيه كتير من ال Blockchains الي ال Blocks فيها بيبقي فيها حاجة اسمها Smart contract Code دة بتبقي زي Block of Code جاهز ينفذ اي Function زيه زي اي API مكتوب ب اي Programming Language ال Risk من ال Smart Contract Code انه بيبقي Code جاهز مش معمول عليه Review و دة بيخلي ال Blockchain تكون Vulnerable لل Logic Flaws الي ممكن تدي لل Hacker انه يكون عنده Full Control او Bypassing Techniques او حتي DDOS-Attack لل Chain كلها.
اخر جزء في ال Blockchain Penetration Testing هو ال Application الي ال User بيتسخدمه سواء كان Web Api ف دة هيتعمل عليه Penetration Testing زيه زي اي Web Application ال Pentester هيتعامل معاه بال OWASP TOP 10 عادي او يكون Mobile API سواء كان Android او IOS و دة برضو هيبقي Mobile Application Penetration Testing عادي .