목록KISA 사이버 보안 훈련 (60)
작은 메모장
[Zomato] Theft of user Session해당 취약점은 Android와 iOS에 적용 가능했던 취약점으로, 해당 버그를 제보한 글에서 자세한 내용을 확인할 수 있다.해당 취약점은 다음의 코드에서 시작하게 된다. 문제가 된 부분은 android:name="com.application.zomato.activities.DeepLinkRouter"로, 해당 코드에 의해 Activity가 Exported된 취약점이다.그러나 해당 부분에는, Activity가 ture로 설정되어 있지 않은데, 어째서 이 옵션이 자동으로 t..
Metasploit란?Metasploit은 Exploitation Framework로, 정보 수집, Exploit, Post-Exploit까지 모든 공격 단계에서 활용할 수 있는 공격 Framework이다.Metasploit은 원하는 모듈을 선택하여 로드 후 사용하는 방식으로 동작한다. Metasploit의 모듈은 크게 7가지 종류가 있다.Auxiliary : 스캔성 모듈을 전부 모아놓은 카테고리. Exploit을 하는데 도움을 주는 스캐닝 툴, 크롤러, 퍼저 같은 지원 모듈이 들어있다.Encoder : 인코딩 모듈을 전부 모아놓은 카테고리.시그니쳐 기반의 안티 바이러스 솔루션을 우회하기 위해 페이로드를 인코딩할 수 있는 모듈이 들어있다.Evasion : 회피성 모듈을 전부 모아놓은 카테고리.특정 안티 ..
보안 솔루션 이해 (Android)모바일 보안 솔루션은 어플리케이션 분석을 어렵게 하여 공격자로부터 어플리케이션을 보호하려는 목적으로 제작된 방어 대책이다.해커의 어플리케이션의 분석을 어렵게 만들거나, 악성 행위를 주입한 어플리케이션의 배포를 막는 등의 목적으로 주로 쓰인다. 보안 솔루션은 크게 4가지 종류가 있다. Rooting 탐지 : 루팅된 기기에서 어플리케이션이 실행되는 것을 인지 시, 즉시 어플리케이션이 종료되는 솔루션. 위험한 환경에서 실행되지 않도록 도와준다. 또한, 루팅된 기기에서 분석하려는 시도 자체를 방해하는 목적으로 쓰인다.안티 디버깅 : 디버거를 사용하여 어플리케이션 내부 동작을 분석 혹은 수정하려는 시도를 방지하는 솔루션. 주로 디버거 설치 여부를 검사하거나 디버깅 관련 API 호..
모바일 앱 해킹 개요모바일에서 실행하는 앱(Application)의 취약점을 찾아 악용하는 과정이다.모바일 단말기가 점점 보급화되고 있는 추세에 따라, 대부분의 회사가 자사의 웹 사이트와 모바일 앱을 가지고 있다.때문에 모의해킹, 버그바인티를 포함한 대부분의 해커는 모바일 앱 해킹을 같이 수행하는 경우가 많다.단, 모바일 앱 해킹은 실행하는 앱을 해킹하는 것이지, 모바일 단말기를 해킹하는 것이 아니다.모바일 단말기에 설치되는 어플리케이션의 취약점을 찾아 기업들의 자산 시스템에 있는 취약점을 찾는 것이 이 과정의 궁극적인 목적이다. 모바일 앱 해킹은 앱과 모바일 서버로 크게 두 가지의 공격 파트가 있다.모바일 앱의 공격은 모바일 앱의 흐름을 조작하여 악용하는 것이다.가령 모바일 게임 앱을 조작한다고 가정하..
정보 수집의 필요성해커들은 해킹을 하기 전 반드시 정보 수집 과정을 거친다.이는 취약점을 찾으려는 버그 헌터들에게도 필수적인 과정이다. 정보 수집이라는 건 해킹 대상에 대한 정보 수집 문자 그대로의 의미를 뜻한다.웹 서비스를 가정으로 이야기하면,사용하고 있는 웹 프레임워크, 사용 언어, 구동되는 웹 페이지, 서버 구성 같이 프론트, 백엔드 상관없이 관계된 모든 정보를 수집하는 것이다. 정보 수집의 이유정보 수집은 해커가 판단할 수 있는 범위를 늘려준다.같은 정보를 획득하더라도 가치 유무와 사용 위치 등을 더 정확하게 판단할 수 있기 때문이다. 또한 정보 획득만 가지고 사용할 수 있는 취약점을 판단할 수 있다.가령, 사용하고 있는 언어가 php라면, JSP, ASP등의 취약점은 테스트하지 않아도 된다.또,..
버그 바운티버그 헌팅, 혹은 버그 바운티은 Bug(취약점)을 찾고 Bounty(포상금)을 받는 프로그램이다.즉 취약점 현상금 제도라고 생각하면 된다. 버그 바운티는 대개 다음과 같은 과정을 거친다기업들이 자신들의 시스템들을 버그바운티 대상으로 올림올려진 시스템을 해커, 보안 전문가들이 해킹만약 해킹에 성공하여 취약점이 발견되면, 발견된 취약점을 가지고 보고서를 제출(단, 해당 취약점은 절대 개인적인 이익으로 사용하지 않음)제출된 보고서의 취약점을 바탕으로, 보안 패치 적용해당 과정을 보면 알겠지만, 버그 바운티의 목적은 단순히 해커들 돈주려고 하는 것이 아닌, 자신들의 시스템에 미처 발견하지 못한 치명적인(대개 공격으로 활용될 수 있는) 취약점들을 발견하는 것이다.다만 그 동기 부여를 위해, 현상금 제도..
함수 호출규약 (Function calling convention) 함수를 호출하는 호출자(caller)와 호출당하는 피호출자(callee)간 파라미터 전달 및 사용된 스택영역 해제와 관련된 내용을 정의하고 있는 규약 주로 파라미터 전달 방법, 파라미터 전달 순서, 파라미터 전달에 사용된 스택영역 해체 주체에 대한 정의를 포함 IA32/64에서는 함수 호출 시 파라미터와 복귀 주소를 스택에 저장, MIPS, ARM 아키텍처에서는 레지스터에 저장 아키텍처 호출 규약 이름 매개변수 전달방향 매개변수 전달에 사용되는 레지스터 스택영역 해제 주체 IA32 cdecl RTL 없음 호출자 stdcall RTL 없음 피호출자 fastcall RTL ECX, EDX 피호출자 x86-64 MS x64 호출규약 RTL R..
스택공간이란? Stack discipline에 따라 관리되는 메모리 영역 데이터 섹션과는 다르게 실행 파일에 포함되어 있지 않으며, 쓰레드가 생성되면 동적으로 생성됨 스택의 용도 - 기본적으로 Reentrancy를 지원하기 위함 Reentrancy? 이미 호출되어 실행중인 어떤 함수가 리턴하기 전에 다시 호출될 수 있을 때, 그 함수를 Reentrancy가 가능하다고 표현 재귀함수나, 멀티쓰레드 환경에서 여러 쓰레드에 의해 동시에 호출되는 함수 등이 이에 속함 - 실행중인 각각의 함수는 전달될 파라미터, 지역변수, 리턴할 주소 등이 전부 다름 때문에, Reentrancy를 지원하기 위해서는 동시에 실행중인 함수 각각의 상태에 관련된 정보를 별도로 저장해야 함 - 즉, 스택에는 Reentrancy가 일어나..