ต้องทำอย่างไรเมื่อ บริษัท ของคุณไม่ได้เข้ารหัสรหัสผ่าน


13

พื้นหลัง

ฉันได้รับสัญญาเพื่อช่วย บริษัท ดูแลเซิร์ฟเวอร์ของพวกเขา ฉันทำงานกับโปรเจค PHP บางตัว แต่ก็ยังดูปัญหาด้านประสิทธิภาพและเมื่อเร็ว ๆ นี้สแกนบันทึกการแฮ็กเกอร์

พวกเหล่านี้ใช้เซิร์ฟเวอร์มาระยะหนึ่งและมีสิ่งที่ฉันจะเรียกว่าแอปพลิเคชันรุ่นเก่าที่ขาสุดท้าย มันใช้คำพูดเวทมนต์ตัวแปรทั่วโลก (ซึ่งอนุญาตให้$idเขียนทับโดย$_GET['id']) ใช้. htaccess เป็นความปลอดภัยเพียงอย่างเดียวในบางกรณีคุณตั้งชื่อมัน ฝันร้ายด้านความปลอดภัยและการเขียนโปรแกรม

เราเคยถูกแฮ็กในอดีตโดยส่วนใหญ่ใช้ SQL injections ซึ่งจะรันSLEEP(99999999)คำสั่งและทำหน้าที่เหมือนโจมตี DOS โชคดีที่พวกเขาไม่ได้เรียกใช้ "โต๊ะบ๊อบบี้น้อย"

http://xkcd.com/327/

XKCD: http://xkcd.com/327/

ดังนั้นฉันจึงเขียนคำสั่ง SQL ที่มีช่องโหว่จากmysql_query()(ไม่ใช่ mysqli) ไปยังธุรกรรม PDO ฉันยังวิเคราะห์การค้นหาSLEEPและUNIONที่เราไม่ได้ใช้ แต่การฉีดมี จนถึงตอนนี้ดีมาก

ฉบับล่าสุด

เมื่อเร็ว ๆ นี้เราได้รับการบอกว่ามีการเปลี่ยนแปลงบันทึกในฐานข้อมูลสำหรับผู้ใช้เช่นที่อยู่อีเมลของพวกเขาไปเป็นข้อมูลที่ผู้ส่งอีเมลขยะทำ

ฉันสังเกตเห็นคอลัมน์ของพวกเขาไม่มีlast_modifiedคอลัมน์ดังนั้นเราจึงไม่สามารถรู้ได้ว่าเมื่อใดที่มีการเปลี่ยนแปลง ฉันเพิ่มคอลัมน์นั้น แต่มันแทบจะไม่เป็นขั้นตอนแรก

เมื่อฉันดูตารางนี้ฉันสังเกตว่ารหัสผ่านไม่ได้ถูกใส่เกลือหรือถูกแฮชเพียงบันทึกเป็นข้อความธรรมดา

การสื่อสารลูกค้า

ฉันจะเข้าใกล้พวกเขาเกี่ยวกับสถานการณ์ทั้งหมดในฐานะผู้รับเหมาโดยไม่ล้มแขนของฉันเหมือนคนบ้าได้อย่างไร คำแนะนำใด ๆ? ฉันกำลังคิดวิธีสงบ

    ปัญหา # 1
        สรุป
        ทำไมนี่เป็นปัญหา
        จะเกิดอะไรขึ้นถ้าสิ่งนี้ไม่ได้รับการแก้ไข
        การแก้ไขที่แนะนำ

    ปัญหา # 2
        สรุป
        ทำไมนี่เป็นปัญหา
        จะเกิดอะไรขึ้นถ้าสิ่งนี้ไม่ได้รับการแก้ไข
        การแก้ไขที่แนะนำ
        

ความคิดของฉันคือไม่ว่ารหัสผ่านแบบข้อความธรรมดาซึ่งเป็นจำนวนมากไม่ หากคุณเปลี่ยนแบบสอบถามทั้งหมดเป็น PDO และใช้คำสั่งที่เตรียมไว้เว้นแต่ว่าจะมีการเปลี่ยนแปลงส่วนอีเมลของคุณ พวกเขาไม่สามารถดำเนินการแบบสอบถาม SQL เพื่อเปลี่ยนที่อยู่อีเมลและอื่น ๆ
Liam Sorsby

