ข้อความทั้งหมดlogin ไฟล์ประเภทบันทึก

allintext:login filetype:log – ไฟล์บันทึกข้อมูลที่เปิดเผยสู่สาธารณะทำให้ข้อมูลประจำตัวรั่วไหลได้อย่างไร

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

หาก Google สามารถเข้าถึงบันทึกเหล่านั้นได้ ผู้โจมตีก็สามารถเข้าถึงได้เช่นกัน เมื่อข้อมูลถูกจัดทำดัชนีแล้ว การรั่วไหลของข้อมูลก็เป็นสิ่งที่หลีกเลี่ยงไม่ได้ ยิ่งไปกว่านั้น เมื่อข้อมูลประจำตัวปรากฏในไฟล์ที่เข้าถึงได้โดยสาธารณะ การละเมิดก็เริ่มขึ้นแล้ว

1. เหตุใดจึงใช้ allintext:login ไฟล์ประเภท log นั้นอันตรายกว่าที่คิด

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

คำสั่งค้นหานี้เป็นการรวมตัวดำเนินการสองตัวเข้าด้วยกัน:

  • allintext: ส่งคืนหน้าเว็บที่เงื่อนไขทั้งหมดปรากฏอยู่ในเนื้อหาหลัก
  • ประเภทไฟล์:บันทึก จำกัดผลลัพธ์ไว้ที่ .log ไฟล์

ดังนั้น:

วิธี: "แสดงไฟล์บันทึกที่มีคำว่า "Record" ให้ฉันดู login".

มองเผินๆ แล้วดูเหมือนเรื่องเล็กน้อย แต่ในทางปฏิบัติแล้วมักจะส่งผลดังนี้:

  • บันทึกเซิร์ฟเวอร์เว็บที่เปิดเผยต่อสาธารณะ
  • CI/CD บันทึกต่างๆ ถูกอัปโหลดเป็นไฟล์อ้างอิง
  • บันทึกการแก้ไขข้อผิดพลาดโดยไม่ได้ตั้งใจ committed ไปยังที่เก็บข้อมูล
  • บันทึกการใช้งานแอปพลิเคชันพร้อมข้อมูลประจำตัวแบบข้อความธรรมดา

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

2. สิ่งที่ผู้โจมตีค้นพบจริง ๆ ในไฟล์บันทึกที่ถูกเปิดเผย

เมื่อผู้โจมตีวิ่ง allintext:login ประเภทไฟล์:บันทึกพวกเขาไม่ได้เข้ามาดูแบบสุ่มสี่สุ่มห้า พวกเขากำลังมองหาร่องรอยการยืนยันตัวตนอยู่

2.1 ข้อมูลประจำตัวแบบข้อความธรรมดา

ไฟล์บันทึกข้อมูลมักมีข้อความต่างๆ เช่น:

or

หรือแม้แต่ข้อมูลประจำตัว SMTP:

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

2.2 โทเค็นเซสชันและ JWT

แม้ว่าจะไม่มีการบันทึกรหัสผ่าน แต่โดยทั่วไปแล้วจะมีการบันทึกโทเค็นไว้

ตัวอย่างเช่น:

คุกกี้ JWT หรือคุกกี้เซสชันที่ถูกต้องภายใน .log ไฟล์นี้สามารถเปิดใช้งาน:

  • เซสชั่นการหักหลัง
  • การเพิ่มระดับสิทธิ์
  • การเคลื่อนที่ด้านข้างข้ามระบบภายใน

กล่าวอีกนัยหนึ่ง โทเค็นในบันทึกข้อมูลจะเปลี่ยนผลลัพธ์การดีบักให้กลายเป็นช่องทางในการหลีกเลี่ยงการตรวจสอบสิทธิ์

2.3 CI/CD ศิลปวัตถุ

ไฟล์บันทึกการสร้าง (Build logs) นั้นอันตรายเป็นพิเศษ ที่จริงแล้ว CI/CD ระบบมักจะแสดงค่าตัวแปรสภาพแวดล้อมระหว่างขั้นตอนการสร้าง

ผู้โจมตีมักค้นพบสิ่งต่อไปนี้:

ประกอบด้วยบรรทัดต่างๆ เช่น:

