기밀 정보가 코드에 스며드는 것을 방지하는 방법

회사 비밀을 코드에 하드코딩하는 것은 심각하고 피할 수 있는 보안 위험입니다.

저자 Robert Curlee의 비밀이 코드에 침투하는 것을 방지하는 방법 에서 번역되었습니다 .

공개된 코드에는 기밀 정보가 자주 나타나 소유자를 보안 위험에 노출시킵니다. 이 기밀 정보에는 비밀번호, API 키, 암호화 키, 토큰, 데이터베이스 자격 증명 및 기타 개인 회사 정보가 포함됩니다.

소스 코드에 기밀 정보를 하드코딩하는 것은 위험하며, 개발자의 가장 성실한 노력에도 불구하고 기밀 정보가 여전히 스며들 수 있습니다. 개발자는 코드를 작성할 때 지름길을 택하여 기밀 정보를 코드에 전달할 수도 있고 코드에 있는 기밀 정보의 영향을 인식하지 못할 수도 있습니다. 또한 대부분의 스캐닝 솔루션은 코드가 문제로 표시된 이유를 결정하는 것을 개발자에게 맡깁니다 . 마지막으로, 대부분의 도구는 유출이 발생한 후에만 코드 저장소에서 비밀을 찾습니다. 이를 위해서는 고통스러운 수정(예: 비밀 순환)이 필요합니다.

시간 제약으로 인해 기밀 정보를 적절하게 관리, 저장 및 보호하는 것은 복잡하거나, 오해되거나, 간단히 건너뛸 수 있습니다. 또한 기업이 기밀 정보가 언제 어디서 프로젝트에 입력되는지 알지 못하면 프로젝트가 출시될 때 기밀 정보가 유출되어 보안이 손상되는 것을 막을 수 없습니다.

정기적으로 코드에 스며드는 자격 증명 및 기타 기밀 정보는 헤드라인을 장식하며 , 사람의 실수로 인해 노출되는 횟수가 늘어나고 있습니다 . 문제가 발생하기 전에 IDE와 CI/CD 파이프라인 전체에서 기밀 정보를 캡처하는 도구는 판도를 바꾸는 도구입니다.

기밀 정보가 코드에 어떻게 들어가는지 알아보세요.

코드에서 기밀 정보가 유출되기 전에 이를 탐지할 수 있으면 조직은 위험 노출을 줄일 수 있습니다. IDE에서 이를 감지하면 문제를 해결하기 위해 비밀을 교체하는 수고를 피할 수 있습니다. 하지만 먼저 기밀 정보가 코드에 어떻게 포함되는지 이해해야 합니다. 몇 가지 이유가 있습니다:

1. 지식 부족

아마도 경험 부족이나 부적절한 교육으로 인해 일부 개발자는 적절한 기밀 정보 관리 및 소스 코드 보안을 이해하지 못할 수도 있습니다. 회사를 위협 행위자의 손에 맡기려면 코드에서 기밀 정보를 처리하는 모범 사례를 모르는 개발자 한 명만 있으면 됩니다. 지식이 힘이라면 최선의 방어선은 지식을 갖춘 팀입니다.

2. 실수로

개발자는 나중에 제거하려는 의도로 빠른 로컬 테스트를 위해 자격 증명이나 비밀을 일시적으로 하드코딩할 수 있습니다. 그러나 때때로 이러한 파일이 실수로 공용 저장소에 커밋되어 임시 변경 사항이 영구적으로 적용되는 경우가 있습니다. 나중에 코드가 삭제되더라도 누군가가 기밀 정보가 포함된 코드를 정리하기 전에 복사했을 수 있습니다. 실수를 하는 것은 인간의 일이지만, 결과가 엄청날 수 있는 경우 가능하면 사전에 예방하는 것이 가장 좋습니다.

3. 맹목적인 신뢰

문제를 스스로 해결하는 것은 학습에 좋은 방법이며 때로는 문제가 너무 구체적이어서 스스로 해결하는 것이 유일한 방법일 때도 있습니다. 시간이 많이 걸리고 해결책을 찾을 수 없다면 제품 설명서나 Stack Overflow와 같은 사이트에서 도움을 구하는 것이 가장 좋습니다. 그러나 이러한 자료는 유용한 설명과 예를 제공하지만 단순히 복사하여 붙여넣거나 액면 그대로 받아들여서는 안 됩니다.

