คำถามติดแท็ก security

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

8
วิธีป้องกันไม่ให้กระบวนการเขียนไฟล์
ฉันต้องการเรียกใช้คำสั่งบน Linux ด้วยวิธีที่ไม่สามารถสร้างหรือเปิดไฟล์ใด ๆ เพื่อเขียน มันควรจะสามารถอ่านไฟล์ได้ตามปกติ (ดังนั้น chroot ที่ว่างเปล่าไม่ใช่ตัวเลือก) และยังสามารถเขียนไปยังไฟล์ที่เปิดอยู่แล้ว (โดยเฉพาะ stdout) คะแนนโบนัสหากการเขียนไฟล์ไปยังไดเรกทอรีที่แน่นอน (เช่นไดเรกทอรีปัจจุบัน) ยังคงเป็นไปได้ ฉันกำลังมองหาวิธีแก้ปัญหาที่เป็นกระบวนการในท้องถิ่นนั่นคือไม่เกี่ยวข้องกับการกำหนดค่าสิ่งต่าง ๆ เช่น AppArmor หรือ SELinux สำหรับทั้งระบบหรือสิทธิพิเศษระดับราก มันอาจเกี่ยวข้องกับการติดตั้งโมดูลเคอร์เนลของพวกเขาแม้ว่า ฉันกำลังดูความสามารถและสิ่งเหล่านี้จะดีและง่ายถ้ามีความสามารถในการสร้างไฟล์ ulimit เป็นอีกวิธีหนึ่งที่สะดวกถ้าครอบคลุมกรณีการใช้งานนี้

4
เขียนไปยังไฟล์ที่ไม่มีการเปลี่ยนเส้นทางหรือไม่?
ฉันกำลังเขียนแอปพลิเคชันที่คอมไพล์ปกติที่ต้องการสร้างไฟล์พิเศษและเขียนคุกกี้วิเศษลงไป ฉันไม่สามารถเขียนไฟล์ได้โดยตรงจากแอปพลิเคชันโมเดลความปลอดภัยของระบบต้องการให้ฉันเปิดใช้เครื่องมือตัวช่วยที่มีสิทธิ์ระดับสูงในการทำเคล็ดลับ ฉันสามารถให้ข้อโต้แย้งกับเครื่องมือช่วยเหลือได้ไม่ จำกัด จำนวน ตอนนี้ฉันต้องการเลือกคำสั่งระบบที่ง่ายมากซึ่งจะทำหน้าที่เป็นเครื่องมือช่วยเหลือและสร้างไฟล์ให้ฉัน บางสิ่งเช่นนี้ /bin/sh -c "/bin/echo -n 'magic' > /some/where/file" Simple touchไม่ตัดตามที่ฉันต้องการเขียนคุกกี้ลงในไฟล์ง่ายๆechoโดยไม่มี shell wrapper ไม่ทำงานเนื่องจากต้องการการเปลี่ยนเส้นทางเพื่อเขียนไฟล์ ฉันรู้สึกไม่สบายใจที่จะเรียกเชลล์ด้วยสิทธิพิเศษรูทเพื่อทำงานที่ไม่สำคัญ มีคำสั่งระบบที่เรียบง่ายและ จำกัด มาก ๆ ที่ฉันสามารถเรียกให้เขียนไฟล์ให้ฉันได้ไหม?

2
อะไรที่ทำให้ fs: [0x28] (กองนกขมิ้น)?
จากโพสต์นี้จะแสดงให้เห็นว่าFS:[0x28]เป็นนกขมิ้น ฉันกำลังสร้างรหัสเดียวกันโดยใช้ GCC ในฟังก์ชั่นนี้ void foo () { char a[500] = {}; printf("%s", a); } โดยเฉพาะฉันได้รับการชุมนุมครั้งนี้ .. 0x000006b5 64488b042528. mov rax, qword fs:[0x28] ; [0x28:8]=0x1978 ; '(' ; "x\x19" 0x000006be 488945f8 mov qword [local_8h], rax ...stuff... 0x00000700 488b45f8 mov rax, qword [local_8h] 0x00000704 644833042528. xor rax, qword fs:[0x28] 0x0000070d 7405 …
13 linux  security  gcc  stack 