If CI/CD เมื่อสิ่งประดิษฐ์เป็นที่เปิดเผยต่อสาธารณะแล้ว ความลับก็กลายเป็นสิ่งที่เปิดเผยต่อสาธารณะเช่นกัน เครื่องมืออย่าง Google dork เป็นเพียงตัวช่วยเร่งกระบวนการค้นพบเท่านั้น

2.4 ข้อมูลระบบคลาวด์และโครงสร้างพื้นฐาน

ไฟล์บันทึกข้อมูลที่ถูกเปิดเผย มักจะแสดงให้เห็นถึง:

  • คีย์การเข้าถึง AWS
  • สตริงการเชื่อมต่อพื้นที่จัดเก็บข้อมูล Azure
  • URL บริการภายใน
  • ข้อมูลประจำตัวฐานข้อมูล
  • เอนด์พอยต์ Redis

แม้ว่าจะมีการเปลี่ยนข้อมูลประจำตัวในภายหลัง ผู้โจมตีก็ยังคงมีข้อมูลดังต่อไปนี้:

  • การทำแผนที่โครงสร้างพื้นฐาน
  • แบบแผนการตั้งชื่อ
  • กำหนดเป้าหมายข่าวกรองสำหรับการโจมตีในอนาคต

ดังนั้น บันทึกข้อมูลที่ถูกเปิดเผยจึงให้ทั้งการเข้าถึงและการสอดแนม

3. บันทึกเหล่านี้กลายเป็นข้อมูลสาธารณะได้อย่างไรตั้งแต่แรก

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

3.1 เซิร์ฟเวอร์เว็บที่ตั้งค่าไม่ถูกต้อง

รูปแบบทั่วไปได้แก่:

  • /logs/ ไดเร็กทอรีที่สามารถเข้าถึงได้โดยไม่ต้องมีการตรวจสอบสิทธิ์
  • เปิดใช้งานการแสดงรายการในไดเร็กทอรี
  • Nginx หรือ Apache ที่ให้บริการข้อมูลดิบ .log ไฟล์

หากสามารถเข้าถึงไฟล์บันทึกผ่าน HTTP ได้ ก็จะสามารถสร้างดัชนีได้

3.2 CI/CD การเปิดเผยสิ่งประดิษฐ์

ข้อผิดพลาดทั่วไป:

  • สิ่งประดิษฐ์สาธารณะที่เปิดใช้งานใน การกระทำของ GitHub
  • บันทึกข้อมูลที่อัปโหลดไปยัง S3 bucket แบบเปิด
  • Pipeline ร่องรอยต่างๆ สามารถเข้าถึงได้โดยไม่ต้องมีการตรวจสอบสิทธิ์

A pipeline การจัดเก็บบันทึกไว้ในที่เก็บข้อมูลสาธารณะเท่ากับเป็นการเผยแพร่ความลับของระบบนั้น

3.3 โหมดดีบักในสภาพแวดล้อมการใช้งานจริง

ค่าเริ่มต้นของเฟรมเวิร์กอาจเป็นอันตรายได้:

นอกจากนี้ การบันทึกคำขอมากเกินไปอาจแสดงข้อความดังต่อไปนี้:

  • ส่วนหัว
  • ราชสกุล
  • คำขอเต็มรูปแบบ

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

3.4 บันทึก Docker และคอนเทนเนอร์

สภาพแวดล้อมแบบคอนเทนเนอร์นำมาซึ่งช่องทางการเปิดเผยข้อมูลใหม่ๆ:

  • ไฟล์บันทึกถูกติดตั้งลงในไดรฟ์ที่ใช้ร่วมกัน
  • ไซด์คาร์ที่ส่งออกบันทึกไปยังปลายทางที่ไม่ปลอดภัย
  • เข้าสู่ระบบ dashboardที่เปิดให้ประชาชนเข้าถึงได้

หากไฟล์บันทึกของคอนเทนเนอร์ถูกเปิดเผยผ่าน HTTP หรือพื้นที่จัดเก็บข้อมูลแบบเปิด ไฟล์เหล่านั้นจะสามารถค้นหาได้ และในที่สุดก็จะถูกจัดทำดัชนี

4. ขั้นตอนการโจมตีที่สมจริง: จากผู้บุกรุกไปจนถึงการเจาะระบบ

