เขียนสคริปต์ความตื่นตระหนกเพื่อรักษาความปลอดภัยระยะไกลของ Mac Pro จากผู้ใช้ในพื้นที่ที่ไม่น่าไว้วางใจ [ปิด]


12

สถานการณ์

สมมติว่าฉันอนุญาตให้ผู้ดูแลระบบ "Shady Sam" เข้าถึงเวิร์กสเตชันของฉันเพื่อทำงานด้านการดูแลระบบที่สำคัญใน Mac Pro ของฉันโดยให้รหัสผ่านการเข้าสู่ระบบรากชั่วคราวแก่พวกเขา (สมมติว่าพวกเขามีความน่าเชื่อถืออาจจะเป็นระบบผู้ดูแลระบบสำหรับ บริษัท ของฉัน.)

จากสถานที่ห่างไกล (เช่นบ้าน) ฉันใช้แล็ปท็อป MacBook Pro เพื่อสังเกตกิจกรรมของ Sam และเรียนรู้วิธีทำงานด้วยตนเองผ่าน Remote Desktop (VNC)

โดยไม่มีการเตือน Shady Sam ทำอะไรที่ขี้ขลาด! บางทีฉันอาจเห็นว่าเขากำลังพยายามลบข้อมูลออกจากฮาร์ดไดรฟ์ของฉันหรือแอบเข้าไปในโฟลเดอร์ที่ถูก จำกัด ฯลฯ ไม่ว่าจะเป็นการกระทำที่ขี้ขลาดฉันต้องการล็อค Shady Sam ออกทันทีและรักษาความปลอดภัยคอมพิวเตอร์ให้ดีที่สุดเท่าที่จะทำได้

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

ความท้าทาย

อะไรคือสคริปต์ที่ดีที่สุด (เช่นpanicScript.shหรือpanicScript.py) ฉันสามารถเรียกใช้จากระยะไกลเพื่อหยุด Shady Sam จากการกระทำที่ขี้ขลาดตาขาวของเขาและป้องกันไม่ให้เขาลองอีกครั้ง?

ฉันนึกภาพตัวเองวิ่งตามวิธีต่อไปนี้:

scp panicScript.sh remoteMachine:~/panicScript.sh
ssh remoteMachine . ~/panicScript.sh

คุณสมบัติที่เป็นไปได้:

ความคิดอื่น ๆ ได้รับการสนับสนุนอย่างชัดแจ้ง!

  • เปลี่ยนรหัสผ่านของบัญชีใด ๆ / ทั้งหมดใน remoteMachine
  • ปิดการใช้งานแป้นพิมพ์หรือเมาส์
  • ปิดการใช้งานจอภาพ
  • รีบูทเครื่อง

สมมติฐาน

Shady Sam จะไม่สร้างความเสียหายให้กับ Mac Pro แต่อย่างใดหรือลบส่วนประกอบใด ๆ ของมันออก (เช่นการถอดฮาร์ดไดรฟ์หรือการเชื่อมต่อเครือข่ายแบบใช้สาย) แต่เขาจะพยายามลงชื่อเข้าใช้อีกครั้ง แซมมีการเข้าถึงทางกายภาพที่ไม่ จำกัด ของคอมพิวเตอร์และรหัสผ่านเข้าสู่ระบบด้วย

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

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

ข้อ จำกัด

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

การกระทำทั้งหมดของสคริปต์จะต้องไม่เป็นอันตรายและ / หรือย้อนกลับจากตำแหน่งระยะไกลของฉันเพื่อให้ฉันสามารถเข้าถึงได้ในภายหลังจากตำแหน่งระยะไกลของฉันและต้องเป็นคุณสมบัติ / คำสั่งมาตรฐานใน Mac Pro

สคริปต์อาจเรียกสคริปต์ / โปรแกรมอื่น ๆ ตราบใดที่มาตรฐานนั้นมาพร้อมกับเครื่อง เครื่องมือสร้างสคริปต์บรรทัดคำสั่ง (เช่นawk) นั้นใช้ได้ตราบเท่าที่คำสั่งนั้นมีอยู่ในสคริปต์หลัก (เช่นhistory | awk '{print $2}') สิ่งนี้ยอมรับข้อ จำกัด ของภาษาสคริปต์ที่สามารถใช้ได้

การเรียกสคริปต์ที่กำหนดเองหรือโปรแกรมที่คุณเขียน (เช่น. ~/myOtherScriptOfKungFoo.sh) นั้นไม่เป็นไรเว้นแต่ว่าคุณจะสร้างจากภายในสคริปต์ของคุณและสคริปต์ที่สร้างขึ้นมีความยาวไม่เกิน 32 ตัวอักษร:

echo -e "#"'!'"/bin/bash\necho \"Hello, World\"" >> test.sh
chmod +x test.sh
. test.sh 

ฉันไม่ควรต้องโต้ตอบกับสคริปต์มากกว่าหนึ่งครั้ง (เช่นเพื่อพิมพ์รหัสผ่าน)

เกณฑ์

สคริปต์ควรสั้น (สูงสุด 30 บรรทัด) แต่สามารถอ่านได้ เกณฑ์หลักคือความละเอียดถี่ถ้วนคุณสมบัติและสไตล์ที่สร้างสรรค์ซึ่งดีกว่าความเรียบง่าย

ในที่สุดการโหวตมากที่สุดชนะ!


28
Pro-tip: อย่าจ้างใครชื่อ Shady Sam
Geobits

คำตอบ:


10

สคริปต์ panic ควรถูกส่งไปยังเครื่องระยะไกล (Mac Pro) โดยใช้ scp จากนั้นเรียกใช้ (ไม่ต้องใช้ sudo หรืออินพุตใด ๆ ):

นี่คือสคริปต์: (สมมุติว่าคุณคือ John Smith)

#!/bin/bash -m
f() {
 while true
 do
  pmset displaysleepnow
  sleep 0.1
 done
}
f&
while true
do
 osascript -e "set Volume 10"
 say -v Ralph "Stop Shady Sam now. He is trying to do something he is not allowed to."
 for n in {1..10};
 do
  afplay /System/Library/PrivateFrameworks/ScreenReader.framework/Versions/A/Resources/Sounds/Hit.aiff
  sleep 0.05
 done
 sleep 0.1
 say -v Ralph "This is John Smith speaking."
done

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

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