보안취약점 관점에서 안드로이드

 

기존의 OWASP에서 추구하는 웹 취약점 중 몇개만 접목이 가능한것으로 보인다.

일반적인 jsp가 아닌 java .class파일 처럼 배포 한다고 생각 하면 편할것이다.

메모리 오염 취약점은 의미가 없다. java에서 bof, fsb 컴파일 에러나 Out of Memory를 토해내고,  

취약점이 발생한다고 해도 WAS처럼 미들웨어 서버가 없기 떄문에 자기 자신의 스마트폰에 대한 권한만 획득 된다.

루틴과 악성코드 관점에서도 Local exploit이기 때문에 큰 의미가 없다.

안드로이드 App을 진단 할때는 원격에 존재하는 DB서버를 어떻게 털것인가에 대한 부분에 포커스를 맞춰야 된다.

 

1] 세션 예측 취약점

   DB세션을 쓴다고 하여도 사용자에 id/pw에 대한 로그인 인증을 하여야 된다.

  사용자가 많은 APP의 경우 충분히 공격 해볼만 하다.

  (웹 경우 브라우저에 저장되지만 어떻게 저장되고 어떻게 확인하는지는 더   살펴 봐야 되는 부분)

 

2] sql 인젝션

  사용자 입력값에 쿼리 구문을 삽입하여 논리적인 오류를 유발시키는 취약점이다.

  이만큼 허접하게 만든 App은 이제 없지 않을까 싶다.

  나야나같은 경우도 있지만 이제 많이 알려진 취약점 이고 생각보다 개발자들 수준도

  많이 발전 하였다.

 

3] DB connection 정보 활용

 웹과 APP의 가장 큰 차이점은 미들웨어가 존재하냐 존재하지 않느냐 차이이다.

 웹에서는 WAS에서 DB connection정보

호스트, DB계정, DB계정 패스워드, DB Name

저장되어 있지만

 APP에서는 xml형태에 암호화 되어서 클라이언트 배포파일에 저장될 가능성이 높다.

 그래서 그걸 바로 DB에 붙을수도 있지 않을까?

이 부분이 너무 위험해 보인다면 미들웨어 형태 처럼  DB connection 정보를 저장하는 서버를 따로 둘 가능성도 있다.

규모에 따라 다르겠지만 소규모 회사의 App은 충분히 취약점 여부를 파악해 볼만하다.

분석한 정보로 쿼리 분석기 같은 툴로 충분히 찾아낸 접속 정보로 공략 해볼만 하다.

 

4] 파라메터 변조

KT가 털린 방법이다. 사용자 인자값에 다른 사람의 값을 집어 넣는 형태다.

SP 형태로 인자가 바로 쓰여진다면 더 공약하기 쉽다.

 

5] 평문으로 데이터 전송

권한 관리를 제대로 하지 않았다면 평문으로 인자가 전달 된다면 충분히 조작해 볼만하다.

 

4,5번은 큰 차이가 없다.

 

 

원격의 DB서버에 대한 접근 방법에 대해서만 나열해 보았다.

안드로이드는 local공격은 의미 없다.

시큐어코딩으로도 저런 취약점은 찾아내기 힘들것이다.

관련 공부를 더 해보면서 차근 차근 접근해 봐야겠다.

 

1. 세션 타임아웃 설정
2. 로그인 비밀번호 3회이상 틀릴 시 잠금
3. 구간 암호화

 

블로그 이미지

iesay

,

안드로이드 1일차다. 생각보다 설치 하거나

구동 하는데 어려움이 따른다.

 

 Gradle "MyApplication" project refresh failed

C:\User\ABD!!!! (지정된 파일을 찾을수 없습니다)

 

설치 후 아래와 같은 메세지가 보인다면 윈도우 사용자 계정에 !와 같은 특수 문자가 포함된 경우다.

그렇게 되면 SDK경로를 못찾아 들어 간다.

(JAVA_HOME말고 또  로그인계정 홈을 따로 찾는거 같다)

 

요즘은 제어판에서 계정이름 변경을 하여도 폴더 이름은 변경되지 않는다.

새로운 계정을 생성해도 별도의 폴더를 발급 하지도 않는다.

 

재설치를 빨리하는게 정신 건강에 좋다.

해결 하려구 이것 저것 다해 보았으나 결국 재 설치 하였다.

 

