저는 공공 기관을 위한 프로젝트를 개발하려고 합니다. 즉, Raspberry Pi
컴퓨터를 살 여유가 없는 가족에게 컴퓨터를 제공하는 것입니다. Raspbian
운영 체제와 일부 유용한 소프트웨어가 이미 설치되어 있는 SD 카드가 함께 제공됩니다 .
즉, 일부 공급자에게 우리를 위해 생성해 달라고 요청해야 합니다. 예를 들어 500개의 SD 카드와 우리가 제공할 스크립트: 설치 Raspbian
버전XYZ그럼 해apt-get install ...
하지만 보안 문제가 있습니다. 공급자가 악의적이지 않고 SD 카드에 표시되기를 원하지 않는 다른 소프트웨어를 추가하려고 시도하지 않는지 어떻게 확인합니까?
SD 카드를 임의로 꺼내서 꽂았을 때, Rasperry Pi
좋은 명령어를 사용하여 SD 카드가 예상대로 생성되었는지 확인할 수 있는 방법이 있나요?
답변1
누군가가 귀하를 대신하여 운영 체제를 어떻게 설정했는지 확인할 방법이 없습니다. 물건을 숨기는 것은 언제나 가능합니다. 공급업체가 악의적인 행동을 할 위험이 있는 경우 유일한 선택은 다음과 같습니다.
- 보다 신뢰할 수 있는 공급업체와 협력
- 어떤 이미지를 설치해야 하는지 바이트 단위로 알고 있는지 확인하세요. 공급자에게 스크립트뿐만 아니라 정확한 이미지를 보내면 작동합니다.
각 파티션의 sha256sum(해시값)을 이미지에 기록한 후 SD 카드와 비교할 수 있습니다.플러그를 꽂고 켜기 전에. 이론적으로는 추가 파티션을 추가할 수 있지만 이는 쉽게 발견할 수 있습니다.
이미지 해시를 사용할 수 없는 이유는 SD 카드가 예상보다 1바이트 크거나 작으면 해시가 유효하지 않기 때문입니다. SD 카드 크기는 지정된 크기를 가지고 있다고 주장하는 카드마다 다릅니다.
파티션 해시를 기록하려면
이 단계는 모든 Linux 시스템에서 실행할 수 있습니다. SD 용량이 충분히 큰 Raspberry Pi를 사용할 수 있습니다(최소 16GB 권장).
사용하고 싶은 이미지를 다운로드하세요. 예: 최신라즈베리 파이 이미지:
wget --content-disposition https://downloads.raspberrypi.org/raspbian_full_latest unzip *raspbian-stretch-full.zip
ls -lh *raspbian* -rw-r--r-- 1 philip philip 5.1G Apr 8 19:43 2019-04-08-raspbian-stretch-full.img -rw-r----- 1 philip philip 2.0G Apr 8 19:48 2019-04-08-raspbian-stretch-full.zip
맞춤 이미지.
- 루프백 장치 설정
sudo losetup /dev/loop0 2019-04-08-raspbian-stretch-full.img sudo partprobe /dev/loop0
ls -lh /dev/loop0* brw-rw---- 1 root disk 7, 0 May 15 19:18 /dev/loop0 brw-rw---- 1 root disk 259, 0 May 15 19:18 /dev/loop0p1 brw-rw---- 1 root disk 259, 1 May 15 19:18 /dev/loop0p2
- 각 파티션의 sha256sum을 가져옵니다(시간이 좀 걸립니다!). 파일로 저장하세요.
sudo sha256sum /dev/loop0p* 66aa77d8405ab585865d0e0378f06bd8baa5ab41bbb6e9cc23ac6b2be40974d4 /dev/loop0p1 1895a2c5d9e93eb3b644d8cacab9d928184290e30bba6d27b7eb9d486c30e5e8 /dev/loop0p2
- 청소하다
sudo partx -d /dev/loop0 sudo losetup -d /dev/loop0
해시 값 확인
실행 중인 Linux 시스템에 카드를 삽입합니다. 라즈베리파이를 사용하고 싶다면 USB SD카드 리더기를 이용해 확인하고 싶은 카드를 두 번째 카드로 삽입하면 된다.
/dev/sda
카드는 또는 /dev/sdb
... 과 같은 새 드라이브로 나타납니다 .
다음과 같이 읽힌다고 가정하면 /dev/sda
각 파티션에 대한 해시를 얻을 수 있습니다.
ls -lh /dev/sd*
brw-rw---- 1 root disk 8, 16 May 9 12:23 /dev/sda
brw-rw---- 1 root disk 8, 17 May 9 12:23 /dev/sda1
brw-rw---- 1 root disk 8, 18 May 9 12:23 /dev/sda2
sudo sha256sum /dev/sda1 /dev/sda2
66aa77d8405ab585865d0e0378f06bd8baa5ab41bbb6e9cc23ac6b2be40974d4 /dev/sda1
1895a2c5d9e93eb3b644d8cacab9d928184290e30bba6d27b7eb9d486c30e5e8 /dev/sda2
맞춤 이미지
이 단계는 Linux 시스템에서는 실행되지 않으며 Raspberry Pi와 같은 ARM 프로세서가 필요합니다.
이전에 생성된 루프백 파티션(
/dev/loop0p2
)을 마운트합니다. 운영 체제는p2
부팅 구성 에 설치됩니다p1
.mkdir rpi-os sudo mount /dev/loop0p2 rpi-os
df -h foo Filesystem Size Used Avail Use% Mounted on /dev/loop0p2 4.9G 4.4G 202M 96% /home/philip/rpi-os
- chroot마운트된 파일 시스템을 입력하세요.
sudo chroot rpi-os
- 원하는 소프트웨어를 설치하고 원하는 대로 변경하세요. 예를 들어:
apt-get update apt-get install some-new-package
- 종료 및 제거
df -h rpi-os Filesystem Size Used Avail Use% Mounted on /dev/loop0p2 4.9G 4.5G 149M 97% /home/philip/rpi-os
exit sudo umount rpi-os
답변2
확인할 수 있는 방법이 있나요리눅스어떻게 든 설치되었습니다. 예.
합법적인 업데이트 및 구성 파일 수정을 무시합니다...
- 먼저 LUKS를 사용하여 Linux 루트 파티션을 암호화할 수 있습니다. {이것은 추가 방어가 되지만 다른 합병증이 발생할 수 있습니다.}
- 먼저 모든 관련 서류를 확인하세요.
- 분명히 커널은 일반적으로 /boot에 있습니다.vmlinuz...뭔가
해당 initrd, initramfs, grub 및 efi 파일은 모두 /boot 아래에 있습니다.
Linux 중 하나가 체크섬 데이터베이스를 실행하는 Linux에서 AIDE를 사용하면 도움이 됩니다.침입 감지
파일 시스템 레이아웃, 설치된 폴더, 활성화/비활성화 서비스(chkconfig 또는 systemctl) 등 기본 사항이 예상대로인지 확인하는 몇 가지 스크립트를 작성합니다.
모든 것이 확인되면 모든 것이 괜찮다는 일정 수준의 확신을 가질 수 있습니다. 잘못된 경고로 인해 문제가 발생합니다. 예를 들어 이제 합법적인 커널 업데이트가 있고 체크섬을 새 커널에 맞게 변경해야 합니다. 그렇지 않으면 변경된 것으로 빨간색으로 표시됩니다. 그리고 .conf 및 기타 중요하고 정말 중요한 파일과 변경할 수 있지만 신경쓰지 않거나 신경쓰지 말아야 할 결과를 초래할 파일을 구별하세요.
공급자가 악의적이지 않고 SD 카드에 표시되기를 원하지 않는 다른 소프트웨어를 추가하려고 시도하지 않는지 어떻게 확인합니까?
여기에 백만 달러짜리 질문이 있습니다. {특정 순서 없이} ubuntu, suse, redhat/centos, debian, Linux "공급자"가 누구인지에 관계없이 무언가를 연결하지 않는지 어떻게 알 수 있습니까? 답 = 좋은 공급자를 선택하세요. "Linux 커널 소스"가 누락되었다는 편집증에 빠진 다음 모든 소스를 확인하여 "그들"이 무언가를 삽입하지 않았는지 확인하십시오. 그런 다음 Linux에서 실행되는 gnome 및 gnome과 같은 1000+ rpm을 모두 확인하여 작동하는지 확인하십시오. glibc는 무언가가 미끄러지는 것을 방지합니다. 위험이 있습니다. 이 위험을 얼마나 최소화하고 싶은지는 귀하에게 달려 있습니다. 약 100개 이상의 Linux 제공업체가 있습니다. ubuntu, debian, suse, rh와 같이 이미 존재하고 대부분 검증된 제공업체를 선택하세요.
답변3
OP의 질문에 충실하기:
SD카드를 임의로 꺼내서 라즈베리파이에 꽂았을 때, 좋은 명령어로 SD카드가 예상대로 생성되었는지 확인할 수 있는 방법이 있나요?
카드를 Raspberry Pi에 연결하고 부팅하면 무엇이 설치되어 있는지 검사할 수 없습니다. 루트킷의 목적은 루트킷의 존재를 숨기는 것입니다.
물론 해결책은 전혀 실행하지 않고 자신이 소유하고 신뢰하는 시스템에서 읽고 조사하고 비교하는 것입니다.