บอกว่าฉันกำลังเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SCP และคัดลอกไฟล์บางไฟล์จากเซิร์ฟเวอร์ระยะไกลไปยังคอมพิวเตอร์ที่บ้านของฉัน ผู้ดูแลระบบเซิร์ฟเวอร์สามารถบอกได้หรือไม่ว่าฉันได้คัดลอกบางสิ่งบางอย่างดูสิ่งที่ถูกคัดลอกหรือรู้ว่าใครคัดลอกมัน
บอกว่าฉันกำลังเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SCP และคัดลอกไฟล์บางไฟล์จากเซิร์ฟเวอร์ระยะไกลไปยังคอมพิวเตอร์ที่บ้านของฉัน ผู้ดูแลระบบเซิร์ฟเวอร์สามารถบอกได้หรือไม่ว่าฉันได้คัดลอกบางสิ่งบางอย่างดูสิ่งที่ถูกคัดลอกหรือรู้ว่าใครคัดลอกมัน
คำตอบ:
คำถาม ServerFaultเกือบจะเหมือนกันกับคำถามนี้ หวังว่าคุณจะตรวจสอบก่อนที่จะโพสต์คำถามของคุณ แต่คุณจะแตกต่างกันเล็กน้อยดังนั้นฉันจะตอบที่นี่
คำตอบสั้น ๆ คือถ้าทุกคนมีการเข้าถึงและการอนุญาตไปยังจุดปลาย (ระบบที่คุณกำลังเข้าscp
หรือออกscp
ไป) พวกเขาสามารถเห็นสิ่งที่เกิดขึ้น หากพวกเขาไม่สามารถเข้าถึงจุดปลายทั้งสองได้พวกเขาก็อาจจะไม่สามารถเข้าถึงหรือถอดรหัสสิ่งที่คุณกำลังทำอยู่ (นอกเหนือจากการรู้จักแอปพลิเคชันด้วยหมายเลขโปรโตคอล)
คำตอบนั้นขึ้นอยู่กับโครงสร้างพื้นฐานของคุณเป็นอย่างมาก เป็นไปได้ว่าตราบใดที่ไม่มีการเฝ้าระวังอย่างรุนแรงและ SCP ไม่ได้ถูกพิจารณาว่าเป็นภัยคุกคามใน บริษัท นี่คือความจริงโดยเฉพาะอย่างยิ่งสำหรับ บริษัท ขนาดเล็ก
ตามที่ @SimonRichter พูดถึงถ้าคนที่สามารถรันคำสั่งบนระบบของคุณ (. คือผู้ดูแลระบบหรืออื่น ๆ ) scp -args /filepath/
พวกเขาสามารถตรวจสอบรายชื่อกระบวนการของคุณและดูบรรทัดคำสั่ง อย่างไรก็ตามสิ่งนี้ต้องการให้พวกเขาทำการบันทึกกิจกรรมกระบวนการทั้งหมดหรือตรวจสอบในเวลาที่คุณกำลังถ่ายโอน นอกจากนี้หากคุณทำจากระบบของคุณเองในที่ทำงานไปยังระบบอื่น (พูดที่บ้านหรือที่อื่น ๆ ) พวกเขาไม่จำเป็นต้องมีทัศนวิสัยเช่นนั้น
นอกจากนี้ตามที่ @ alex.forencich พูดถึง: นอกจากนี้ยังสามารถบันทึกการโทรของระบบทั้งหมด (รวมถึงการเปิดไฟล์และอ่านการโทร) ดังนั้นแม้ว่าโปรแกรมคัดลอกของคุณ (scp, sftp ฯลฯ ) จะไม่บันทึกหรือรั่วไหลอะไร (อาร์กิวเมนต์บรรทัดคำสั่ง ) มันยังคงเป็นไปได้ที่จะคิดออกว่าไฟล์ใดถูกอ่านหรือเขียน ดูระบบการตรวจสอบ linux -
ไม่ใช่แค่ผู้ดูแลระบบ
สำหรับการทดสอบฉันเพิ่งคัดลอก/bin
จากเซิร์ฟเวอร์ของฉันไปยังไดเรกทอรีชั่วคราวบนแล็ปท็อปของฉัน ps
บนเซิร์ฟเวอร์แสดงให้เห็น
$ ps 24096
PID TTY STAT TIME COMMAND
24096 ? Ss 0:00 scp -r -f /bin
โดยทั่วไปผู้ใช้ทุกคนสามารถเข้าถึงข้อมูลนี้ได้
/proc
กับตัวเลือกhidepid=2
ปิดการใช้งานนี้ ..
scp
ทำงานด้วยความช่วยเหลือของรหัสทำงานบนเซิร์ฟเวอร์ ( sshd
และscp
ตัวเอง) ในทางทฤษฎีแล้วรหัส Sever นั้นอยู่ในการควบคุมของผู้ดูแลระบบเซิร์ฟเวอร์และรุ่นที่scp
ใช้งานบนเซิร์ฟเวอร์เพื่อเขียนไฟล์ลงไปที่การเชื่อมต่อกับคุณแยกจากเวอร์ชั่นที่scp
ทำงานบนเครื่องของคุณเพื่อออกคำร้องขอ
ผู้ดูแลระบบของเซิร์ฟเวอร์สามารถแทนที่ตัวอย่างscp
บนเซิร์ฟเวอร์ด้วยเวอร์ชันที่บันทึกการร้องขอทั้งหมดแทนที่จะเป็นเว็บเซิร์ฟเวอร์สามารถเขียนบันทึกได้ จากนั้นพวกเขาสามารถเห็นได้จากบันทึกเหล่านั้นสิ่งที่คุณคัดลอก
ไม่ว่าพวกเขาจะมีความเชี่ยวชาญและแรงจูงใจในการทำสิ่งนี้จริง ๆ จะมีความชัดเจนน้อยกว่า แต่ถ้าพวกเขาต้องการในหลักการแล้วไม่มีอะไรจะหยุดพวกเขา
ฉันคิดว่าคำถามเหล่านี้เป็นคำตอบสำหรับคุณ: https://security.stackexchange.com/questions/14782/is-there-an-easy-way-to-see-a-log-of-scp-activity-on-a -server-ala-var-log-secu , https://askubuntu.com/questions/659896/where-would-you-find-scp-logs
แม้ว่าฉันจะไม่ทราบรายละเอียดทั้งหมด แต่ดูเหมือนว่าจะอยู่นอกกรอบscp
และsshd
ไม่มีตัวเลือกให้บันทึกสิ่งที่คุณถาม ดังนั้นอาจจำเป็นต้องมีมากกว่าการกำหนดค่าแบบง่าย ๆ แต่คุณไม่สามารถหลีกเลี่ยงความจริงที่ว่าผู้ดูแลระบบควบคุมเซิร์ฟเวอร์
ทุกสิ่งที่ผ่านการเข้ารหัสผ่านหน่วยความจำของคอมพิวเตอร์สามารถอ่านหรือเปลี่ยนแปลงได้โดยผู้ใช้ที่ได้รับสิทธิพิเศษอย่างเพียงพอบนเครื่องนั้น
ชื่อของกระบวนการทำงานและบรรทัดคำสั่งที่ใช้ในการเริ่มต้นนั้นสามารถเข้าถึงได้โดยผู้ใช้ที่เข้าสู่ระบบบน Linux (นี่ไม่ใช่กรณีบน Windows สำหรับสิ่งที่อยากรู้อยากเห็น) ดังนั้นผู้ดูแลระบบหรือใครก็ตามที่อยู่ใกล้จะได้เห็นไฟล์ที่คุณคัดลอก นอกจากนี้ผู้ดูแลระบบยังสามารถตั้งค่าการบันทึกการเข้าถึงไฟล์บางประเภทหรือแทนที่ / jiggled scp
โปรแกรมที่ปลายด้านหนึ่งเพื่อทำการบันทึกเพิ่มเติม
scp
เพียงแค่ปกป้องคุณจากผู้โจมตีเครือข่าย เห็นได้ชัดว่าปลายทั้งสองต้องทราบข้อมูลที่ถอดรหัสดังนั้นจึงมีโอกาสสำหรับผู้ดูแลระบบที่มีความซับซ้อนในจุดปลายทั้งสองเพื่อดูดข้อมูลออกจากscp
หน่วยความจำของ วิธีแก้ปัญหาอื่น ๆ แม้แต่ผู้ที่ไม่เกี่ยวข้องกับบรรทัดคำสั่งก็เปิดให้: ปลายทั้งสองsftp
รู้ว่าสิ่งที่เกิดขึ้นดังนั้นจึงเป็นไปได้ที่จะกำหนดผ่านการตรวจสอบหน่วยความจำสิ่งที่sftp
คิด / ถ่ายโอน
กฎง่ายๆคือบุคคลที่มีสิทธิ์เข้าถึงรูทสามารถรู้ทุกอย่าง (ถ้าเขาสามารถตรวจสอบได้) อาจเป็นสิ่งเดียวที่ปิดขีด จำกัด เป็นระบบไฟล์ที่เข้ารหัสใบรับรอง
ในระหว่างการกระทำที่scp
จะเปิดกระบวนการในด้านระยะไกลที่สามารถมองเห็นได้โดยทุกคนps
เพียงแค่กล่าวอ้าง หากคุณจัดการเพื่อซ่อน commandline แสดงในรายการกระบวนการจากนั้นlsof
(รายการของไฟล์ที่เปิด) สามารถแสดงไฟล์ที่ถูกสัมผัส มันง่ายมากฉันทำอย่างนั้นจริง ๆ เพื่อดูว่ากระบวนการคัดลอกที่ฉันเริ่มต้นอยู่ห่างไกลแค่ไหนถ้าฉันเริ่มต้นกระบวนการบนเทอร์มินัลฉันไม่สามารถดูได้ในขณะนี้
หลังจากดำเนินการสแกนอย่างรวดเร็วด้วยfind
สามารถค้นหาไฟล์ใหม่ล่าสุด (หากการประทับเวลาไม่ได้ถูกเก็บไว้ในระหว่างการคัดลอก) หากไฟล์นั้นถูกเข้าถึงหรือสัมผัสด้วยวิธีใดก็ตามssh
คุณ.bash_history
จะแสดงสิ่งที่คุณกำลังทำ (แต่คุณสามารถลบได้ถ้าคุณต้องการ)
หากความปลอดภัยนั้นเข้มงวดมากคุณสามารถตั้งค่าการตรวจสอบเพิ่มเติมได้ตลอดเวลา: คุณสามารถฟังการแก้ไขไฟล์ทั้งหมดด้วย daemon ง่าย ๆ และบันทึกทุกอย่างเกี่ยวกับการทำธุรกรรมระบบไฟล์โลคอลและรีโมตไม่สำคัญ มันจะไม่แปลกใจที่จะเข้าสู่กระบวนการใช้กระบอกไม้ไผ่ทั้งหมด หากการสำรองข้อมูลเสร็จสิ้นไฟล์อาจยังคงถูกจัดเก็บไว้ที่ใดที่หนึ่งหลังจากที่คุณลบทิ้ง
file
คุณหมายถึงfind
อะไร
ผู้ดูแลระบบเซิร์ฟเวอร์สามารถตรวจสอบปริมาณข้อมูลที่เดินทางเข้าหรือออกจากเซิร์ฟเวอร์ของตนเพื่อให้สามารถตรวจสอบปริมาณการใช้งาน SCP ได้อย่างง่ายดายหากต้องการและดูว่าคุณได้คัดลอกไฟล์และไฟล์ที่คุณคัดลอกแล้ว
sftp
ใช้ มันอาจจะถูกบันทึกไว้ แต่ก็ไม่ได้อย่างชัดเจน visblescp
เป็นชื่อกระบวนการของ