그리고 또 하나 삽질한 부분이 있는데 AVD(안드로이드 에물레이터)는 라이젠에서 ARM환경만 실행 된다.

 

처음 설치 했을때 x64버전도 실행되길래 어 되네 했는데

재부팅하니 실행으 안되고 ARM환경을 추가 해야지만 실해이 된다.

아래 블로그를 참고해서 설정을 완료 하였다.

http://why2568.blog.me/221063829927

 

라이젠 1700 

램 16기가

삼성 960 EVO 256기가

생각보다 느리다고 하던데 별로 느린점 못느끼고 메모리 문제도 딱히 없는거 같다.

별도로 Java Heap Size를 변경하거나 그런 설정은 따로 하지 않았다.

 

 

 

블로그 이미지

iesay

,

바퀴벌래...

잡담 2017. 6. 25. 19:39

부모님이 새집으로 이사를 가시고

오래된 집에 혼자 살고 있다.

 

부모님 집이 근처라서 저녁은 거기가서 먹고,

아침은 굶고, 점심은 회사에서 먹는다.

 

기존에 살던 집은 40년 정도 된 주택이다.

굉장히 오래 되어서 바퀴벌래도 자주 출몰 하였다.

 

어제밤 화장실에 잠시 볼일을 보러 갔는데

아주 큰 바퀴벌래가 있는것이다.

 

당연히 집 관리하는 차원에서 바퀴벌래가 알까고 번식하면

굉장히 곤란해지니 잡아서 죽였다.

 

그런뒤에 한시간쯤 뒤에 다시 양치 하러 갔는데

수 많은 바퀴벌래가 나와 있는 것이다.

 

집에 음식물 쓰레기가 없다보니 밤에도 나와서 찾아야 되는 상황인거 같고,

그리고 내가 죽인 바퀴벌래가 아빠 바퀴벌래인거 같다.

 

그래서 엄마와 자식들이 다 아빠를 찾으러 나온거 같다.

집 관리 차원에서 다 바퀴벌래를 죽이긴 하였지만

조금 가슴 한구석이 아프긴 하였다.

 

 

 

'잡담' 카테고리의 다른 글

SI 프로젝트가 막장이 되는 이유  (0) 2018.09.14
경영학 관점에서 비트코인  (0) 2017.08.13
프로그래밍 이란?  (0) 2016.02.13
표창원 교수님 말씀  (0) 2016.01.01
제로데이...  (1) 2015.12.01
블로그 이미지

iesay

,

저 상황도 실제로 서버가 있는 폐쇄망에 랜섬웨어가 감염된 상황이다.

지인이 요청이 와서 도움을 줄려구 했는데 랜섬웨어가 감염되어 버리고 만것이다.

 

DMZ영역을 두고 웹서비스를 하는게 아닌 환경은 순수 내부 시스템이라고 하였다.

 

다음주 정부 감사를 위해 폐쇄망에서  OS, 백신 업데이트를  위해 인터넷 외부망을 물렸다고 한다.

 

소규모다 보니 구축도 제대로 안되어 있고, SMB취약점에 대해서 모르니

 

 외부망을 활성화 시키고, 심지어 폐쇄망에서 서버간의 소켓 통신하던 프로그램로

 인해 윈도우 방화벽도 설정 해제 상태 였다고 한다.

 

(웹서비스를 하지 않는 순수 페쇄망에서 어딜가나 보안 정책은 널널하게 한다. 인터넷도 안되는데 누가 들어 오겠어 하는 생각)

 

 

1] 가장 궁금한 부분은  SMB 감염 속도?

  약 하루정도 오픈 하였을뿐인데 이렇게 웜?? 형태로 감염되는게 본인은 이해가

 되지 않는다고 한다.

과거 IIS유니코드 버그의 코드레드 코드블루 님다 웜 경우는 윈도우2000서버를

 설치하면 바로 감염 되었다.  웜 형태는 자기 복제를 하여 대역대를 스캔 한다지만

SMB는 웜 형태는 아닌 랜섬웨어 제작자가 스캐닝을 하는 형태일 것이다.

물론 좀비PC를 많이 활용은 할것이다.

 

 

2] 백신의 효과성?

 

특정회사 제품의 사진을 올려놓고 게시물을 작성하는게 좀 걸리지만,,

 다른 회사들도 다 해당되는거 같다, 외산 국산 할거 없이 정말 얼마나 효과성이

 

