เครื่องมือ OSINT ส่วนใหญ่ล้าสมัยอย่างรวดเร็ว เว็บไซต์มีการเปลี่ยนแปลงตลอดเวลา, จุดเชื่อมต่อย้ายที่, ระบบแคปต์ชาพัฒนาขึ้น, ทำให้เครื่องมือหยุดทำงานภายในสองปี Maigret เป็นข้อยกเว้น มันทำงานมาหลายปี รองรับเว็บไซต์มากกว่า 3,000 แห่ง มาพร้อมแพ็กเกจ Python, บอท Telegram และเว็บ UI และวิศวกรรมภายในเป็นตัวอย่างชั้นเยี่ยมของวิธีการสร้างสแกนเนอร์ที่ไม่เสียหายทุกครั้งที่เว็บไซต์มีการเปลี่ยนแปลง
คู่มือนี้สำหรับวิศวกร ไม่ใช่สำหรับผู้ใช้ทั่วไปที่ต้องการค้นหาข้อมูลเล่นๆ มันจะอธิบายว่า Maigret ทำอะไร, กรณีการใช้งานเพื่อการวิจัยและความปลอดภัยที่ชอบด้วยกฎหมายที่รองรับเครื่องมือนี้, สถาปัตยกรรมที่ทำให้สามารถรองรับเว็บไซต์ได้หลายพันแห่ง, และวิธีการที่รูปแบบการทดสอบแบบเดียวกันที่ Maigret ใช้ (ฐานข้อมูลลายเซ็น, การตรวจจับความคลาดเคลื่อน, การยืนยันแบบวนซ้ำ) สามารถนำไปประยุกต์ใช้กับงานทดสอบ API ที่คุณทำอยู่ทุกวันด้วย Apidog
หากคุณยังไม่ได้อ่าน บทความของเราเรื่อง การทดสอบ API โดยไม่ต้องใช้ Postman ในปี 2026 จะครอบคลุมแนวคิดการจับคู่รูปแบบและการตรวจจับความคลาดเคลื่อนที่คล้ายกันในบริบทที่เข้าใจง่ายกว่า
สรุปสั้นๆ
- Maigret รวบรวมข้อมูลสาธารณะเกี่ยวกับบุคคลโดยใช้แค่ชื่อผู้ใช้เท่านั้น โดยตรวจสอบเว็บไซต์มากกว่า 3,000 แห่งเพื่อหาบัญชีและดึงข้อมูลโปรไฟล์สาธารณะ
- วิศวกรรมภายในน่าประทับใจ: ฐานข้อมูลลายเซ็นเว็บไซต์ที่มีการจัดการเวอร์ชัน, การค้นหาแบบวนซ้ำ, การตรวจจับความคลาดเคลื่อนอัตโนมัติ, การหลีกเลี่ยงแคปต์ชา และโหมดสรุปด้วย AI ที่เลือกใช้ได้
- การใช้งานที่ชอบด้วยกฎหมายได้แก่ การสืบสวน OSINT โดยนักข่าว, การกู้คืนบัญชี, การค้นหาบุคคลที่หายไป, การตรวจสอบความปลอดภัย และการติดตามการละเมิดแบรนด์ขององค์กร
- การทำภารกิจ Red Team ที่ได้รับอนุญาตพึ่งพาเครื่องมืออย่าง Maigret เพื่อระบุพื้นที่โจมตีสาธารณะขององค์กร การใช้กับบุคคลโดยไม่ได้รับความยินยอมถือเป็นการคุกคามและสะกดรอยตาม
- แนวคิดทางสถาปัตยกรรม (การตรวจจับด้วยลายเซ็น, การยืนยันแบบวนซ้ำ, การแจ้งเตือนความคลาดเคลื่อนอัตโนมัติ) สามารถนำไปใช้กับการทดสอบ API ได้โดยตรง เราจะแสดงวิธีนำไปใช้กับ Apidog
- ดาวน์โหลด Apidog เพื่อออกแบบและทดสอบการยืนยันแบบลายเซ็นบน API ของคุณในลักษณะเดียวกับที่ Maigret ใช้ทดสอบเว็บไซต์
Maigret คืออะไรและไม่ใช่
Maigret เป็นเครื่องมือ Python ที่ได้รับอนุญาตแบบ MIT และดูแลโดย soxoj คำโปรยใน README: "รวบรวมข้อมูลเกี่ยวกับบุคคลโดยใช้ชื่อผู้ใช้จากเว็บไซต์กว่า 3,000 แห่ง" เรียกใช้ pip install maigret ป้อนชื่อผู้ใช้ แล้วมันจะสอบถามเว็บไซต์ในฐานข้อมูล ดึงข้อมูลโปรไฟล์สาธารณะที่อยู่เบื้องหลังแต่ละบัญชีที่พบ และสร้างรายงานขึ้นมา

