maloss

(★ 140)

Towards Measuring Supply Chain Attacks on Package Managers for Interpreted Languages

파일 수가 많아 일부만 표시됩니다. 전체 파일은 위 다운로드 버튼으로 확인해 주세요.

  • build.sh
  • DEPLOY.md
  • Dockerfile
  • LICENSE
  • README.md
  • setup.sh
  • setup_docker.sh
  • TODO.md

# 설치 가이드

1. 코드 내려받기
git clone https://github.com/osssanitizer/maloss

깃허브에서 프로젝트 코드 전체를 내 컴퓨터로 내려받습니다.

cd maloss

방금 내려받은 프로젝트 폴더 안으로 이동합니다.

2. Docker

쉬움 추천
사전 준비물
  • Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
  • Docker Desktop 컨테이너를 빌드하고 실행하려면 필요합니다. 설치 후 실행해서 백그라운드에 켜두세요.
- [install docker](https://docs.docker.com/install/linux/docker-ce/ubuntu/)

이 명령어를 터미널에 그대로 입력해 실행하세요.

- build docker image

이 명령어를 터미널에 그대로 입력해 실행하세요.

- `sudo docker build -t maloss .`

Dockerfile을 기반으로 실행 가능한 이미지를 빌드합니다.

- re-build docker image without cache (used when re-building image)

이 명령어를 터미널에 그대로 입력해 실행하세요.

- `sudo docker build -t maloss . --no-cache`

Dockerfile을 기반으로 실행 가능한 이미지를 빌드합니다.

터미널에 docker compose ps 를 입력해 컨테이너들이 Up 상태인지 확인하세요. README에 포트 번호가 적혀있다면 브라우저에서 http://localhost:포트번호 로 접속해보세요.

이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.

3. Maven (Java)

보통
사전 준비물
  • Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
  • JDK (Java) Java 프로젝트를 빌드/실행하려면 필요합니다.
  • Maven mvn 명령어를 쓰기 위한 빌드 도구입니다.
- `mvn dependency:get -Dartifact=com.google.protobuf:protobuf-java:3.5.1 -Dtransitive=false && cp ~/.m2/repository/com/google/protobuf/protobuf-java/3.5.1/protobuf-java-3.5.1.jar ./`

Maven으로 의존성 설치와 빌드를 진행합니다.

BUILD SUCCESS 메시지가 뜨면 성공입니다. target/ 폴더에 결과물이 생성됩니다.

이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.

4. Node.js

쉬움
사전 준비물
  • Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
  • Node.js npm 명령어를 쓰려면 Node.js가 설치되어 있어야 합니다. LTS(장기지원) 버전을 추천합니다.
- `sudo apt-get install -yqq curl php git ruby-full rubygems-integration nuget python python-pip python3-pip npm jq strace`

파이썬 스크립트(또는 모듈)를 실행합니다.

- `npm pack package`

이 명령어를 터미널에 그대로 입력해 실행하세요.

- [npm-pack-dependents](https://github.com/IonicaBizau/npm-pack-dependents/blob/master/lib/index.js)

이 명령어를 터미널에 그대로 입력해 실행하세요.

- [Yarn: Fast, reliable, and secure dependency management](https://github.com/yarnpkg/yarn)

이 명령어를 터미널에 그대로 입력해 실행하세요.

- [How npm handles the "scripts" field](https://docs.npmjs.com/misc/scripts)

이 명령어를 터미널에 그대로 입력해 실행하세요.

명령어 실행 후 터미널에 나타나는 주소(보통 http://localhost:3000 형태)를 브라우저에서 열어보세요.

이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.

5. Python

쉬움
사전 준비물
  • Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
  • Python 3 설치 시 'Add Python to PATH' 옵션을 꼭 체크하세요 (Windows).
- `pip install -r src/requirements.txt --user`

requirements.txt 등에 명시된 파이썬 라이브러리를 설치합니다.

- `sudo apt-get install -yqq curl php git ruby-full rubygems-integration nuget python python-pip python3-pip npm jq strace`

파이썬 스크립트(또는 모듈)를 실행합니다.

- `pip download --no-binary :all: --no-deps package`

이 명령어를 터미널에 그대로 입력해 실행하세요.

- `pip download --no-binary :all: --no-deps trustme && python main.py taint -n trustme -i trustme-0.5.1.tar.gz -d /data/maloss/info/python -o ./ -l python -c ../config/astgen_python_smt.config`

파이썬 스크립트(또는 모듈)를 실행합니다.

- `python main.py interpret_result --data_type reverse_dep -l python -m pypi ../airflow/data/high_impact.csv ../airflow/data/high_impact_pypi.json`

파이썬 스크립트(또는 모듈)를 실행합니다.

에러 메시지 없이 실행되고 터미널에 안내 문구가 출력되면 정상입니다.

이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.

6. PHP (Composer)

쉬움
사전 준비물
  • Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
  • PHP PHP 실행 환경이 필요합니다.
  • Composer PHP 라이브러리 설치를 위한 패키지 매니저입니다.
- `composer require -d ../testdata/php --prefer-source --no-scripts package`

이 명령어를 터미널에 그대로 입력해 실행하세요.

- [Composer scripts for dynamic analysis](https://getcomposer.org/doc/articles/scripts.md)

이 명령어를 터미널에 그대로 입력해 실행하세요.

php -S localhost:8000 같은 내장 서버로 실행한 뒤 브라우저에서 http://localhost:8000 으로 접속해보세요.

이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.

7. Ruby

쉬움
사전 준비물
  • Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
  • Ruby bundle 명령어를 쓰려면 Ruby가 필요합니다.
⚠️ 이 프로젝트는 규모가 큰 저장소라, 이 방법이 실제 핵심 제품이 아니라 내부 하위 패키지를 가리키는 것일 수 있습니다. README 전체를 함께 확인해보세요.
cd src/static_proxy/brakeman

이 프로젝트의 관련 파일이 하위 폴더 안에 있어서, 먼저 그 폴더로 이동합니다.

bundle install

Gemfile에 명시된 루비 라이브러리를 설치합니다.

bundle install이 에러 없이 끝나면 README에 안내된 실행 명령어(예: rails server)로 마저 실행해보세요.

8. Make

보통
사전 준비물
  • Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
  • Make Linux/macOS는 보통 기본 설치되어 있습니다. Windows는 별도 설치(예: MSYS2, WSL)가 필요합니다.
⚠️ 이 프로젝트는 규모가 큰 저장소라, 이 방법이 실제 핵심 제품이 아니라 내부 하위 패키지를 가리키는 것일 수 있습니다. README 전체를 함께 확인해보세요.
cd src/metric

이 프로젝트의 관련 파일이 하위 폴더 안에 있어서, 먼저 그 폴더로 이동합니다.

make

생성된 빌드 설정을 바탕으로 실제 컴파일을 진행해 실행 파일을 만듭니다.

에러 없이 끝나면 성공입니다. 생성된 실행 파일을 직접 실행해보세요.
// repository documentation