1
ฉันไม่ได้เปลี่ยน / ทั้งหมด / แบบสอบถามเป็น PDO ขออภัยฉันเปลี่ยนสิ่งที่เราพบว่าได้รับผลกระทบจากการฉีด SQL
bafromca

ทางออกที่ดีกว่าจะเป็นการเพิ่มคลาส PDO แล้วนำคลาสนั้นไปใช้นอกไซต์หรือไม่ จากนั้นคิดเกี่ยวกับการแฮ็กรหัสผ่านและใช้เกลืออย่างไรก็ตามอาจใช้เวลานานหน่อยเพราะคุณระบุว่าเป็นแอป "ดั้งเดิม" ฉันถือว่ามีผู้ใช้น้อยคน
Liam Sorsby

5
ฉันจะบอกให้คุณแก้ไข 'สิ่งที่สามารถเกิดขึ้นได้' กับ 'สิ่งที่เกิดขึ้น' เนื่องจากพวกเขาถูกแฮ็กไปแล้วและข้อมูลประจำตัวของผู้ใช้ได้รับการเผยแพร่ในมือแฮ็กเกอร์
James Snell

ดูเหมือนว่าคำถามของคุณเป็นเพียงการสื่อสารกับลูกค้าของคุณ สุจริตคุณควรรู้จักผู้ติดต่อของคุณและวิธีการติดต่อพวกเขา การรักษาความสงบอยู่เสมอเป็นกลยุทธ์ที่ดีเพียงชี้ความเสี่ยงให้กับลูกค้าของคุณและให้เขาตัดสินใจเกี่ยวกับความเร่งด่วน
Doc Brown

คำตอบ:


15

วิธีการสงบที่คุณแนะนำจะดีที่สุด ชี้ให้เห็นว่าเมื่อข้อมูลนี้ถูกเปิดเผยผู้ใช้ส่วนใหญ่ของคุณจะเสี่ยงต่อการถูกขโมยข้อมูลประจำตัวเนื่องจากการใช้รหัสผ่านซ้ำ นี่อาจเป็นเวลาที่ดีที่จะชี้ให้เห็นว่านี่เป็นปัญหาเดียวกันกับเป้าหมายที่ได้รับผลกระทบ (สมมติว่า บริษัท ไม่ใช่เป้าหมาย) และผู้จัดการของคุณควรเปิดกว้างสำหรับการเปลี่ยนแปลงนี้

ในส่วนที่เกี่ยวกับข้อกฎหมายของข้อมูลฉันไม่เชื่อว่าชื่อผู้ใช้ / รหัสผ่านนั้นถือเป็นข้อมูล CC เช่นเดียวกับข้อมูลส่วนบุคคลและอื่น ๆ แม้ว่ามันจะขึ้นอยู่กับข้อมูลที่คุณมีสำหรับผู้ใช้ของคุณ ฉันไม่ได้เป็นนักกฎหมายและสิ่งเหล่านี้จะถูกนำไปเปิดเผยในการเปิดเผยของคุณได้ดีที่สุดและควรถูกนำไปยังแผนกกฎหมายของ บริษัท ของคุณเพื่อกำหนดกฎหมาย

https://en.wikipedia.org/wiki/Information_privacy_law

และคุณมี XKCD นี้เพื่อช่วยเหลือคุณเช่นกัน:

ป้อนคำอธิบายรูปภาพที่นี่


4

มันขึ้นอยู่กับผู้ชมที่คุณพยายามเข้าใกล้ ฉันได้ทำงานใน บริษัท ที่มีปัญหาด้านความปลอดภัยที่รุนแรงเช่นคุณกำลังระบุพวกเขาปฏิเสธที่จะฟังจนกว่าฉันจะแสดงให้พวกเขาเห็น

วิธีหนึ่งถ้าเป็นไปได้คือการรวบรวมสิ่งที่คุณตั้งใจทำตามความประสงค์ของสิ่งที่เกิดขึ้นแล้วในแฮ็กเหล่านี้ หากผู้ชมของคุณไม่ใช่ด้านเทคนิคคุณอาจต้องระบุต้นทุนทางธุรกิจที่การประนีประนอมเหล่านี้สามารถทำได้ บัญชีที่ถูกแฮ็กอย่างชัดเจนลดความน่าเชื่อถือในระบบของคุณและการรับรู้คุณค่าของลูกค้าของผลิตภัณฑ์ของคุณ ไม่ต้องพูดถึงระบบที่ถูกบุกรุกด้วยรหัสผ่านแบบข้อความล้วนและที่อยู่อีเมลสำหรับผู้ใช้สามารถทำให้เกิดการกระเพื่อมอย่างรุนแรง

