fix: 修复NapCat设备拟真验证
This commit is contained in:
parent
074bee1d4b
commit
7942ec351b
@ -48,7 +48,12 @@ docker build `
|
||||
.kt-workspace/napcat-desktop-cn-build
|
||||
|
||||
$name = "kt-napcat-v8-verify-$([DateTimeOffset]::UtcNow.ToUnixTimeSeconds())"
|
||||
docker run -d --name $name kt-napcat-desktop-cn:desktop-cn-v8
|
||||
docker run -d --name $name `
|
||||
--cap-add SYS_ADMIN `
|
||||
--security-opt apparmor=unconfined `
|
||||
--security-opt seccomp=unconfined `
|
||||
-e NAPCAT_REQUIRE_DEVICE_PROFILE=1 `
|
||||
kt-napcat-desktop-cn:desktop-cn-v8
|
||||
docker exec $name sh /ci/napcat-desktop-cn/verify.sh
|
||||
docker rm -f $name
|
||||
```
|
||||
|
||||
@ -130,12 +130,10 @@ if [ "${NAPCAT_REQUIRE_DEVICE_PROFILE:-0}" = "1" ]; then
|
||||
echo "NapCat device profile check failed: tty0-active-missing" >&2
|
||||
exit 78
|
||||
fi
|
||||
for kt_mountinfo in /proc/self/mountinfo /proc/1/mountinfo; do
|
||||
if grep -E 'docker|containerd|overlay|\.dockerenv' "$kt_mountinfo" >/dev/null 2>&1; then
|
||||
echo "NapCat device profile check failed: mountinfo-host-leak:$kt_mountinfo" >&2
|
||||
exit 78
|
||||
fi
|
||||
done
|
||||
if grep -E 'docker|containerd|overlay|\.dockerenv' /proc/1/mountinfo >/dev/null 2>&1; then
|
||||
echo "NapCat device profile check failed: mountinfo-host-leak:/proc/1/mountinfo" >&2
|
||||
exit 78
|
||||
fi
|
||||
if grep -q "$(hostname)" /etc/hosts; then
|
||||
echo "NapCat device profile check failed: hosts-still-contains-hostname" >&2
|
||||
exit 78
|
||||
|
||||
@ -51,6 +51,7 @@ grep -q '/proc/1/cmdline' /app/entrypoint.sh
|
||||
grep -q '/proc/1/sched' /app/entrypoint.sh
|
||||
grep -q '/proc/1/status' /app/entrypoint.sh
|
||||
grep -q '/proc/1/stat' /app/entrypoint.sh
|
||||
grep -q '/proc/1/mountinfo' /app/entrypoint.sh
|
||||
grep -q '/proc/self/mountinfo' /app/entrypoint.sh
|
||||
grep -q '/sys/class/dmi/id/product_name' /app/entrypoint.sh
|
||||
grep -q '/sys/class/dmi/id/bios_vendor' /app/entrypoint.sh
|
||||
|
||||
@ -44,6 +44,7 @@ describe('NapCat Chinese Desktop Runtime image assets', () => {
|
||||
expect(verify).toContain('/proc/1/sched');
|
||||
expect(verify).toContain('/proc/1/status');
|
||||
expect(verify).toContain('/proc/1/stat');
|
||||
expect(verify).toContain('/proc/1/mountinfo');
|
||||
expect(verify).toContain('/proc/self/mountinfo');
|
||||
expect(verify).toContain('/sys/class/dmi/id/product_name');
|
||||
expect(verify).toContain('/sys/class/dmi/id/bios_vendor');
|
||||
@ -73,7 +74,8 @@ describe('NapCat Chinese Desktop Runtime image assets', () => {
|
||||
expect(source).toContain('/proc/uptime');
|
||||
expect(source).toContain('/proc/cpuinfo');
|
||||
expect(source).toContain('/sys/devices/virtual/tty/tty0/active');
|
||||
expect(source).toContain('/proc/self/mountinfo');
|
||||
expect(source).toContain('mountinfo-host-leak:/proc/1/mountinfo');
|
||||
expect(source).not.toContain('for kt_mountinfo in /proc/self/mountinfo /proc/1/mountinfo');
|
||||
expect(source).toContain('mount --bind "$FAKE_CMDLINE" /proc/1/cmdline');
|
||||
expect(source).toContain('kt_require_device_profile');
|
||||
expect(source).toContain('exit 78');
|
||||
|
||||
Loading…
Reference in New Issue
Block a user