내 문제는 다음과 유사합니다. 프로세스에서 액세스한 URL을 찾는 방법
무엇이 전송되는지는 중요하지 않지만 어디서 다운로드되는지는 중요하지 않습니다. 보안을 위해 빌드 도구가 액세스해야 하는 URL을 지정해야 합니다. 이는 정적 분석을 통해서는 어렵기 때문에 모니터링이 더 안정적이고 간단한 솔루션이라고 생각합니다.
아마도 strace
유용할 것입니다. 필요한 경우 머신에 대한 루트 액세스 권한을 가질 수 있습니다. 동일한 호스트의 다른 도구를 통한 다른 인터넷 액세스에는 관심이 없습니다.
답변1
이는 이론적으로나 현실적으로 불가능합니다.
IP 주소는 여러 DNS 항목으로 가리킬 수 있습니다. 따라서 TCP 연결만 표시되면 어떤 도메인을 참조하고 있는지 알 수 없습니다. 물론 역방향 DNS 조회를 수행할 수 있지만 a) 반드시 작동하는 것은 아니며 b) 가장 많은 정보만 제공합니다.하나도메인.
빌드 도구가 합리적인 경우 콘텐츠를 다운로드하는 데 사용하는 모든 연결(HTTPS, FTPS, Git 프로토콜 등 사용)이 암호화되므로 트래픽 콘텐츠도 검사할 수 없습니다.
github, docker, gitlab, Google 저장소 도구 등에서 다운로드하는 대부분의 코드와 컨테이너는 암호화를 사용합니다. 또한 CDN을 사용하므로 단일 IP 주소에 연결할 필요조차 없습니다. 연결할 호스트는 DNS 조회를 통해 확인됩니다.
따라서 각 애플리케이션에 특정한 백도어/디버그 후크를 추가하는 것 외에는 방문한 도메인이나 방문한 URL을 알 수 있는 방법이 없습니다.
유일한 방법은 중간자 프록시의 TLS/SSL 제거를 시행하는 것입니다. 그러나 이렇게 하면 git을 사용한 TLS 확인에서 얻을 수 있는 모든 보안이 제거됩니다. 따라서 이 "보안 조치"는 실제로 모든 것을 덜 안전하게 만듭니다.
보안을 위해 빌드 도구가 액세스해야 하는 URL을 지정해야 합니다.
git-via-http(s)와 같은 경우 어떻게 작동하나요? URL은 소프트웨어가 변경됨에 따라 변경되며 다른 서버에 있는 하위 모듈을 추가하는 것은 일반적인 코딩 작업입니다.
귀하의 보안 부서는 귀하가 소프트웨어를 구축하고 있으며 귀하와 동일한 기술 품질로 소프트웨어를 유지 관리하기 위해 인력을 투입하지 않는 한 소프트웨어를 규제할 수 없다는 사실을 받아들여야 한다고 생각합니다. 인용하셔도 됩니다 :)