2009-08-11 5 views

답변

7

로그 출력을 암호화하려고한다고 가정합니다. 이 경우 암호화를 처리 할 수있는 자체 Appender를 작성해야합니다. 암호화없이 사용하려는 출력 메커니즘 (예 : FileAppender, EventLogAppender 등)을 파악한 다음 해당 Appender를 확장하고 실제로 출력을 작성하는 기능을 재정의하는 것이 좋습니다.

어 펜더에 대한 참조 문서는 here입니다.

예를 들어, FileAppender를 EncryptedFileAppender로 확장하고 파일 쓰기에 연결하기 위해 필요한 멤버를 재정의/구현하십시오.

또는 IAppender에서 확장하여 처음부터 완전히 appender를 만들 수 있습니다. 그렇게하면 더 많은 제어가 가능하지만 페이로드를 암호화하려는 경우 더 많은 작업이 필요할 수 있습니다.

+0

좋은 조언 주셔서 감사합니다. 따라서 작업을 수행하는 래퍼를 구현하여 내 로그에 내용을 추가하기 전에 내용을 암호화하는 것이 좋습니다. 그런 다음 내 logss의 내용은 log4net에 아무것도 구성하지 않고 모두 암호화됩니까? – paradisonoir

+0

로그 파일에 실제로 각 행 항목을 추가하는 곳으로 연결하여 전체 행을 암호화 할 수 있어야합니다. 이 작업을 완료하면 log4net을 구성하여 이전에 사용하던 Appender 대신 Appender를 사용해야합니다. 이 경우 EncryptedFileAppender – Joseph

+0

@Joseph, 로그의 각 줄마다 암호화하거나 다른 파일로 롤오버 할 때 (로그의 최대 크기에 도달 할 때) 제안 하시겠습니까? – paradisonoir

2

사용자가 웹에서 읽을 수 없도록하려는 경우 로그 레코드를 쓰는 파일 이름을 웹 사이트에서 제공하도록 허용하지 않는 확장자로 변경할 수 있습니다. 이렇게하면 사용자가 로그 파일을 추측 해 웹을 통해 액세스 할 수 없습니다.

서버 자체에 로그온 한 사용자가 파일의 내용을 볼 수 없도록하려면 권한 제어를 사용하여 특정 관리자 그룹의 사용자 만 내용을 볼 수 있도록 파일을 잠글 수 있습니다.

또는 데이터베이스에 로그온하여 보안이 필요한 파일이 없도록 할 수 있습니다.

3

암호화에 대한 기본 지원이 없습니다. 다른 사람들이 여기에 언급했듯이, 당신은 스스로 구현해야 할 것입니다.

그렇다면 ForwardingAppender을 서브 클래 싱하여 암호를 사용하는 것이 좋습니다. 이렇게하면 기본적으로 디스크에 실제 쓰기 작업을 수행 할 표준 appender가 무엇이든 appender를 "앞에"놓을 수 있습니다.

1

나는이 대답은 몇 년 원래의 게시물 날짜 이후에 오는 것을 깨닫게하지만 같은 문제에 직면 한 후 난 그냥이 일을 할 수있는 오픈 소스 패키지를 만들하기로 결정 Log4Net 메시지 암호 화기

소스 코드가 수 GitHub

에서 찾을 수 그리고 패키지는 NuGet

+0

공유 해 주셔서 감사합니다. nlog에 대한 비슷한 해결책을 찾고 있었지만, 이제는 적어도 ref 구현을 따라야합니다. Btw, 공개 키/개인 키를 사용하여 임의의 키를 암호화하여 수정 대칭 키 대신 보안을 향상 시켰습니다. 로그에 액세스 할 수있는 사람도 app.config에서 키를 가져올 수 있습니다. – faulty

+1

기꺼이 도와 드리겠습니다! 데이터베이스에 저장되거나 초기 서버에 저장되는 로그를 중심으로 사용되는 주요 사용 사례입니다. 내 생각에 공격자가 web.config 파일에 액세스 할 수 있다면 로그를 암호화하는 쓸데없는 제스처가 될 것입니다. NLog에서도 구현을 포팅하는 것을 고려해 보았습니다. 프로젝트를 만들고 소스를 열어 관리한다면, 내가 특히 관심을 가질만한 것으로 알려주십시오! –

+1

다른 언급 할 사항은 web.config의 암호화 키 섹션을 Aspnet_regiis로 암호화해야한다는 것입니다. 이것은 키가 일반 텍스트가 아니며 다소 안전 할 수 있음을 의미합니다. –

관련 문제