มีสามสิ่งที่เราต้องทำความเข้าใจให้ชัดเจน
มันใช้เฉพาะข้อมูลสาธารณะเท่านั้น ไม่มีการเข้าสู่ระบบ, ไม่มีการใช้ข้อมูลประจำตัวในทางที่ผิด, ไม่มี API keys หากเว็บไซต์เปิดเผยโปรไฟล์ให้ผู้เยี่ยมชมที่ไม่ระบุตัวตน Maigret จะอ่านข้อมูลนั้น หากไม่เปิดเผย มันจะส่งคืน "ไม่พบชื่อผู้ใช้" หรือหน้าที่ถูกระบุว่ามีปัญหา
มันถูกใช้อย่างแพร่หลายในบริบทการวิจัยที่ชอบด้วยกฎหมาย นักข่าวจากสำนักข่าวสืบสวนขนาดใหญ่, อาสาสมัครค้นหาบุคคลที่หายไป, ทีมป้องกันการฉ้อโกงและการคุ้มครองแบรนด์, และทีม Red Team ที่ได้รับอนุญาต ใช้มันทุกวัน README ของ Maigret เองก็มีรายการอ้างอิงในการเรียนการสอน OSINT เชิงวิชาการ
มันอาจถูกนำไปใช้ในทางที่ผิดได้ เช่นเดียวกับเครื่องมือ OSINT อื่นๆ การใช้มันกับบุคคลส่วนตัวโดยไม่ได้รับความยินยอมเป็นการละเมิดหลักจริยธรรมและในหลายเขตอำนาจก็เป็นเรื่องผิดกฎหมาย กฎหมายการสะกดรอยตามใน EU, สหรัฐอเมริกา และภูมิภาคส่วนใหญ่มีผลบังคับใช้ โปรดศึกษากฎหมายท้องถิ่นของคุณก่อนที่จะใช้เครื่องมือนี้กับบุคคลใดๆ
ส่วนที่เหลือของบทความนี้จะเน้นที่วิศวกรรมและรูปแบบการทดสอบที่สามารถนำไปปรับใช้ได้ ไม่ใช่กระบวนการทำงานที่มุ่งเป้าไปที่มนุษย์
ฐานข้อมูลลายเซ็นของเว็บไซต์
แนวคิดทางวิศวกรรมที่ดีที่สุดใน Maigret คือฐานข้อมูลลายเซ็นของเว็บไซต์ แต่ละรายการจะอธิบายเว็บไซต์หนึ่งแห่งพร้อมข้อมูลเพียงพอที่สแกนเนอร์สามารถตัดสินใจได้ดังนี้:
- ชื่อผู้ใช้มีอยู่บนเว็บไซต์นี้หรือไม่?
- หน้าที่ "พบ" เป็นอย่างไร?
- หน้าที่ "ไม่พบ" เป็นอย่างไร?
- เราสามารถดึงข้อมูลอะไรได้บ้างจากหน้าที่พบ?
- เว็บไซต์นี้มีการจำกัดอัตราการเข้าถึง (rate-limit) หรือใช้แคปต์ชาหรือไม่?
ฐานข้อมูลเป็นรูปแบบ JSON มีการจัดการเวอร์ชันใน repository และอัปเดตอัตโนมัติจาก GitHub ทุก 24 ชั่วโมงเมื่อเครื่องมือทำงาน หากผู้ดูแลอัปเดตลายเซ็นสำหรับเว็บไซต์ที่มีการเปลี่ยนแปลงล่าสุด การติดตั้ง Maigret ทุกครั้งจะได้รับข้อมูลอัปเดตในวันถัดไปโดยไม่ต้องติดตั้งใหม่
รูปแบบนี้เป็นแบบเดียวกันกับที่คุณต้องการสำหรับชุดทดสอบ API โปรเจกต์ของคุณมี 50, 500 หรือ 5,000 จุดสิ้นสุด (endpoints) แต่ละจุดสิ้นสุดมีลายเซ็น: รหัสสถานะที่คาดไว้, รูปแบบการตอบกลับ, ซองจดหมายข้อผิดพลาด (error envelopes) เมื่อผู้ขายเปลี่ยนแปลงรูปแบบ คุณต้องการให้ชุดทดสอบล้มเหลวอย่างรวดเร็วพร้อมผลต่าง (diff) ที่มีประโยชน์ เราได้ครอบคลุมแนวคิดเดียวกันนี้ไว้ใน การพัฒนา API แบบสัญญาเป็นอันดับแรก และใน คู่มือการทดสอบเซิร์ฟเวอร์ MCP
Maigret ตรวจจับ "พบชื่อผู้ใช้" กับ "ไม่พบ" ได้อย่างไร
สแกนเนอร์ที่เรียบง่ายจะทำการ HTTP GET ไปยัง https://example.com/user/<username> และตรวจสอบรหัสสถานะ วิธีนี้ใช้ได้กับเว็บไซต์จริงประมาณ 10 เปอร์เซ็นต์เท่านั้น อีก 90 เปอร์เซ็นต์จะส่งคืนรหัส 200 พร้อมหน้า "ไม่มีผู้ใช้ดังกล่าว" หรือรหัส 200 พร้อมหน้าแรกที่แคชไว้ หรือรหัส 200 พร้อมการท้าทายแคปต์ชา
ฐานข้อมูลของ Maigret อธิบายแต่ละเว็บไซต์ด้วยชุดกฎการตรวจจับที่หลากหลายยิ่งขึ้น:
- เทมเพลต
urlMainและurl - รายการ
presenseStrs(สตริงย่อยที่ต้องปรากฏเมื่อมีผู้ใช้) - รายการ
absenceStrs(สตริงย่อยที่ยืนยันว่าไม่มีผู้ใช้) - regex สำหรับการดึงชื่อผู้ใช้จากหน้าเว็บ
- เฮดเดอร์เสริม (บางเว็บไซต์ต้องการ user agent ที่กำหนดเอง)
- แท็กสำหรับหมวดหมู่และประเทศ
ผลลัพธ์ "พบ" ต้องมี presenseStrs ทั้งหมดอยู่ในส่วนตอบกลับ และไม่มี absenceStrs เลย ผลลัพธ์ "ไม่พบ" คือตรงกันข้าม อย่างอื่นเป็นผลลัพธ์ "ไม่ทราบ" ซึ่งผู้ใช้สามารถตรวจสอบด้วยตนเองได้
นี่คือการยืนยันแบบหลายสัญญาณแบบเดียวกับที่คุณต้องการเมื่อทดสอบ API ที่ซับซ้อน สถานะ 200 ไม่เพียงพอ คุณต้องยืนยันเนื้อหาในบอดี้ด้วย Apidog รองรับการยืนยันทั้งรหัสสถานะและเนื้อหาในบอดี้ในการเรียกใช้ครั้งเดียว ซึ่งเทียบเท่ากับการทำงานของ presenseStrs บวก absenceStrs ของ Maigret ในการทดสอบ API
การค้นหาแบบวนซ้ำและการดึงข้อมูล
เมื่อ Maigret พบบัญชีแล้ว มันจะทำอีกสองสิ่ง
มันจะทำการ scraping หน้าโปรไฟล์สาธารณะเพื่อหาตัวระบุเพิ่มเติม: ที่อยู่อีเมลที่เชื่อมโยง, หมายเลขโทรศัพท์, ชื่อจริง, ชื่อผู้ใช้อื่นๆ กฎการดึงข้อมูลยังขับเคลื่อนด้วยลายเซ็น โดยกำหนดแยกตามแต่ละเว็บไซต์ โปรไฟล์ LinkedIn ให้ข้อมูลในฟิลด์ที่แตกต่างจากโปรไฟล์ GitHub
จากนั้นมันก็จะวนซ้ำ ตัวระบุใหม่จะถูกป้อนกลับเข้าสู่กระบวนการค้นหา ทำให้ข้อมูลขยายวงกว้างออกไปในบัญชีที่เชื่อมโยงกัน ชื่อผู้ใช้บนเว็บไซต์หนึ่งอาจนำไปสู่ชื่อจริง; ชื่อนั้นอาจปลดล็อกบัญชีอื่นบนเว็บไซต์อื่น; บัญชีนั้นอาจเชื่อมโยงไปยังบัญชี Instagram; เป็นต้น
สำหรับ OSINT นี่คือความแตกต่างระหว่าง "ฉันพบบัญชี Twitter หนึ่งบัญชี" กับ "ฉันติดตามบุคคลนี้ได้จาก 12 บริการ" สำหรับชุดทดสอบ API รูปแบบเดียวกันนี้ก็มีคุณค่า: เมื่อคุณพบฟิลด์ที่ไม่ได้รับการบันทึกในส่วนตอบกลับของจุดสิ้นสุดหนึ่ง ให้ติดตามไป ซึ่งมักจะชี้ไปยังจุดสิ้นสุดที่เกี่ยวข้อง, ระบบปลายน้ำ, หรือกรณีทดสอบที่ขาดหายไป
การจัดการแคปต์ชาและการจำกัดอัตราการเข้าถึง
Maigret หลีกเลี่ยงแคปต์ชาได้บางส่วนและตรวจจับการจำกัดอัตราการเข้าถึงโดยการอ่านรูปแบบการตอบกลับ กลยุทธ์การหลีกเลี่ยงประกอบด้วย:
- การหมุนเวียน user agents
- การเคารพเฮดเดอร์การลองใหม่ต่อเว็บไซต์
- การกลับไปใช้โดเมนมือถือหรือโดเมนแบบเรียบง่ายของเว็บไซต์
- การส่งผ่าน Tor หรือ I2P เมื่อเว็บไซต์อนุญาต
README ระบุไว้อย่างตรงไปตรงมาว่านี่เป็นเพียงบางส่วนเท่านั้น หากเว็บไซต์มีการป้องกันการทำงานอัตโนมัติอย่างรุนแรง Maigret จะบันทึกว่า "ตรวจพบแคปต์ชา" และให้ผู้ใช้ตรวจสอบด้วยตนเอง เครื่องมือนี้ไม่ได้พยายามเอาชนะการป้องกันที่เป็นปรปักษ์ มันทำงานกับเว็บไซต์ที่อนุญาตการเข้าถึงแบบไม่ระบุตัวตนพื้นฐาน
รูปแบบนี้สามารถนำไปปรับใช้ได้: เมื่อคุณสร้าง API client หรือ test runner ให้คุณออกแบบให้มันตรวจจับการตอบกลับการจำกัดอัตราการเข้าถึงและถอยกลับอย่างสง่างาม ไม่ใช่การพยายามเจาะผ่านอย่างรุนแรง ท่าทีในการป้องกันแบบเดียวกันที่ทำให้ Maigret ปฏิบัติตามข้อกำหนดของผู้ขายอย่างถูกต้อง ก็ช่วยป้องกันไม่ให้ IP ของทีมของคุณถูกแบนจากการทดสอบ API
ปัญหาความคลาดเคลื่อนของลายเซ็น
ฐานข้อมูล 3,000+ เว็บไซต์จะมีประโยชน์ก็ต่อเมื่อมีการอัปเดตอยู่เสมอ เว็บไซต์มีการออกแบบหน้าโปรไฟล์ใหม่, เปลี่ยนรูปแบบ URL, เพิ่มแคปต์ชา, หรือถูกซื้อกิจการและเปลี่ยนแบรนด์ ลายเซ็นที่ล้าสมัยจะทำให้เกิดผลลัพธ์ที่ผิดพลาด (false negatives - การค้นหาของคุณไม่พบอะไรเลย) หรือผลลัพธ์ที่ผิดพลาดเชิงบวก (false positives - พบบัญชีที่ไม่มีอยู่จริง)
Maigret จัดการปัญหานี้ด้วยสามชั้น:
- อัปเดตอัตโนมัติจาก GitHub repo ส่วนกลางทุก 24 ชั่วโมง
- Pull requests จากชุมชนที่ดูแลลายเซ็นเว็บไซต์แต่ละแห่ง
- แฟล็ก
--updateที่บังคับให้ดึงข้อมูลใหม่ - ชุดทดสอบในตัวที่ตรวจสอบความถูกต้องของลายเซ็นแต่ละอันกับชื่อผู้ใช้ที่มีอยู่จริงก่อนที่จะเผยแพร่
รายการที่สามเป็นสิ่งที่ทีมวิศวกรรมส่วนใหญ่มองข้าม Maigret เก็บชื่อผู้ใช้ที่มีอยู่จริงสำหรับแต่ละเว็บไซต์ (โดยทั่วไปคือผู้พัฒนาหรือผู้ดูแลที่ให้ความยินยอม) ชุดทดสอบจะสอบถามชื่อผู้ใช้นั้นและยืนยันว่าลายเซ็นยังคงทำงานอยู่ ตรวจพบความคลาดเคลื่อน, ระบุลายเซ็นที่ผิดปกติ, แจ้งผู้ร่วมให้ข้อมูล
นี่คือชุดการทดสอบการถดถอยแบบเดียวกับที่คุณต้องการสำหรับ API contracts ของคุณ Apidog รองรับรูปแบบเดียวกันนี้: บันทึกการตอบกลับที่ถูกต้องสำหรับแต่ละจุดสิ้นสุด, เรียกซ้ำกับจุดสิ้นสุดจริงตามกำหนดเวลา, เปรียบเทียบผลลัพธ์ และแจ้งเตือนเมื่อเกิดความคลาดเคลื่อน คู่มือ DeepSeek V4 API ของเราครอบคลุมด้านการทำงานด้วยตนเองสำหรับผู้ขายรายหนึ่ง
โหมดสรุปด้วย AI ที่เลือกใช้ได้
แฟล็ก --ai จะเปลี่ยนผลการค้นหาดิบของ Maigret ให้เป็นสรุปการสืบสวนสั้นๆ โดยใช้จุดสิ้นสุด LLM ที่เข้ากันได้กับ OpenAI คุณเป็นผู้จัดหา API key; Maigret จะจัดโครงสร้างพร้อมท์และการเรียกใช้
นี่เป็นตัวอย่างที่ดีของการใช้ LLM เป็นกระบวนการหลังการประมวลผล (postprocessor) ที่ทำได้อย่างถูกต้อง โมเดลไม่เคยตัดสินใจว่าชื่อผู้ใช้ตรงกันหรือไม่; นั่นเป็นไปตามกฎและเป็นแบบกำหนดตายตัว โมเดลจะทำการสรุปเท่านั้น ซึ่งเป็นสิ่งที่มันทำได้ดี และทำงานบนข้อมูลนำเข้าที่ถูกจำกัด การสร้างข้อมูลที่ไม่เป็นความจริง (hallucinations) ถูกจำกัดขอบเขต
สถาปัตยกรรมเดียวกันนี้ทำงานได้ดีสำหรับการตรวจสอบ API: การยืนยันตามกฎที่กำหนดตายตัวใน Apidog, พร้อมด้วย LLM postprocessor ที่เปลี่ยนรายงานการทำงานให้เป็นสรุปที่อ่านง่ายและพร้อมสำหรับ Slack ในตอนท้าย บทความของเราเรื่อง การใช้งานคอมพิวเตอร์เทียบกับ API ที่มีโครงสร้าง อธิบายว่าทำไมชั้นโครงสร้างจึงควรมาก่อนเสมอ
กรณีการใช้งานที่ชอบด้วยกฎหมายที่ควรทราบ
ห้าสถานการณ์ที่การใช้ Maigret นั้นเหมาะสมอย่างชัดเจน
- การกู้คืนบัญชีสำหรับตัวคุณเอง ค้นหาบัญชีเก่าทั้งหมดที่ผูกกับชื่อผู้ใช้ที่คุณเคยใช้ในปี 2014 มีประโยชน์ก่อนการตรวจสอบความเป็นส่วนตัวหรือเมื่อต้องการปิดร่องรอยดิจิทัล
- การตรวจสอบการละเมิดแบรนด์ บริษัทต่างๆ ใช้ Maigret กับชื่อแบรนด์หรือผลิตภัณฑ์ของตนเพื่อตรวจจับบัญชีแอบอ้าง เขตอำนาจศาลส่วนใหญ่สนับสนุนการตรวจสอบประเภทนี้ บางแห่งก็บังคับใช้
- งานอาสาสมัครค้นหาบุคคลที่หายไป องค์กรค้นหาและกู้ภัย และองค์กรค้นหาบุคคลที่หายไป ใช้ Maigret โดยได้รับความยินยอมจากครอบครัวเพื่อติดตามร่องรอยดิจิทัล ควรประสานงานกับหน่วยงานบังคับใช้กฎหมายเสมอ การทำงานอิสระในส่วนนี้มักจะทำให้การสืบสวนยากขึ้น
- ภารกิจ Red Team ที่ได้รับอนุญาต ทีม Pentest ภายใต้ขอบเขตสัญญาที่ลงนาม ใช้ Maigret เพื่อทำแผนที่พื้นผิวการโจมตีสาธารณะขององค์กร สัญญากำหนดขอบเขต เครื่องมือเป็นเพียงการนำไปใช้
- วารสารศาสตร์เชิงสืบสวน นักข่าวที่สืบสวนการฉ้อโกง, การประพฤติมิชอบของบุคคลสาธารณะ, หรืออาชญากรรมองค์กร ใช้เครื่องมือ OSINT ภายใต้การตรวจสอบจากกองบรรณาธิการและฝ่ายกฎหมาย
สิ่งที่ไม่ใช่ในรายการนี้: การค้นหาคนแปลกหน้าด้วยความอยากรู้, การสอดแนมอดีตคู่รัก, หรือการสร้างชุดข้อมูลเกี่ยวกับบุคคลที่ไม่ให้ความยินยอม การใช้งานเหล่านั้นเป็นการละเมิดกฎหมายในเขตอำนาจศาลส่วนใหญ่และละเมิดหลักจริยธรรมในทุกที่
รูปแบบจาก Maigret ที่คุณสามารถนำไปใช้กับการทดสอบ API ได้
ห้าแนวคิดทางวิศวกรรมที่สามารถนำไปปรับใช้ได้โดยตรง
- ฐานข้อมูลลายเซ็นเหนือการตรวจสอบด้วยโค้ดที่เขียนด้วยมือ กำหนดพฤติกรรมที่คาดหวังของแต่ละจุดสิ้นสุดเป็นข้อมูล ไม่ใช่โค้ด สามารถเพิ่มผู้ขายใหม่ได้โดยไม่ต้องคอมไพล์ใหม่
- การยืนยันแบบหลายสัญญาณ รหัสสถานะบวกเนื้อหาในบอดี้บวกการตรวจสอบเฮดเดอร์ ทั้งหมดนี้จำเป็น ลดผลลัพธ์ที่ผิดพลาดเชิงบวกจากการตอบกลับที่แคชไว้หรือหน้าข้อผิดพลาดทั่วไป
- ลายเซ็นที่อัปเดตอัตโนมัติ ดึงการยืนยันล่าสุดจาก repository ส่วนกลางตามกำหนดเวลา โปรเจกต์ Apidog รองรับการซิงค์บนคลาวด์ ใช้งานได้เลย เราได้ครอบคลุมขั้นตอนการทำงานนี้ใน การทดสอบ API โดยไม่ต้องใช้ Postman