2
ตัวแปรสภาพแวดล้อมปรากฏแก่ผู้ใช้ที่ไม่มีสิทธิพิเศษบน Linux หรือไม่
ฉันพยายามที่จะตรวจสอบว่าใน Linux ตัวแปรสภาพแวดล้อมสำหรับกระบวนการสามารถสังเกตเห็นได้โดยผู้ใช้อื่น (ไม่ใช่รูท) กรณีการใช้งานทันทีคือการใส่ความลับลงในตัวแปรสภาพแวดล้อม สิ่งนี้ถูกกล่าวถึงในหลาย ๆ แห่งทั่วทั้งเว็บว่าไม่ปลอดภัย แต่ฉันไม่สามารถเป็นศูนย์ในจุดรับแสงที่แน่นอนใน Linux โปรดทราบว่าฉันไม่ได้พูดถึงการใส่ความลับที่ชัดเจนเข้าไปในไฟล์ โปรดทราบว่าฉันไม่ได้พูดถึงการเปิดรับบัญชีรูท (ฉันพยายามปกปิดความลับจากฝ่ายตรงข้ามที่มีรูทเป็น nonstarter) คำถามนี้ดูเหมือนจะตอบคำถามของฉันด้วยความคิดเห็นที่จำแนกตัวแปรสภาพแวดล้อมว่าสมบูรณ์โดยไม่มีการรักษาความปลอดภัยหรือเพียงแค่ถูกทำให้งงงวย แต่มีวิธีเข้าถึงพวกเขาอย่างไร ในการทดสอบของฉันผู้ใช้ที่ไม่มีสิทธิพิเศษไม่สามารถสังเกตเห็นตัวแปรสภาพแวดล้อมสำหรับผู้ใช้รายอื่นผ่านตารางกระบวนการ ('ps auxwwe') คำสั่งที่ตั้งค่าตัวแปรสภาพแวดล้อม (เช่นการส่งออก) คือเชลล์บิวด์อินซึ่งไม่ได้ทำไว้ในตารางกระบวนการและโดยส่วนขยายไม่อยู่ใน / proc / $ pid / cmdline / proc / $ pid / environ สามารถอ่านได้โดย UID ของเจ้าของกระบวนการเท่านั้น อาจเกิดความสับสนระหว่างระบบปฏิบัติการหรือรุ่นต่าง ๆ แหล่งที่มาต่าง ๆ (ล่าสุด) ทั่วทั้งเว็บบอกถึงความไม่มั่นคงของตัวแปรสภาพแวดล้อม แต่การตรวจสอบสปอตของรุ่นลินุกซ์ที่แตกต่างกันดูเหมือนจะบ่งบอกว่านี่เป็นไปไม่ได้ที่จะย้อนกลับไปอย่างน้อยปี 2007 มือที่จะทดสอบ) ใน Linux …

3
ผู้ใช้ที่พร้อมรับคำสั่งปฏิเสธความปลอดภัยของ Linux
เป็นไปได้ไหมที่จะสร้างโมดูลความปลอดภัยของ Linux (เช่น AppArmor, SELinux เป็นต้น) แจ้งให้ผู้ใช้เมื่อแอปพลิเคชันต้องการเข้าถึงไฟล์หรือโฟลเดอร์ที่จัดประเภท (ลายเซ็นดิจิทัล, คีย์ SSH, ข้อมูลบัตรเครดิตและสิ่งอื่น ๆ ที่มีความละเอียดอ่อน) แทน ปฏิเสธการทำงานของแอปพลิเคชันซึ่งอาจเป็นที่ต้องการ (เช่นไคลเอนต์อีเมลที่ต้องการลงชื่ออีเมลตามคำขอของผู้ใช้) มันจะเป็นประโยชน์ในการตั้งค่านโยบายความปลอดภัยเริ่มต้นที่เข้มงวดสำหรับแอปพลิเคชันที่มีช่องโหว่ (โดยเฉพาะเว็บเบราว์เซอร์และไคลเอนต์อีเมล) และให้ผู้ใช้ตัดสินใจว่าจะดำเนินการตามที่ต้องการหรือไม่ดังนั้นช่องโหว่ของระบบ เป็นมิตร

