들어 본 적이없는 사람이 Ruby gem을 설치하려고했습니다. 그러나 무언가가 나를 "이 녀석은 누구인가?"라고 생각하게했습니다. Ruby gem이 개인 데이터에 액세스하여 다른 곳으로 전송할 위험이 있습니까? 보석 시스템에 인터넷이 연결되어 있기 때문에? 아니면 이것에 대한 보호가 있습니까?루비 보석이 트로이처럼 행동 할 위험이 있습니까?
답변
물론 있습니다. 그것을 호출하는 스크립트/사용자의 권한으로 실행되는 소프트웨어를 컴퓨터에 설치하고 있습니다. 순수 Ruby에서 바이너리 패키지보다 악성 코드를 발견하는 것이 더 쉽습니다. 그러나 소스 검사가 악의적 인 코드를 탐지하는 확실한 방법이라고 생각한다면 under-handed C contest을 확인하십시오.
그렇다면 악성 코드를 작성하려면 Ruby 보석보다 효과적인 전달 시스템이 필요합니다. 현존하는 실제 악성 보석의 수가이 하나가 악성 일 가능성도 마찬가지로 0입니다 0, 따라서 경우에 나는 ... 놀라지 않을 것
참조 : 나는 위의 포스터에 동의 http://rubygems.org/read/chapter/14#page61
알 수없는 로직을 응용 프로그램에 가져올 때마다 의 위험이 있습니다. 위험은 해당 응용 프로그램이 액세스 할 수있는 데이터만큼 깊습니다. Java 애플릿이 샌드 박싱되는 방식처럼.
신뢰할 수있는 서명 된 패키지 또는 소스를 확인하십시오.
존재하는 악의적 인 보석의 확률은 0입니다. 악의적 인 보석을 사용할 위험은 언제나 있습니다. 편집증에 빠져 있지만 여전히 일을 끝내십시오.
나는 그가 제공하는 링크가 귀하의 의견을 뒷받침한다고 생각합니다 : http://rubygems.org/read/chapter/14#page61 – Hola
내가 악의적 인 보석 발생 가능성을 처리하고 싶다면 악의적 인 패키지가 어떤 언어 (예 : Python egs 또는 Perl 's CPAN)에서 발견되었는지, 얼마나 가능성이 있는지 루비가 다른 언어보다 더 큰 위험에 처해 있는지 여부를 알아 채지 못한 채 악성 패키지가 생성되었습니다.
신뢰 웹을 생성 할 수 있는지 알 수 있습니다. 보석 작성자를 모르는 경우에도 내가하는 사람을 알고 있습니까?
데비안과 같은 패키지 관리자가 패키지가 악성인지 여부를 검사 할 수도 있습니다. 그렇다면 패키지가 악의적인지 여부도 검사 할 수 있습니다. 그렇다면 사용하려는 보석을 검사했는지 여부도 검사 할 수 있습니다.
저는 두 그룹의 보석이 있다고 믿습니다.
처음에는 "잘 알려진 보석"인데, 우연히도 bigests이고 더 많은 경우 (때로는 내 기술에 대해 모호함) 코드/논리입니다. 그러나 그 보석은 많은 다른 개발자들에게 재검토됩니다.
그런 다음 "마이너 젬"(널리 사용되거나 확산되지 않는 의미)이 있습니다. 이 보석은 낮은 버전, 베타 상태 등을 사용합니다.
나의 엄지 손가락 규칙 : 저는 첫 번째 그룹을 신뢰하고 보석의 두 번째 그룹에서 내가 할 수있는 모든 코드를 읽습니다.
내 시스템에서 모든 젬의 코드를 읽을 시간이 없기 때문에 완전히 사실이 아니지만, 메소드 호출을 이해해야 할 때마다 또는 특정 함수 구현되어 저를 몰아 냄으로써, 거의 항상 최소한 2-3 개의 소스 파일을 읽습니다.
특정 기능을 설치하려면 github을 검색하고 구현, 포크 및 개발자 수, 활동 (커밋 횟수 및 빈도) 등을 검토해야합니다.
그건 그렇고, 나는 보석을 신뢰하고, 의도적으로 해를 끼치 지 않았지만 나쁜 구현과 보안 허점을 찾지 못했기 때문에 보석을 신뢰합니다. 링크에 대한
좋은 접근법. – Hola
가 암호화 서명 보석을 제안하고, 그래서 당신이 저자의 코드가 변경되지 않았 적어도 것을 알고,하지만이에는 흡수 없었다 것
- 1. 루비 보석이 충돌합니까?
- 2. Jruby, 인기있는 루비 보석이 C를 사용하고 있습니까?
- 3. 쉽게 이미지를 업로드 할 수있는 루비 보석이 있습니까?
- 4. , 루비 된 argF 행동
- 5. 웹 쉘을 해제하는 루비 웹 응용 프로그램/보석이 있습니까?
- 6. 크로스 플랫폼 마우스 조작을 가능하게하는 루비 보석이 있습니까?
- 7. 다른 보석이 HTTP 호출을 모니터링하는 루비 보석?
- 8. 메일 기능을 사용하여 주사 할 위험이 있습니까?
- 9. 리소스마다 설정을 관리 할 수있는 보석이 있습니까?
- 10. Collections.unmodifiableList에 성능 위험이 있습니까?
- 11. Kestrel 보석이 있습니까?
- 12. 루비 보석은 무엇을 할 수 있습니까?
- 13. 예상치 못한 루비 전역 배열 변수의 행동
- 14. Apache에서 auto_prepend_file의 보안 위험이 있습니까?
- 15. 루비 - cronjob에로드 할 보석 없음
- 16. Javascript 클라이언트 측에서 UUID를 생성 할 위험이 있습니까?
- 17. .htaccess 파일을 포럼에 게시 할 때 위험이 있습니까?
- 18. 내 프로젝트에 Psyco를 혼합 할 때 (있다면) 어떤 위험이 있습니까?
- 19. 트위터 보석이 영웅에서 작동하지 않습니까?
- 20. 보석이 이미 설치된 후 Rdocs를 생성 할 수 있습니까?
- 21. yml 파일에서 데이터를 덤프 할 수있는 보석이 있습니까?
- 22. 레일에서 하위 모델의 오류를 상속 할 수있는 플러그인/보석이 있습니까?
- 23. 페이팔 버튼 API를 레일 애플리케이션에 통합 할 수있는 보석이 있습니까?
- 24. 행동
- 25. MySQL의 보석이 제대로 구축
- 26. 행동
- 27. Linux 커널 모듈 - 보안 위험이 있습니까?
- 28. PHP 코드 삽입. 보안상의 위험이 있습니까?
- 29. 여기서 Silverlight에서 파일 시간을 가져올 위험이 있습니까?
- 30. 내 http 서버를 설치할 때 위험이 있습니까?
감사합니다 - > "네트워크에서 자동으로 다운로드되는 보석을 어떻게 믿을 수 있습니까? 당신이 설치할 수있는 다른 모든 코드를 신뢰할 수있는 것과 같은 방법입니다. (궁극적으로 당신은 할 수 없습니다.)" – Hola
아마도 의도적으로 극소수 (또는 0) 악의적 인 보석이지만 보안 허점이있는 제대로 작성되지 않은 보석이 많이 있습니다. 중요한 RoR 보안 구성 요소의 끔찍한 구멍이 정기적으로 게시되는 Ruby on Rails 보안 블로그를 읽어보십시오. 젬을 추가하기 전에 두 번 생각하고 보안 코드의 품질에 대한 설명을 얻기 위해 항상 간단한 설명을 한 번 해보십시오. –
"보안 구멍이있는 잘 쓰지 않은 보석"- 보석, 응용 프로그램, 운영체 ... –