ลำดับการโจมตีโดยทั่วไปจะมีลักษณะดังนี้:

  • ผู้โจมตีรัน:

  • พบว่ามีการเปิดเผยข้อมูล .log ไฟล์
  • สารสกัด:
    • โทเค็น JWT
    • ส่วนหัวการตรวจสอบสิทธิ์พื้นฐาน
    • สตริงการเชื่อมต่อฐานข้อมูล
  • พยายามตรวจสอบสิทธิ์กับ:

    • จุดสิ้นสุด API
    • แผงควบคุมผู้ดูแลระบบ
    • บริการภายใน

หากการตรวจสอบสิทธิ์สำเร็จ ผู้โจมตีสามารถทำสิ่งต่อไปนี้ได้:

  • ยกระดับสิทธิพิเศษ
  • เลื่อนไปด้านข้าง
  • ทางเข้า CI/CD
  • ทำให้ห่วงโซ่อุปทานเสียหาย

สิ่งที่เริ่มต้นจากการค้นหาข้อมูล กลายเป็น:

  • เซสชั่นการหักหลัง
  • การยัดข้อมูลประจำตัวภายใน
  • Pipeline การครอบครอง
  • การวางยาพิษสิ่งประดิษฐ์

ทั้งหมดนี้มาจากไฟล์บันทึกข้อมูลที่เปิดเผยต่อสาธารณะ

5. เหตุใดการบันทึกข้อมูล “มากเกินไป” จึงเป็นปัญหาด้านความปลอดภัยของแอปพลิเคชัน

การบันทึกข้อมูลไม่ใช่เรื่องที่เป็นกลาง แต่กลับสร้าง... ที่เก็บข้อมูลรอง.

หากคุณบันทึกข้อมูลที่ละเอียดอ่อน คุณก็เท่ากับสร้างสำเนาข้อมูลลับของคุณขึ้นมาอีกชุดหนึ่ง

อย่างไรก็ตาม บันทึกข้อมูลมักถูกยกเว้นจากการสร้างแบบจำลองภัยคุกคาม ภายใต้ STRIDE สิ่งนี้หมายความถึงสิ่งต่อไปนี้อย่างชัดเจน:

การเปิดเผยข้อมูล

ดังนั้น จึงปลอดภัย SDLC แนวปฏิบัติควรจัดการกับบันทึกข้อมูลดังนี้:

  • สิ่งประดิษฐ์ที่เกี่ยวข้องกับความปลอดภัย
  • สินทรัพย์ที่อ่อนไหว
  • ส่วนประกอบโครงสร้างพื้นฐานที่ต้องการการปกป้อง

หากแบบจำลองภัยคุกคามของคุณละเลยบันทึกข้อมูล แสดงว่าแบบจำลองนั้นไม่สมบูรณ์

6. วิธีป้องกันการรั่วไหลของข้อมูลประจำตัวในไฟล์บันทึก

6.1 หยุดการบันทึกความลับ

ห้ามบันทึกข้อมูล:

  • รหัสผ่าน
  • ราชสกุล
  • คีย์ API
  • รหัสเซสชัน
  • ส่วนหัวการอนุญาต

แม้ในโหมดดีบักก็ตาม

ควรใช้ระบบปกปิดข้อมูลอัตโนมัติทุกครั้งที่เป็นไปได้

6.2 การบันทึกข้อมูลอย่างเป็นระบบและปลอดภัย

ใช้การบันทึกข้อมูลแบบมีโครงสร้างร่วมกับการปิดบังและการกรองข้อมูล

ตัวอย่าง (Node.js):

ตัวอย่าง (Python):

หลักการสำคัญนั้นง่ายมาก: ความลับจะต้องไม่ไปถึงระบบจัดเก็บข้อมูลบันทึก (log sink) เด็ดขาด

6.3 การจัดเก็บบันทึกการล็อกดาวน์

มาตรการรักษาความปลอดภัยควรประกอบด้วย:

  • ปิดใช้งานการแสดงรายการไดเร็กทอรี
  • ป้องกัน /logs/ เส้นทางที่มีการตรวจสอบสิทธิ์
  • จำกัดการเข้าถึงถัง
  • นำนโยบายการเก็บรักษาข้อมูลมาใช้
  • เข้ารหัสไฟล์บันทึกข้อมูลขณะจัดเก็บ

