'인스톨러'에 해당되는 글 4건

  1. 2015.03.31 안드로이드 인스톨러 하이재킹 취약점 보안 업데이트
  2. 2014.05.13 NSIS로 64비트용 설치파일 만들때 팁
  3. 2014.05.13 [NSIS] 초기 설치 폴더를 유연하게 결정
2015.03.31 18:57

안드로이드 인스톨러 하이재킹 취약점 보안 업데이트


개요

  • 팔로알토네트웍스는 사설 앱스토어에서 앱 설치 과정 중 발생하는 하이재킹 취약점을 발견
  ※ 사설 앱스토어에서 앱을 다운로드 받을 때 해당 로컬 스토리지를 보호하지 않는 점을 악용하여 공격자가 모바일 기기의 서비스 및 데이터 등에 접근이 가능한 취약점
  • 낮은 버전 사용자는 악성코드 감염에 취약할 수 있으므로 해결방안에 따라 최신버전으로 업데이트 권고


해당 시스템

  • 영향을 받는 시스템
- 안드로이드 4.3_r0.9 미만 버전


해결 방안

  • 안드로이드 4.3_r0.9 미만의 버전 사용자
1) 제조사별 펌웨어 업그레이드 프로그램을 통해 최신 펌웨어로 업그레이드
  ※ 삼성전자 펌웨어 업그레이드 경로
      : http://local.sec.samsung.com/comLocal/support/down/kies_main.do?kind=upgrade
  ※ LG전자 펌웨어 업그레이드 경로
      : http://www.lgmobile.co.kr/lgmobile/front/download/retrieveDownloadMain.dev
  ※ 팬텍 펌웨어 업그레이드 경로
      : http://www.vegaservice.co.kr/down/self/main.sky
2) 모바일 기기에서 환경설정 디바이스정보 소프트웨어 업데이트 업데이트를 통해 최신버전으로 업데이트


기타 문의사항

  • 한국인터넷진흥원 인터넷침해대응센터국번없이 118


[참고사이트]

[1] http://researchcenter.paloaltonetworks.com/2015/03/android-installer-hijacking-vulnerability-could
-expose-android-users-to-malware/


Trackback 0 Comment 0
2014.05.13 18:46

NSIS로 64비트용 설치파일 만들때 팁

64비트용 프로그램을 만드셨습니까? NSIS 로 설치파일을 만드려고 하시나요?

이럴때 유용한 팁을 소개합니다.



1. UNICODE NSIS 설치 : http://www.scratchpaper.com/ 

WIN95/98 을 지원하지 않는다고 할때 UNICODE NSIS 를 사용하면 설치파일의 다국어 지원등에

매우 유리합니다. 물론 64비트 OS 는 전부 유니코드 지원 OS 죠. 


2. Program files 폴더

nsis 에서 program files 폴더 변수는 $PROGRAMFILES 입니다. 

그런데 64비트 os 에서는 $PROGRAMFILES 는 program files (x86) 이 되어 버리죠.

64비트용 프로그램을 program files 에 설치하고 싶으면 $PROGRAMFILES64 사용하면 됩니다.

$PROGRAMFILES64 변수는 32비트 os 에서도 program files 입니다.


3. 레지스트리 접근

64비트 os 는 32비트용 프로그램이 직접적으로 64비트 os 용 레지스트리에 접근하는걸 막습니다.

마찬가지로 nsis 스크립트의 설치파일도 그냥 쓰면 64비트용 레지스트리에 접근이 안되기 때문에

64비트용 레지스트리에 접근하기 위해서는 

Code:
SetRegView   64


를 써 줘야만 합니다.


4. 런타임에 64비트 os 여부 확인 

32비트 바이너리와 64비트 바이너리를 한 설치파일에 집어넣고자 할 경우가 있습니다.

이런 경우 런타임에 현재 os 가 64 비트인지 아닌지 확인하려면 다음과 같은 방식으로 코드를 사용하면 됩니다.

Code:
   ; 64비트 여부 체크하기   
   System::Call "kernel32::GetCurrentProcess() i .s"
   System::Call "kernel32::IsWow64Process(i s, *i .r0)"
   StrCmp $0 '0' Win32 Win64
   Win32:
      File /oname=name.exe  name32.exe
      Goto EndCheck
   Win64:
      File /oname=name.exe  name64.exe
   EndCheck:




출처 : 독립 개발자 네트워크


Trackback 0 Comment 0
2014.05.13 18:42

[NSIS] 초기 설치 폴더를 유연하게 결정

깁뿔님께서도 선호하시고 사용자도 원하는 UAC 권한 상승 불필요 설치(installer) 프로그램과 관련하여
최근 제가 사용하게 된 내용을 공유합니다.

낮은(Guest) 권한의 사용자는 기본적으로 다음 항목들에 기록할 수가 없죠.
C:\Program Files
C:\Windows
HKEY_CLASSES_ROOT
HKEY_LOCAL_MACHINE

이에 반해 각 계정 사용자 폴더와 HKEY_CURRENT_USER 레지스트리는 읽기/쓰기가 가능합니다.

NSIS 스크립트에서 RequestExecutionLevel 옵션을 별도로 주지 않으면
Windows(Vista/7)에서 NSIS installer를 인식하여
권한 상승이 필요하다고 간주합니다.

만약 낮은(Guest) 권한의 사용자가 Administrator 등 관리자의 암호를 모른다면
해당 NSIS installer를 실행할 수도 없습니다.

이에 다음과 같이 installer가 동작하게 하는 것이 유연하다고 생각하게 되었습니다.

Quote:
1. $LOCALAPPDATA(사용자 별 어플리케이션 폴더)의 사용이 가능하면 이 곳을 초기 설치 폴더로 결정
2. 1번이 불가능할 경우 $PROGRAMFILES를 초기 설치 폴더로 결정



.onInit callback 함수에서 $LOCALAPPDATA의 사용 가능함을 판단하게 하였고
결국 다음과 같이 구성하게 되었습니다.

Code:
...(기타 내용)...
!define APP_NAME "Imagine"
RequestExecutionLevel   user
InstallDir   "$PROGRAMFILES64\${APP_NAME}" ; 32비트의 경우 $PROGRAMFILES와 동일하게 동작함

...(기타 내용)...

Function   .onInit
   StrCpy   $0   "$LOCALAPPDATA"
   StrLen   $1 $0
   IntCmp   $1 0 lbl_done

   StrCpy   $INSTDIR "$LOCALAPPDATA\${APP_NAME}"
lbl_done:
FunctionEnd
...(기타 내용)...


테스트 해본 결과 $LOCALAPPDATA의 사용이 가능하지 않은 OS(Windows 9x)에서는
$PROGRAMFILES(C:\Program Files)가 초기 설치 폴더로 나오고
가능한 OS(Windows 2000 이후의 모든 OS)에서는 $LOCALAPPDATA(C:\Users\[사용자명]\AppData\Local)이 초기 설치 폴더로 표시되는 것을 확인하였습니다.

제가 아직 NSIS 스크립트에 능숙하지 못해서 오류가 있을 수도 있습니다.
문제가 있다면 말씀해주시면 감사하겠습니다.



출처 : 독립 개발자 네트워크


Trackback 0 Comment 0