있는지 의문 스럽다.

 

 이 부분은 공격자가 당연히 여러 테스트를 통해 우회 할수 있는 입장도 이해는 간다.

 

그리고 백신 업데이트시기와 SMB감염시기 중 우선순위에 따라서 충분히 감염된다고 이해는 된다.

 

 

3] 가장 이해가 되지 않는 부분인데 인터넷망을 각 서버마다 시간을 번가라가며  

 나누어서 물렸다고 하던데 잠복기를 거치고 두번째 물렸을때 랜섬웨어가 실제

 실행이 되었다고 한다.

 데이터가 커서(테라 단위) 다 될때 까지 기다린건가 하는 생각도 든다.

이 부분도 좀 이해가 되지 않는다.

 

그 잠복기 동안 좀 이상한 증상이 있었고, 데이터를 백업 할려구 보니 테라 단위

데이터라서 도저히 어떻게 해볼 도리가 없었다고 한다.

 

다음주에 정부에서 감사가 나온다던데,,랜섬웨어가 사람 여럿 잡는 구나 생각 든다.

담당자는 감사 전 늘 하듯이 똑같이 한것이다.

(그놈의 가이드 대로 폐쇄망도 백신과 OS , APP를 꼭 최신으로 유지하라고 되어 있다)

그러나 이번에는 그 상황이 많이 다른 환경이 되어 버린것이다.

 

그대로 두고 업데이트를 안했으면 감염이 안되었을텐데 하는 생각도 든다.


사고는 모든 우연이 다 맞아 떨어져야 된다.

담당자의 역량 부족 무관심이 가장 큰 원인이고, 방화벽 정책 설정 미흡 ,

VMS PMS 미구축


이중 하나라도 조건이 충족 되었으면 랜섬웨어 감염은 발생되지 않았을 수도 있다.

블로그 이미지

iesay

,

해당 내용을 졸업 논문으로 작성하고 싶은데, 어느정도 퀄리티가 나올지 모르겠다.

정말 Appscan 처럼 시스템취약점도 자동으로 찾아서 공격하는
툴을 만들수 있을가?


단순 컴라이더나 핀툴 같은게 아닌 자동화 exploit처럼
상용 퍼징툴도 값만 엄청나게 집어 넣고,
메모리 모니터링 하면서 crash 터지는지만 보는거 같던데

아마도님 만드신 fsb 자동화 공격코드 분석해서 돌려 보았지만
제작 하기엔 너무 어려워보이던데,
BOF만 해도 여러가지고,
여러가지 OS 보호기법들도 많고,
ROP, remote exploit까지 있다면
현실 가능성이 전혀 없어 보이기도 한다.

올해는 데프콘에서 로봇 VS 로봇의 대결이 될지도 모른다고 하니
만약 시스템 자동화 공격코드가 현실이 된다면
해당 솔루션을 제작해서 팔면 사업 아이템으로 좋을거 같다.

하지만 제작이 결코 쉽지는 않을 것이다.
쉽다면 이미 상용화 되어서 팔고 있겠지
아마 나만 모르는건가 ㅎ

1] 버퍼오버플로우

   - RET까지 거리를 코드에 입력한다.

   - nop sled경우 쉘코드 길이를 계산하여 payload 제작

   - nop sled,  환경변수에 경우 스택에 저장된 주소값을 찾아 줌

  2] 포멧스트링

   아마도핵님 자동화 공격툴

 

3] RTL

  system함수 exeve함수만 찾으면 가능

 

4] ROP, RTL channing

  pop pop ret만 찾으면 가능

 

'시스템' 카테고리의 다른 글

Mongdb 설치 ubuntu 18  (0) 2018.11.30
리눅스 node-gyp 에러 error  (0) 2018.11.23
취약점 패치 어떻게 하면 좋을가?  (1) 2016.02.18
IIS UNICODE BUG  (0) 2015.12.07
Apache commons-collection Vulnerability  (0) 2015.11.12
블로그 이미지

iesay

,

cuckoo 1.2 악성코드 web.py 파일 포함

 

 

cuckoo_1.2.tar.gz

http://blog.naver.com/rpd0819/220652087605

마지막 부분


정책이 없는 경우 재설정
iptables -nvL

 

 

'악성코드' 카테고리의 다른 글

Cuckoo 구축  (0) 2016.01.14
Malware분석 및 대응  (0) 2015.11.09
블로그 이미지