ไฟล์บันทึกข้อมูลจะต้องไม่สามารถเข้าถึงได้จากภายนอกผ่านทาง HTTP

6.4 CI/CD Guardrails

การตรวจสอบด้วยตนเองนั้นไม่เพียงพอ ควรใช้ระบบควบคุมอัตโนมัติแทน:

  • การสแกนบันทึกข้อมูลลับก่อนการเผยแพร่ผลงาน
  • ยกเลิกการสร้างหากตรวจพบโทเค็น
  • ป้องกันการอัปโหลดไฟล์ที่มีข้อมูลประจำตัว
  • การตรวจสอบความถูกต้องของแฮชสำหรับอาร์ติแฟกต์

CI/CD ควรบล็อกการเปิดเผยข้อมูลก่อนที่จะมีการจัดทำดัชนี

7. วิธีที่ Xygeni ป้องกัน allintext:login ประเภทไฟล์:บันทึกเหตุการณ์

ปัญหาไม่ได้อยู่ที่ Google dork แต่ปัญหาอยู่ที่การเปิดเผยข้อมูล ดังนั้น การป้องกันจึงต้องเกิดขึ้นก่อนการจัดทำดัชนี

7.1 การตรวจจับความลับในบันทึกและหลักฐาน

การสแกน Xygeni:

  • แอปพลิเคชันบันทึก
  • CI/CD การติดตามงาน
  • สร้างสิ่งประดิษฐ์
  • เลเยอร์ Docker
  • เอาต์พุตแบบอนุกรม

หากข้อมูลประจำตัว โทเค็น หรือค่าที่มีความละเอียดอ่อนปรากฏอยู่ใน .log Xygeni จะตรวจจับไฟล์เหล่านั้นทันที

7.2 CI/CD Guardrails การป้องกันการเปิดเผยข้อมูล

แทนที่จะพึ่งพาการตรวจสอบด้วยตนเอง Xygeni บังคับใช้มาตรการรักษาความปลอดภัยที่ pipeline ระดับ:

นี้:

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

หากงาน CI พิมพ์โทเค็นออกมา แสดงว่า pipeline ล้มเหลว

ไม่มีการจัดทำดัชนี
ไม่มีการสัมผัสเชื้อ
ไม่มีเหตุการณ์ใดๆ เกิดขึ้น

7.3 การป้องกันการกด Shift-Left ก่อนที่ Google จะเห็น

เรื่องเวลาเป็นเรื่องสำคัญ

แทนที่จะตอบสนองต่อ:

Xygeni แก้ปัญหานี้ได้แล้ว:

  • At commit เวลา
  • ในระหว่าง pull request การตรวจสอบ
  • ในระหว่าง pipeline การปฏิบัติ
  • ก่อนการเผยแพร่สิ่งประดิษฐ์

หากบันทึกข้อมูลนั้นไม่เคยถูกเปิดเผยต่อสาธารณะ Google ก็จะไม่ทำการจัดทำดัชนีข้อมูลนั้น

บทสรุปสุดท้าย: ถ้า Google สามารถจัดทำดัชนีได้ ผู้โจมตีก็ทำไปแล้วเช่นกัน

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

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

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

แทนที่:

  • หยุดบันทึกความลับ
  • ล็อกดาวน์การจัดเก็บท่อนซุง
  • บังคับใช้ pipeline guardrails
  • ทำการตรวจจับและบังคับใช้นโยบายโดยอัตโนมัติ

ในที่สุด, การป้องกันนั้นขึ้นอยู่กับจังหวะเวลา เพราะเมื่อป้องกันแล้วจึงค่อยจัดการ allintext:login ประเภทไฟล์:บันทึก หากส่งคืนโดเมนของคุณ เหตุการณ์ดังกล่าวได้เริ่มต้นขึ้นแล้ว

sca-tools-software-composition-analysis-tools
จัดลำดับความสำคัญ แก้ไข และรักษาความปลอดภัยความเสี่ยงด้านซอฟต์แวร์ของคุณ
สมัครบัญชีฟรีได้เลย
ไม่ต้องใช้บัตรเครดิต

รักษาความปลอดภัยให้กับการพัฒนาและส่งมอบซอฟต์แวร์ของคุณ

ด้วยชุดผลิตภัณฑ์ Xygeni