5
คุณควรใช้ SSH keypair เดียวกันกับหลาย ๆ เครื่องหรือไม่?
ฉันเพิ่งได้แล็ปท็อปเครื่องใหม่สำหรับการทำงานและฉันสงสัยว่ามันจะเป็นการดีถ้าใช้ RSA keypair แบบเดียวกับที่ใช้กับแล็ปท็อปรุ่นเก่าของฉัน ฉันอยากจะได้ไม่ต้องสร้าง keypair ใหม่เพื่อติดตาม นี่เป็นการพูดที่ยอมรับได้หรือไม่? เนื่องจาก keypair มีข้อความรหัสผ่านจึงควรมีความปลอดภัยพอสมควรตราบใดที่เครื่องทางกายภาพของฉันปลอดภัยใช่ไหม
12 ssh  security 

1
บันทึกทุก ๆ การร้องขอของโปรแกรม SUID ทุกครั้งหรือไม่
ฉันต้องการมีล็อกไฟล์ที่มีรายการทุกครั้งที่ผู้ใช้รันโปรแกรม suid ใด ๆ ที่มีชื่อผู้ใช้โปรแกรมและอาร์กิวเมนต์บรรทัดคำสั่งใด ๆ ที่ส่งผ่านไป มีวิธีมาตรฐานในการทำสิ่งนี้บน Linux หรือไม่?
12 linux  security  logs 

7
ฉันจะเข้ารหัส git บนเซิร์ฟเวอร์ของฉันได้อย่างไร
นี่คือที่ใกล้เคียงที่สุดผมเคย: ผมติดตั้ง gitolite ใน/Privateโฟลเดอร์ที่ใช้ecryptfs-utils ( sudo apt-get install ecryptfs-utils adduser git ecryptfs-setup-privateแล้วส่วนที่เหลือได้รับการกำหนดค่า gitolite ใช้รากติดตั้ง) มันทำงานได้ดีตราบใดที่มีคนเข้าสู่ระบบในฐานะผู้gitใช้ที่ใช้รหัสผ่าน (การsu gitใช้รูทไม่ทำงาน) เนื่องจากโฟลเดอร์ส่วนตัวเปิดใช้งานผ่านการเข้าสู่ระบบด้วยรหัสผ่านและ gitolite ใช้คีย์ RSA (จำเป็น) โฟลเดอร์ส่วนตัวจึงถูกซ่อนจึงเกิดข้อผิดพลาด มีวิธีที่ฉันสามารถเข้าสู่เซิร์ฟเวอร์ของฉันหลังจากรีบูตพิมพ์รหัสผ่านและมีโฟลเดอร์ส่วนตัวของผู้ใช้ git จนกว่าจะมีการรีสตาร์ทเครื่องครั้งต่อไปหรือไม่ หรืออาจจะมีวิธีที่ง่ายในการเข้ารหัสโฟลเดอร์สำหรับที่เก็บคอมไพล์?
12 security  git 