iesay

,

보안업무를 담당하거나 서버를 운영하다 보면 취약점을 패치해야 될 경우가 빈번히 발생된다.

보안취약점에 패치, 성능 상향에 대한 패치, 암호 알고리즘 지원 중단 , OS지원 종료 등 여러가지 상황에 대해서 OS 및 어플리케이션을 새로운걸 사용하던지 패치를 하던지 해당 문제에 대한 결과를 내야 된다.

 

 

1] 보안 취약점 패치

   보안 취약점은 바로 조치 해야 되는 긴급과 몰아서 한꺼번에 하는 정기 점검때 가능한 비긴급으로 나눌수 있다. 긴급은 Apache Struts2, glibc 취약점이나 NTP, Heart bleed등 remote exploit에 해당 된다. 비긴급은 local exploit예는 shell shock같은 취약점이나 커널, 어플리케이션 관련 취약점에  해당 된다.

shell shock도 CGI환경에서는 remote 명령이 실행이 가능하지만 우리나라 환경에서는 거의 사용되지 않는다.

보안담당자가 긴급, 비긴급을 나누는 기준은 정보를 빨리 습득해서 실력이 되면 직접 POC를 해보는게 가장 좋다. 그게 현실적으로 힘드니 페이스북에서 좋아요나 공유수가 많은 게시물 이나 보안 관련 언론에 기사화 되어서 등장하는 취약점 또는

상급기관에서 공문을 보내어 패치를 하고, 그 결과를 다시 보내 달라는 경우에 대해서는 긴급일 확률이 높다.

하지만 실제로 보안취약점 패치를 하는게 쉽지 않다.

최근에 다시 알려진 glibc같은것도 bind DNS서비스라면 DNS잠시 내려놓고, 패치를 진행 해야 된다.

glibc는 CVE코드만 보면 알듯이 작년에 나온건데 그 심각성에 대해서는 최근에 구글팀에서 POC를 공개하면서 다시 한번 이슈가 된 버그다.

그렇게 되면 해당 도메인 계정을 사용하는 모든 서비스가 죽는다.

그래서 낮에 하기도 꺼럼직 하다. 하지만 낮에 못하게 되면 밤 동안 어느정도 대책을 마련 해야 된다. 주로 sk인포섹나 Krcert에서 해당 공격에 대한 시그니처를 snort룰로 제공 한다.

 긴급이 힘든 경우는 해당 시그니처를 IPS나 웹방화벽에 등록을 먼저 해야 된다.

실제로 저 glibc를 작년에 패치하다가 linux 서버 몇몇에서 다른 어플리케이션 호환성으로 인해 롤백 시킨적도 있다.

그 만큼 취약점 패치는 호락 호락 한 작업이 아니다.

 

 

2] 성능 향상에 대한 패치

 

주로 리눅스 커널 컴파일을 이야기 하는거 같다. os protection이나 여러가지 성능이 굉장히 기하 급수적으로 빨리 발전 중이다. FreeBSD에 비해서도 리눅스가 월등히 앞서는 성능을 가진 OS가 되었다.

하지만 오픈소스 특성상 라이브러리간의 구버전과 신버전 간의 호환성, 이식성은 거의 최악이다. 그래서 커널 컴파일을 웬만하면 하지 말라고 하고, 구지 새로운 커널을 쓰고 싶으면 OS를 신규버전으로 재설치를 하는걸 권장 한다.

상용 was의 경우는 설치 전 필요한 라이브러리에 대한 버전을 체크하는것도 이런 이유 때문이다.

 

 

3] 암호 알고리즘 지원 중단

주로 Hash 함수가 collision이 발생된 경우다. auth를 위해 hash를 싼다면 해당 알고리즘 과감히 버려야 된다. md4, md5, sha1등이 최근이고 그 이전에 여러가지 구시대의 유물의 알고리즘이 많았을 것이다.

이것도 참 크리티컬 한것이 장비를 사용중인데 유지보수를 못받는 경우가 있다. 외산을 도입하였는데 벤더사나 서비스사가 망한 경우도 있고, 해당 장비 업체가 영세하여 개발을 해놓고 팔았는데 개발자가 계속 퇴사하여서 더 이상 신규 리뉴얼이 불가능한 경우도 있다.

대체 장비를 구매하여 쓰던지, 안쓰던지, 위험성을 가지고 사용할지는 판단을 잘 해야 된다.

 

 

 