- การตรวจจับความคลาดเคลื่อน ตั้งเวลาให้มีการเรียกซ้ำเป็นระยะๆ เทียบกับ fixture ที่ทราบว่าดีและเปรียบเทียบผลลัพธ์ แจ้งเตือนเมื่อมีการเปลี่ยนแปลงรูปร่างก่อนที่จะทำให้ระบบเสียหาย
- LLM ทำหน้าที่เป็น postprocessor ไม่ใช่ผู้ตัดสิน ให้กฎที่กำหนดตายตัวตัดสินผลลัพธ์ว่าผ่านหรือไม่ผ่าน ใช้ LLM เพื่อเปลี่ยนรายงานให้เป็นสิ่งที่อ่านง่ายเท่านั้น
นำสิ่งเหล่านี้ไปใช้ แล้วชุดทดสอบ API ของคุณก็จะมีความยั่งยืนเช่นเดียวกับ Maigret ชุดทดสอบส่วนใหญ่ล้มเหลวเพราะถูกเขียนขึ้นเพียงครั้งเดียว, ด้วยโค้ดที่เขียนด้วยมือ, และไม่เคยได้รับการอัปเดต สถาปัตยกรรมของ Maigret เป็นแบบอย่างสำหรับสิ่งที่อยู่รอดได้
ข้อผิดพลาดที่พบบ่อยเมื่อใช้งาน Maigret
สำหรับวิศวกรที่ทดลองใช้เครื่องมือนี้
- การทำงานโดยไม่มีแฟล็ก
-aและสันนิษฐานว่าข้อมูลครบถ้วน โดยค่าเริ่มต้นจะสแกน 500 เว็บไซต์ที่มีการเข้าชมสูงสุด หากการสืบสวนของคุณต้องการส่วนที่เหลือทั้งหมด ให้ใช้แฟล็ก-aสำหรับเว็บไซต์มากกว่า 3,000 แห่ง โปรดทราบว่าการทำงานจะใช้เวลานานขึ้น - การละเลยแท็ก แฟล็ก
--tagsใช้เพื่อจำกัดการค้นหาตามหมวดหมู่หรือประเทศ ผู้ใช้ในรัสเซียหรือญี่ปุ่นอาจถูกมองข้ามได้ด้วยค่าเริ่มต้นที่เน้นสหรัฐฯ; การกรองด้วยแท็กจะช่วยให้พบผู้ใช้เหล่านั้น - การข้ามการอัปเดตอัตโนมัติ ฐานข้อมูลลายเซ็นเก่าทำให้เกิดผลลัพธ์ที่ผิดพลาดเชิงบวกและผิดพลาดเชิงลบ ปล่อยให้การอัปเดตอัตโนมัติทำงาน หรือใช้
--updateด้วยตนเองก่อนการสืบสวนที่สำคัญ - การใช้กับ Tor โดยไม่ได้รับอนุญาตจากเว็บไซต์เป้าหมาย บางเว็บไซต์บล็อกโหนดทางออกของ Tor; Maigret ตรวจพบสิ่งนี้ อย่าตีความการบล็อก Tor ว่าเป็นสัญญาณเกี่ยวกับผู้ใช้
- การเชื่อฟิลด์ที่ดึงมาโดยไม่ตรวจสอบ เครื่องมือจะดึงข้อมูลที่หน้าเว็บเปิดเผยออกมา หน้าเว็บสามารถถูกสร้างขึ้นมาปลอมๆ ได้ ถือว่าสิ่งที่พบเป็นเพียงเบาะแส ไม่ใช่หลักฐาน
กรณีการใช้งานจริง
บริษัทที่ปรึกษาด้านความปลอดภัยใช้ Maigret เป็นขั้นตอนแรกในทุกภารกิจการกำหนดขอบเขตของ Red Team ผลลัพธ์จะถูกนำไปใส่ในรายงานเริ่มต้น เพื่อให้ลูกค้าเห็นพื้นผิวการโจมตีสาธารณะของตนก่อนที่ภารกิจจะเริ่มขึ้น
นักสืบสวนการฉ้อโกงอิสระใช้ Maigret พร้อมแฟล็ก --ai เพื่อสรุปผลการสแกน 3,000 เว็บไซต์ให้เป็นรายงานสั้นๆ 200 คำสำหรับลูกค้าที่ไม่ใช่ผู้เชี่ยวชาญด้านเทคนิค การค้นหาแบบกำหนดตายตัวคือข้อมูล; LLM คือชั้นที่ทำให้อ่านง่าย
ทีมวิศวกรรมใช้แนวคิดทางสถาปัตยกรรมเดียวกัน (ฐานข้อมูลลายเซ็น, การตรวจจับความคลาดเคลื่อน, การเรียกซ้ำเป็นระยะ) เพื่อรักษาชุดทดสอบ API ภายในของตนให้ทันสมัยสำหรับ 200 microservices พวกเขาสร้างมันขึ้นมาใน Apidog; โดยใช้หลักการของ Maigret
บทสรุป
Maigret เป็นตัวอย่างที่ใช้งานได้จริงของวิธีการสร้างเครื่องมือที่สามารถขยายขนาดไปสู่กฎการตรวจจับนับพันโดยไม่เสียหายทุกครั้งที่พื้นผิวพื้นฐานเปลี่ยนแปลง วิศวกรรมภายในคุ้มค่าแก่การศึกษาแม้ว่าคุณจะไม่เคยทำการสืบสวน OSINT เลยก็ตาม: ฐานข้อมูลลายเซ็น, การยืนยันแบบหลายสัญญาณ, ข้อมูลที่อัปเดตอัตโนมัติ, การตรวจจับความคลาดเคลื่อน, และการประมวลผลหลัง LLM ล้วนสามารถนำไปปรับใช้กับงานทดสอบ API ที่คุณทำอยู่ทุกวันได้
ห้าข้อคิดสำคัญ:
- Maigret ตรวจสอบเว็บไซต์มากกว่า 3,000 แห่งเพื่อหาชื่อผู้ใช้โดยใช้ฐานข้อมูลลายเซ็นที่มีการจัดการเวอร์ชันและอัปเดตอัตโนมัติ
- การตรวจจับแบบหลายสัญญาณ (presence strings บวก absence strings) มีความน่าเชื่อถือสูงกว่าการตรวจสอบรหัสสถานะแบบง่ายๆ
- ความคลาดเคลื่อนเป็นศัตรูของชุดทดสอบที่มีอายุยืนยาวใดๆ; การเรียกซ้ำเป็นระยะๆ เทียบกับ fixtures ที่ทราบจะช่วยตรวจจับได้ตั้งแต่เนิ่นๆ
- LLM ทำหน้าที่เป็น postprocessor (แฟล็ก
--ai) เป็นสถาปัตยกรรมที่ถูกต้อง: กฎที่กำหนดตายตัว, ผลลัพธ์ที่สรุป - รูปแบบเดียวกันนี้ใช้ได้กับการทดสอบ API ใน Apidog; เราได้นำไปใช้กับชุดสัญญาของลูกค้าของเราแล้ว
ขั้นตอนต่อไป: อ่านรูปแบบฐานข้อมูลเว็บไซต์ของ Maigret จากนั้นเปิด Apidog และออกแบบจุดสิ้นสุดหนึ่งในโปรเจกต์ของคุณในลักษณะเดียวกัน: ขับเคลื่อนด้วยลายเซ็น, ใช้หลายสัญญาณ, พร้อม fixture ที่บันทึกไว้สำหรับการตรวจจับความคลาดเคลื่อน ระเบียบวินัยนี้จะให้ผลตอบแทนในครั้งแรกที่ผู้ขายเปลี่ยนชื่อฟิลด์ตอนตีสอง และชุดทดสอบของคุณตรวจพบได้ก่อนที่ผู้ใช้จะเจอ
คำถามที่พบบ่อย
Maigret ใช้งานถูกกฎหมายหรือไม่?
ขึ้นอยู่กับเขตอำนาจศาลและเป้าหมาย การใช้งานกับตัวเอง, บัญชีที่คุณเป็นเจ้าของ, บริษัทที่คุณได้รับอนุญาตเป็นลายลักษณ์อักษรให้ทดสอบ, หรือเป็นส่วนหนึ่งของงานวารสารศาสตร์ที่ได้รับอนุญาต โดยทั่วไปถือว่าไม่เป็นไร การใช้กับบุคคลที่ไม่ระวังตัวอาจละเมิดกฎหมายการสะกดรอยตามและการคุกคามใน EU, สหรัฐอเมริกา, สหราชอาณาจักร และภูมิภาคอื่นๆ ส่วนใหญ่ โปรดศึกษากฎหมายท้องถิ่นของคุณก่อนการใช้งานใดๆ ที่มุ่งเป้าไปที่บุคคลที่สาม
Maigret ทำงานได้โดยไม่มี Python หรือไม่?
แพ็กเกจอย่างเป็นทางการคือ Python 3.10 ขึ้นไป ผู้เขียนดูแล บอท Telegram สำหรับการค้นหาทั่วไปและ Cloud Shell สำหรับผู้ใช้ที่ไม่ต้องการติดตั้งในเครื่อง
ข้อมูลที่อ้างว่า 3,000 เว็บไซต์มีความแม่นยำแค่ไหน?
ฐานข้อมูลเว็บไซต์ใน repository ระบุรายการมากกว่า 3,000 รายการ; ไม่ใช่ทั้งหมดที่ใช้งานได้ตลอดเวลา การอัปเดตอัตโนมัติจะรักษาชุดย่อยที่ใช้งานได้ให้ทันสมัยอยู่เสมอ การกรองด้วยแท็กช่วยให้คุณมุ่งเน้นไปที่เว็บไซต์ที่สำคัญสำหรับขอบเขตของคุณ
โหมด AI เพิ่มอะไรเข้ามาบ้าง?
แฟล็ก --ai ใช้ LLM ที่เข้ากันได้กับ OpenAI เพื่อสรุปผลลัพธ์ที่กำหนดตายตัวให้เป็นรายงานที่อ่านง่าย ไม่ได้เปลี่ยนแปลงการค้นหาโดยตรง; ทำหน้าที่แค่ประมวลผลหลังการค้นหาเท่านั้น คุณต้องเตรียม API key ของคุณเอง
ฉันสามารถใช้ Maigret ใน CI ได้หรือไม่?
สำหรับการสืบสวน OSINT นั้นไม่สามารถทำได้; นั่นคืองานที่ต้องมีการโต้ตอบ รูปแบบทางสถาปัตยกรรมที่ Maigret ใช้ (ฐานข้อมูลลายเซ็น, การตรวจจับความคลาดเคลื่อน, การเรียกซ้ำตามกำหนดเวลา) คือสิ่งที่คุณควรนำไปใช้ใน CI pipeline สำหรับการทดสอบ API Apidog นำสิ่งเหล่านี้ไปใช้ในตัว
สิ่งนี้แตกต่างจาก Sherlock อย่างไร?
Sherlock เป็นเครื่องมือรุ่นเก่าที่เรียบง่ายกว่า Maigret ขยายความสามารถด้วยการดึงข้อมูล, การค้นหาแบบวนซ้ำ, การจัดการแคปต์ชา, โหมดสรุปด้วย AI, และฐานข้อมูลเว็บไซต์ที่สมบูรณ์ยิ่งขึ้น ทั้งสองได้รับอนุญาตแบบ MIT และควรค่าแก่การศึกษา
ฉันจะรายงานลายเซ็นที่ล้าสมัยได้ที่ไหน?
README ชี้ไปที่ GitHub issues และ pull requests ใน Maigret repo การมีส่วนร่วมของชุมชนช่วยให้ฐานข้อมูลทันสมัยอยู่เสมอ; การทำ PR หนึ่งครั้งต่อเว็บไซต์ที่ล้าสมัยเป็นเรื่องปกติ