3
วิธีที่ปลอดภัยและง่ายที่สุดในการใช้รหัสผ่านที่ผู้ใช้พิมพ์บน bash กลายเป็นส่วนหนึ่งของ stdin ไปยังโปรแกรมอย่างไร
ฉันกำลังมองหา (1) ที่ปลอดภัยที่สุดและ (2) วิธีที่ง่ายที่สุดในการให้ผู้ใช้พิมพ์รหัสผ่านบน bash shell prompt และให้รหัสผ่านนั้นกลายเป็นส่วนหนึ่งของ stdin ไปยังโปรแกรม นี่คือสิ่งที่ stdin จำเป็นต้องมีลักษณะ: {"username":"myname","password":"<my-password>"}ซึ่ง<my-password>เป็นสิ่งที่พิมพ์ลงในเชลล์พรอมต์ ถ้าฉันควบคุมโปรแกรม stdin ได้ฉันสามารถแก้ไขมันเพื่อขอรหัสผ่านอย่างปลอดภัยและใส่ลงไป แต่ downstream เป็นคำสั่งทั่วไปที่เป็นมาตรฐาน ฉันได้พิจารณาและปฏิเสธวิธีการที่ใช้สิ่งต่อไปนี้: ผู้ใช้ที่พิมพ์รหัสผ่านลงในบรรทัดคำสั่ง: รหัสผ่านจะปรากฏบนหน้าจอและผู้ใช้ทุกคนสามารถมองเห็นได้ด้วย "ps" การแก้ไขตัวแปรเชลล์ในอาร์กิวเมนต์ของโปรแกรมภายนอก (เช่น...$PASSWORD...): รหัสผ่านจะยังคงปรากฏให้ผู้ใช้ทุกคนเห็นผ่าน "ps" ตัวแปรสภาพแวดล้อม (ถ้าทิ้งไว้ในสภาพแวดล้อม): รหัสผ่านจะสามารถมองเห็นได้ในกระบวนการลูกทั้งหมด แม้กระบวนการที่น่าเชื่อถืออาจเปิดเผยรหัสผ่านหากพวกเขาถ่ายโอนข้อมูลหลักหรือตัวแปรสภาพแวดล้อมการถ่ายโอนข้อมูลเป็นส่วนหนึ่งของการวินิจฉัย รหัสผ่านที่อยู่ในไฟล์เป็นระยะเวลานานแม้ไฟล์ที่มีสิทธิ์ จำกัด : ผู้ใช้อาจเผลอเปิดเผยรหัสผ่านและผู้ใช้รูทอาจบังเอิญเห็นรหัสผ่าน ฉันจะแก้ปัญหาปัจจุบันของฉันเป็นคำตอบด้านล่าง แต่จะเลือกคำตอบที่ดีกว่าถ้ามีคนมาด้วย ฉันคิดว่าควรจะมีบางสิ่งที่ง่ายกว่าหรืออาจมีบางคนเห็นข้อกังวลด้านความปลอดภัยที่ฉันพลาดไป
12 bash  security  password  curl 

5
เหตุใดจึงแนะนำให้สร้างกลุ่มและผู้ใช้สำหรับบางแอปพลิเคชัน
เวลาส่วนใหญ่เมื่อติดตั้งโปรแกรมจากแหล่งที่มาขอแนะนำให้สร้างผู้ใช้ใหม่และกลุ่มใหม่และให้/usr/local/<myapp>ความเป็นเจ้าของผู้ใช้และกลุ่มที่เพิ่งสร้างขึ้น ทำไมการฝึกฝนเช่นนี้จึงถือเป็นแนวปฏิบัติที่ดี? มันปรับปรุงอะไร ตัวอย่าง: ผู้ใช้ mysql / กลุ่ม mysql สำหรับเซิร์ฟเวอร์ฐานข้อมูล MySQL

2
คุณจะป้องกันไฟล์ข้อมูลรับรองข้อความธรรมดาด้วยชื่อผู้ใช้และรหัสผ่านได้อย่างไร
ฉันกำลังพยายามตั้งค่าไดรฟ์เครือข่ายที่ติดตั้งอัตโนมัติ ไดรฟ์เครือข่ายต้องมีผู้ใช้ / ผ่าน ใน man page สำหรับ "mount.cifs" มีสองวิธีในการจัดเตรียมผู้ใช้ / รหัสผ่าน [ไม่แนะนำ] ใส่ผู้ใช้ / ผ่านใน / etc / fstab สร้างไฟล์ข้อมูลรับรองแยกต่างหากและวางผู้ใช้ / รหัสผ่านในไฟล์ข้อมูลรับรอง "ต้องการตัวเลือก [ตัวเลือก 2] โดยมีรหัสผ่านเป็นข้อความธรรมดาในไฟล์ที่ใช้ร่วมกันเช่น / etc / fstab ตรวจสอบให้แน่ใจว่าได้ป้องกันไฟล์ข้อมูลรับรองอย่างถูกต้อง " พื้นหลังของฉันคือ: นักพัฒนาซอฟต์แวร์, การพัฒนาซอฟต์แวร์ linux จำนวนมาก (การติดตั้งไลบรารีการพัฒนา, การติดตั้งแอปพลิเคชันเช่น Eclipse หรือ java) ฉันไม่ใช่คนดูแลระบบไอที นี่เป็นเครื่องพัฒนาของฉันเอง เนื่องจากฉันไม่มีพื้นหลัง IT / sysadmin วิธีการมาตรฐานที่แนะนำสำหรับ …