스택 오버플로의 코드와 설명서를 통해 질문에 답할 수 있지만 솔루션을 구현하는 가장 안전한 방법은 아닙니다. 예를 들어 문서에는 제품의 기능을 설명하는 코드 조각이 포함되어 있는 경우가 많지만 주의해서 사용해야 하는지, 더 안전한 옵션이 있는지는 언급하지 않을 수 있습니다. 결과? 잘못된 코드입니다 . 코드 베이스에 도입하는 모든 솔루션은 품질 표준을 충족하고 코드에 문제를 일으키지 않는지 확인하기 위해 적절하게 평가되어야 합니다.

기밀 정보가 코드로 유출되는 또 다른 신뢰 문제는 AI 생성 코드 의 사용 증가입니다 . 생성 AI가 코드 개발에서 대중화됨에 따라 스캔해야 하는 코드 줄 수와 기밀 정보 문제 수가 증가하는 것을 확인할 수 있습니다. AI 생성 코드를 보면 서비스에 연결하는 올바른 방법은 토큰이나 비밀을 하드코딩하는 것이라고 생각할 수 있습니다. 힌트의 질과 문제 인식 정도에 따라 AI가 깔끔한 코드를 생성하지 못할 수도 있고, 기밀 정보 유출로 이어질 수도 있다. AI가 생성한 코드는 서비스 연결 방법을 이해하는 기반이 될 수 있지만, 기밀정보 볼트를 사용하려면 수정해야 합니다.

궁극적으로 AI를 사용하여 찾거나 생성하는 모든 코드에 도전해야 합니다. 조직은 기밀 정보가 코드에 스며드는 것을 방지하고 코드 개발의 가능한 초기 단계에서 누출을 해결하기 위해 개발자 팀이 적절한 코드 품질 도구를 갖추고 있는지 확인해야 합니다.

처음부터 기밀 정보 캡처

코딩 중 실시간이든 커밋 직전이든 공개 시점에 공개 기밀 정보에 플래그가 지정되면 팀의 많은 골치 아픈 일을 줄일 수 있습니다. 인적 오류는 발생하지만 적시에 올바른 검사를 수행하면 오류로 인한 결과를 조기에 예방할 수 있습니다.

개발 워크플로에서 이러한 문제를 감지하고 해결하는 가장 좋은 위치는 IDE의 시작 부분입니다. SonarLint, SonarQube 및 SonarCloud의 기밀 정보 감지 기능을 통해 조직은 소스 코드에서 공개적으로 사용 가능한 기밀 정보를 감지하고 노출을 제거하며 개인 데이터에 대한 불법 또는 무단 액세스로 인한 보안 위험을 줄일 수 있습니다. SonarQube Enterprise Edition 10.3 이상을 사용하는 개발자는 맞춤형 비밀 패턴 탐지 규칙을 생성할 수도 있습니다 . CaYC( Clean as You Code ) 및 Learn as You Code 방법 과 함께 사용하면 유지 관리가 가능하고 안정적이며 안전한 소프트웨어를 생성하는 깨끗한 코드 의 제공을 지원합니다 .

개발 초기부터 IDE의 코드에서 기밀 정보를 제거함으로써 팀은 기밀 정보가 리포지토리에 입력되는 것을 방지할 수 있습니다. 프로젝트 개발 초기에 기밀 정보를 탐지하고 제거하면 노출된 기밀 정보가 릴리스 주기 후반에 발견될 때 요구되는 복잡하고 비용이 많이 드는 수정 작업이 줄어듭니다.

이 기사는 Yunyunzhongsheng ( https://yylives.cc/ ) 에 처음 게재되었습니다 . 누구나 방문하실 수 있습니다.

오픈 소스 산업용 소프트웨어를 포기하기로 결정했습니다 . 주요 이벤트 - OGG 1.0 출시, Huawei가 모든 소스 코드를 제공했습니다. Google Python Foundation 팀이 "코드 똥산"에 의해 해고되었습니다 . ". Fedora Linux 40이 정식 출시되었습니다. 유명 게임 회사가 출시했습니다. 새로운 규정: 직원의 결혼 선물은 100,000위안을 초과할 수 없습니다. China Unicom은 세계 최초로 오픈 소스 모델의 Llama3 8B 중국어 버전을 출시했습니다. Pinduoduo는 보상금을 선고 받았습니다 . 불공정 경쟁에 500만 위안 국내 클라우드 입력 방식 - 화웨이만 클라우드 데이터 업로드 보안 문제 없음
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/u/6919515/blog/11063471