목록전체 글 (57)
앵하니의 더 나은 보안
3월 말에 터져버렸던 xz utils backdoor에 대해 기술적으로 자세히 알아보자 XZ Utils Backdoor의 감염 및 명령 수행 과정잘 정리해놓은 그림을 보면서 설명하겠다.xz 라이브러리가 빌드될 때 xz 패키지에 있던 m4 macro가 실행되는데, 이때 아래 명령이 수행됨변조 대상은 tests/files/bad-3-corrupt_lzma2.xz이고 이 파일의 바이너리 데이터가각각 아래 규칙에 의해 변조됨0x09(\t) > 0x200x20 > 0x090x2d(-) > 0x5f0x5f(_) > 0x2d그럼 변조된 bad-3-corrupt_lzma2.xz가 bash 스크립트로 디코딩되고 해당 스크립트를 통해 또 다시 tests/files/good-large_compressed.lzma 파일을 악..
RCE를 수행하는 CVE들을 정리할 기회가 생겨 log4shell 원리에 대해 정리해보려 한다.우선 log4shell은 log4j2를 사용한 로깅 모듈에서 발생한 제로데이 취약점이다. log4j2에 뭐가 있었길래 RCE라는 어마어마한 취약점이 발생한걸까?그 답은 JNDI에 있다. log4j2에서는 JNDI를 이용해 자동으로 디렉터리 서비스에 접근,이름으로 변환하거나 자바 객체를 다운받는 기능을 제공했다.그리고 그 과정에서 유효성 검증이 진행되지 않아 취약점이 발생했다. 한마디로 JNDI 인젝션 때문이라 할 수 있겠다.JNDI란 클라이언트가 이름을 통해서 데이터와 개체를 검색하고 조회할 수 있도록 하는 Java API이다.자바에서 다른 디렉터리 서비스 RMI(Remote Method),CORBRA(Comm..
의문HTTPS 패킷 뿐만 아니라 일반 TCP 통신에 SSL/TLS를 씌운 데이터에 대한 복호화를 MITM Proxy는 수행해낼 수 있을까? 물론 할수있다.못할 이유가 없다. HTTPS를 복호화해낸 요령 그대로 SSL/TLS 통신을 복호화 해내면 된다.라고 생각했다.. 일단 TLS 소켓 통신 복호화 시연을 어떻게 했는지 한번 보자. 환경 구성시연을 위해 TLS 소켓 통신을 수행하는 소스코드를 작성한다.import socketimport ssl# SSLContext 생성context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) # 필요한 프로토콜에 맞게 선택context.load_cert_chain(certfile="server.pem", keyfile="server.key"..
문제 인식특정 웹 서비스에서 json 형식으로 데이터를 주고 받는 웹 서버임에도 XSS 취약점이 동작하는 것을 확인했다.Content-Type이 application/json은 XSS가 동작하지 않는 걸로 알고있는데 여기서는 왜, 어떻게 동작한 걸까? 문제 해결바로바로 서버에서 렌더링해서 줄 때 취약한 방식으로 렌더링해서 주기때문이다.뭔말이냐? 취약했던 대상 웹 서비스에서는 vue.js를 사용해 프론트엔드를 구현했는데,이 vue.js에서 안전하지 않은 렌더링 방식으로 구현했다는거다. 렌더링 방식으로 v-html 디렉티브를 사용했는데, 컨텐츠 타입에 상관없이 프론트엔드에그대로 포함시켜버리는 친구라고 한다. 그래서 XSS 취약점이 발생해 버렸던것뿌슝 빠슝 그럼 반대로 진단자는 이런 환경임을 어떻게 알아볼..