สิ่งต่อไปที่คุณควรทำถ้าเป็นไปได้พิสูจน์ได้ หากคุณสามารถยืนระบบนี้ในสภาพแวดล้อมการทดสอบทำ จากนั้นแสดงให้เห็นถึงชนิดของผลกระทบที่คุณมีต่อระบบจากฝั่งไคลเอ็นต์ของแอปพลิเคชัน แม้จะมีคนที่มีเทคโนโลยีนี้ได้พิสูจน์แล้วว่าค่อนข้างน่าเชื่อสำหรับฉัน (แม้ว่าพวกเขายังไม่ปกติในกรณีของฉัน)

แน่นอนเช่นที่คุณพูดคุณจำเป็นต้องอธิบายว่ามีมาตรการอะไรที่จะต้องดำเนินการและการประเมินความพยายามในการทำให้สำเร็จ มันจะช่วยให้พวกเขาประเมินค่าใช้จ่ายแม้ว่าสถานที่บางแห่งจะไม่สนใจก็ตาม อย่างน้อยคุณก็สามารถล้างสติและก้าวไปข้างหน้าโดยรู้ว่าคุณได้ลองแล้ว


2

ถ้าอย่างที่คุณบอกว่าคุณได้รับสัญญาให้ดูแลรักษาเซิร์ฟเวอร์ของพวกเขาสัญญานี้จะต้องรวมอยู่ในงานคำอธิบายงานเช่นสร้างความมั่นใจในความสมบูรณ์ความปลอดภัยและความพร้อมใช้งานของระบบปฏิบัติการซอฟต์แวร์แอปพลิเคชันและข้อมูลอื่น ๆ ทั้งหมด! หากมีข้อสงสัยที่คลุมเครือที่สัญญาคาดหวัง (และถือคุณเป็นผู้รับผิดชอบ) เพื่อให้แน่ใจว่าเซิร์ฟเวอร์นั้นปลอดภัยแล้วฉันจะไม่เสียเวลาทำเรื่องธุรกิจเข้าด้วยกันและทำงานที่ดีในการทำให้แน่ใจว่าปัญหาได้รับการแก้ไขแล้ว การสำรองข้อมูลก่อนและหลังการเก็บประวัติรุ่นของการเปลี่ยนแปลงรหัสของคุณ)

ฉันไม่คาดหวังว่าการเปลี่ยนแปลงเช่นนี้จะใช้เวลามากกว่างานในตอนเช้าและถ้าพวกเขาถามสิ่งที่คุณใช้เวลาในการทำงานคุณสามารถเก็บบันทึกประจำวันเพื่ออธิบายและปรับการกระทำของคุณได้ ให้คุณกำลังทำงานอยู่ในขอบเขตของสัญญาของคุณไม่ควรมีปัญหาที่นี่ บางครั้งการรักษาความปลอดภัยอย่างบ้าคลั่งต่อหน้าผู้มีอำนาจตัดสินใจทำให้เกิดความตื่นตระหนกหรือในกรณีที่เลวร้ายที่สุดสร้างโอกาสให้พวกเขาพูดว่าพวกเขาไม่สนใจปัญหาเหล่านั้นดังนั้นอย่าแก้ไขในขณะที่คุณทำสัญญายังคงรับผิดชอบต่อคุณ การฝ่าฝืน! บางทีนี่อาจไม่ใช่วิธีการที่เป็นมิตรกับธุรกิจมากที่สุด แต่จรรยาบรรณวิชาชีพของฉันจะไม่อนุญาตให้ฉันใส่รหัสผ่านที่ไม่ได้เข้ารหัสในระบบใด ๆ ที่ฉันเคยรับผิดชอบหากได้รับมันมา

