약한 해싱 알고리즘을 사용하는 것은 보안에 취약할 수 있습니다.
MD2, MD4, MD5, MD6, HAVAL-128, HMAC-MD5, DSA (which uses SHA-1), RIPEMD, RIPEMD-128, RIPEMD-160, HMACRIPEMD160 그리고 SHA-1 과 같은 암호화 해시 알고리즘은 더 이상 안전하다고 여겨지지 않습니다.
이러한 알고리즘은 충돌(적은 컴퓨터 연산으로도 충분히 다른 두 개의 인풋에 대해 같은 해시값을 가질 수 있는)이 발생할 수 있기 때문입니다.
스스로에게 물어보십시오
해시된 값은 다음과 같은 보안 상황에서 사용됩니다.
유저의 비밀번호 저장
보안 토큰 생성(웹사이트에 회원 가입 시 이메일을 확인할 때, 패스워드를 초기화할...
CSRF 보호를 비활성화 하는 것은 보안에 취약할 수 있습니다.
CSRF(Cross-Site Request Forgery) 공격은 웹 애플리케이션의 신뢰할 수 있는 사용자가 공격자에 의해 의도하지 않은 프로필 업데이트나 메시지 전송과 같은 민감한 작업을 포함해 응용 프로그램의 상태를 변경할 수 있는 모든 행위를 수행하도록 강제할 수 있을 때 발생합니다.
공격자는 사용자/피해자가 권한 있는 작업에 해당하는 링크를 클릭하도록 속이거나 숨겨진 웹 요청이 포함된 악의적인 웹 사이트를 방문하도록 속일 수 있으며 웹 브라우저에는 자동으로 쿠키가 포함되므로 작업이 인증되고 취약할 수 있습니다.
스스로에게 물어보십시오
웹 애플리케이션이 유저를 인증할 때 쿠키를 사용합니다.
웹 ...
Functional Interfaces는 대체 가능한 전문화된 인터페이스를 사용해야 합니다.
java.util.function 패키지에서는 람다 표현식이나 메서드 참조에 사용할 수 있는 다양한 Functional Interfaces을 제공합니다.
일반적으로 auto-boxing을 피하기 위해 전문화된 인터페이스를 사용하는 것이 좋습니다.
예를 들어 Function<Integer, Foo>보다 IntFunction<Foo>를 사용하는 게 좋습니다.
(^역: auto-boxing - primitive 타입을 boxed type으로 변환해주는 것)
이 규칙은 대안이 존재하는 아래와 같은 인터페이스들을 이용할 때 알림을 울립니다.
현재 인터페이스
더 ...
내부 클래스를 소유하고 있는 클래스를 참조하지 않는 클래스는 "static"으로 선언되어야 합니다
static으로 선언되지 않는 내부 클래스에는 외부 클래스에 대한 참조가 있으며 외부 클래스의 필드 및 메서드에 대한 액세스 권한을 갖는다는 특징이 있습니다.
이런 타입의 클래스 참조는 내부 클래스의 덩치를 키우고, 외부 클래스 인스턴스가 필요 이상으로 메모리에 오래 저장되게 만들 수 있습니다.
외부 클래스에 대한 참조가 사용되지 않는 경우, static 내부 클래스로 (nested(중첩)이라고도 불림) 만드는 것이 더 효율적입니다.
참조가 클래스 생성자에서만 사용된다면 클래스 참조를 명시적으로 생성자에게 전달합니다.
내부 클래스가 익명인 경우 이름을 지정하는 것이 좋습니다.
이렇게 말하면 항상 nested/s...
"String", "BigInteger", "BigDecimal" 같은 기본 자료형의 래퍼 클래스 생성자를 사용하지 말아야합니다.
String, BigInteger, BigDecimal 같은 기본 자료형의 래퍼 클래스 생성자를 사용하지 말아야합니다.
이렇게 사용하는 것은 valurOf를 사용하는 것보다 의도가 불분명하고, 메모리를 더 많이 사용합니다.
규칙을 어긴 코드
String empty = new String(); // 규칙을 어긴 코드; ""을 반환하므로 그냥 ""을 사용하는게 낫습니다.
String nonempty = new String("Hello world"); // 규칙을 어긴 코드
Double myDouble = new Double(1.1); // 규칙을 어긴 코드; valueOf를 사용하세요
Integer integer ...
호스트 운영 체제 네임스페이스 사용은 보안에 민감합니다.
호스트 운영 체제 네임스페이스를 사용하면 호스트 시스템이 손상될 수 있습니다.
공격 대상이 되는 부분
호스트 프로세스
호스트 프로세스 간 통신(IPC) 메커니즘
로컬 호스트 시스템의 네트워크 서비스
이 세 가지 항목에는 Kubernetes 클러스터의 내부 운영 시스템 또는 엔터프라이즈의 내부 인프라를 지원하는 시스템이 포함될 수 있습니다.
컨테이너의 이런 부분을 개방하 것은 컨테이너에 의해 노출된 서비스를 이미 성공적으로 악용한 공격자에게 새로운 공격 표면이 열리게됩니다.
클러스터의 복원력에 따라서, 공격자는 클러스터가 프로세스를 시작한 노드를 손상시켜 공격을 클러스터로 확장할 수 있습니다.
호...
프로세스 권한 상승을 허용하는 것은 보안에 민감합니다.
프로세스 권한 상승을 허용하면 POD가 setuid 바이너리를 악용하는 공격에 노출됩니다.
이 필드는 컨테이너 프로세스에 no_new_privs 플래그가 설정되어 있는지 여부를 직접 제어합니다. 이 플래그가 활성화되면 setuid 또는 setgid 비트로 구성된 바이너리는 런타임 uid 또는 gid를 변경할 수 없습니다: 잠재적인 공격자는 POD에서 성공적으로 Root로 작동하기 위해 다른 권한 상승 기술에 의존해야 합니다.
Kubernetes 클러스터와 POD의 복원력에 따라 공격자는 클러스터가 포드를 시작한 노드를 손상시켜 클러스터에 대한 공격을 확장할 수 있습니다.
setuid 또는 setgid 비트와 ...
Docker 소켓 노출은 민감합니다.
Docker 소켓을 노출하면 호스트 시스템이 손상될 수 있습니다.
Docker 데몬은 예를 들어 UNIX 도메인 소켓을 통해 해당 기능에 접근할 수 있는 API를 제공합니다.
Docker 소켓을 컨테이너에 마운트하면 컨테이너가 호스트 시스템의 Docker 데몬을 제어할 수 있으므로 전체 시스템에 대한 완전한 접근 가능합니다. Docker 소켓에 접할 수 있는 손상된 컨테이너 또는 악성 컨테이너는 전체 Kubernetes 클러스터의 무결성을 위험에 빠뜨릴 수 있습니다.
다음 질문을 확인하세요
POD를 신뢰할 수 없거나, 취약점이 포함되어 있을 수 있습니다.
만약 상위 질문에 해당된다면 위험이 있을 수 ...
전체 글 239개, 30 페이지