4] OS 지원 종료

XP지원 종료, Windows 2003서버 지원 종료  OS는 구버전을 쓰면 안좋다. OS 보호모드도 빈약하다. aslr같은 경우도 비스타에 적용된것과 7에 적용된것이 좀 급이 다르다. 레드헷9.0 적용된것과 요즘 최신 버전에 적용된 것도 다르다. 하지만 너무 계속 신규 OS를 쓰는것도 조금 위험하다. 서버를 운영하는 입장에서는 OS가 출시되고 2년 정도 지난 시점에 어느정도 버그가 잡힌 후 사용하는것이 가장 안전한거 같다.

 

 

 

 

'시스템' 카테고리의 다른 글

리눅스 node-gyp 에러 error  (0) 2018.11.23
시스템 해킹 자동화 공격 exploit  (0) 2016.03.12
IIS UNICODE BUG  (0) 2015.12.07
Apache commons-collection Vulnerability  (0) 2015.11.12
Kernel compile  (0) 2015.11.09
블로그 이미지

iesay

,

프로그래밍 이란?

잡담 2016. 2. 13. 19:25

 

 

컴퓨터를 계속 하면서 프로그래밍을 할수록
공학 이라는 생각보다는 어학 이라는 생각이 많이 든다.

어학을 제대로 배워 보지는 않았지만
전공자도 아니고 관련 일도 해본적 없지만

관련 어휘 검색 의미로는
'외국어를 연구하거나 습득하기 위한 학문'이라고 나온다.

어셈블리, C언어, 리눅스 등 쉘이나 컴파일러로
사용자의 요구사항을 달성하기 위해

명령어나 코드를 던지면
컴퓨터가 잘 이해 하도록 대화를 하는 것이다.

컴퓨터랑 대화 하는게 프로그래밍이다.
명령어들도 쉘 프로그래밍이라 볼수 있으니,

프로그래밍도 언어라고 불리니 어학이 맞지 않을까?

그리고 그 언어를 배울려구 할때 이해 할려구 하지말고
익숙해 지라고 한다.

BUS라고 할때 B는 머고 U는 머고 S는 머라고
정의 내리고 하는 사람은 없을것이다.
BUS는 BUS다.

대다수 초심자들은 프로그래밍 언어를 처음 접할때 이해 할려구 한다.

전산학이 수학을 기반으로 공대에 있어서 그런가 싶기도 하다.

예를 들어서 mov eax, cr0 이게 초심자들 입장에서
10번 설명 듣는다고 이해가 되나?

익숙해지는 것이다.
매일 20분 30분 정도라도 계속 하는것이다.
외국어 배우것과 같이 말이다.

동일한 명령어를 쳐도 익숙한 사람은 컴퓨터가 잘 이해하고,
안 익숙한 사람은 가끔 오류를 토해 내는 것도 같은 이치다.

'잡담' 카테고리의 다른 글

경영학 관점에서 비트코인  (0) 2017.08.13
바퀴벌래...  (0) 2017.06.25
표창원 교수님 말씀  (0) 2016.01.01
제로데이...  (1) 2015.12.01
Appscan에 대한 고찰  (2) 2015.11.23
블로그 이미지

iesay

,

Cuckoo 구축

악성코드 2016. 1. 14. 15:46

쿠쿠 설치 문제점


우분투에서  VirturalBox가 굉장히 불안하다. 이미지 저장도 잘 안되어서 XP 재설치도 하고,
다시 설치해도 python 설치나 시점이 회귀된 느낌이다.
스냅샷 저장도 잘 안되고

web.py도 1.2에만 있는거 같다 2.0에서는 보이지 않는 구나

cpu를 100% 다 처먹는것도 문제다.

센드박스 기술 클라우드 환경 분석 ?
진짜 코딩하기도 힘들고 이런거 보면 신기하다.

악성코드 분석 보고서도 같이 올린다. 샘플은 올리면  안되겠지만 ㅎㅎ

 

 

mal-analyses.zip

 

 

 

 

 


 

'악성코드' 카테고리의 다른 글

cuckoo 1.2 악성코드 web.py 파일 포함  (0) 2016.03.09
Malware분석 및 대응  (0) 2015.11.09
블로그 이미지

iesay

,

 

 

#apt-get install yara

끝이다 ㅋ

 

 

블로그 이미지

iesay

,