จากประสบการณ์ส่วนตัวฉันมักจะพบว่าเมื่อใดก็ตามที่ฉันเริ่มทำงานให้กับนายจ้างหรือลูกค้าใหม่การพูดคุยถึงสถานการณ์และความคาดหวังล่วงหน้าสามารถช่วยลดความเครียดในส่วนของคุณได้ตัวอย่างเช่นหากฉันพบปัญหาด้านความปลอดภัยที่ฉันสามารถแก้ไขได้ ฉันจะไปข้างหน้าและทำงานให้เสร็จโดยไม่มาหาคุณทุกครั้งเพียง แต่แจ้งให้คุณทราบถึงกรณีที่สงสัยว่ามีการละเมิด / เหตุการณ์? พวกเขามักจะพูดว่าใช่เพราะเรื่องนี้เพราะจากมุมมองของพวกเขาพวกเขาไม่สนใจที่จะกังวลเรื่องความปลอดภัยหรือเรื่องคอมพิวเตอร์ - นั่นคือเหตุผลที่พวกเขาจ้างคุณ! บางทีนี่อาจไม่ตอบคำถามในแบบที่คุณคาดหวัง แต่ฉันหวังว่ามันจะให้อาหารสำหรับความคิด ขอให้คุณทั้งหมดที่ดีที่สุดและหวังว่าปัญหาจะได้รับการแก้ไข!


นั่นเป็นคำตอบที่ยอดเยี่ยม บางครั้งการนำเสนอปัญหากับ "ผู้มีอำนาจตัดสินใจระดับแนวหน้า" ทำให้เกิดความตื่นตระหนกเกินกว่าที่ควรจะเป็นและดูเหมือนจะฉลาดกว่าที่จะแก้ไขปัญหาเบื้องหลัง ฉันไม่ชอบทำงานหลังผู้จ่ายเงินเดือน แต่ปัญหาหนี้สินส่วนบุคคลเป็นข้อโต้แย้งสำคัญ ฉันใส่เกลือ + แฮชรหัสผ่านได้อย่างง่ายดายแล้วลบคอลัมน์รหัสผ่าน opentext เมื่อทุกอย่างถูกย้ายไป อย่างไรก็ตามปัญหาที่ใหญ่ที่สุดคือรหัสผ่านอาจถูกดูและบันทึกไว้แล้ว
bafromca

ความจริงที่โชคร้ายคือเวลานั้นไม่สามารถย้อนกลับไปยังจุดก่อนการละเมิดดังนั้นในขณะที่ธุรกิจอาจจำเป็นต้องตัดสินใจว่าพวกเขาแจ้งให้ลูกค้าทราบถึงการละเมิดหรือไม่สิ่งที่สำคัญที่สุดสำหรับฉันคือการดำเนินการเพื่อป้องกันต่อไป การละเมิด หากกรรมการไม่ต้องการแจ้งให้ผู้ใช้ทราบถึงการฝ่าฝืนคุณสามารถแจ้งให้ลูกค้าทราบหลังจากเข้าสู่ระบบด้วยข้อความเช่น 'การปรับปรุงการรักษาความปลอดภัยเว็บไซต์ของเราตอนนี้เราต้องการให้คุณเลือกรหัสผ่านที่ปลอดภัยยิ่งขึ้น และความยาวอย่างน้อย 8 อักขระ: '
richhallstoke

0

แน่นอนหากการเปลี่ยนที่อยู่อีเมลของลูกค้าเกิดขึ้นแล้วและถือว่าเป็นปัญหา - แล้วความสามารถในการเปลี่ยนรหัสผ่านก็เป็นปัญหาเช่นกัน

ตอนนี้ถ้าคุณรักษาฐานข้อมูลไว้อย่างเพียงพอเพื่อป้องกันไม่ให้เกิดขึ้นในอนาคตโอกาสที่ทุกคนสามารถแก้ไขรหัสผ่านของผู้ใช้จะได้รับการแก้ไขในทำนองเดียวกันและคุณจะต้องพิจารณาว่าใครบางคนสามารถอ่านรหัสผ่านได้ในขณะนี้

แน่นอนว่าพวกเขาสามารถหรือถ้า (ในเหตุการณ์ที่ไม่น่าเป็นไปได้ ) ที่คุณยังไม่ได้รับการรักษาความปลอดภัยฐานข้อมูลทั้งหมดดังนั้นคุณควรเข้ารหัสรหัสผ่านอย่างแน่นอน - จะทำอย่างไร? เพียงวางไว้ในบริบทเดียวกับปัญหา "การอัพเดทที่อยู่อีเมล" ไม่ว่าสิ่งนี้ต้องการแอปพลิเคชันที่จะเปลี่ยนแปลงและไม่ว่าจะเป็นปัญหา "ยากเกินไป" เป็นอีกเรื่องที่ต้องได้รับการเลี้ยงดูด้วย ดูรหัสและดูว่าจะต้องเสียค่าใช้จ่ายเท่าใดก่อนที่จะทำการแก้ไขที่แนะนำให้พวกเขา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.