어떤 정보가 로그에 나타나지 않아야합니까? [닫은]


11

로그에 표시되지 않아야하는 항목 (응용 프로그램 추적)에 대한 회사 지침을 작성하려고합니다. 실제로 일부 개발자는 가능한 한 많은 정보를 추적에 포함 시키려고 시도하여 로그를 저장하는 것이 위험하고 로그를 제출하는 것은 매우 위험합니다 . 특히 고객이이 정보가 저장되어 있다는 사실을 고객이 알지 못하는 경우에는 설명서 및 / 또는 경고 메시지를 읽지 마십시오.

예를 들어, 파일을 처리 할 때 일부 개발자는 파일 이름 을 추적하려고 합니다 . 예를 들어 디렉토리에 파일 이름을 추가하기 전에 오류가 발생한 모든 것을 추적하면 추가 된 이름이 너무 길고 코드의 버그가 파일의 길이를 잊어 버린 것을 쉽게 알 수 있습니다 연결된 문자열. 도움 되긴하지만 민감한 데이터이므로 로그에 표시되지 않아야합니다 .

같은 방법으로:

  • 암호 ,
  • IP 주소 및 네트워크 정보 (MAC 주소, 호스트 이름 등) ¹,
  • 데이터베이스 액세스
  • 사용자 및 저장된 비즈니스 데이터 에서 직접 입력

추적에 나타나지 않아야합니다.

그렇다면 로그에서 다른 유형의 정보를 제거해야합니까? 사용할 수있는 지침이 이미 있습니까?


¹ 분명히 IIS 또는 Apache 로그와 같은 것은 아닙니다. 내가 말하고있는 것은 신뢰할 수없는 엔터티의 활동을 추적하지 않고 응용 프로그램 자체를 디버깅하려는 유일한 의도로 수집되는 정보입니다.


편집 : 귀하의 답변과 의견에 감사드립니다. 내 질문이 너무 정확하지 않기 때문에 의견에 묻는 질문에 대답하려고합니다.

  • 로그로 무엇을하고 있습니까?

응용 프로그램의 로그는 메모리에 저장 될 수 있습니다. 즉, 로컬 호스트의 하드 디스크, 데이터베이스, 다시 일반 또는 Windows 이벤트에 저장됩니다. 모든 경우에있어 우려는 그러한 출처가 충분히 안전하지 않을 수 있다는 것입니다. 예를 들어, 고객이 응용 프로그램을 실행하고이 응용 프로그램이 임시 디렉토리에 일반 텍스트 파일로 로그를 저장하면 PC에 실제로 액세스 할 수있는 모든 사용자가 해당 로그를 읽을 수 있습니다.

응용 프로그램의 로그는 인터넷을 통해 전송 될 수도 있습니다. 예를 들어 고객이 응용 프로그램에 문제가있는 경우이 응용 프로그램을 전체 추적 모드로 실행하고 로그 파일을 보내도록 요청할 수 있습니다. 또한 일부 응용 프로그램은 충돌 보고서를 자동으로 당사에 전송합니다 (민감한 데이터에 대한 경고가 있어도 대부분의 경우 고객은 읽지 않습니다).

  • 특정 분야에 대해 이야기하고 있습니까?

아니요. 저는 일반 비즈니스 응용 프로그램에서만 작업하므로 중요한 데이터는 비즈니스 데이터뿐입니다. 건강 또는 특정 규정이 적용되는 다른 분야와 관련된 것은 없습니다. 그러나 그것에 대해 이야기 해 주셔서 감사합니다. 가이드 라인에 포함시킬 수있는 내용에 대한 단서를 찾기 위해 해당 필드를 살펴보아야 할 것입니다.

  • 데이터를 암호화하는 것이 쉽지 않습니까?

아니요. 특히 C # 진단 및를 사용하려는 경우 모든 응용 프로그램을 훨씬 더 어렵게 만듭니다 TraceSource. 또한 가장 쉬운 방법은 아니지만 권한 부여를 관리해야합니다. 마지막으로 고객이 제출 한 로그에 대해 이야기하는 경우 민감한 데이터에 액세스하지 않고도 로그를 읽을 수 있어야합니다. 따라서 기술적으로 중요한 정보를 전혀 로그에 포함하지 않고 해당 로그가 저장되는 방법과 위치에 신경 쓰지 않는 것이 더 쉽습니다.


로그 레벨을 고려하고 있습니까? 나는 그것으로 괜찮을 수도 의미 debug가 아니라에, 파일 이름 info파일 이름.
Jeremy Heiler

@ Jeeremy Heiler : 나는 하드 디스크에 저장되거나 종종 보안되지 않은 방식으로 인터넷을 통해 디버깅 목적으로 응용 프로그램 개발자에게 전송되는 로그 데이터에 대해서만 이야기하고 있습니다.
Arseni Mourzenko

많은 응용 프로그램은 로깅 수준에 관계없이 로그를 디스크에 직접 씁니다. 로깅 저장소가 데이터베이스 테이블이 아니라면 네트워크를 통해 다른 개발자에게 로그 파일을 보내는 경우 파일을 암호화 할 수 있습니다.
FrustratedWithFormsDesigner

2
무엇을하고 있는지 알지 못하면 민감한 데이터가 무엇인지 파악하기가 정말 어렵습니다. 규제 문제 (PCI 또는 HIPAA 등)가 있습니까?
David Thornley

1
작업중인 특정 분야에 대해 이야기 할 수있는 경우, 보안 / 규정 준수 전문가에게 규정, 법률 또는 기타 보안 문제에 대해 알려줄 수있는 security.stackexchange.com에 문의하십시오.

답변:


3

이것을 처리하는 가장 좋은 방법은 로그 파일을 응용 프로그램의 다른 사용자 인터페이스로 취급하는 것입니다. 정보가 텍스트 파일에 저장된다는 사실은 컨텐츠가 사용자 인터페이스의 일반 화면에 표시되는 정보와 다르지 않습니다.

일반 사용자 인터페이스에 동일한 정보가 표시되는 경우 동일한 정보를 어떻게 보호 할 것인지 생각하십시오. 사용자의 신원을 확인한 다음이 사용자가 볼 수있는 정보 만 공개해야합니다.

로그 파일의 정보는 동일한 방식으로 처리해야합니다. 먼저 누가 로그 파일을보아야하는지와 그들이 볼 수있는 정보를 정확히 파악해야합니다.

잘못 설계된 로그 파일을 전달하면 큰 보안 위험이 따릅니다. 나는 당신이 어떤 종류의 데이터를 블랙리스트에 올리면 그에 대한 좋은 해결책을 얻지 못할 것이라고 생각합니다. 더 나은 전략은 각 로그 파일에 들어갈 수있는 항목을 화이트리스트에 추가하고 그 아래에서 로그 파일을 디자인하는 것입니다.


8

신용 카드 정보는 절대 기록되지 않아야합니다.

ID 번호 (예 : 미국의 SSN 또는 이스라엘의 Teudat Zehut #).

네트워크 컴퓨터 이름, 네트워크 공유 경로


PCI-DSS 표준은 카드 번호를 어떤 식 으로든 모양 또는 형태로 저장하는 것을 금지합니다.
Tangurena

@Tangurena는 사실이 아니며 저장을 허용하지만 올바르게 보호해야합니다. (PCI-DSS 요구 사항 및 보안 평가 V2.0 2010 년 10 월, 요구 사항 3)
Newtopian

7

1996 년 건강 보험 이동성 및 책임법 (HIPAA)에 의해 보호되는 개인 식별 건강 정보. 이 기사 에는 다음과 같은 예제가 있습니다.

  • 건강 관리 청구 또는 건강 관리 문제는 의사 방문 기록 및 의사 및 기타 의료진이 작성한 메모와 같은 정보를 접하게됩니다.
  • 건강 관리 지불 및 송금 조언;
  • 건강 관리 혜택의 조정;
  • 건강 관리 청구 상태;
  • 건강 플랜에 등록 및 탈퇴
  • 건강 플랜에 대한 자격;
  • 건강 플랜 보험료 지불;
  • 추천 인증 및 승인;
  • 부상의 첫보고;
  • 건강 청구서 첨부.


2

내 머리 꼭대기에서 ....

신용 카드 정보는 로그에 있어서는 안됩니다. SSN (또는 SIN) 데이터는 로그에 없어야합니다.

... SIN 데이터를 관리하는 신용 ​​카드 회사 또는 정부 기관의 일부 중앙 데이터 저장소에서 일 해야하는 경우 예외가 있습니다 . 로그인해야 할 수도 있습니다. 처리 / 관리 중입니다.


1

네하지만

일부 문제를 디버깅하려면 실제 데이터가 필요합니다.

따라서 균형 게임을해야합니다. 실제로 주요 고객이 기밀 또는 민감한 데이터로 간주하는 것과 그렇지 않은 것을 논의하고 이에 동의해야합니다. 여러 고객이 동의하지 않는 경우, 민감한 모든 것을 분류하는 데 어려움을 겪을 수있는 고객에게 정당화 할 수 없다면 모든 측면에서 최악의 시나리오를 선택하십시오.

항공 교통 관제, 금융 및 은행 업무를 담당했습니다. 모든 상황에서 민감한 데이터가 있습니다. 민감한 데이터를 처리 할 수없는 작업이 있습니다.이 경우 신뢰할 수있는 사람들과 협력 할 수 있도록해야합니다. 이러한 위험은 그러한 데이터에 접근하기 전에 합의 할 법적 조항에 의해 다소 완화 될 수 있습니다 (공개 계약이 아닌 경우, 유효한 사업상의 이유로 만 데이터를 사용하는 경우, 데이터에 대한 제한된 액세스, 계약을 준수하거나 이행하지 않은 경우 기소 처벌 ...) -그런 것들을 추적 할 수있는 관련 프로세스.

데이터가 중요한 경우이 데이터의 무결성, 일관성 및 보안을 보호하는 시스템을 설정하는 데 비용을 지불해야합니다.

그것은 당신이 '어떤 데이터'라는 질문을하는 것이 옳다고 말했습니다. 진실로 당신은 스스로 대답합니다. 대부분은 비즈니스와 관련이 있습니다. 따라서 고객에게 스스로 대답 할 수 없는지 물어보십시오. 위의 모든 사항을 염두에두고 발생할 수있는 문제를 식별하고 해결하는 방법을 유지하십시오.


나는 실시간 모기지 데이터로 작업했는데, 잘못 사용했을 수있는 많은 것들이있었습니다. 내가 보안에 대해 심사숙고하지 않았거나 특정 서명을 요구하지 않았다는 것이 흥미로웠다. 그와 덜 민감한 데이터로 작업 한 장소의 큰 차이점은 사무실 복권 풀이 없다는 것입니다.
David Thornley

0

나는 당신이 코딩하는 동안 재미있게 보이는 로그 메시지를 말합니다. 당신은 그 라인에서 재미를 발견하지 못할 것이고 그들은 조언을하지 않은 블로그 / 페이스 북 / 트위터 게시물처럼 영원히 거기에있을 것입니다!

로그 메시지를 둔하게 유지하십시오 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.