Security ★ Development(154)
-
SP800-108 KDF
https://csrc.nist.gov/CSRC/media/Publications/sp/800-108/archive/2008-11-06/documents/sp800-108-Nov2008.pdf NIST에서 발행한 SP800-108 표준은 KDF에 관한 것입니다. 보통 간단한 암호화의 대칭키같은경우 32byte 길이의 rand bytes를 뽑아서 사용하지만 중요 서비스에서 키교환같이 아키텍쳐상 보안적으로 중요한 로직은 KDF로 키를 생성하게됩니다. SP800-108은 KDF를 어떻게 구현해야하냐에 대한 표준입니다. 여러 모드가 있지만 counter 모드만 살펴보겠습니다. 이에 대한 예제는 아래 링크에 있지만 자바로 되어있습니다. https://android.googlesource.com/platform/f..
2023.01.16 -
openssl 암호화(AESGCM256)
암호화 EVP_CIPHER_CTX *ctx = NULL; uint32_t IV_LEN = 12, aad_len = 4, final_len; uint8_t key[32], iv[12], aad[4]; uint8_t *ct, *pt = "ABCD"; uint32_t ct_len = 0, pt_len = 4, out_len = 0; //key, iv, aad set //각 값은 복호화때와 동일한 값 사용 //key는 서로 갖고 있어야하고 iv와 aad는 암호화한 결과와 같이 넘겨줘야함. 이때 iv, aad는 plaintext형태로 넘겨줌 ctx = (EVP_CIPHER_CTX *)EVP_CIPHER_CTX_new(); if (NULL == ctx) { return ERROR; } //EVP_aes_128_gc..
2023.01.08 -
Rust 시작하기 - Hello world
Android 플랫폼은 C/C++과 동급의 성능으로 메모리 안전 보장을 제공하는 모던 시스템 프로그래밍 언어인 Rust에서 네이티브 OS 구성요소를 개발하기 위한 지원을 제공합니다.- https://source.android.com/docs/setup/build/rust/building-rust-modules/overview?hl=ko Android Rust 소개 | Android 오픈소스 프로젝트 | Android Open Source Project Android Rust 소개 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 플랫폼은 C/C++과 동급의 성능으로 메모리 안전 보장을 제공하는 모던 시스템 프로그래 source.android.com rust와 k..
2022.12.04 -
안드로이드 스마트폰 램덤프로 데이터 확인(카카오톡 대화)
안드로이드(삼성 갤럭시 스마트폰)에서 램덤프를 얻은 후 사용자 데이터가 있는지 확인해보겠습니다. 테스트는 모두 일반적으로 인터넷 검색을 통해 얻을 수 있는 것과 루팅되지 않은 스마트폰의 기본적인 기능을 통해서 진행했습니다. 추가 고급스킬이나 접근하기 어려운 소스&권한이 필요하지 않으며 스마트폰을 비정상상태로 만들지 않습니다. 카카오톡은 하나의 예이고 램 상에 남아있는 데이터면 무엇이든 되며 램덤프를 얻는 방법, 램덤프에 남아있는 데이터의 유효성 등에 따라 보안적으로 취약한 부분일 수 있고 아닐 수 있습니다. 램덤프 얻기 전화 - 키패드에서 - *#9900# 입력 - SysDump 라는 메뉴가 뜹니다. 여기서 'Debug Level Disabled/Low' 메뉴가 보이실 텐데 이걸 클릭해서 MID로 바꿔줍..
2021.07.11 -
리버스 텔넷(Reverse telnet)
텔넷은 인터넷이나 로컬 영역 네트워크 연결에 쓰이는 네트워크 프로토콜입니다. 리버스 텔넷은 텔넷의 이런 특성을 반대로 이용한 공격 방법입니다. 보통 네트워크를 통해 공격을 하기 위해선 방화벽 등을 통과해야 하는데 inbound 패킷에 대해 정책이 걸려있는 시스템을 뚫기란 쉽지 않습니다. 하지만 방화벽 정책 설정 시 outbound 패킷에 대해서는 보통 특별한 정책을 설정해주지 않는데 이러한 취약점을 이용합니다. 공격 대상이 되는 서버 등에서 먼저 공격자 pc로 연결을 하게 함으로써 시스템의 보안 정책을 우회하도록 합니다. 데모를 해보겠습니다. 공격자 pc의 ip 주소는 192.168.0.2입니다. 공격자 pc에서 3174 포트를 열어둡니다. 이 데모에서는 netcat(nc)라는 프로그램을 사용합니다. n..
2020.06.06 -
Parcel::remove() not yet implemented!
Android hal binder 동작 시 발생하는 에러입니다.Parcel::remove() not yet implemented! Binder쪽 로그를 보면 EX_TRANSACTION_FAILED 및 WOULD_BLOCK 그리고binder : ~ioctl ~ return -11 과 같은 에러도 같이 볼 수 있습니다. 먼저 Parcel::remove()에러는 libs/binder/Prcel.cpp에서 확인할 수 있습니다. 에러 내용 그대로의 log만 출력합니다. HAL Library와 Kernel Driver에서 발생하는 에러입니다. 어떻게 저 부분으로 빠지게 되는데 동작을 보겠습니다.HAL을 사용 시 내부적으로 /dev/hwbinder를 open하게 됩니다. HAL app쪽에서는 joinThraedPoo..
2020.05.23