這篇文章算是一個資安問題的討論文章,作者透過一系列的手法成功地獲取了大量使用者的電腦資訊,由於這次的實驗只是要證明資安問題,因此作者的程式只有獲取如 IP, Hostname 等簡單資訊,若是惡意的話是可以執行更多危險程式碼的。
作者開門見山表示,現在的程式語言有太多的豐富的第三方函式庫,譬如 NodeJs(NPM), Ruby(RubyGem), Python(PyPI),豐富的第三方實作讓開發者可以更快速的完成任務。
開發者在使用這些套件函式庫時,大部分情況都不會去檢查太多,而是直接信賴般的去使用這些函式庫,而這種盲點般的信任是否有可能讓攻擊者有跡可循?
作者基於這個想法進行了一系列研究,發現 PayPal 公開專案(NodeJs) 內的 package.json 內交互使用了公開與內部的 packages。 公開部分勢必來自 npm 而那些內部的應該是來自於 PayPal 內部系統,同時也注意到這些內部的 package name 目前於 npm 上也不存在。
針對這個情境,作者提出一些問題
1) 如果有人上傳跟 PayPal 內部 package 相同名稱的套件到 npm 服務器上,有沒有可能 PayPal 內部某些專案會預設使用 npm 上的套件而非內部自架的伺服器?
2) 開發者或是其他自動化系統有沒有可能運行這些 packages 內的程式碼,這樣有沒有機會造成一個漏洞的可能性?
3) 其他的公司是否也會有類似的問題?
為了證實這個問題,作者設計了一系列的實驗與準備來測試上述問題,譬如更有系統的去尋找這種有跡可循的 package.json(Tesla, Apple, Yelp 等公司都被到可以利用的 package names)。
作者將自己這系列的攻擊行為稱為 depdendency confusion 來呼應本文標題。
結果來看是令人非常震驚的,作者打造同名的npm的確被大量下載與執行,也讓作者收集到大量運行的內部服務器IP與名稱。
與 Apple 合作通報相關報告後, Apple 也於兩週內修復相關問題。
原文滿長的,非常推薦閱讀
我個人認為資安這概念就是不出問題不被重視,但是一但出問題可能造成的影響卻非常巨大的。團隊內每個人都要培養基本的資安理念,同時與相關的安全團隊合作逐漸地提高整個產品的安全性,永遠不要想一聲令下明天就可以反轉一切。
https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「dependency下載」的推薦目錄:
- 關於dependency下載 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
- 關於dependency下載 在 軟體開發學習資訊分享 Facebook 的最佳解答
- 關於dependency下載 在 紀老師程式教學網 Facebook 的精選貼文
- 關於dependency下載 在 コバにゃんチャンネル Youtube 的最佳解答
- 關於dependency下載 在 大象中醫 Youtube 的最佳貼文
- 關於dependency下載 在 大象中醫 Youtube 的最佳解答
- 關於dependency下載 在 Dependencies - blog 的評價
- 關於dependency下載 在 maven-dependency-plugin usage to download dependency jars 的評價
- 關於dependency下載 在 An open-source modern Dependency Walker - GitHub 的評價
dependency下載 在 軟體開發學習資訊分享 Facebook 的最佳解答
Spring 是一個企業 Java 框架。 其功能在簡化 Java EE 開發並提高開發人員的工作效率。 Spring 使用 Inversion of Control 和相依性注入( Dependency Injection )來促進良好的軟體程式設計實踐,並加快開發速度。
Hibernate 是一個物件到關係映射(Object-to-Relational-Mapping,ORM)框架。 它簡化了Java 應用程式的資料庫訪問。 經由運用這框架,你可以通過設置一些簡單的配置映射來輕鬆儲存和檢索 Java 物件。
本課程涵蓋了Spring 和 Hibernate 的最新版本!每個月都會更新,已有 9 萬多人參加
從這 41 小時的課程,你會學到
1. 使用 Spring MVC 和 Hibernate 開發完整的 CRUD 應用程式…全部從頭說起
2. 你將跟著影片跟講師在一起寫每行程式碼。 講師將一一解釋!
3. 學習 Spring 關鍵特性:核心、註釋、Java配置、Spring AOP、Spring MVC、Spring 安全、Hibernate CRUD 和 Maven
4. 加入已有30,000名以上註冊的活躍社群! 超過7,500+ 條評論 – 5顆星
5. 每個月都會增加新的影片內容。 你將永遠有新鮮的內容回訪充電!
6. 講師是個對學生認真反應的老師 ….貼上你的問題,講師會在24小時內回覆。
7. 學生已從事這課程技能的相關職業。 搜索“SUCCESS STORY”的評論!
8. 你可以下載所有影片、原始碼和 PDF 文件。 完美離線學習和複習。
https://softnshare.com/spring-hibernate-beginners/
dependency下載 在 紀老師程式教學網 Facebook 的精選貼文
Make 官方手冊...兼紀老師閒聊 Make 的優點
撰寫 Linux 程式多的人,應該或多或少都會接觸 Make 這套「流程自動化」軟體。它可以把一大堆像咒語一樣的 Linux 指令,給一個乾淨好記的名字,然後你就把那些又臭又長的指令忘了,直接執行那個好記的名字、放鬆喝杯茶,等著工作完成。
不過 Make 也有被人詬病的地方,就是它的自動化語法實在不太親民。由於它發明於 1977 年,當時用 Linux 的人,大多是些電腦專業學者,也不會在乎語法難不難(抑或說,越難越能激起這群人喜歡挑戰的劣根性? XD)。不過一旦學會,它強大的功能實在讓人愛不釋手。我舉幾個我認為不錯的功能給大家:
(1) 目標相依(Target Dependency):你可以要求乾淨好記名字背後那沱指令,執行前必須先執行另一沱定義於其它乾淨好記名字之下的指令。也就是說,你的 Make 會越寫越輕鬆,因為之前辛苦寫好的指令有機會被「重用(音『崇用』)」(咦?「重用」不就是「物件導向」的目的嗎? XD)。如下所示:
my_command: other_command
(一堆像咒語一樣的 Linux 指令)
這會讓 my_command 所屬的那堆 Linux 指令執行前,先執行另一個名字 other_command 下所屬的那一沱 Linux 指令。
(2) 隱式規則(Implicit Rules):你要求 Make 拿 abc.o (類似 Windows 內的 abc.obj)檔加入最終執行檔,但 abc.o 根本不存在。Make 會聰明到知道 abc.o 事實上是由 abc.c (C 語言原始碼檔)編譯過來的。在人類不必介入的情況下,它會聰明地自動編譯 .c 檔成 .o 檔,然後再執行所要求的指令。這會讓 Make 語法大大縮減。因為善用「潛規則」,可少寫很多行 Linux 指令。
(3) 遞迴建造(Recursive Build):當你要求編譯如一串葡萄般複雜的子文件夾結構時,Make 若發現子文件夾內已經有 Make 指令檔了,它會全權委託該 Make 指令檔編譯當地文件夾的內容。這可以讓你撰寫「根 Make File 文件」時,適當分權各文件夾的 Make File 決定如何編譯當地文件。
(4) 與「環境變數」結合:Make 檔裡用的「變數」,根本就是 Linux 下的環境變數。也就是說,如果有個 Make 變數值是:
MY_VAR = abc
我臨時想把它改成 pqr,不必修改原始碼。只要在 Linux 命令列下執行修改「環境變數」的指令即可:
export MY_VAR = pqr
美妙的是,export MY_VAR = pqr 僅存於當下記憶體。下次重開機時,MY_VAR 又會變回 abc。很適合「臨時想改成一個值,但懶得下次改回來」的場合用。
不知不覺,這篇又變成「落落長」(台語,「冗長」之意)了。我寫這麼多,無非是希望我「嵌入式 Linux 程式設計班」的同學,除了詛咒 Make 語法怪異之餘,也能欣賞它的強大之處。「手排車」是比較難開,但要學「藤原拓海」做出過髮夾彎的「水溝蓋跑法」,麻煩您不要詛咒換檔時還要踩「庫拉幾(台語,「離合器」之意)」。
以下附上 Make 官方文件,我班上的同學,想下載 PDF 檔回去好好保存的...咳咳咳...我放在「秘密基地」裡的「eBook」資料夾...麻煩低調地搬回家觀賞... XD
http://www.gnu.org/software/make/manual/make.html
這裡有另一位國外網友,訴說他為何喜歡 Make 的原因。我大多贊同他的觀點,提供給各位參考:
http://bost.ocks.org/mike/make/
dependency下載 在 An open-source modern Dependency Walker - GitHub 的推薦與評價
GitHub - lucasg/Dependencies: A rewrite of the old legacy software "depends.exe" in C# for Windows ... (If you're running an AV, use this download instead). ... <看更多>
dependency下載 在 Dependencies - blog 的推薦與評價
Dependencies. Download Dependencies Get sources on Github. An open-source modern Dependency Walker. Usage Exemple ... ... <看更多>