4
อนุญาตให้ใช้ไฟล์เท่านั้น
ฉันจะตั้งค่าไฟล์ให้สามารถเรียกใช้งานได้เฉพาะผู้ใช้รายอื่น แต่ไม่สามารถอ่าน / เขียนได้เหตุผลในการนี้ฉันกำลังดำเนินการบางอย่างด้วยชื่อผู้ใช้ของฉัน แต่ฉันไม่ต้องการให้รหัสผ่าน ฉันเหนื่อย : chmod 777 testfile chmod a=x chmod ugo+x ฉันยังคงได้รับอนุญาตปฏิเสธเมื่อดำเนินการในฐานะผู้ใช้รายอื่น

5
มี GUI สำหรับ Linux ที่ไม่ได้ใช้ X11 หรือไม่?
มี GUI สำหรับ Linux ที่ไม่ได้ใช้ X11 หรือไม่? เนื่องจาก X มีความปลอดภัยต่ำมาก: O เช่น: Ubuntu, Fedora - มีอะไรอีกบ้าง? เป้าหมาย: การมี Desktop Environment โดยไม่มี X - การแก้ปัญหาคืออะไร? (เช่น: ดู Flash ด้วย Google Chrome, แก้ไขเอกสารด้วย LibreOffice, ฯลฯ โดยไม่ใช้เว็บเบราว์เซอร์แบบข้อความ) อาจจะมี framebuffers? แต่อย่างไร โอ้
12 linux  security  x11 

1
วิธีหยุดผู้ใช้จากการสลับเป็นผู้ใช้รูท
ฉันได้ปิดการใช้งานการเข้าสู่ระบบของผู้ใช้รูทจากไฟล์ Sshd.conf ดังนั้นตอนนี้ไม่มีใครสามารถเข้าสู่ระบบโดยใช้ผู้ใช้รูทแม้ว่าพวกเขาจะรู้รหัสผ่าน SOMEHOW ตอนนี้ฉันมีผู้ใช้ 3 คนในเซิร์ฟเวอร์ ROOT, EMERG และ ORACLE ฉันต้องการอนุญาตให้เปลี่ยนเป็น ROOT สำหรับผู้ใช้ EMERG โดยใช้ su - ไม่ใช่ผู้ใช้ ORACLE เพราะโดยปกติถ้าผู้ใช้รู้รหัสผ่าน ROOT พวกเขาสามารถเปลี่ยนไปใช้รูทโดยใช้ su - และฉันต้องการคุณสมบัตินี้ใช้ได้เฉพาะกับผู้ใช้ EMERG เท่านั้น วิธีการทำเช่นนี้ ขอบคุณล่วงหน้า......

2
เป็นอันตรายหรือไม่หากใช้เสียงสะท้อน
ฉันเคยเห็นหัวข้อที่คล้ายกันสองสามข้อ แต่พวกเขาอ้างถึงไม่ได้อ้างอิงตัวแปรซึ่งฉันรู้ว่าอาจนำไปสู่ผลลัพธ์ที่ไม่พึงประสงค์ ฉันเห็นรหัสนี้และสงสัยว่าถ้าเป็นไปได้ที่จะฉีดบางสิ่งให้ทำงานเมื่อบรรทัดของรหัสนี้ทำงาน: echo run after_bundle
11 shell  security  quoting  echo 

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